+#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();
+}
+