diff --git a/wiki/renderengine.html b/wiki/renderengine.html index 479c9fe75..5bb0a22c2 100644 --- a/wiki/renderengine.html +++ b/wiki/renderengine.html @@ -8314,7 +8314,7 @@ The UI-Bus is a ''Mediator'' -- impersonating the role of the //Model// and the The ~MVC-Pattern as such is fine, and probably the best we know for construction of user interfaces. But it doesn't scale well towards the integration into a larger and more structured system. There is a tension between the Controller in the UI and other parts of an application, which as well need to be //in control.// And, even more important, there is a tension between the demands of UI elements for support by a model, and the demands to be placed on a core domain model of a large scale application. This tension is resolved by enacting these roles while transforming the requests and demands into //Messages.// -
+
While our UI widgets are implemented the standard way as proposed by GTKmm, some key elements -- which are especially relevant for the anatomy and mechanics of the interface -- are made to conform to a common interface and behaviour protocol. {{red{WIP 11/15 work out what this protocol is all about}}}. #975
 As a starting point, we know
 * there is a backbone structure known as the UI-Bus
@@ -8339,6 +8339,28 @@ These manipulations in itself do not constitute an action. But there typically i
 A special case of state marking is the presentation of transient feedback. Such feedback is pushed from "somewhere" towards given elements, which react through an implementation dependent visual state change (flushing, colour change, marker icon). If such state marking is to be persistent, the interface element has in turn to send a specific state mark. An example would be a permanent error flag with a explanatory text showed in mouse over. Which in turn means there can also be sweeping state reset messages, which are to be broadcasted: A general "reset", an indication to collapse everything, or to clear pending error flags.
 
 And finally, there are the //essential updates// -- any changes in the model //for real.// These are sent as notifications just to some top level element, expecting this element to request a diff and to recursively mutate contents into shape.
+
+
+!Interactions
+;new
+:connect to an existing term, supply the {{{EntryID}}} of the new element
+;act
+:send a GenNode representing the action
+;mark
+:send a GenNode representing the //state mark//
+;note
+:receive a GenNode representing the //feedback//
+;signals
+:the individual element exposes some generic signal slots
+:* sigMut prompts the element to draw a diff to alter its configuration
+:* sigExpand promts the element to transition into expanded / unfolded state. If this state is sticky, the element should answer with a ''mark''
+:* sigShow prompts the element to bring the indicated child into sight
+;diff
+:ask to retrieve a diff, which
+:* either is an incremental status update
+:* or is a from-scratch reconfiguration
+
+We should note that these conventions of interchange lead to a ''self similar design'' of the UI-Bus: Each {{{BusTerm}}} is a personalised connection to yet another {{{BusTerm}}}. Even the ''bus master'' appears as just another {{{BusTerm}}} to all the communication partners. The overall topology of the bus might be reshaped without the participating elements being aware of such a change.
 
diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 7cdf46716..56bc7c20a 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -17,8 +17,7 @@ Struktur

- - + @@ -41,8 +40,7 @@ heißt: Element registriert sich am UI-Bus

- - +
@@ -54,8 +52,7 @@ heißt: Element deregistriert sich am UI-Bus

- -
+
@@ -69,8 +66,7 @@ ...ist immer ein tangible

- - +
@@ -88,8 +84,7 @@ state

- - + @@ -101,8 +96,7 @@ vom tangible initiiert

- -
+
@@ -137,8 +131,7 @@ Nachricht an irgend ein Wurzel-Element

- - +
@@ -148,9 +141,68 @@ - - - + + + + + + + +

+ mark: Nachricht upstream bzw broadcast +

+ + +
+
+ + + + + + +

+ note: Nachricht downstream +

+ + +
+
+
+ + + + + + + + + + + + +

+ Bus-Design is selbstähnlich +

+ + +
+
+ + + + + + + +

+ Kennzeichen ist die EntryID des zugehörigen Elements +

+ + +
+
+