30 #ifndef _CEGUIWindowFactoryManager_h_
31 #define _CEGUIWindowFactoryManager_h_
33 #include "CEGUIBase.h"
34 #include "CEGUIString.h"
35 #include "CEGUISingleton.h"
36 #include "CEGUILogger.h"
37 #include "CEGUIIteratorBase.h"
38 #include "CEGUIWindowFactory.h"
39 #include "CEGUIExceptions.h"
44 # pragma warning(push)
45 # pragma warning(disable : 4275)
46 # pragma warning(disable : 4251)
105 const String& getActiveTarget(
void)
const;
114 uint getStackedTargetCount(
void)
const;
119 typedef std::vector<String> TargetTypeStack;
121 TargetTypeStack d_targetStack;
141 Logger::getSingleton().logEvent(
"CEGUI::WindowFactoryManager singleton destroyed");
176 template <
typename T>
177 static void addFactory();
194 void removeFactory(
const String& name);
221 void removeAllFactories(
void);
253 bool isFactoryPresent(
const String& name)
const;
281 void addWindowTypeAlias(
const String& aliasName,
const String& targetType);
301 void removeWindowTypeAlias(
const String& aliasName,
const String& targetType);
334 void addFalagardWindowMapping(
const String& newType,
347 void removeFalagardWindowMapping(
const String& type);
360 bool isFalagardMappedType(
const String& type)
const;
374 const String& getMappedLookForType(
const String& type)
const;
388 const String& getMappedRendererForType(
const String& type)
const;
408 String getDereferencedAliasType(
const String& type)
const;
422 const FalagardWindowMapping& getFalagardMappingForType(
const String& type)
const;
428 typedef std::map<String, WindowFactory*, String::FastLessCompare> WindowFactoryRegistry;
429 typedef std::map<String, AliasTargetStack, String::FastLessCompare> TypeAliasRegistry;
430 typedef std::map<String, FalagardWindowMapping, String::FastLessCompare> FalagardMapRegistry;
431 typedef std::vector<WindowFactory*> OwnedWindowFactoryList;
434 WindowFactoryRegistry d_factoryRegistry;
435 TypeAliasRegistry d_aliasRegistry;
436 FalagardMapRegistry d_falagardRegistry;
437 static OwnedWindowFactoryList d_ownedFactories;
452 WindowFactoryIterator getIterator(
void)
const;
459 TypeAliasIterator getAliasIterator(
void)
const;
466 FalagardMappingIterator getFalagardMappingIterator()
const;
470 template <
typename T>
477 if (WindowFactoryManager::getSingletonPtr())
479 Logger::getSingleton().logEvent(
"Created WindowFactory for '" +
485 WindowFactoryManager::getSingleton().addFactory(factory);
489 Logger::getSingleton().logEvent(
"Deleted WindowFactory for '" +
498 d_ownedFactories.push_back(factory);
504 #if defined(_MSC_VER)
505 # pragma warning(pop)
508 #endif // end of guard _CEGUIWindowFactoryManager_h_
AliasTargetStack(void)
Constructor for WindowAliasTargetStack objects.
Definition: CEGUIWindowFactoryManager.h:88
static void addFactory()
Creates a WindowFactory of the type T and adds it to the system for use. The created WindowFactory wi...
Definition: CEGUIWindowFactoryManager.h:471
Class that manages WindowFactory objects.
Definition: CEGUIWindowFactoryManager.h:61
~WindowFactoryManager(void)
Destructor for WindowFactoryManager objects.
Definition: CEGUIWindowFactoryManager.h:139
Base class constant iterator used to offer iteration over various collections within the system...
Definition: CEGUIIteratorBase.h:47
~AliasTargetStack(void)
Destructor for WindowAliasTargetStack objects.
Definition: CEGUIWindowFactoryManager.h:95
Class used to track active alias targets for Window factory types.
Definition: CEGUIWindowFactoryManager.h:81
struct used to hold mapping information required to create a falagard based window.
Definition: CEGUIWindowFactoryManager.h:68
const String & getTypeName() const
Get the string that describes the type of Window object this WindowFactory produces.
Definition: CEGUIWindowFactory.h:152
Definition: CEGUISingleton.h:56
Root exception class used within the GUI system.
Definition: CEGUIExceptions.h:41
Abstract class that defines the required interface for all WindowFactory objects. ...
Definition: CEGUIWindowFactory.h:116
String class used within the GUI system.
Definition: CEGUIString.h:57