Lumiera  0.pre.03
»edit your freedom«
ui-protocol.hpp File Reference

Go to the source code of this file.

Description

Hard wired key constants and basic definitions for communication with the GUI.

The Lumiera UI is connected to the application core via message oriented interfaces, running an asynchronous communication protocol.

  • the UI-Bus allows for some specific kinds of messages to be sent either "upstream" (towards the CoreService) or "downstream" to individual UI-Elements known by ID.
  • these tangible.hpptangible interface elements"" themselves define a basic set of actions and "state mark" messages, known as the "element protocol"
  • and changes to the structure of tangible elements exposed through the UI are conducted by pushing up »diff messages« into the UI via UI-Bus. These messages need to comply to an underlying structural model of elements to be edited within the session and exposed for GUI manipulation. This is referred to as "Session Model Scheme"

These protocols are basically implementation defined conventions and not rigorously formalised. To a large extent, they are guided by the types and corresponding API interfaces. However, since the lumiera session allows for quite flexible structures, these protocols are kept open for local extensions. At various levels, magic ID-Values are used to initiate specific interactions. This header supplies the hard wired key constants and IDs thereby employed.

See also
common/ui-protocol.cpp (translation unit backing those constants)

Definition in file ui-protocol.hpp.

#include "lib/error.hpp"
#include "lib/symbol.hpp"

Functions

 LUMIERA_ERROR_DECLARE (DIFF_STRUCTURE)
 Invalid diff structure: implicit rules and assumptions violated.
 

Namespaces

 lib
 Implementation namespace for support and library code.
 
 stage
 Lumiera GTK UI implementation root.