#1108 closed todo (done)

UI Location query

Reported by: Ichthyostega Owned by: Ichthyostega
Priority: normal Milestone: 0integration
Component: lumieraGui Keywords: gui gtk design interfaces
Sub Tickets: #1117 Parent Tickets: #1107, #1109, #1127, #1129

Description

Define a command-and-query interface to work against an abstracted notion of "UI structure"

  • define a suitable placeholder type to represent the location
  • get the path for the location
  • explore the location
  • navigate from the location
  • instruct extension of structure at the location

This is foundation work, both to allow for generic UI-Coordinates and UI navigation in general

Change history (7)

comment:1 by Ichthyostega, at 2017-10-13T20:56:37Z

blocking: 11071107, 1109

comment:2 by Ichthyostega, at 2017-11-17T19:40:43Z

blockedby: 1117

comment:3 by Ichthyostega, at 2017-12-17T23:51:51Z

Status: newaccepted

...more or less in the works while focussing on UI-Coordinate matching and resolution

comment:4 by Ichthyostega, at 2017-12-26T13:37:46Z

Resolution: done
Status: acceptedclosed

Consider this as settled by now.
Looks like we do not need to represent the concept of current location explicitly;
it was possible to shape all the necessary operations just based on

  • a UICoord specification, which is a path down into the tree, starting from root
  • a depth parameter, counting root level as depth == 0

It comes somewhat as a surprise that this API is so small. This became possible
through the idea of a child iterator with the additional ability to delve down and
expand one level of children of the current element. Such can be implemented
by reliyng on techniques similar to the "Monads" from functional programming.

Let's see if this was a good choice. The price to pay is a high level of formal precision
when dealing with the abstraction barrier. We need to stick strictly to the notion of a
logical path into a tree-like topology, and we need to be strong enough never to
give in and indulge with "the concrete, tangible". The concrete reality of a tree processing
algorithm with memory management plus backtracking is just to complex to be handled
mentally. So either stick to the rules or get lost.

comment:5 by Ichthyostega, at 2018-02-01T18:46:18Z

blocking: 1107, 11091107, 1109, 1127

comment:6 by Ichthyostega, at 2018-02-01T19:09:14Z

blocking: 1107, 1109, 11271107, 1109, 1127, 1129

comment:7 by Undercover Agent, at 2025-12-25T00:00:00Z

blockedby: 1117
blocking: 1107, 1109, 1127, 1129
Parent Tickets: 1107, 1109, 1127, 1129
Sub Tickets: 1117

Migration MasterTickets ⟼ Subtickets-plugin

Note: See TracTickets for help on using tickets.