Bläddra i källkod

Cleans up removal/deletion logic

Areloch 1 år sedan
förälder
incheckning
192862ba6d

+ 11 - 5
Engine/source/gui/controls/guiPopUpCtrlEx.cpp

@@ -704,11 +704,9 @@ bool GuiPopUpMenuCtrlEx::onWake()
 
 
 void GuiPopUpMenuCtrlEx::onRemove()
 void GuiPopUpMenuCtrlEx::onRemove()
 {
 {
-   mBackground = nullptr;
-   mSearchEdit = nullptr;
-   mTl = nullptr;
-   mSc = nullptr;
-   mBackground = nullptr;
+   removeChildren();
+
+   Parent::onRemove();
 }
 }
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 bool GuiPopUpMenuCtrlEx::onAdd()
 bool GuiPopUpMenuCtrlEx::onAdd()
@@ -1637,6 +1635,14 @@ void GuiPopUpMenuCtrlEx::addChildren()
    mBackground->addObject(mSearchEdit);
    mBackground->addObject(mSearchEdit);
 }
 }
 
 
+void GuiPopUpMenuCtrlEx::removeChildren()
+{
+   mTl->deleteObject();
+   mSc->deleteObject();
+   mSearchEdit->deleteObject();
+   mBackground->deleteObject();
+}
+
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 void GuiPopUpMenuCtrlEx::repositionPopup()
 void GuiPopUpMenuCtrlEx::repositionPopup()
 {
 {

+ 1 - 0
Engine/source/gui/controls/guiPopUpCtrlEx.h

@@ -140,6 +140,7 @@ class GuiPopUpMenuCtrlEx : public GuiTextCtrl
    GuiTextEditCtrl* mSearchEdit; //  Added
    GuiTextEditCtrl* mSearchEdit; //  Added
 
 
    virtual void addChildren();
    virtual void addChildren();
+   virtual void removeChildren();
    virtual void repositionPopup();
    virtual void repositionPopup();
 
 
    static bool _setBitmaps(void* obj, const char* index, const char* data);
    static bool _setBitmaps(void* obj, const char* index, const char* data);