Crazy Eddies GUI System
0.6.0
|
The WindowManager class describes an object that manages creation and lifetime of Window objects. More...
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... | |
Window * | 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. More... | |
void | destroyWindow (Window *window) |
Destroy the specified Window object. More... | |
void | destroyWindow (const String &window) |
Destroy the specified Window object. More... | |
Window * | getWindow (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... | |
Window * | 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. More... | |
Window * | loadWindowLayout (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 String & | getDefaultResourceGroup () |
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 WindowManager & | getSingleton (void) |
static WindowManager * | getSingletonPtr (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 WindowManager * | ms_Singleton |
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.
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.
window | Window object that the property is to be applied to. |
propname | String holding the name of the property that is being set. |
propvalue | String holding the new value that will be applied to the property specified by /a propname. |
userdata | Some client code supplied data. |
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().
void CEGUI::WindowManager::cleanDeadPool | ( | void | ) |
Permanently destroys any windows placed in the dead pool.
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.
type | String that describes the type of Window to be created. A valid WindowFactory for the specified type must be registered. |
name | String 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. |
AlreadyExistsException | A Window object with the name name already exists. |
UnknownObjectException | No WindowFactory is registered for type Window objects. |
GenericException | Some 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).
zone | Helper string that can specify where the name dump was made (e.g. "BEFORE FRAME DELETION"). |
References CEGUI::ConstBaseIterator< T >::getCurrentValue(), getIterator(), and CEGUI::ConstBaseIterator< T >::isAtEnd().
void CEGUI::WindowManager::destroyAllWindows | ( | void | ) |
Destroys all Window objects within the system.
InvalidRequestException | Thrown 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.
window | Pointer to the Window object to be destroyed. If the window is null, or is not recognised, nothing happens. |
InvalidRequestException | Can 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.
window | String containing the name of the Window object to be destroyed. If window is not recognised, nothing happens. |
InvalidRequestException | Can 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().
|
inlinestatic |
Returns the default resource group currently set for layouts.
Return a pointer to the specified Window object.
UnknownObjectException | No 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.
bool CEGUI::WindowManager::isWindowPresent | ( | const String & | name | ) | const |
Examines the list of Window objects to see if one exists with the given name.
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.
filename | String object holding the filename of the XML file to be processed. |
name_prefix | String 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. |
resourceGroup | Resource group identifier to be passed to the resource provider when loading the layout file. |
callback | PropertyCallback 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. |
userdata | Client code data pointer passed to the PropertyCallback function. |
FileIOException | thrown if something goes wrong while processing the file filename. |
InvalidRequestException | thrown 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.
Rename a window.
window | String holding the current name of the window to be renamed. |
new_name | String holding the new name for the window |
UnknownObjectException | thrown if window is not known in the system. |
AlreadyExistsException | thrown if a Window named new_name already exists. |
References getWindow().
Referenced by CEGUI::Window::rename(), and CEGUI::WidgetLookFeel::renameChildren().
Rename a window.
window | Pointer to the window to be renamed. |
new_name | String holding the new name for the window |
AlreadyExistsException | thrown if a Window named new_name already exists. |
References CEGUI::Window::getName(), and CEGUI::Window::rename().
|
inlinestatic |
Sets the default resource group to be used when loading layouts.
resourceGroup | String describing the default resource group identifier to be used. |
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.
window | Window object to become the root of the layout. |
out_stream | OutStream (std::ostream based) object where data is to be sent. |
writeParent | If the starting window has a parent window, specifies whether to write the parent name into the Parent attribute of the GUILayout XML element. |
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.
window | String holding the name of the Window object to become the root of the layout. |
out_stream | OutStream (std::ostream based) object where data is to be sent. |
writeParent | If the starting window has a parent window, specifies whether to write the parent name into the Parent attribute of the GUILayout XML element. |
References getWindow(), and writeWindowLayoutToStream().