edelib 2.0.0
|
00001 /* 00002 * $Id: ThemeLoader.h 2921 2009-11-04 13:46:41Z karijes $ 00003 * 00004 * Theming stuff 00005 * Copyright (c) 2009 edelib authors 00006 * 00007 * This library is free software; you can redistribute it and/or 00008 * modify it under the terms of the GNU Lesser General Public 00009 * License as published by the Free Software Foundation; either 00010 * version 2 of the License, or (at your option) any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public License 00018 * along with this library. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #ifndef __EDELIB_THEMELOADER_H__ 00022 #define __EDELIB_THEMELOADER_H__ 00023 00024 #include "Theme.h" 00025 #include "XSettingsClient.h" 00026 00027 EDELIB_NS_BEGIN 00028 00029 struct ThemeLoader_P; 00030 00046 class ThemeLoader { 00047 private: 00048 ThemeLoader_P *priv; 00049 00050 void apply_common_gui_elements(void); 00051 E_DISABLE_CLASS_COPY(ThemeLoader) 00052 public: 00054 ThemeLoader(); 00055 00057 ~ThemeLoader(); 00058 00067 bool load(const char *name = "default", const char *prefix = "ede"); 00068 00072 bool load_with_path(const char *path); 00073 00078 bool load_xsettings(void); 00079 00083 Theme *theme(void); 00084 00088 XSettingsClient *xsettings(void); 00089 00090 #ifndef SKIP_DOCS 00091 E_CLASS_GLOBAL_EXPLICIT_DECLARE(ThemeLoader) 00092 #endif 00093 }; 00094 00095 EDELIB_NS_END 00096 #endif 00097