X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/afe06a5457cb38b1243d9cb2160fe1e0e28f6478..2e2b69eececf83c7097435e1f4482cc153e8d82c:/src/xrc/xh_unkwn.cpp diff --git a/src/xrc/xh_unkwn.cpp b/src/xrc/xh_unkwn.cpp index 388fb040c3..f9b5648036 100644 --- a/src/xrc/xh_unkwn.cpp +++ b/src/xrc/xh_unkwn.cpp @@ -19,6 +19,8 @@ #pragma hdrstop #endif +#if wxUSE_XRC + #include "wx/xrc/xh_unkwn.h" #include "wx/window.h" #include "wx/log.h" @@ -31,11 +33,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, - long style = wxTAB_TRAVERSAL | wxNO_BORDER) - : wxPanel(parent, id, pos, size, style, + 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) { @@ -66,7 +70,6 @@ void wxUnknownControlContainer::AddChild(wxWindowBase *child) wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add((wxWindow*)child, 1, wxEXPAND); SetSizer(sizer); - SetAutoLayout(true); Layout(); } @@ -88,12 +91,14 @@ wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler() 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, + GetName(), wxID_ANY, GetPosition(), GetSize(), - GetStyle(wxT("style"), - wxTAB_TRAVERSAL | wxNO_BORDER)); + GetStyle(wxT("style"))); SetupWindow(panel); return panel; } @@ -103,3 +108,4 @@ bool wxUnknownWidgetXmlHandler::CanHandle(wxXmlNode *node) return IsOfClass(node, wxT("unknown")); } +#endif // wxUSE_XRC