X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/854e189f90dac9ba5e0239bca79aed64e8d6f46c..924fe7dabe68c324b6e5005bbe1c4119447867f3:/src/xrc/xh_unkwn.cpp?ds=sidebyside diff --git a/src/xrc/xh_unkwn.cpp b/src/xrc/xh_unkwn.cpp index f093482499..84c0158ff1 100644 --- a/src/xrc/xh_unkwn.cpp +++ b/src/xrc/xh_unkwn.cpp @@ -31,10 +31,13 @@ class wxUnknownControlContainer : public wxPanel public: wxUnknownControlContainer(wxWindow *parent, const wxString& controlName, - wxWindowID id = -1, + wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize) - : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL | wxNO_BORDER, + const wxSize& size = wxDefaultSize, + long style = 0) + // Always add the wxTAB_TRAVERSAL and wxNO_BORDER styles to what comes + // from the XRC if anything. + : wxPanel(parent, id, pos, size, style | wxTAB_TRAVERSAL | wxNO_BORDER, controlName + wxT("_container")), m_controlName(controlName), m_controlAdded(false) { @@ -65,7 +68,6 @@ void wxUnknownControlContainer::AddChild(wxWindowBase *child) wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add((wxWindow*)child, 1, wxEXPAND); SetSizer(sizer); - SetAutoLayout(true); Layout(); } @@ -82,14 +84,19 @@ IMPLEMENT_DYNAMIC_CLASS(wxUnknownWidgetXmlHandler, wxXmlResourceHandler) wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler() : wxXmlResourceHandler() { + XRC_ADD_STYLE(wxNO_FULL_REPAINT_ON_RESIZE); } wxObject *wxUnknownWidgetXmlHandler::DoCreateResource() { + wxASSERT_MSG( m_instance == NULL, + _T("'unknown' controls can't be subclassed, use wxXmlResource::AttachUnknownControl") ); + wxPanel *panel = new wxUnknownControlContainer(m_parentAsWindow, - GetName(), -1, - GetPosition(), GetSize()); + GetName(), wxID_ANY, + GetPosition(), GetSize(), + GetStyle(wxT("style"))); SetupWindow(panel); return panel; }