]> git.saurik.com Git - wxWidgets.git/blob - wxPython/src/_control.i
Reworked how stock objects are initialized. They now have an
[wxWidgets.git] / wxPython / src / _control.i
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: _control.i
3 // Purpose: SWIG interface defs for wxControl and other base classes
4 //
5 // Author: Robin Dunn
6 //
7 // Created: 10-June-1998
8 // RCS-ID: $Id$
9 // Copyright: (c) 2003 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
12
13 // Not a %module
14
15
16 //---------------------------------------------------------------------------
17
18 %{
19 DECLARE_DEF_STRING(ControlNameStr);
20 %}
21
22 //---------------------------------------------------------------------------
23 %newgroup;
24
25
26 // This is the base class for a control or 'widget'.
27 //
28 // A control is generally a small window which processes user input and/or
29 // displays one or more item of data.
30 class wxControl : public wxWindow
31 {
32 public:
33 %addtofunc wxControl "self._setOORInfo(self)"
34 %addtofunc wxControl() ""
35
36 wxControl(wxWindow *parent,
37 wxWindowID id,
38 const wxPoint& pos=wxDefaultPosition,
39 const wxSize& size=wxDefaultSize,
40 long style=0,
41 const wxValidator& validator=wxDefaultValidator,
42 const wxString& name=wxPyControlNameStr);
43
44 %name(PreControl)wxControl();
45
46 bool Create(wxWindow *parent,
47 wxWindowID id,
48 const wxPoint& pos=wxDefaultPosition,
49 const wxSize& size=wxDefaultSize,
50 long style=0,
51 const wxValidator& validator=wxDefaultValidator,
52 const wxString& name=wxPyControlNameStr);
53
54
55 // Simulates the effect of the user issuing a command to the item. See
56 // wxCommandEvent.
57 void Command(wxCommandEvent& event);
58
59 // Return a control's text.
60 wxString GetLabel();
61
62 // Sets the item's text.
63 void SetLabel(const wxString& label);
64
65 };
66
67
68 //---------------------------------------------------------------------------
69 %newgroup;
70
71
72 // wxItemContainer defines an interface which is implemented by all controls
73 // which have string subitems each of which may be selected.
74 //
75 // Examples: wxListBox, wxCheckListBox, wxChoice and wxComboBox (which
76 // implements an extended interface deriving from this one)
77 class wxItemContainer
78 {
79 public:
80 // wxItemContainer() { m_clientDataItemsType = wxClientData_None; } ** It's an ABC
81
82
83 // int Append(const wxString& item)
84 // int Append(const wxString& item, void *clientData)
85 // int Append(const wxString& item, wxClientData *clientData)
86 %extend {
87 // Adds the item to the control, associating the given data with the
88 // item if not None.
89 int Append(const wxString& item, PyObject* clientData=NULL) {
90 if (clientData) {
91 wxPyClientData* data = new wxPyClientData(clientData);
92 return self->Append(item, data);
93 } else
94 return self->Append(item);
95 }
96 }
97
98 // append several items at once to the control
99 %name(AppendItems) void Append(const wxArrayString& strings);
100
101 // int Insert(const wxString& item, int pos)
102 // int Insert(const wxString& item, int pos, void *clientData);
103 // int Insert(const wxString& item, int pos, wxClientData *clientData);
104 %extend {
105 int Insert(const wxString& item, int pos, PyObject* clientData=NULL) {
106 if (clientData) {
107 wxPyClientData* data = new wxPyClientData(clientData);
108 return self->Insert(item, pos, data);
109 } else
110 return self->Insert(item, pos);
111 }
112 }
113
114
115 // deleting items
116 virtual void Clear();
117 virtual void Delete(int n);
118
119
120 // accessing strings
121 virtual int GetCount() const;
122 bool IsEmpty() const;
123 virtual wxString GetString(int n) const;
124 wxArrayString GetStrings() const;
125 virtual void SetString(int n, const wxString& s);
126 virtual int FindString(const wxString& s) const;
127
128
129 // selection
130 virtual void Select(int n);
131 virtual int GetSelection() const;
132
133 wxString GetStringSelection() const;
134
135
136 // client data stuff
137 %extend {
138 // Returns the client data associated with the given item, (if any.)
139 PyObject* GetClientData(int n) {
140 wxPyClientData* data = (wxPyClientData*)self->GetClientObject(n);
141 if (data) {
142 Py_INCREF(data->m_obj);
143 return data->m_obj;
144 } else {
145 Py_INCREF(Py_None);
146 return Py_None;
147 }
148 }
149
150 // Associate the given client data with the item at position n.
151 void SetClientData(int n, PyObject* clientData) {
152 wxPyClientData* data = new wxPyClientData(clientData);
153 self->SetClientObject(n, data);
154 }
155 }
156
157 };
158
159
160 //---------------------------------------------------------------------------
161 %newgroup;
162
163 class wxControlWithItems : public wxControl, public wxItemContainer
164 {
165 public:
166 };
167
168 //---------------------------------------------------------------------------
169