]> git.saurik.com Git - wxWidgets.git/blame - contrib/src/xml/xh_unkwn.cpp
clipboard implementation generalized
[wxWidgets.git] / contrib / src / xml / xh_unkwn.cpp
CommitLineData
1c8ac192
VS
1/////////////////////////////////////////////////////////////////////////////
2// Name: xh_unkwn.cpp
3// Purpose: XML resource for unknown widget
4// Author: Vaclav Slavik
5// Created: 2000/09/09
6// RCS-ID: $Id$
7// Copyright: (c) 2000 Vaclav Slavik
8// Licence: wxWindows licence
9/////////////////////////////////////////////////////////////////////////////
10
11#ifdef __GNUG__
12#pragma implementation "xh_unkwn.h"
13#endif
14
15// For compilers that support precompilation, includes "wx.h".
16#include "wx/wxprec.h"
17
18#ifdef __BORLANDC__
19 #pragma hdrstop
20#endif
21
22#include "wx/xml/xh_unkwn.h"
23#include "wx/window.h"
24#include "wx/log.h"
e6c3f404
VS
25#include "wx/sizer.h"
26
27
28class wxUnknownControlContainer : public wxPanel
29{
30public:
31 wxUnknownControlContainer(wxWindow *parent,
32 const wxString& controlName,
33 wxWindowID id = -1,
34 const wxPoint& pos = wxDefaultPosition,
35 const wxSize& size = wxDefaultSize)
36 : wxPanel(parent, id, pos, size, wxTAB_TRAVERSAL | wxNO_BORDER,
37 controlName + wxT("_container")),
38 m_controlName(controlName), m_controlAdded(FALSE)
39 {
40 m_bg = GetBackgroundColour();
41 SetBackgroundColour(wxColour(255, 0, 255));
42 }
43
44 virtual void AddChild(wxWindowBase *child);
45
46protected:
47 wxString m_controlName;
48 bool m_controlAdded;
49 wxColour m_bg;
50};
51
52void wxUnknownControlContainer::AddChild(wxWindowBase *child)
53{
54 wxASSERT_MSG( !m_controlAdded, wxT("Couldn't add two unknown controls to the same container!") )
55
56 wxPanel::AddChild(child);
57
58 SetBackgroundColour(m_bg);
59 child->SetName(m_controlName);
1a3cb2ca 60 child->SetId(XMLID(m_controlName));
e6c3f404
VS
61 m_controlAdded = TRUE;
62
63 wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
64 sizer->Add((wxWindow*)child, 1, wxEXPAND);
65 SetSizer(sizer);
66 SetAutoLayout(TRUE);
67 Layout();
68}
69
1c8ac192
VS
70
71
72wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler()
73: wxXmlResourceHandler()
74{
1c8ac192
VS
75}
76
77wxObject *wxUnknownWidgetXmlHandler::DoCreateResource()
78{
e6c3f404
VS
79 wxPanel *panel =
80 new wxUnknownControlContainer(m_parentAsWindow,
1a3cb2ca 81 GetName(), -1,
e6c3f404
VS
82 GetPosition(), GetSize());
83 SetupWindow(panel);
84 return panel;
1c8ac192
VS
85}
86
87bool wxUnknownWidgetXmlHandler::CanHandle(wxXmlNode *node)
88{
a559d708 89 return IsOfClass(node, wxT("unknown"));
1c8ac192
VS
90}
91