1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Control (widget) classes for wxPython
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
17 #include <wx/slider.h>
18 #include <wx/spinbutt.h>
19 #include <wx/dynarray.h>
20 #include <wx/statline.h>
24 #include <wx/checklst.h>
29 #include <wx/checklst.h>
34 //----------------------------------------------------------------------
37 %include my_typemaps.i
39 // Import some definitions of other classes, etc.
46 %pragma(python) code = "import wx"
48 //----------------------------------------------------------------------
51 wxValidator wxPyDefaultValidator; // Non-const default because of SWIG
55 wxValidator wxDefaultValidator;
58 //----------------------------------------------------------------------
60 class wxControl : public wxWindow {
63 void Command(wxCommandEvent& event);
66 void SetLabel(const wxString& label);
69 //----------------------------------------------------------------------
71 class wxButton : public wxControl {
73 wxButton(wxWindow* parent, wxWindowID id, const wxString& label,
74 const wxPoint& pos = wxPyDefaultPosition,
75 const wxSize& size = wxPyDefaultSize,
77 const wxValidator& validator = wxPyDefaultValidator,
78 char* name = "button");
80 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
85 //----------------------------------------------------------------------
87 class wxBitmapButton : public wxButton {
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");
96 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
98 wxBitmap& GetBitmapLabel();
99 wxBitmap& GetBitmapDisabled();
100 wxBitmap& GetBitmapFocus();
101 wxBitmap& GetBitmapSelected();
102 void SetBitmapDisabled(const wxBitmap& bitmap);
103 void SetBitmapFocus(const wxBitmap& bitmap);
104 void SetBitmapSelected(const wxBitmap& bitmap);
105 void SetBitmapLabel(const wxBitmap& bitmap);
109 //----------------------------------------------------------------------
111 class wxCheckBox : public wxControl {
113 wxCheckBox(wxWindow* parent, wxWindowID id, const wxString& label,
114 const wxPoint& pos = wxPyDefaultPosition,
115 const wxSize& size = wxPyDefaultSize,
117 const wxValidator& val = wxPyDefaultValidator,
118 char* name = "checkBox");
120 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
123 void SetValue(const bool state);
126 //----------------------------------------------------------------------
128 class wxChoice : public wxControl {
130 wxChoice(wxWindow *parent, wxWindowID id,
131 const wxPoint& pos = wxPyDefaultPosition,
132 const wxSize& size = wxPyDefaultSize,
133 int LCOUNT=0, wxString* LIST=NULL,
135 const wxValidator& validator = wxPyDefaultValidator,
136 char* name = "choice");
138 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
140 void Append(const wxString& item);
142 int FindString(const wxString& string);
145 wxString GetString(const int n);
146 wxString GetStringSelection();
148 void SetColumns(const int n = 1);
149 void SetSelection(const int n);
150 void SetStringSelection(const wxString& string);
153 //----------------------------------------------------------------------
155 class wxComboBox : public wxChoice {
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,
162 const wxValidator& validator = wxPyDefaultValidator,
163 char* name = "comboBox");
165 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
167 void Append(const wxString& item);
168 // TODO: void Append(const wxString& item, char* clientData);
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();
179 wxString GetString(int n);
180 wxString GetStringSelection();
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();
189 void SetSelection(int n);
190 %name(SetMark)void SetSelection(long from, long to);
191 void SetValue(const wxString& text);
194 //----------------------------------------------------------------------
196 class wxGauge : public wxControl {
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");
205 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
209 int GetShadowWidth();
211 void SetBezelFace(int width);
212 void SetRange(int range);
213 void SetShadowWidth(int width);
214 void SetValue(int pos);
217 //----------------------------------------------------------------------
219 class wxStaticBox : public wxControl {
221 wxStaticBox(wxWindow* parent, wxWindowID id, const wxString& label,
222 const wxPoint& pos = wxPyDefaultPosition,
223 const wxSize& size = wxPyDefaultSize,
225 char* name = "staticBox");
229 //----------------------------------------------------------------------
232 class wxStaticLine : public wxControl {
234 wxStaticLine( wxWindow *parent, wxWindowID id,
235 const wxPoint &pos = wxPyDefaultPosition,
236 const wxSize &size = wxPyDefaultSize,
237 long style = wxLI_HORIZONTAL,
238 const char* name = "staticLine" );
242 //----------------------------------------------------------------------
244 class wxStaticText : public wxControl {
246 wxStaticText(wxWindow* parent, wxWindowID id, const wxString& label,
247 const wxPoint& pos = wxPyDefaultPosition,
248 const wxSize& size = wxPyDefaultSize,
250 char* name = "staticText");
252 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
255 void SetLabel(const wxString& label);
258 //----------------------------------------------------------------------
260 class wxListBox : public wxControl {
262 wxListBox(wxWindow* parent, wxWindowID id,
263 const wxPoint& pos = wxPyDefaultPosition,
264 const wxSize& size = wxPyDefaultSize,
265 int LCOUNT, wxString* LIST = NULL,
267 const wxValidator& validator = wxPyDefaultValidator,
268 char* name = "listBox");
270 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
272 void Append(const wxString& item);
273 // TODO: void Append(const wxString& item, char* clientData);
276 void Deselect(int n);
277 int FindString(const wxString& string);
278 // TODO: char* GetClientData(const int n);
281 // int GetSelections(int **selections);
283 PyObject* GetSelections() {
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]));
294 void InsertItems(int LCOUNT, wxString* LIST, int pos);
296 wxString GetString(int n);
297 wxString GetStringSelection();
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);
310 //----------------------------------------------------------------------
312 class wxCheckListBox : public wxListBox {
314 wxCheckListBox(wxWindow *parent, wxWindowID id,
315 const wxPoint& pos = wxPyDefaultPosition,
316 const wxSize& size = wxPyDefaultSize,
318 wxString* LIST = NULL,
320 const wxValidator& validator = wxPyDefaultValidator,
321 char* name = "listBox");
323 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
325 bool IsChecked(int uiIndex);
326 void Check(int uiIndex, bool bCheck = TRUE);
331 //----------------------------------------------------------------------
333 class wxTextCtrl : public wxControl {
335 wxTextCtrl(wxWindow* parent, wxWindowID id, char* value = "",
336 const wxPoint& pos = wxPyDefaultPosition,
337 const wxSize& size = wxPyDefaultSize,
339 const wxValidator& validator = wxPyDefaultValidator,
340 char* name = "text");
342 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
348 long GetInsertionPoint();
349 long GetLastPosition();
350 int GetLineLength(long lineNo);
351 wxString GetLineText(long lineNo);
352 int GetNumberOfLines();
355 bool LoadFile(const wxString& filename);
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);
368 void AppendText(const wxString& text);
369 long XYToPosition(long x, long y);
376 void GetSelection(long* OUTPUT, long* OUTPUT);
382 void write(const wxString& text) {
383 self->AppendText(text + '\n');
388 //----------------------------------------------------------------------
390 class wxScrollBar : public wxControl {
392 wxScrollBar(wxWindow* parent, wxWindowID id = -1,
393 const wxPoint& pos = wxPyDefaultPosition,
394 const wxSize& size = wxPyDefaultSize,
395 long style = wxSB_HORIZONTAL,
396 const wxValidator& validator = wxPyDefaultValidator,
397 char* name = "scrollBar");
399 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
403 int GetThumbPosition();
405 void SetThumbPosition(int viewStart);
406 void SetScrollbar(int position, int thumbSize,
407 int range, int pageSize,
408 bool refresh = TRUE);
411 //----------------------------------------------------------------------
413 class wxSpinButton : public wxControl {
415 wxSpinButton(wxWindow* parent, wxWindowID id = -1,
416 const wxPoint& pos = wxPyDefaultPosition,
417 const wxSize& size = wxPyDefaultSize,
418 long style = wxSP_HORIZONTAL,
419 char* name = "spinButton");
424 void SetRange(int min, int max);
425 void SetValue(int value);
428 //----------------------------------------------------------------------
430 class wxStaticBitmap : public wxControl {
432 wxStaticBitmap(wxWindow* parent, wxWindowID id,
433 const wxBitmap& bitmap,
434 const wxPoint& pos = wxPyDefaultPosition,
435 const wxSize& size = wxPyDefaultSize,
437 char* name = "staticBitmap");
439 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
441 const wxBitmap& GetBitmap();
442 void SetBitmap(const wxBitmap& bitmap);
443 void SetIcon(const wxIcon& icon);
446 //----------------------------------------------------------------------
448 class wxRadioBox : public wxControl {
450 wxRadioBox(wxWindow* parent, wxWindowID id,
451 const wxString& label,
452 const wxPoint& point = wxPyDefaultPosition,
453 const wxSize& size = wxPyDefaultSize,
454 int LCOUNT = 0, wxString* LIST = NULL,
455 int majorDimension = 0,
456 long style = wxRA_HORIZONTAL,
457 const wxValidator& validator = wxPyDefaultValidator,
458 char* name = "radioBox");
460 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
462 void Enable(bool enable);
463 %name(EnableItem)void Enable(int n, bool enable);
464 int FindString(const wxString& string);
466 //*** wxString GetLabel();
467 //*** void SetLabel(const wxString& label);
469 %name(GetItemLabel)wxString GetLabel(int n);
471 wxString GetString(int n);
472 wxString GetStringSelection();
474 %name(SetItemLabel)void SetLabel(int n, const wxString& label);
475 void SetSelection(int n);
476 void SetStringSelection(const wxString& string);
477 void Show(bool show);
478 %name(ShowItem)void Show(int item, bool show);
481 //----------------------------------------------------------------------
483 class wxRadioButton : public wxControl {
485 wxRadioButton(wxWindow* parent, wxWindowID id,
486 const wxString& label,
487 const wxPoint& pos = wxPyDefaultPosition,
488 const wxSize& size = wxPyDefaultSize,
490 const wxValidator& validator = wxPyDefaultValidator,
491 char* name = "radioButton");
493 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
496 void SetValue(bool value);
499 //----------------------------------------------------------------------
501 class wxSlider : public wxControl {
503 wxSlider(wxWindow* parent, wxWindowID id,
504 int value, int minValue, int maxValue,
505 const wxPoint& point = wxPyDefaultPosition,
506 const wxSize& size = wxPyDefaultSize,
507 long style = wxSL_HORIZONTAL,
508 const wxValidator& validator = wxPyDefaultValidator,
509 char* name = "slider");
511 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
521 int GetThumbLength();
524 void SetRange(int minValue, int maxValue);
525 void SetTickFreq(int n, int pos);
526 void SetLineSize(int lineSize);
527 void SetPageSize(int pageSize);
528 void SetSelection(int startPos, int endPos);
529 void SetThumbLength(int len);
530 void SetTick(int tickPos);
531 void SetValue(int value);
535 //----------------------------------------------------------------------