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 #ifndef _CEGUIScheme_h_
00031 #define _CEGUIScheme_h_
00032
00033 #include "CEGUIBase.h"
00034 #include "CEGUIString.h"
00035 #include "CEGUISchemeManager.h"
00036
00037
00038 #include <vector>
00039
00040
00041 #if defined(_MSC_VER)
00042 # pragma warning(push)
00043 # pragma warning(disable : 4251)
00044 #endif
00045
00046
00047
00048 namespace CEGUI
00049 {
00059 class CEGUIEXPORT Scheme
00060 {
00061 friend class Scheme_xmlHandler;
00062 public:
00070 void loadResources(void);
00071
00072
00080 void unloadResources(void);
00081
00082
00090 bool resourcesLoaded(void) const;
00091
00092
00100 const String& getName(void) const {return d_name;}
00101
00110 static const String& getDefaultResourceGroup()
00111 { return d_defaultResourceGroup; }
00112
00123 static void setDefaultResourceGroup(const String& resourceGroup)
00124 { d_defaultResourceGroup = resourceGroup; }
00125
00126 private:
00127
00128
00129
00130 static const char GUISchemeSchemaName[];
00131
00132
00133
00134
00135 friend Scheme* SchemeManager::loadScheme(const String& scheme_filename, const String& resourceGroup);
00136 friend void SchemeManager::unloadScheme(const String& scheme_name);
00137
00138
00139
00140
00141
00156 Scheme(const String& filename, const String& resourceGroup);
00157
00162 void loadXMLImagesets();
00163
00168 void loadImageFileImagesets();
00169
00174 void loadFonts();
00175
00180 void loadLookNFeels();
00181
00186 void loadWindowFactories();
00187
00192 void loadWindowRendererFactories();
00193
00198 void loadFactoryAliases();
00199
00204 void loadFalagardMappings();
00205
00210 void unloadXMLImagesets();
00211
00216 void unloadImageFileImagesets();
00217
00222 void unloadFonts();
00223
00228 void unloadLookNFeels();
00229
00234 void unloadWindowFactories();
00235
00240 void unloadWindowRendererFactories();
00241
00246 void unloadFactoryAliases();
00247
00252 void unloadFalagardMappings();
00253
00258 bool areXMLImagesetsLoaded() const;
00259
00264 bool areImageFileImagesetsLoaded() const;
00265
00270 bool areFontsLoaded() const;
00271
00276 bool areLookNFeelsLoaded() const;
00277
00282 bool areWindowFactoriesLoaded() const;
00283
00288 bool areWindowRendererFactoriesLoaded() const;
00289
00294 bool areFactoryAliasesLoaded() const;
00295
00300 bool areFalagardMappingsLoaded() const;
00301
00302 public:
00310 ~Scheme(void);
00311
00312
00313 private:
00314
00315
00316
00317 struct LoadableUIElement
00318 {
00319 String name;
00320 String filename;
00321 String resourceGroup;
00322 };
00323
00324 struct UIElementFactory
00325 {
00326 String name;
00327 };
00328
00329 struct UIModule
00330 {
00331 String name;
00332 FactoryModule* module;
00333 std::vector<UIElementFactory> factories;
00334 };
00335
00336 struct AliasMapping
00337 {
00338 String aliasName;
00339 String targetName;
00340 };
00341
00342 struct FalagardMapping
00343 {
00344 String windowName;
00345 String targetName;
00346 String rendererName;
00347 String lookName;
00348 };
00349
00350
00351
00352
00353 String d_name;
00354
00355 std::vector<LoadableUIElement> d_imagesets;
00356 std::vector<LoadableUIElement> d_imagesetsFromImages;
00357 std::vector<LoadableUIElement> d_fonts;
00358 std::vector<UIModule> d_widgetModules;
00359 std::vector<UIModule> d_windowRendererModules;
00360 std::vector<AliasMapping> d_aliasMappings;
00361 std::vector<LoadableUIElement> d_looknfeels;
00362 std::vector<FalagardMapping> d_falagardMappings;
00363
00364 static String d_defaultResourceGroup;
00365 };
00366
00367 }
00368
00369 #if defined(_MSC_VER)
00370 # pragma warning(pop)
00371 #endif
00372
00373 #endif // end of guard _CEGUIScheme_h_