Changeset 4fc41a for molecuilder/src/UIElements
- Timestamp:
- Mar 11, 2010, 10:37:32 AM (16 years ago)
- Children:
- ff1812
- Parents:
- 4c60ef
- Location:
- molecuilder/src/UIElements
- Files:
-
- 2 edited
-
UIFactory.cpp (modified) (3 diffs)
-
UIFactory.hpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/UIElements/UIFactory.cpp
r4c60ef r4fc41a 8 8 9 9 #include <cassert> 10 #include "Patterns/Singleton_impl.hpp" 10 11 #include "UIElements/UIFactory.hpp" 11 12 12 13 // all factories that can be used: 13 14 #include "UIElements/TextUIFactory.hpp" 14 15 UIFactory *UIFactory::theFactory = 0;16 15 17 16 UIFactory::UIFactory() … … 27 26 28 27 void UIFactory::makeUserInterface(InterfaceTypes type) { 29 assert(theFactory == 0 && "makeUserInterface should only be called once");30 28 switch(type) { 31 29 case Text : 32 theFactory = new TextUIFactory();30 setInstance(new TextUIFactory()); 33 31 break; 34 32 … … 39 37 } 40 38 41 UIFactory* UIFactory::get(){ 42 assert(theFactory != 0 && "No UserInterface created prior to factory access"); 43 return theFactory; 44 } 45 46 47 void UIFactory::purgeInstance(){ 48 if(theFactory) { 49 delete theFactory; 50 theFactory = 0; 51 } 52 } 39 CONSTRUCT_SINGLETON(UIFactory) -
molecuilder/src/UIElements/UIFactory.hpp
r4c60ef r4fc41a 17 17 18 18 struct menuPopulaters; 19 20 #include "Patterns/Singleton.hpp" 21 19 22 /** 20 23 * Abstract Factory to create any kind of User interface object needed by the programm. … … 24 27 * UIs can be handled in a concise abstract way. 25 28 */ 26 class UIFactory 29 class UIFactory : public Singleton<UIFactory,false> 27 30 { 28 31 … … 45 48 UIFactory(); 46 49 47 // singleton stuff48 private:49 static UIFactory *theFactory;50 51 50 public: 52 51 /** … … 55 54 static void makeUserInterface(InterfaceTypes type); 56 55 57 /**58 * get the previously created factory59 */60 static UIFactory* get();61 62 /**63 * Destroy the created factory.64 *65 * Make sure that all UIElements that were created by the factory are destroyed before calling this method.66 */67 static void purgeInstance();68 56 }; 69 57
Note:
See TracChangeset
for help on using the changeset viewer.
