Selaa lähdekoodia

Documentation update and code cleanup.

Lasse Öörni 15 vuotta sitten
vanhempi
sitoutus
748a1fe381

+ 4 - 4
Engine/Engine/RegisterTemplates.h

@@ -440,16 +440,16 @@ template <class T> void registerUIElement(asIScriptEngine* engine, const char* c
     engine->RegisterObjectMethod(className, "void setBringToBack(bool)", asMETHOD(T, setBringToBack), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setClipChildren(bool)", asMETHOD(T, setClipChildren), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setEnabled(bool)", asMETHOD(T, setEnabled), asCALL_THISCALL);
-    engine->RegisterObjectMethod(className, "void setFocusMode(FocusMode)", asMETHOD(T, setFocusMode), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setFocus(bool)", asMETHOD(T, setFocus), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setSelected(bool)", asMETHOD(T, setSelected), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setVisible(bool)", asMETHOD(T, setVisible), asCALL_THISCALL);
+    engine->RegisterObjectMethod(className, "void setFocusMode(FocusMode)", asMETHOD(T, setFocusMode), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setDragDropMode(uint)", asMETHOD(T, setDragDropMode), asCALL_THISCALL);
-    engine->RegisterObjectMethod(className, "void setUserData(const VariantMap& in)", asMETHOD(T, setUserData), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setStyleAuto(XMLFile@+)", asFUNCTION(UIElementSetStyleAuto<T>), asCALL_CDECL_OBJLAST);
     engine->RegisterObjectMethod(className, "void setLayout(LayoutMode, int, const IntRect&)", asMETHOD(T, setLayout), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setLayoutSpacing(int)", asMETHOD(T, setLayoutSpacing), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void setLayoutBorder(const IntRect&)", asMETHOD(T, setLayoutBorder), asCALL_THISCALL);
+    engine->RegisterObjectMethod(className, "void setUserData(const VariantMap& in)", asMETHOD(T, setUserData), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void updateLayout()", asMETHOD(T, updateLayout), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void disableLayoutUpdate()", asMETHOD(T, disableLayoutUpdate), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void enableLayoutUpdate()", asMETHOD(T, enableLayoutUpdate), asCALL_THISCALL);
@@ -479,17 +479,17 @@ template <class T> void registerUIElement(asIScriptEngine* engine, const char* c
     engine->RegisterObjectMethod(className, "bool getBringToBack() const", asMETHOD(T, getBringToBack), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool getClipChildren() const", asMETHOD(T, getClipChildren), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool isEnabled() const", asMETHOD(T, isEnabled), asCALL_THISCALL);
-    engine->RegisterObjectMethod(className, "FocusMode getFocusMode() const", asMETHOD(T, getFocusMode), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool hasFocus() const", asMETHOD(T, hasFocus), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool isSelected() const", asMETHOD(T, isSelected), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool isVisible() const", asMETHOD(T, isVisible), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool isHovering() const", asMETHOD(T, isHovering), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool hasColorGradient() const", asMETHOD(T, hasColorGradient), asCALL_THISCALL);
+    engine->RegisterObjectMethod(className, "FocusMode getFocusMode() const", asMETHOD(T, getFocusMode), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "uint getDragDropMode() const", asMETHOD(T, getDragDropMode), asCALL_THISCALL);
-    engine->RegisterObjectMethod(className, "const VariantMap& getUserData() const", asMETHOD(T, getUserData), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "LayoutMode getLayoutMode() const", asMETHOD(T, getLayoutMode), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "int getLayoutSpacing() const", asMETHOD(T, getLayoutSpacing), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "const IntRect& getLayoutBorder() const", asMETHOD(T, getLayoutBorder), asCALL_THISCALL);
+    engine->RegisterObjectMethod(className, "const VariantMap& getUserData() const", asMETHOD(T, getUserData), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "uint getNumChildren(bool) const", asMETHOD(T, getNumChildren), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "UIElement@+ getChild(uint) const", asMETHODPR(T, getChild, (unsigned) const, UIElement*), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "UIElement@+ getChild(const string& in, bool) const", asMETHODPR(T, getChild, (const std::string&, bool) const, UIElement*), asCALL_THISCALL);

+ 10 - 26
Engine/UI/FileSelector.cpp

@@ -133,11 +133,8 @@ void FileSelector::setStyle(XMLFile* style)
     mStyle = style;
     ResourceCache* cache = mUI->getResourceCache();
     
-    XMLElement windowElem = UIElement::getStyleElement(style, "Window");
-    if (windowElem)
-        mWindow->setStyle(windowElem, cache);
-    
-    windowElem = UIElement::getStyleElement(style, "FileSelector");
+    mWindow->setStyleAuto(style, cache);
+    XMLElement windowElem = UIElement::getStyleElement(style, "FileSelector");
     if (windowElem)
         mWindow->setStyle(windowElem, cache);
     
@@ -159,31 +156,18 @@ void FileSelector::setStyle(XMLFile* style)
         mButtonLayout->setStyle(layoutElem, cache);
     }
     
-    XMLElement listViewElem = UIElement::getStyleElement(style, "ListView");
-    if (listViewElem)
-        mFileList->setStyle(listViewElem, cache);
+    mFileList->setStyleAuto(style, cache);
+    mFileNameEdit->setStyleAuto(style, cache);
+    mPathEdit->setStyleAuto(style, cache);
     
-    XMLElement lineEditElem = UIElement::getStyleElement(style, "LineEdit");
-    if (lineEditElem)
-    {
-        mFileNameEdit->setStyle(lineEditElem, cache);
-        mPathEdit->setStyle(lineEditElem, cache);
-    }
-    
-    XMLElement dropDownElem = UIElement::getStyleElement(style, "DropDownList");
-    if (dropDownElem)
-        mFilterList->setStyle(dropDownElem, cache);
-    dropDownElem = UIElement::getStyleElement(style, "FileSelectorFilterList");
+    mFilterList->setStyleAuto(style, cache);
+    XMLElement dropDownElem = UIElement::getStyleElement(style, "FileSelectorFilterList");
     if (dropDownElem)
         mFilterList->setStyle(dropDownElem, cache);
     
-    XMLElement buttonElem = UIElement::getStyleElement(style, "Button");
-    if (buttonElem)
-    {
-        mOKButton->setStyle(buttonElem, cache);
-        mCancelButton->setStyle(buttonElem, cache);
-    }
-    buttonElem = UIElement::getStyleElement(style, "FileSelectorButton");
+    mOKButton->setStyleAuto(style, cache);
+    mCancelButton->setStyleAuto(style, cache);
+    XMLElement buttonElem = UIElement::getStyleElement(style, "FileSelectorButton");
     if (buttonElem)
     {
         mOKButton->setStyle(buttonElem, cache);

+ 1 - 1
Engine/UI/Menu.cpp

@@ -53,7 +53,7 @@ void Menu::setStyle(const XMLElement& element, ResourceCache* cache)
     {
         UIElement* root = getRootElement();
         if (root)
-            setPopup(root->getChild(element.getChildElement("popup").getString("name"), true));
+            setPopup(root->getChild(popupElem.getString("name"), true));
     }
     
     if (element.hasChildElement("popupoffset"))

+ 4 - 4
Engine/UI/ScrollBar.cpp

@@ -68,16 +68,16 @@ void ScrollBar::setStyle(const XMLElement& element, ResourceCache* cache)
 {
     UIElement::setStyle(element, cache);
     
-    if (element.hasChildElement("scrollstep"))
-        setScrollStep(element.getChildElement("scrollstep").getFloat("value"));
-    if (element.hasChildElement("stepfactor"))
-        setStepFactor(element.getChildElement("stepfactor").getFloat("value"));
     if (element.hasChildElement("range"))
     {
         XMLElement rangeElem = element.getChildElement("range");
         setRange(rangeElem.getFloat("max"));
         setValue(rangeElem.getFloat("value"));
     }
+    if (element.hasChildElement("scrollstep"))
+        setScrollStep(element.getChildElement("scrollstep").getFloat("value"));
+    if (element.hasChildElement("stepfactor"))
+        setStepFactor(element.getChildElement("stepfactor").getFloat("value"));
     
     XMLElement backButtonElem = element.getChildElement("backbutton");
     if (backButtonElem)

+ 6 - 6
Engine/UI/Text.cpp

@@ -78,6 +78,12 @@ void Text::setStyle(const XMLElement& element, ResourceCache* cache)
     }
     if (element.hasChildElement("rowspacing"))
         setRowSpacing(element.getChildElement("rowspacing").getFloat("value"));
+    if (element.hasChildElement("text"))
+    {
+        std::string text = element.getChildElement("text").getString("value");
+        replaceInPlace(text, "\\n", "\n");
+        setText(text);
+    }
     if (element.hasChildElement("selection"))
     {
         XMLElement selectionElem = element.getChildElement("selection");
@@ -87,12 +93,6 @@ void Text::setStyle(const XMLElement& element, ResourceCache* cache)
         setSelectionColor(element.getChildElement("selectioncolor").getColor("value"));
     if (element.hasChildElement("hovercolor"))
         setHoverColor(element.getChildElement("hovercolor").getColor("value"));
-    if (element.hasChildElement("text"))
-    {
-        std::string text = element.getChildElement("text").getString("value");
-        replaceInPlace(text, "\\n", "\n");
-        setText(text);
-    }
 }
 
 void Text::getBatches(std::vector<UIBatch>& batches, std::vector<UIQuad>& quads, const IntRect& currentScissor)

+ 15 - 15
Engine/UI/UIElement.cpp

@@ -149,14 +149,14 @@ void UIElement::setStyle(const XMLElement& element, ResourceCache* cache)
         
         std::string horiz;
         std::string vert;
-        if (alignElem.hasAttribute("h"))
-            horiz = alignElem.getStringLower("h");
-        if (alignElem.hasAttribute("v"))
-            vert = alignElem.getStringLower("v");
         if (alignElem.hasAttribute("horizontal"))
             horiz = alignElem.getStringLower("horizontal");
         if (alignElem.hasAttribute("vertical"))
             vert = alignElem.getStringLower("vertical");
+        if (alignElem.hasAttribute("h"))
+            horiz = alignElem.getStringLower("h");
+        if (alignElem.hasAttribute("v"))
+            vert = alignElem.getStringLower("v");
         if (!horiz.empty())
             setHorizontalAlignment((HorizontalAlignment)getIndexFromStringList(horiz, horizontalAlignments, 3, 0));
         if (!vert.empty())
@@ -190,6 +190,10 @@ void UIElement::setStyle(const XMLElement& element, ResourceCache* cache)
         setClipChildren(element.getChildElement("clipchildren").getBool("enable"));
     if (element.hasChildElement("enabled"))
         setEnabled(element.getChildElement("enabled").getBool("enable"));
+    if (element.hasChildElement("selected"))
+        setSelected(element.getChildElement("selected").getBool("enable"));
+    if (element.hasChildElement("visible"))
+        setVisible(element.getChildElement("visible").getBool("enable"));
     if (element.hasChildElement("focusmode"))
     {
         std::string focusMode = element.getChildElement("focusmode").getStringLower("value");
@@ -197,17 +201,11 @@ void UIElement::setStyle(const XMLElement& element, ResourceCache* cache)
         if (focusMode == "defocusable")
             setFocusMode(FM_FOCUSABLE_DEFOCUSABLE);
     }
-    if (element.hasChildElement("selected"))
-        setSelected(element.getChildElement("selected").getBool("enable"));
-    if (element.hasChildElement("visible"))
-        setVisible(element.getChildElement("visible").getBool("enable"));
     if (element.hasChildElement("dragdropmode"))
     {
         std::string dragDropMode = element.getChildElement("dragdropmode").getStringLower("value");
         setDragDropMode(getIndexFromStringList(dragDropMode, dragDropModes, 4, 0));
     }
-    if (element.hasChildElement("userdata"))
-        setUserData(element.getChildElement("userdat").getVariantMap());
     if (element.hasChildElement("layout"))
     {
         XMLElement layoutElem = element.getChildElement("layout");
@@ -226,6 +224,8 @@ void UIElement::setStyle(const XMLElement& element, ResourceCache* cache)
         else
             updateLayout();
     }
+    if (element.hasChildElement("userdata"))
+        setUserData(element.getChildElement("userdat").getVariantMap());
 }
 
 void UIElement::update(float timeStep)
@@ -570,11 +570,6 @@ void UIElement::setDragDropMode(unsigned mode)
     mDragDropMode = mode;
 }
 
-void UIElement::setUserData(const VariantMap& userData)
-{
-    mUserData = userData;
-}
-
 void UIElement::setStyleAuto(XMLFile* file, ResourceCache* cache)
 {
     XMLElement element = getStyleElement(file);
@@ -601,6 +596,11 @@ void UIElement::setLayoutBorder(const IntRect& border)
     updateLayout();
 }
 
+void UIElement::setUserData(const VariantMap& userData)
+{
+    mUserData = userData;
+}
+
 void UIElement::updateLayout()
 {
     if ((mLayoutMode == LM_FREE) || (mUpdateLayoutNestingLevel))

+ 10 - 10
Engine/UI/UIElement.h

@@ -209,18 +209,16 @@ public:
     void setClipChildren(bool enable);
     //! Set whether reacts to input
     void setEnabled(bool enable);
-    //! Set focus mode
-    void setFocusMode(FocusMode mode);
     //! Set whether is focused. Usually called by UI
     void setFocus(bool enable);
     //! Set selected mode. Actual meaning is element dependent, for example constant hover or pressed effect
     void setSelected(bool enable);
     //! Set whether is visible
     void setVisible(bool enable);
+    //! Set focus mode
+    void setFocusMode(FocusMode mode);
     //! Set drag and drop flags
     void setDragDropMode(unsigned mode);
-    //! Set userdata
-    void setUserData(const VariantMap& userData);
     //! Set style from an XML file. Find the style element automatically
     void setStyleAuto(XMLFile* file, ResourceCache* cache);
     //! Set layout
@@ -229,6 +227,8 @@ public:
     void setLayoutSpacing(int spacing);
     //! Set layout border
     void setLayoutBorder(const IntRect& border);
+    //! Set userdata
+    void setUserData(const VariantMap& userData);
     //! Manually update layout. Should not be necessary in most cases, but is provided for completeness
     void updateLayout();
     //! Disable layout update momentarily, usually for performance reasons when adding several child elements
@@ -292,8 +292,6 @@ public:
     bool getClipChildren() const { return mClipChildren; }
     //! Return whether reacts to input
     bool isEnabled() const { return mEnabled; }
-    //! Return focus mode
-    FocusMode getFocusMode() const { return mFocusMode; }
     //! Return whether has focus
     bool hasFocus() const { return mFocus; }
     //! Return whether is selected. Actual meaning is element dependent
@@ -304,16 +302,18 @@ public:
     bool isHovering() const { return mHovering; }
     //! Return whether has different color in at least one corner
     bool hasColorGradient() const { return mHasColorGradient; }
+    //! Return focus mode
+    FocusMode getFocusMode() const { return mFocusMode; }
     //! Return drag and drop flags
     unsigned getDragDropMode() const { return mDragDropMode; }
-    //! Return userdata
-    VariantMap& getUserData() { return mUserData; }
     //! Return layout mode
     LayoutMode getLayoutMode() const { return mLayoutMode; }
     //! Return layout spacing
     int getLayoutSpacing() const { return mLayoutSpacing; }
     //! Return layout border
     const IntRect& getLayoutBorder() const { return mLayoutBorder; }
+    //! Return userdata
+    VariantMap& getUserData() { return mUserData; }
     //! Return number of child elements
     unsigned getNumChildren(bool recursive = false) const;
     //! Return child element by index
@@ -377,8 +377,6 @@ protected:
     bool mClipChildren;
     //! Reacts to input flag
     bool mEnabled;
-    //! Focus mode
-    FocusMode mFocusMode;
     //! Focused flag
     bool mFocus;
     //! Selected flag
@@ -387,6 +385,8 @@ protected:
     bool mVisible;
     //! Hovering flag
     bool mHovering;
+    //! Focus mode
+    FocusMode mFocusMode;
     //! Drag and drop flags
     unsigned mDragDropMode;
     //! Userdata