Lumiera  0.pre.03
»edit your freedom«
GuiFacade Class Reference

#include "stage/guifacade.hpp"

Description

Global access point for loading and starting up the Lumiera GTK GUI and for controlling the GUI lifecycle.

The implementation part of this class also is responsible for making the "business" interface of the GUI available, i.e. stage::GuiNotification

When running Lumiera with a GUI is required (the default case), it is loaded as dynamic module, thus defining the interface(s) for any further access. After successfully loading and starting the GUI, the actual "business" interfaces of the GUI are opened and wired internally such as to allow transparent access from within the core.

intended usage

This is an facade interface to the GUI subsystem, but it's setup is somewhat special, as its sole purpose is to expose the subsystem descriptor, which, when started, loads the GUI as a plugin and invokes launchUI(term) there. For the implementation see stage::GuiRunner (guifacade.cpp) and gtk-lumiera.cpp (the plugin).

Note
this facade is intended to be used by Lumiera main solely. client code should always use the "business" interface(s):

Definition at line 70 of file guifacade.hpp.

Static Public Member Functions

static lumiera::SubsysgetDescriptor ()
 provide a descriptor for lumiera::AppState, wired accordingly to allow main to load, start and stop the Lumiera GTK GUI. More...
 
static bool isUp ()
 weather the GUI has been started and all interfaces are opened
 

Additional Inherited Members

- Private Member Functions inherited from NonCopyable
 NonCopyable (NonCopyable const &)=delete
 
NonCopyableoperator= (NonCopyable const &)=delete
 

Member Function Documentation

◆ getDescriptor()

lumiera::Subsys & getDescriptor ( )
static

provide a descriptor for lumiera::AppState, wired accordingly to allow main to load, start and stop the Lumiera GTK GUI.

intended for use by main().

Definition at line 192 of file guifacade.cpp.

+ Inheritance diagram for GuiFacade:
+ Collaboration diagram for GuiFacade:

The documentation for this class was generated from the following files: