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