Lumiera  0.pre.03
»edit your freedom«
gtk-lumiera.cpp File Reference

Go to the source code of this file.

Description

Start up the Lumiera GTK GUI when loading it as dynamic module.

This plugin is linked together with the Lumiera GUI code; when loaded as Lumiera plugin, it allows to kick off the GTK main event loop and thus to bring up the GUI. The loading and shutdown process is carried out by stage::GuiFacade and controlled by lumiera::AppState, which in turn is activated by Lumiera main().

After successfully loading this module, a call to GuiFacade::launchUI is expected to happen, passing a termination signal (callback) to be executed when the GUI terminates. The implementation of GuiFacade in the GuiRunner in fact issues this call from the ctor body, while the interface is opened via an InstanceHandle member. The launchUI() call starts a new thread, which then becomes the UI event thread and remains blocked within the main GTK event loop. Before entering this loop, the CoreService of the GUI and especially the UI-Bus is started see GtkLumiera::run(). This entails also to open the primary "business" interface(s) of the GUI (currently as of 1/16 this is the interface stage::GuiNotification.)

See also
lumiera::AppState
stage::GuiFacade
guifacade.cpp
ui-manager.hpp

Definition in file gtk-lumiera.cpp.

#include "stage/gtk-base.hpp"
#include "lib/error.hpp"
#include "lib/thread.hpp"
#include "stage/ui-bus.hpp"
#include "stage/guifacade.hpp"
#include "stage/ctrl/ui-manager.hpp"
#include "common/subsys.hpp"
#include "lib/nocopy.hpp"
#include "common/interface.h"
#include "common/interface-descriptor.h"
#include <string>

Classes

class  GtkLumiera
 Implement the necessary steps for actually making the Lumiera UI available. More...
 

Functions

bool launchUI (Subsys::SigTerm &reportOnTermination)
 
 LUMIERA_ERROR_DEFINE (UIWIRING, "GUI state contradicts assumptions in signal wiring")
 
 LUMIERA_EXPORT (LUMIERA_INTERFACE_DEFINE(lumieraorg_Gui, 1, lumieraorg_GuiStarterPlugin, LUMIERA_INTERFACE_REF(lumieraorg_interfacedescriptor, 0, lumieraorg_GuiStarterPlugin_descriptor), NULL, NULL, LUMIERA_INTERFACE_INLINE(launchUI, bool,(void *termSig), { return stage::launchUI(*reinterpret_cast< Subsys::SigTerm *>(termSig));})))
 
 LUMIERA_INTERFACE_INSTANCE (lumieraorg_interfacedescriptor, 0, lumieraorg_GuiStarterPlugin_descriptor, NULL, NULL, NULL, LUMIERA_INTERFACE_INLINE(name, const char *,(LumieraInterface ifa), {(void) ifa;return "GuiStarterPlugin";}), LUMIERA_INTERFACE_INLINE(brief, const char *,(LumieraInterface ifa), {(void) ifa;return "entry point to start up the Lumiera GTK GUI contained in this dynamic module";}), LUMIERA_INTERFACE_INLINE(homepage, const char *,(LumieraInterface ifa), {(void) ifa;return "http://www.lumiera.org/develompent.html" ;}), LUMIERA_INTERFACE_INLINE(version, const char *,(LumieraInterface ifa), {(void) ifa;return "0.1~pre";}), LUMIERA_INTERFACE_INLINE(author, const char *,(LumieraInterface ifa), {(void) ifa;return "Joel Holdsworth, Christian Thaeter, Hermann Vosseler";}), LUMIERA_INTERFACE_INLINE(email, const char *,(LumieraInterface ifa), {(void) ifa;return "Lumiera@lists.lumiera.org";}), LUMIERA_INTERFACE_INLINE(copyright, const char *,(LumieraInterface ifa), {(void) ifa;return "Copyright (C)\ " 2007-2008, Joel Holdsworth< joel @airwebreathe.org.uk >\" " 2009, Christian Thaeter< ct @pipapo.org >\" " 2009, Hermann Vosseler< Ichthyostega @web.de >" " 2016, 2017, Hermann Vosseler< Ichthyostega @web.de >"; }), LUMIERA_INTERFACE_INLINE(license, const char *,(LumieraInterface ifa), {(void) ifa; return " **Lumiera **is free software;you can redistribute it and/or modify it\" "under the terms of the GNU General Public License as published by the\" "Free Software Foundation;either version 2 of the License, or(at your\" "option) any later version. See the file COPYING for further details." ; }), LUMIERA_INTERFACE_INLINE(state, int,(LumieraInterface ifa), {(void) ifa; return LUMIERA_INTERFACE_EXPERIMENTAL;}), LUMIERA_INTERFACE_INLINE(versioncmp, int,(const char *a, const char *b), {(void) a;(void) b; return 0;}))
 

Namespaces

 lumiera
 Lumiera public interface.
 
 stage
 Lumiera GTK UI implementation root.