edelib  2.1.0
ThemeLoader.h
1 /*
2  * $Id: ThemeLoader.h 3385 2012-08-22 21:09:54Z karijes $
3  *
4  * Theming stuff
5  * Copyright (c) 2009 edelib authors
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef __EDELIB_THEMELOADER_H__
22 #define __EDELIB_THEMELOADER_H__
23 
24 #include "Theme.h"
25 #include "XSettingsClient.h"
26 
27 EDELIB_NS_BEGIN
28 
29 struct ThemeLoader_P;
30 
46 class EDELIB_API ThemeLoader {
47 private:
48  ThemeLoader_P *priv;
49 
50  void apply_common_gui_elements(void);
52 public:
54  ThemeLoader();
55 
57  ~ThemeLoader();
58 
67  bool load(const char *name = "default", const char *prefix = "ede");
68 
72  bool load_with_path(const char *path);
73 
78  bool load_xsettings(void);
79 
83  Theme *theme(void);
84 
88  XSettingsClient *xsettings(void);
89 
90 #ifndef SKIP_DOCS
92 #endif
93 };
94 
95 EDELIB_NS_END
96 #endif
97 
#define E_DISABLE_CLASS_COPY(klass)
Definition: edelib-global.h:161
Theming engine for widgets.
Definition: Theme.h:48
#define E_CLASS_GLOBAL_EXPLICIT_DECLARE(klass)
Definition: edelib-global.h:203
Client part of XSETTINGS protocol.
Definition: XSettingsClient.h:109
Themes loader.
Definition: ThemeLoader.h:46