#ifndef _LLXDO_CORE_ #define _LLXDO_CORE_ #define GMENU_I_KNOW_THIS_IS_UNSTABLE #include #include #include #include "Dash.hpp" #include "Slot.hpp" #include #include #define MSG_PUSH_FRAME 0x00 namespace net { namespace lliurex { namespace llxdo { class Core { private: static Core * instance; Core(); ~Core(); bool quit_request; lgi::X11Window * window; Dash * dash; void LoadRsrc(std::string path); public: /*! plugin so reference */ std::mapplugins; /*! surface map */ std::mapsurfaces; /*! slots */ std::vectorslots; /*! menu info */ std::map menu; /*! Factory creator/getter */ static Core * GetCore(); /*! Factory destructor */ static void Free(); /*! Loads old lliurex-do setup */ void LoadVintageSetup(); /*! Loads setup */ void LoadSetup(); /*! Saves setup */ void SaveSetup(); /*! Read entries from xdg menu */ void LoadMenu(); /*! Load slot plugins */ void LoadPlugins(); /*! stuck on main loop */ void Run(); /*! Quit from main loop */ void Quit(); /*! Gets an instance from a given plugin id */ Slot * GetPlugin(std::string name); /*! Forces a screen update */ void Update(); }; } } } #endif