public:\r
\r
//! Draws all gui elements by traversing the GUI environment starting at the root node.\r
- virtual void drawAll() = 0;\r
+ /** \param When true ensure the GuiEnvironment (aka the RootGUIElement) has the same size as the current driver screensize. \r
+ Can be set to false to control that size yourself, p.E when not the full size should be used for UI. */\r
+ virtual void drawAll(bool useScreenSize=true) = 0;\r
\r
//! Sets the focus to an element.\r
/** Causes a EGET_ELEMENT_FOCUS_LOST event followed by a\r
virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0)=0;\r
\r
//! writes an element\r
- virtual void writeGUIElement(io::IXMLWriter* writer, IGUIElement* node) =0;\r
+ virtual void writeGUIElement(io::IXMLWriter* writer, IGUIElement* element) =0;\r
\r
//! reads an element\r
- virtual void readGUIElement(io::IXMLReader* reader, IGUIElement* node) =0;\r
+ virtual void readGUIElement(io::IXMLReader* reader, IGUIElement* element) =0;\r
\r
//! Find the next element which would be selected when pressing the tab-key\r
/** If you set the focus for the result you can manually force focus-changes like they\r
//! Get the way the gui does handle focus changes\r
/** \returns A bitmask which is a combination of ::EFOCUS_FLAG flags.*/\r
virtual u32 getFocusBehavior() const = 0;\r
+\r
+ //! Adds a IGUIElement to deletion queue.\r
+ /** Queued elements will be removed at the end of each drawAll call.\r
+ Or latest in the destructor of the GUIEnvironment.\r
+ This can be used to allow an element removing itself safely in a function \r
+ iterating over gui elements, like an overloaded IGUIElement::draw or \r
+ IGUIElement::OnPostRender function.\r
+ Note that in general just calling IGUIElement::remove() is enough. \r
+ Unless you create your own GUI elements removing themselves you won't need it.\r
+ \param element: Element to remove */\r
+ virtual void addToDeletionQueue(IGUIElement* element) = 0;\r
};\r
\r
\r