]> git.saurik.com Git - wxWidgets.git/blob - utils/wxPython/src/controls.i
Moved wxPy_ConvertList function from oglhelpers to helpers
[wxWidgets.git] / utils / wxPython / src / controls.i
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: controls.i
3 // Purpose: Control (widget) classes for wxPython
4 //
5 // Author: Robin Dunn
6 //
7 // Created: 6/10/98
8 // RCS-ID: $Id$
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
12
13 %module controls
14
15 %{
16 #include "helpers.h"
17 #include <wx/slider.h>
18 #include <wx/spinbutt.h>
19 #include <wx/dynarray.h>
20 #include <wx/statline.h>
21
22 #ifdef __WXMSW__
23 #if wxUSE_OWNER_DRAWN
24 #include <wx/checklst.h>
25 #endif
26 #endif
27
28 #ifdef __WXGTK__
29 #include <wx/checklst.h>
30 #endif
31
32 %}
33
34 //----------------------------------------------------------------------
35
36 %include typemaps.i
37 %include my_typemaps.i
38
39 // Import some definitions of other classes, etc.
40 %import _defs.i
41 %import misc.i
42 %import windows.i
43 %import gdi.i
44 %import events.i
45
46 %pragma(python) code = "import wx"
47
48 //----------------------------------------------------------------------
49
50 %{
51 wxValidator wxPyDefaultValidator; // Non-const default because of SWIG
52 %}
53
54 //----------------------------------------------------------------------
55
56 class wxControl : public wxWindow {
57 public:
58 #ifdef __WXMSW__
59 void Command(wxCommandEvent& event);
60 #endif
61 wxString GetLabel();
62 void SetLabel(const wxString& label);
63 };
64
65 //----------------------------------------------------------------------
66
67 class wxButton : public wxControl {
68 public:
69 wxButton(wxWindow* parent, wxWindowID id, const wxString& label,
70 const wxPoint& pos = wxPyDefaultPosition,
71 const wxSize& size = wxPyDefaultSize,
72 long style = 0,
73 const wxValidator& validator = wxPyDefaultValidator,
74 char* name = "button");
75
76 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
77
78 void SetDefault();
79 };
80
81 //----------------------------------------------------------------------
82
83 class wxBitmapButton : public wxButton {
84 public:
85 wxBitmapButton(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap,
86 const wxPoint& pos = wxPyDefaultPosition,
87 const wxSize& size = wxPyDefaultSize,
88 long style = wxBU_AUTODRAW,
89 const wxValidator& validator = wxPyDefaultValidator,
90 char* name = "button");
91
92 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
93
94 wxBitmap& GetBitmapLabel();
95 wxBitmap& GetBitmapDisabled();
96 wxBitmap& GetBitmapFocus();
97 wxBitmap& GetBitmapSelected();
98 void SetBitmapDisabled(const wxBitmap& bitmap);
99 void SetBitmapFocus(const wxBitmap& bitmap);
100 void SetBitmapSelected(const wxBitmap& bitmap);
101 void SetBitmapLabel(const wxBitmap& bitmap);
102
103 };
104
105 //----------------------------------------------------------------------
106
107 class wxCheckBox : public wxControl {
108 public:
109 wxCheckBox(wxWindow* parent, wxWindowID id, const wxString& label,
110 const wxPoint& pos = wxPyDefaultPosition,
111 const wxSize& size = wxPyDefaultSize,
112 long style = 0,
113 const wxValidator& val = wxPyDefaultValidator,
114 char* name = "checkBox");
115
116 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
117
118 bool GetValue();
119 void SetValue(const bool state);
120 };
121
122 //----------------------------------------------------------------------
123
124 class wxChoice : public wxControl {
125 public:
126 wxChoice(wxWindow *parent, wxWindowID id,
127 const wxPoint& pos = wxPyDefaultPosition,
128 const wxSize& size = wxPyDefaultSize,
129 int LCOUNT=0, wxString* LIST=NULL,
130 long style = 0,
131 const wxValidator& validator = wxPyDefaultValidator,
132 char* name = "choice");
133
134 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
135
136 void Append(const wxString& item);
137 void Clear();
138 int FindString(const wxString& string);
139 int GetColumns();
140 int GetSelection();
141 wxString GetString(const int n);
142 wxString GetStringSelection();
143 int Number();
144 void SetColumns(const int n = 1);
145 void SetSelection(const int n);
146 void SetStringSelection(const wxString& string);
147 };
148
149 //----------------------------------------------------------------------
150
151 class wxComboBox : public wxChoice {
152 public:
153 wxComboBox(wxWindow* parent, wxWindowID id, char* value = "",
154 const wxPoint& pos = wxPyDefaultPosition,
155 const wxSize& size = wxPyDefaultSize,
156 int LCOUNT=0, wxString* LIST=NULL,
157 long style = 0,
158 const wxValidator& validator = wxPyDefaultValidator,
159 char* name = "comboBox");
160
161 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
162
163 void Append(const wxString& item);
164 // TODO: void Append(const wxString& item, char* clientData);
165 void Clear();
166 void Copy();
167 void Cut();
168 void Delete(int n);
169 // NotMember??: void Deselect(int n);
170 int FindString(const wxString& string);
171 // TODO: char* GetClientData(const int n);
172 long GetInsertionPoint();
173 long GetLastPosition();
174 int GetSelection();
175 wxString GetString(int n);
176 wxString GetStringSelection();
177 wxString GetValue();
178 int Number();
179 void Paste();
180 void Replace(long from, long to, const wxString& text);
181 void Remove(long from, long to);
182 // TODO: void SetClientData(const int n, char* data);
183 void SetInsertionPoint(long pos);
184 void SetInsertionPointEnd();
185 void SetSelection(int n);
186 %name(SetMark)void SetSelection(long from, long to);
187 void SetValue(const wxString& text);
188 };
189
190 //----------------------------------------------------------------------
191
192 class wxGauge : public wxControl {
193 public:
194 wxGauge(wxWindow* parent, wxWindowID id, int range,
195 const wxPoint& pos = wxPyDefaultPosition,
196 const wxSize& size = wxPyDefaultSize,
197 long style = wxGA_HORIZONTAL,
198 const wxValidator& validator = wxPyDefaultValidator,
199 char* name = "gauge");
200
201 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
202
203 int GetBezelFace();
204 int GetRange();
205 int GetShadowWidth();
206 int GetValue();
207 void SetBezelFace(int width);
208 void SetRange(int range);
209 void SetShadowWidth(int width);
210 void SetValue(int pos);
211 };
212
213 //----------------------------------------------------------------------
214
215 class wxStaticBox : public wxControl {
216 public:
217 wxStaticBox(wxWindow* parent, wxWindowID id, const wxString& label,
218 const wxPoint& pos = wxPyDefaultPosition,
219 const wxSize& size = wxPyDefaultSize,
220 long style = 0,
221 char* name = "staticBox");
222 };
223
224
225 //----------------------------------------------------------------------
226
227
228 class wxStaticLine : public wxControl {
229 public:
230 wxStaticLine( wxWindow *parent, wxWindowID id,
231 const wxPoint &pos = wxPyDefaultPosition,
232 const wxSize &size = wxPyDefaultSize,
233 long style = wxLI_HORIZONTAL,
234 const char* name = "staticLine" );
235 };
236
237
238 //----------------------------------------------------------------------
239
240 class wxStaticText : public wxControl {
241 public:
242 wxStaticText(wxWindow* parent, wxWindowID id, const wxString& label,
243 const wxPoint& pos = wxPyDefaultPosition,
244 const wxSize& size = wxPyDefaultSize,
245 long style = 0,
246 char* name = "staticText");
247
248 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
249
250 wxString GetLabel();
251 void SetLabel(const wxString& label);
252 };
253
254 //----------------------------------------------------------------------
255
256 class wxListBox : public wxControl {
257 public:
258 wxListBox(wxWindow* parent, wxWindowID id,
259 const wxPoint& pos = wxPyDefaultPosition,
260 const wxSize& size = wxPyDefaultSize,
261 int LCOUNT, wxString* LIST = NULL,
262 long style = 0,
263 const wxValidator& validator = wxPyDefaultValidator,
264 char* name = "listBox");
265
266 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
267
268 void Append(const wxString& item);
269 // TODO: void Append(const wxString& item, char* clientData);
270 void Clear();
271 void Delete(int n);
272 void Deselect(int n);
273 int FindString(const wxString& string);
274 // TODO: char* GetClientData(const int n);
275 int GetSelection();
276
277 // int GetSelections(int **selections);
278 %addmethods {
279 PyObject* GetSelections() {
280 wxArrayInt lst;
281 self->GetSelections(lst);
282 PyObject *tup = PyTuple_New(lst.GetCount());
283 for(int i=0; i<lst.GetCount(); i++) {
284 PyTuple_SetItem(tup, i, PyInt_FromLong(lst[i]));
285 }
286 return tup;
287 }
288 }
289
290 wxString GetString(int n);
291 wxString GetStringSelection();
292 int Number();
293 bool Selected(const int n);
294 void Set(int LCOUNT, wxString* LIST);
295 // TODO: void SetClientData(const int n, char* data);
296 void SetFirstItem(int n);
297 %name(SetFirstItemStr)void SetFirstItem(const wxString& string);
298 void SetSelection(int n, bool select = TRUE);
299 void SetString(int n, const wxString& string);
300 void SetStringSelection(const wxString& string, bool select = TRUE);
301 };
302
303
304 //----------------------------------------------------------------------
305
306 class wxCheckListBox : public wxListBox {
307 public:
308 wxCheckListBox(wxWindow *parent, wxWindowID id,
309 const wxPoint& pos = wxPyDefaultPosition,
310 const wxSize& size = wxPyDefaultSize,
311 int LCOUNT = 0,
312 wxString* LIST = NULL,
313 long style = 0,
314 const wxValidator& validator = wxPyDefaultValidator,
315 char* name = "listBox");
316
317 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
318
319 bool IsChecked(int uiIndex);
320 void Check(int uiIndex, bool bCheck = TRUE);
321
322 int GetItemHeight();
323 };
324
325 //----------------------------------------------------------------------
326
327 class wxTextCtrl : public wxControl {
328 public:
329 wxTextCtrl(wxWindow* parent, wxWindowID id, char* value = "",
330 const wxPoint& pos = wxPyDefaultPosition,
331 const wxSize& size = wxPyDefaultSize,
332 long style = 0,
333 const wxValidator& validator = wxPyDefaultValidator,
334 char* name = "text");
335
336 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
337
338 void Clear();
339 void Copy();
340 void Cut();
341 void DiscardEdits();
342 long GetInsertionPoint();
343 long GetLastPosition();
344 int GetLineLength(long lineNo);
345 wxString GetLineText(long lineNo);
346 int GetNumberOfLines();
347 wxString GetValue();
348 bool IsModified();
349 bool LoadFile(const wxString& filename);
350 void Paste();
351 void PositionToXY(long pos, long *OUTPUT, long *OUTPUT);
352 void Remove(long from, long to);
353 void Replace(long from, long to, const wxString& value);
354 bool SaveFile(const wxString& filename);
355 void SetEditable(bool editable);
356 void SetInsertionPoint(long pos);
357 void SetInsertionPointEnd();
358 void SetSelection(long from, long to);
359 void SetValue(const wxString& value);
360 void ShowPosition(long pos);
361 void WriteText(const wxString& text);
362 void AppendText(const wxString& text);
363 long XYToPosition(long x, long y);
364
365 bool CanCopy();
366 bool CanCut();
367 bool CanPaste();
368 bool CanRedo();
369 bool CanUndo();
370 void GetSelection(long* OUTPUT, long* OUTPUT);
371 bool IsEditable();
372 };
373
374 //----------------------------------------------------------------------
375
376 class wxScrollBar : public wxControl {
377 public:
378 wxScrollBar(wxWindow* parent, wxWindowID id = -1,
379 const wxPoint& pos = wxPyDefaultPosition,
380 const wxSize& size = wxPyDefaultSize,
381 long style = wxSB_HORIZONTAL,
382 const wxValidator& validator = wxPyDefaultValidator,
383 char* name = "scrollBar");
384
385 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
386
387 int GetRange();
388 int GetPageSize();
389 int GetThumbPosition();
390 int GetThumbSize();
391 void SetThumbPosition(int viewStart);
392 void SetScrollbar(int position, int thumbSize,
393 int range, int pageSize,
394 bool refresh = TRUE);
395 };
396
397 //----------------------------------------------------------------------
398
399 class wxSpinButton : public wxControl {
400 public:
401 wxSpinButton(wxWindow* parent, wxWindowID id = -1,
402 const wxPoint& pos = wxPyDefaultPosition,
403 const wxSize& size = wxPyDefaultSize,
404 long style = wxSP_HORIZONTAL,
405 char* name = "spinButton");
406
407 int GetMax();
408 int GetMin();
409 int GetValue();
410 void SetRange(int min, int max);
411 void SetValue(int value);
412 };
413
414 //----------------------------------------------------------------------
415
416 class wxStaticBitmap : public wxControl {
417 public:
418 wxStaticBitmap(wxWindow* parent, wxWindowID id,
419 const wxBitmap& bitmap,
420 const wxPoint& pos = wxPyDefaultPosition,
421 const wxSize& size = wxPyDefaultSize,
422 long style = 0,
423 char* name = "staticBitmap");
424
425 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
426
427 const wxBitmap& GetBitmap();
428 void SetBitmap(const wxBitmap& bitmap);
429 void SetIcon(const wxIcon& icon);
430 };
431
432 //----------------------------------------------------------------------
433
434 class wxRadioBox : public wxControl {
435 public:
436 wxRadioBox(wxWindow* parent, wxWindowID id,
437 const wxString& label,
438 const wxPoint& point = wxPyDefaultPosition,
439 const wxSize& size = wxPyDefaultSize,
440 int LCOUNT = 0, wxString* LIST = NULL,
441 int majorDimension = 0,
442 long style = wxRA_HORIZONTAL,
443 const wxValidator& validator = wxPyDefaultValidator,
444 char* name = "radioBox");
445
446 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
447
448 void Enable(bool enable);
449 %name(EnableItem)void Enable(int n, bool enable);
450 int FindString(const wxString& string);
451
452 //*** wxString GetLabel();
453 //*** void SetLabel(const wxString& label);
454
455 %name(GetItemLabel)wxString GetLabel(int n);
456 int GetSelection();
457 wxString GetString(int n);
458 wxString GetStringSelection();
459 int Number();
460 %name(SetItemLabel)void SetLabel(int n, const wxString& label);
461 void SetSelection(int n);
462 void SetStringSelection(const wxString& string);
463 void Show(bool show);
464 %name(ShowItem)void Show(int item, bool show);
465 };
466
467 //----------------------------------------------------------------------
468
469 class wxRadioButton : public wxControl {
470 public:
471 wxRadioButton(wxWindow* parent, wxWindowID id,
472 const wxString& label,
473 const wxPoint& pos = wxPyDefaultPosition,
474 const wxSize& size = wxPyDefaultSize,
475 long style = 0,
476 const wxValidator& validator = wxPyDefaultValidator,
477 char* name = "radioButton");
478
479 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
480
481 bool GetValue();
482 void SetValue(bool value);
483 };
484
485 //----------------------------------------------------------------------
486
487 class wxSlider : public wxControl {
488 public:
489 wxSlider(wxWindow* parent, wxWindowID id,
490 int value, int minValue, int maxValue,
491 const wxPoint& point = wxPyDefaultPosition,
492 const wxSize& size = wxPyDefaultSize,
493 long style = wxSL_HORIZONTAL,
494 const wxValidator& validator = wxPyDefaultValidator,
495 char* name = "slider");
496
497 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
498
499 void ClearSel();
500 void ClearTicks();
501 int GetLineSize();
502 int GetMax();
503 int GetMin();
504 int GetPageSize();
505 int GetSelEnd();
506 int GetSelStart();
507 int GetThumbLength();
508 int GetTickFreq();
509 int GetValue();
510 void SetRange(int minValue, int maxValue);
511 void SetTickFreq(int n, int pos);
512 void SetLineSize(int lineSize);
513 void SetPageSize(int pageSize);
514 void SetSelection(int startPos, int endPos);
515 void SetThumbLength(int len);
516 void SetTick(int tickPos);
517 void SetValue(int value);
518 };
519
520
521 //----------------------------------------------------------------------
522