00001 /* 00002 00003 ClanGUI, copyrights by various people. Have a look in the CREDITS file. 00004 00005 This sourcecode is distributed using the Library GNU Public Licence, 00006 version 2 or (at your option) any later version. Please read LICENSE 00007 for details. 00008 */ 00009 00011 00012 #ifndef header_component_manager 00013 #define header_component_manager 00014 00015 #include "component.h" 00016 #include "component_type.h" 00017 00018 #include <string> 00019 #include <map> 00020 00021 class CL_StyleManager; 00022 class CL_ResourceManager; 00023 class CL_ComponentType; 00024 00025 class CL_ComponentManager 00026 //: Manages the components 00027 { 00028 public: 00029 static CL_ComponentManager *create( 00030 const char *resource_id, 00031 CL_ResourceManager *res_manager, 00032 CL_StyleManager *style); 00033 00034 static CL_ComponentManager *create( 00035 const char *filename, 00036 bool is_datafile, 00037 CL_StyleManager *style); 00038 00039 virtual ~CL_ComponentManager() { return; } 00040 00041 virtual CL_Component *get_component(const char *component_id) = 0; 00042 00043 static std::map<std::string, CL_ComponentType *> component_types; 00044 }; 00045 00046 #endif
1.2.6 written by Dimitri van Heesch,
© 1997-2001