00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef MMSTHEMEMANAGER_H_
00034 #define MMSTHEMEMANAGER_H_
00035
00036 #include "mmsgui/theme/mmstheme.h"
00037
00038 #define DEFAULT_THEME "default"
00039
00040
00041
00042
00043
00044
00045
00046
00047 class MMSThemeManager {
00048 private:
00049
00050 static bool initialized;
00051
00052
00053 static string themepath;
00054
00055
00056 static vector<MMSTheme*> localThemes;
00057
00058 void throughFile(MMSTaffFile *tafff, MMSTheme *theme);
00059
00060 void getThemeValues(MMSTaffFile *tafff, MMSTheme *theme);
00061 void getDescriptionValues(MMSTaffFile *tafff, MMSTheme *theme);
00062
00063 void getTemplateValues(MMSTaffFile *tafff, MMSTemplateClass *themeClass);
00064 void getMainWindowValues(MMSTaffFile *tafff, MMSMainWindowClass *themeClass, MMSTheme *theme);
00065 void getPopupWindowValues(MMSTaffFile *tafff, MMSPopupWindowClass *themeClass, MMSTheme *theme);
00066 void getRootWindowValues(MMSTaffFile *tafff, MMSRootWindowClass *themeClass, MMSTheme *theme);
00067 void getChildWindowValues(MMSTaffFile *tafff, MMSChildWindowClass *themeClass, MMSTheme *theme);
00068 void getLabelWidgetValues(MMSTaffFile *tafff, MMSLabelWidgetClass *themeClass, MMSTheme *theme);
00069 void getImageWidgetValues(MMSTaffFile *tafff, MMSImageWidgetClass *themeClass, MMSTheme *theme);
00070 void getCanvasWidgetValues(MMSTaffFile *tafff, MMSCanvasWidgetClass *themeClass, MMSTheme *theme);
00071 void getButtonWidgetValues(MMSTaffFile *tafff, MMSButtonWidgetClass *themeClass, MMSTheme *theme);
00072 void getProgressBarWidgetValues(MMSTaffFile *tafff, MMSProgressBarWidgetClass *themeClass, MMSTheme *theme);
00073 void getSliderWidgetValues(MMSTaffFile *tafff, MMSSliderWidgetClass *themeClass, MMSTheme *theme);
00074 void getMenuWidgetValues(MMSTaffFile *tafff, MMSMenuWidgetClass *themeClass, MMSTheme *theme);
00075 void getTextBoxWidgetValues(MMSTaffFile *tafff, MMSTextBoxWidgetClass *themeClass, MMSTheme *theme);
00076 void getArrowWidgetValues(MMSTaffFile *tafff, MMSArrowWidgetClass *themeClass, MMSTheme *theme);
00077 void getInputWidgetValues(MMSTaffFile *tafff, MMSInputWidgetClass *themeClass, MMSTheme *theme);
00078 void getCheckBoxWidgetValues(MMSTaffFile *tafff, MMSCheckBoxWidgetClass *themeClass, MMSTheme *theme);
00079
00080 void getTemplateClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00081 void getMainWindowClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00082 void getPopupWindowClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00083 void getRootWindowClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00084 void getChildWindowClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00085 void getLabelWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00086 void getImageWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00087 void getCanvasWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00088 void getButtonWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00089 void getProgressBarWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00090 void getSliderWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00091 void getMenuWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00092 void getTextBoxWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00093 void getArrowWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00094 void getInputWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00095 void getCheckBoxWidgetClassValues(MMSTaffFile *tafff, MMSTheme *theme, string className);
00096
00097
00098 void loadTheme(string path, string themeName, MMSTheme *theme);
00099 void loadGlobalTheme(string themeName);
00100 void loadLocalTheme(MMSTheme *theme, string path, string themeName = "");
00101
00102 public:
00103 MMSThemeManager(string themepath, string globalThemeName = DEFAULT_THEME);
00104 MMSThemeManager();
00105 ~MMSThemeManager();
00106
00107 MMSTheme *loadLocalTheme(string path, string themeName = "");
00108 void deleteLocalTheme(string path, string themeName);
00109 void deleteLocalTheme(MMSTheme **theme);
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120 void setTheme(string themeName);
00121
00122
00123
00124
00125
00126
00127
00128
00129 void setTheme(string themeName, bool fadein);
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158 static sigc::signal<void, string, bool> onThemeChanged;
00159 };
00160
00161 MMS_CREATEERROR(MMSThemeManagerError);
00162
00163 #endif