From: Václav Slavík Date: Mon, 31 Mar 2003 22:02:15 +0000 (+0000) Subject: XRC's unknown widget container handles removal of the widget now X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/5c451707f33826347b2cebdb6640b2ef4ce8398c XRC's unknown widget container handles removal of the widget now git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19909 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/contrib/src/xrc/xh_unkwn.cpp b/contrib/src/xrc/xh_unkwn.cpp index 99a514c18f..4d6e65263d 100644 --- a/contrib/src/xrc/xh_unkwn.cpp +++ b/contrib/src/xrc/xh_unkwn.cpp @@ -36,13 +36,14 @@ public: const wxSize& size = wxDefaultSize) : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL | wxNO_BORDER, controlName + wxT("_container")), - m_controlName(controlName), m_controlAdded(FALSE) + m_controlName(controlName), m_controlAdded(false) { m_bg = GetBackgroundColour(); SetBackgroundColour(wxColour(255, 0, 255)); } virtual void AddChild(wxWindowBase *child); + virtual void RemoveChild(wxWindowBase *child); protected: wxString m_controlName; @@ -59,15 +60,21 @@ void wxUnknownControlContainer::AddChild(wxWindowBase *child) SetBackgroundColour(m_bg); child->SetName(m_controlName); child->SetId(wxXmlResource::GetXRCID(m_controlName)); - m_controlAdded = TRUE; + m_controlAdded = true; wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add((wxWindow*)child, 1, wxEXPAND); SetSizer(sizer); - SetAutoLayout(TRUE); + SetAutoLayout(true); Layout(); } +void wxUnknownControlContainer::RemoveChild(wxWindowBase *child) +{ + wxPanel::RemoveChild(child); + m_controlAdded = false; + GetSizer()->Detach((wxWindow*)child); +} wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler() diff --git a/src/xrc/xh_unkwn.cpp b/src/xrc/xh_unkwn.cpp index 99a514c18f..4d6e65263d 100644 --- a/src/xrc/xh_unkwn.cpp +++ b/src/xrc/xh_unkwn.cpp @@ -36,13 +36,14 @@ public: const wxSize& size = wxDefaultSize) : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL | wxNO_BORDER, controlName + wxT("_container")), - m_controlName(controlName), m_controlAdded(FALSE) + m_controlName(controlName), m_controlAdded(false) { m_bg = GetBackgroundColour(); SetBackgroundColour(wxColour(255, 0, 255)); } virtual void AddChild(wxWindowBase *child); + virtual void RemoveChild(wxWindowBase *child); protected: wxString m_controlName; @@ -59,15 +60,21 @@ void wxUnknownControlContainer::AddChild(wxWindowBase *child) SetBackgroundColour(m_bg); child->SetName(m_controlName); child->SetId(wxXmlResource::GetXRCID(m_controlName)); - m_controlAdded = TRUE; + m_controlAdded = true; wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add((wxWindow*)child, 1, wxEXPAND); SetSizer(sizer); - SetAutoLayout(TRUE); + SetAutoLayout(true); Layout(); } +void wxUnknownControlContainer::RemoveChild(wxWindowBase *child) +{ + wxPanel::RemoveChild(child); + m_controlAdded = false; + GetSizer()->Detach((wxWindow*)child); +} wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler()