/* * $Id$ * * Evoke, head honcho of everything * Part of Equinox Desktop Environment (EDE). * Copyright (c) 2007-2009 EDE Authors. * * This program is licensed under terms of the * GNU General Public License version 2 or newer. * See COPYING for details. */ #ifndef __EVOKESERVICE_H__ #define __EVOKESERVICE_H__ #include #include #include struct StartupItem { edelib::String exec; edelib::String icon; edelib::String description; }; typedef edelib::list StartupItemList; typedef edelib::list::iterator StartupItemListIter; class Xsm; class EvokeService { private: char* lock_name; Xsm* xsm; bool is_running; StartupItemList startup_items; edelib::String splash_theme; void clear_startup_items(void); public: EvokeService(); ~EvokeService(); static EvokeService* instance(void); bool setup_lock(const char* name); void remove_lock(void); void start(void) { is_running = true; } void stop(void) { is_running = false; } bool running(void) { return is_running; } void read_startup(void); void run_startup(bool splash, bool dryrun); int handle(const XEvent* xev); void start_xsettings_manager(void); void stop_xsettings_manager(bool serialize); }; #endif