00001 /* 00002 ClanGUI, copyrights by various people. Have a look in the CREDITS file. 00003 00004 This sourcecode is distributed using the Library GNU Public Licence, 00005 version 2 or (at your option) any later version. Please read LICENSE 00006 for details. 00007 */ 00008 00010 00011 #ifndef header_stylemanager 00012 #define header_stylemanager 00013 00014 #include <string> 00015 00016 class CL_ComponentOptions; 00017 class CL_Component; 00018 class CL_ResourceManager; 00019 class CL_StyleManager_Generic; 00020 00021 class CL_StyleManager 00022 //:Manages the overall style of the system 00023 { 00024 // Construction: 00025 public: 00026 CL_StyleManager(CL_ResourceManager *resources); 00027 virtual ~CL_StyleManager(); 00028 00029 // Attributes: 00030 public: 00031 CL_ResourceManager *get_resources(); 00032 00033 // Overrideables: 00034 public: 00035 virtual CL_Component *create_component( 00036 const std::string &type, 00037 const CL_ComponentOptions &options, 00038 CL_Component *parent)=0; 00039 00040 virtual void connect_styles( 00041 const std::string &type, 00042 const CL_ComponentOptions &options, 00043 CL_Component *owner)=0; 00044 00045 // Implementation: 00046 private: 00047 CL_StyleManager(const CL_StyleManager ©) { return; } // disallow copy contruction 00048 CL_StyleManager_Generic *impl; 00049 }; 00050 00051 #endif
1.2.6 written by Dimitri van Heesch,
© 1997-2001