+#include "wx/sizer.h"
+
+
+class wxUnknownControlContainer : public wxPanel
+{
+public:
+ wxUnknownControlContainer(wxWindow *parent,
+ const wxString& controlName,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize)
+ : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL | wxNO_BORDER,
+ controlName + wxT("_container")),
+ m_controlName(controlName), m_controlAdded(FALSE)
+ {
+ m_bg = GetBackgroundColour();
+ SetBackgroundColour(wxColour(255, 0, 255));
+ }
+
+ virtual void AddChild(wxWindowBase *child);
+
+protected:
+ wxString m_controlName;
+ bool m_controlAdded;
+ wxColour m_bg;
+};
+
+void wxUnknownControlContainer::AddChild(wxWindowBase *child)
+{
+ wxASSERT_MSG( !m_controlAdded, wxT("Couldn't add two unknown controls to the same container!") )
+
+ wxPanel::AddChild(child);
+
+ SetBackgroundColour(m_bg);
+ child->SetName(m_controlName);
+ m_controlAdded = TRUE;
+
+ wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
+ sizer->Add((wxWindow*)child, 1, wxEXPAND);
+ SetSizer(sizer);
+ SetAutoLayout(TRUE);
+ Layout();
+}
+