Crazy Eddies GUI System  0.6.0
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
CEGUI::WindowManager Class Reference

The WindowManager class describes an object that manages creation and lifetime of Window objects. More...

+ Inheritance diagram for CEGUI::WindowManager:
+ Collaboration diagram for CEGUI::WindowManager:

Public Types

typedef bool PropertyCallback (Window *window, String &propname, String &propvalue, void *userdata)
 Function type that is used as a callback when loading layouts from XML; the function is called for each Property element encountered. More...
 
typedef ConstBaseIterator
< WindowRegistry > 
WindowIterator
 

Public Member Functions

 WindowManager (void)
 Constructs a new WindowManager object. More...
 
 ~WindowManager (void)
 Destructor for WindowManager objects. More...
 
WindowcreateWindow (const String &type, const String &name="", const String &prefix="")
 Creates a new Window object of the specified type, and gives it the specified unique name. More...
 
void destroyWindow (Window *window)
 Destroy the specified Window object. More...
 
void destroyWindow (const String &window)
 Destroy the specified Window object. More...
 
WindowgetWindow (const String &name) const
 Return a pointer to the specified Window object. More...
 
bool isWindowPresent (const String &name) const
 Examines the list of Window objects to see if one exists with the given name. More...
 
void destroyAllWindows (void)
 Destroys all Window objects within the system. More...
 
WindowloadWindowLayout (const String &filename, const String &name_prefix="", const String &resourceGroup="", PropertyCallback *callback=0, void *userdata=0)
 Creates a set of windows (a Gui layout) from the information in the specified XML file. More...
 
WindowloadWindowLayout (const String &filename, bool generateRandomPrefix)
 
bool isDeadPoolEmpty (void) const
 Return whether the window dead pool is empty. More...
 
void cleanDeadPool (void)
 Permanently destroys any windows placed in the dead pool. More...
 
void writeWindowLayoutToStream (const Window &window, OutStream &out_stream, bool writeParent=false) const
 Writes a full XML window layout, starting at the given Window to the given OutStream. More...
 
void writeWindowLayoutToStream (const String &window, OutStream &out_stream, bool writeParent=false) const
 Writes a full XML window layout, starting at the given Window to the given OutStream. More...
 
void renameWindow (const String &window, const String &new_name)
 Rename a window. More...
 
void renameWindow (Window *window, const String &new_name)
 Rename a window. More...
 
WindowIterator getIterator (void) const
 Return a WindowManager::WindowIterator object to iterate over the currently defined Windows.
 
void DEBUG_dumpWindowNames (String zone)
 Outputs the names of ALL existing windows to log (DEBUG function). More...
 

Static Public Member Functions

static const StringgetDefaultResourceGroup ()
 Returns the default resource group currently set for layouts. More...
 
static void setDefaultResourceGroup (const String &resourceGroup)
 Sets the default resource group to be used when loading layouts. More...
 
- Static Public Member Functions inherited from CEGUI::Singleton< WindowManager >
static WindowManagergetSingleton (void)
 
static WindowManagergetSingletonPtr (void)
 

Static Public Attributes

static const String GeneratedWindowNameBase
 Base name to use for generated window names.
 

Additional Inherited Members

- Static Protected Attributes inherited from CEGUI::Singleton< WindowManager >
static WindowManagerms_Singleton
 

Detailed Description

The WindowManager class describes an object that manages creation and lifetime of Window objects.

The WindowManager is the means by which Window objects are created and destroyed. For each sub-class of Window that is to be created, there must exist a WindowFactory object which is registered with the WindowFactoryManager. Additionally, the WindowManager tracks every Window object created, and can be used to access those Window objects by name.

Member Typedef Documentation

typedef bool CEGUI::WindowManager::PropertyCallback(Window *window, String &propname, String &propvalue, void *userdata)

Function type that is used as a callback when loading layouts from XML; the function is called for each Property element encountered.

Parameters
windowWindow object that the property is to be applied to.
propnameString holding the name of the property that is being set.
propvalueString holding the new value that will be applied to the property specified by /a propname.
userdataSome client code supplied data.
Returns
  • true if the property should be set.
  • false if the property should not be set,

Constructor & Destructor Documentation

CEGUI::WindowManager::WindowManager ( void  )

Constructs a new WindowManager object.

NB: Client code should not create WindowManager objects - they are of limited use to you! The intended pattern of access is to get a pointer to the GUI system's WindowManager via the System object, and use that.

CEGUI::WindowManager::~WindowManager ( void  )

Destructor for WindowManager objects.

This will properly destry all remaining Window objects. Note that WindowFactory objects will not be destroyed (since they are owned by whoever created them).

References cleanDeadPool(), and destroyAllWindows().

Member Function Documentation

void CEGUI::WindowManager::cleanDeadPool ( void  )

Permanently destroys any windows placed in the dead pool.

Note
It is probably not a good idea to call this from a Window based event handler if the specific window has been or is being destroyed.
Returns
Nothing.

References CEGUI::WindowFactory::destroyWindow().

Referenced by ~WindowManager().

Window * CEGUI::WindowManager::createWindow ( const String type,
const String name = "",
const String prefix = "" 
)

Creates a new Window object of the specified type, and gives it the specified unique name.

Parameters
typeString that describes the type of Window to be created. A valid WindowFactory for the specified type must be registered.
nameString that holds a unique name that is to be given to the new window. If this string is empty (""), a name will be generated for the window.
Returns
Pointer to the newly created Window object.
Exceptions
AlreadyExistsExceptionA Window object with the name name already exists.
UnknownObjectExceptionNo WindowFactory is registered for type Window objects.
GenericExceptionSome other error occurred (Exception message has details).

References CEGUI::WindowFactory::createWindow(), CEGUI::Window::d_falagardType, CEGUI::String::empty(), CEGUI::WindowFactoryManager::getFactory(), CEGUI::WindowFactoryManager::getFalagardMappingForType(), CEGUI::Informative, CEGUI::WindowFactoryManager::isFalagardMappedType(), isWindowPresent(), CEGUI::Window::setLookNFeel(), CEGUI::Window::setPrefix(), and CEGUI::Window::setWindowRenderer().

void CEGUI::WindowManager::DEBUG_dumpWindowNames ( String  zone)

Outputs the names of ALL existing windows to log (DEBUG function).

Parameters
zoneHelper string that can specify where the name dump was made (e.g. "BEFORE FRAME DELETION").
Returns
Nothing.

References CEGUI::ConstBaseIterator< T >::getCurrentValue(), getIterator(), and CEGUI::ConstBaseIterator< T >::isAtEnd().

void CEGUI::WindowManager::destroyAllWindows ( void  )

Destroys all Window objects within the system.

Returns
Nothing.
Exceptions
InvalidRequestExceptionThrown if the WindowFactory for any Window object type has been removed.

References destroyWindow().

Referenced by ~WindowManager().

void CEGUI::WindowManager::destroyWindow ( Window window)

Destroy the specified Window object.

Parameters
windowPointer to the Window object to be destroyed. If the window is null, or is not recognised, nothing happens.
Returns
Nothing
Exceptions
InvalidRequestExceptionCan be thrown if the WindowFactory for window's object type was removed.

References CEGUI::Window::getName().

Referenced by CEGUI::Window::destroy(), and destroyAllWindows().

void CEGUI::WindowManager::destroyWindow ( const String window)

Destroy the specified Window object.

Parameters
windowString containing the name of the Window object to be destroyed. If window is not recognised, nothing happens.
Returns
Nothing.
Exceptions
InvalidRequestExceptionCan be thrown if the WindowFactory for window's object type was removed.

References CEGUI::Window::destroy(), CEGUI::System::getSingleton(), CEGUI::Informative, and CEGUI::System::notifyWindowDestroyed().

static const String& CEGUI::WindowManager::getDefaultResourceGroup ( void  )
inlinestatic

Returns the default resource group currently set for layouts.

Returns
String describing the default resource group identifier that will be used when loading layouts.
Window * CEGUI::WindowManager::getWindow ( const String name) const

Return a pointer to the specified Window object.

Parameters
nameString holding the name of the Window object to be returned.
Returns
Pointer to the Window object with the name name.
Exceptions
UnknownObjectExceptionNo Window object with a name matching name was found.

Referenced by CEGUI::GroupBox::getContentPane(), renameWindow(), and writeWindowLayoutToStream().

bool CEGUI::WindowManager::isDeadPoolEmpty ( void  ) const

Return whether the window dead pool is empty.

Returns
  • true if there are no windows in the dead pool.
  • false if the dead pool contains >=1 window awaiting destruction.
bool CEGUI::WindowManager::isWindowPresent ( const String name) const

Examines the list of Window objects to see if one exists with the given name.

Parameters
nameString holding the name of the Window object to look for.
Returns
true if a Window object was found with a name matching name. false if no matching Window object was found.

Referenced by createWindow(), CEGUI::Window::destroy(), CEGUI::GroupBox::getContentPane(), and CEGUI::Window::rename().

Window * CEGUI::WindowManager::loadWindowLayout ( const String filename,
const String name_prefix = "",
const String resourceGroup = "",
PropertyCallback callback = 0,
void *  userdata = 0 
)

Creates a set of windows (a Gui layout) from the information in the specified XML file.

Parameters
filenameString object holding the filename of the XML file to be processed.
name_prefixString object holding the prefix that is to be used when creating the windows in the layout file, this function allows a layout to be loaded multiple times without having name clashes. Note that if you use this facility, then all windows defined within the layout must have names assigned; you currently can not use this feature in combination with automatically generated window names.
resourceGroupResource group identifier to be passed to the resource provider when loading the layout file.
callbackPropertyCallback function to be called for each Property element loaded from the layout. This is called prior to the property value being applied to the window enabling client code manipulation of properties.
userdataClient code data pointer passed to the PropertyCallback function.
Returns
Pointer to the root Window object defined in the layout.
Exceptions
FileIOExceptionthrown if something goes wrong while processing the file filename.
InvalidRequestExceptionthrown if filename appears to be invalid.

References CEGUI::String::empty(), CEGUI::Errors, CEGUI::GUILayout_xmlHandler::getLayoutRootWindow(), CEGUI::System::getSingleton(), CEGUI::System::getXMLParser(), CEGUI::Informative, CEGUI::XMLParser::parseXMLFile(), and CEGUI::Standard.

void CEGUI::WindowManager::renameWindow ( const String window,
const String new_name 
)

Rename a window.

Parameters
windowString holding the current name of the window to be renamed.
new_nameString holding the new name for the window
Exceptions
UnknownObjectExceptionthrown if window is not known in the system.
AlreadyExistsExceptionthrown if a Window named new_name already exists.

References getWindow().

Referenced by CEGUI::Window::rename(), and CEGUI::WidgetLookFeel::renameChildren().

void CEGUI::WindowManager::renameWindow ( Window window,
const String new_name 
)

Rename a window.

Parameters
windowPointer to the window to be renamed.
new_nameString holding the new name for the window
Exceptions
AlreadyExistsExceptionthrown if a Window named new_name already exists.

References CEGUI::Window::getName(), and CEGUI::Window::rename().

static void CEGUI::WindowManager::setDefaultResourceGroup ( const String resourceGroup)
inlinestatic

Sets the default resource group to be used when loading layouts.

Parameters
resourceGroupString describing the default resource group identifier to be used.
Returns
Nothing.
void CEGUI::WindowManager::writeWindowLayoutToStream ( const Window window,
OutStream out_stream,
bool  writeParent = false 
) const

Writes a full XML window layout, starting at the given Window to the given OutStream.

Parameters
windowWindow object to become the root of the layout.
out_streamOutStream (std::ostream based) object where data is to be sent.
writeParentIf the starting window has a parent window, specifies whether to write the parent name into the Parent attribute of the GUILayout XML element.
Returns
Nothing.

References CEGUI::XMLSerializer::attribute(), CEGUI::XMLSerializer::closeTag(), CEGUI::Window::getName(), CEGUI::Window::getParent(), CEGUI::XMLSerializer::openTag(), and CEGUI::Window::writeXMLToStream().

Referenced by writeWindowLayoutToStream().

void CEGUI::WindowManager::writeWindowLayoutToStream ( const String window,
OutStream out_stream,
bool  writeParent = false 
) const

Writes a full XML window layout, starting at the given Window to the given OutStream.

Parameters
windowString holding the name of the Window object to become the root of the layout.
out_streamOutStream (std::ostream based) object where data is to be sent.
writeParentIf the starting window has a parent window, specifies whether to write the parent name into the Parent attribute of the GUILayout XML element.
Returns
Nothing.

References getWindow(), and writeWindowLayoutToStream().