]> git.lizzy.rs Git - irrlicht.git/blobdiff - include/IGUIEnvironment.h
Merging r6145 through r6171 from trunk to ogl-es branch
[irrlicht.git] / include / IGUIEnvironment.h
index 695b41b842e0d07804e8d2a9a9fd542044c3e9ef..4bd3db872a544e1839f3689f3e039be54bdc3171 100644 (file)
@@ -74,7 +74,9 @@ class IGUIEnvironment : public virtual IReferenceCounted
 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
@@ -621,10 +623,10 @@ public:
        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
@@ -644,6 +646,17 @@ public:
        //! 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