ede/evoke/EvokeService.h

62 lines
1.3 KiB
C++

/*
* $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 <FL/x.H>
#include <edelib/List.h>
#include <edelib/String.h>
struct StartupItem {
edelib::String exec;
edelib::String icon;
edelib::String description;
};
typedef edelib::list<StartupItem*> StartupItemList;
typedef edelib::list<StartupItem*>::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