///////////////////////////////////////////////////////////////////////////// // Name: controls.i // Purpose: Control (widget) classes for wxPython // // Author: Robin Dunn // // Created: 6/10/98 // RCS-ID: $Id$ // Copyright: (c) 1998 by Total Control Software // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// %module controls %{ #include "helpers.h" #include #include #include #include #include #include #ifdef __WXMSW__ #if wxUSE_OWNER_DRAWN #include #endif #endif #ifdef __WXGTK__ #include #endif %} //---------------------------------------------------------------------- %include typemaps.i %include my_typemaps.i // Import some definitions of other classes, etc. %import _defs.i %import misc.i %import windows.i %import gdi.i %import events.i %pragma(python) code = "import wx" //---------------------------------------------------------------------- %readonly // See also wxPy_ReinitStockObjects in helpers.cpp wxValidator wxDefaultValidator; %readwrite //---------------------------------------------------------------------- %{ //#define DECLARE_DEF_STRING(name) static wxString* wxPy##name // Put some wx default wxChar* values into wxStrings. DECLARE_DEF_STRING(ControlNameStr); DECLARE_DEF_STRING(ButtonNameStr); DECLARE_DEF_STRING(CheckBoxNameStr); DECLARE_DEF_STRING(ChoiceNameStr); DECLARE_DEF_STRING(ComboBoxNameStr); DECLARE_DEF_STRING(GaugeNameStr); DECLARE_DEF_STRING(StaticBoxNameStr); DECLARE_DEF_STRING(StaticTextNameStr); DECLARE_DEF_STRING(ListBoxNameStr); DECLARE_DEF_STRING(TextCtrlNameStr); DECLARE_DEF_STRING(ScrollBarNameStr); DECLARE_DEF_STRING(SPIN_BUTTON_NAME); DECLARE_DEF_STRING(StaticBitmapNameStr); DECLARE_DEF_STRING(RadioBoxNameStr); DECLARE_DEF_STRING(RadioButtonNameStr); DECLARE_DEF_STRING(SliderNameStr); wxChar* wxSpinCtrlNameStr = _T("wxSpinCtrl"); DECLARE_DEF_STRING(SpinCtrlNameStr); static const wxString wxPyEmptyString(wxT("")); %} //---------------------------------------------------------------------- // This is the base class for a control or 'widget'. // // A control is generally a small window which processes user input and/or // displays one or more item of data. class wxControl : public wxWindow { public: // wxControl(wxWindow *parent, wxWindowID id, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=0, const wxValidator& validator=wxDefaultValidator, const wxString& name=wxPyControlNameStr); // %name(wxPreControl)wxControl(); // bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos=wxDefaultPosition, const wxSize& size=wxDefaultSize, long style=0, const wxValidator& validator=wxDefaultValidator, const wxString& name=wxPyControlNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreControl:val._setOORInfo(val)" // Simulates the effect of the user issuing a command to the item. See // wxCommandEvent. void Command(wxCommandEvent& event); // Return a control's text. wxString GetLabel(); // Sets the item's text. void SetLabel(const wxString& label); }; //---------------------------------------------------------------------- class wxControlWithItems : public wxControl { public: // void Clear(); ambiguous, redefine below... // Deletes an item from the control void Delete(int n); // Returns the number of items in the control. int GetCount(); %pragma(python) addtoclass = "Number = GetCount" // Returns the string at the given position. wxString GetString(int n); // Sets the string value of an item. void SetString(int n, const wxString& s); // Finds an item matching the given string. Returns the zero-based // position of the item, or -1 if the string was not found. int FindString(const wxString& s); // Select the item at postion n. void Select(int n); // Gets the position of the selected item. int GetSelection(); // Gets the current selection as a string. wxString GetStringSelection() const; // void Append(const wxString& item); // void Append(const wxString& item, char* clientData); // char* GetClientData(const int n); // void SetClientData(const int n, char* data); %addmethods { // Adds the item to the control, associating the given data with the // item if not None. void Append(const wxString& item, PyObject* clientData=NULL) { if (clientData) { wxPyClientData* data = new wxPyClientData(clientData); self->Append(item, data); } else self->Append(item); } // Returns the client data associated with the given item, (if any.) PyObject* GetClientData(int n) { wxPyClientData* data = (wxPyClientData*)self->GetClientObject(n); if (data) { Py_INCREF(data->m_obj); return data->m_obj; } else { Py_INCREF(Py_None); return Py_None; } } // Associate the given client data with the item at position n. void SetClientData(int n, PyObject* clientData) { wxPyClientData* data = new wxPyClientData(clientData); self->SetClientObject(n, data); } } // append several items at once to the control %name(AppendItems)void Append(const wxArrayString& strings); }; //---------------------------------------------------------------------- // A button is a control that contains a text string, and is one of the most // common elements of a GUI. It may be placed on a dialog box or panel, or // indeed almost any other window. // // Styles // wxBU_LEFT: Left-justifies the label. WIN32 only. // wxBU_TOP: Aligns the label to the top of the button. WIN32 only. // wxBU_RIGHT: Right-justifies the bitmap label. WIN32 only. // wxBU_BOTTOM: Aligns the label to the bottom of the button. WIN32 only. // wxBU_EXACTFIT: Creates the button as small as possible instead of making // it of the standard size (which is the default behaviour.) // // Events // EVT_BUTTON(win,id,func): // Sent when the button is clicked. // class wxButton : public wxControl { public: // Constructor, creating and showing a button. // // parent: Parent window. Must not be None. // id: Button identifier. A value of -1 indicates a default value. // label: The text to be displayed on the button. // pos: The button position on it's parent. // size: Button size. If the default size (-1, -1) is specified then the // button is sized appropriately for the text. // style: Window style. See wxButton. // validator: Window validator. // name: Window name. wxButton(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyButtonNameStr); // Default constructor %name(wxPreButton)wxButton(); // Button creation function for two-step creation. bool Create(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyButtonNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreButton:val._setOORInfo(val)" // This sets the button to be the default item for the panel or dialog box. // // Under Windows, only dialog box buttons respond to this function. As // normal under Windows and Motif, pressing return causes the default // button to be depressed when the return key is pressed. See also // wxWindow.SetFocus which sets the keyboard focus for windows and text // panel items, and wxPanel.SetDefaultItem. void SetDefault(); // void SetBackgroundColour(const wxColour& colour); // void SetForegroundColour(const wxColour& colour); #ifdef __WXMSW__ // show the image in the button in addition to the label void SetImageLabel(const wxBitmap& bitmap); // set the margins around the image void SetImageMargins(wxCoord x, wxCoord y); #endif // returns the default button size for this platform static wxSize GetDefaultSize(); }; //---------------------------------------------------------------------- class wxBitmapButton : public wxButton { public: wxBitmapButton(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyButtonNameStr); %name(wxPreBitmapButton)wxBitmapButton(); bool Create(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyButtonNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreBitmapButton:val._setOORInfo(val)" wxBitmap GetBitmapLabel(); wxBitmap GetBitmapDisabled(); wxBitmap GetBitmapFocus(); wxBitmap GetBitmapSelected(); void SetBitmapDisabled(const wxBitmap& bitmap); void SetBitmapFocus(const wxBitmap& bitmap); void SetBitmapSelected(const wxBitmap& bitmap); void SetBitmapLabel(const wxBitmap& bitmap); void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } int GetMarginX() const { return m_marginX; } int GetMarginY() const { return m_marginY; } }; //---------------------------------------------------------------------- enum { wxCHK_2STATE, wxCHK_3STATE, wxCHK_ALLOW_3RD_STATE_FOR_USER, }; enum wxCheckBoxState { wxCHK_UNCHECKED, wxCHK_CHECKED, wxCHK_UNDETERMINED /* 3-state checkbox only */ }; class wxCheckBox : public wxControl { public: wxCheckBox(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyCheckBoxNameStr); %name(wxPreCheckBox)wxCheckBox(); bool Create(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyCheckBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreCheckBox:val._setOORInfo(val)" bool GetValue(); bool IsChecked(); void SetValue(const bool state); wxCheckBoxState Get3StateValue() const; void Set3StateValue(wxCheckBoxState state); bool Is3State() const; bool Is3rdStateAllowedForUser() const; }; //---------------------------------------------------------------------- class wxChoice : public wxControlWithItems { public: wxChoice(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyChoiceNameStr); %name(wxPreChoice)wxChoice(); bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyChoiceNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreChoice:val._setOORInfo(val)" void Clear(); int GetColumns(); void SetColumns(const int n = 1); void SetSelection(const int n); void SetStringSelection(const wxString& string); void SetString(int n, const wxString& s); %pragma(python) addtoclass = " Select = SetSelection " }; //---------------------------------------------------------------------- // wxGTK's wxComboBox doesn't derive from wxChoice like wxMSW, or even // wxControlWithItems, so we have to duplicate the methods here... // wxMac's inheritace is weird too so we'll fake it with this one too. #ifndef __WXMSW__ class wxComboBox : public wxControl { public: wxComboBox(wxWindow* parent, wxWindowID id, const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyComboBoxNameStr); %name(wxPreComboBox)wxComboBox(); bool Create(wxWindow* parent, wxWindowID id, const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyComboBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreComboBox:val._setOORInfo(val)" void Copy(); void Cut(); long GetInsertionPoint(); long GetLastPosition(); wxString GetValue(); void Paste(); void Replace(long from, long to, const wxString& text); void Remove(long from, long to); void SetInsertionPoint(long pos); void SetInsertionPointEnd(); void SetSelection(int n); %name(SetMark)void SetSelection(long from, long to); void SetValue(const wxString& text); void SetEditable(bool editable); void Clear(); void Delete(int n); int GetCount(); %pragma(python) addtoclass = "Number = GetCount" wxString GetString(int n); int FindString(const wxString& s); //void SetString(int n, const wxString& s); *** No equivalent for wxGTK!!! // void Select(int n); %pragma(python) addtoclass = "Select = SetSelection" int GetSelection(); wxString GetStringSelection() const; // void Append(const wxString& item); // void Append(const wxString& item, char* clientData); // char* GetClientData(const int n); // void SetClientData(const int n, char* data); %addmethods { void Append(const wxString& item, PyObject* clientData=NULL) { if (clientData) { wxPyClientData* data = new wxPyClientData(clientData); self->Append(item, data); } else self->Append(item); } PyObject* GetClientData(int n) { #ifdef __WXMAC__ wxPyClientData* data = (wxPyClientData*)self->wxItemContainer::GetClientObject(n); #else wxPyClientData* data = (wxPyClientData*)self->GetClientObject(n); #endif if (data) { Py_INCREF(data->m_obj); return data->m_obj; } else { Py_INCREF(Py_None); return Py_None; } } void SetClientData(int n, PyObject* clientData) { wxPyClientData* data = new wxPyClientData(clientData); #ifdef __WXMAC__ self->wxItemContainer::SetClientObject(n, data); #else self->SetClientObject(n, data); #endif } } }; #else // MSW's version derives from wxChoice class wxComboBox : public wxChoice { public: wxComboBox(wxWindow* parent, wxWindowID id, const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyComboBoxNameStr); %name(wxPreComboBox)wxComboBox(); bool Create(wxWindow* parent, wxWindowID id, const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyComboBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreComboBox:val._setOORInfo(val)" void Copy(); void Cut(); long GetInsertionPoint(); long GetLastPosition(); wxString GetValue(); void Paste(); void Replace(long from, long to, const wxString& text); void Remove(long from, long to); void SetInsertionPoint(long pos); void SetInsertionPointEnd(); void SetSelection(int n); %name(SetMark)void SetSelection(long from, long to); void SetValue(const wxString& text); void SetEditable(bool editable); }; #endif //---------------------------------------------------------------------- class wxGauge : public wxControl { public: wxGauge(wxWindow* parent, wxWindowID id, int range, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxGA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyGaugeNameStr); %name(wxPreGauge)wxGauge(); bool Create(wxWindow* parent, wxWindowID id, int range, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxGA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyGaugeNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreGauge:val._setOORInfo(val)" int GetBezelFace(); int GetRange(); int GetShadowWidth(); int GetValue(); bool IsVertical() const; void SetBezelFace(int width); void SetRange(int range); void SetShadowWidth(int width); void SetValue(int pos); }; //---------------------------------------------------------------------- class wxStaticBox : public wxControl { public: wxStaticBox(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyStaticBoxNameStr); %name(wxPreStaticBox)wxStaticBox(); bool Create(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyStaticBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticBox:val._setOORInfo(val)" }; //---------------------------------------------------------------------- class wxStaticLine : public wxControl { public: wxStaticLine( wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxLI_HORIZONTAL, const wxString& name = wxPyStaticTextNameStr); %name(wxPreStaticLine)wxStaticLine(); bool Create( wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxLI_HORIZONTAL, const wxString& name = wxPyStaticTextNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticLine:val._setOORInfo(val)" }; //---------------------------------------------------------------------- class wxStaticText : public wxControl { public: wxStaticText(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyStaticTextNameStr); %name(wxPreStaticText)wxStaticText(); bool Create(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyStaticTextNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticText:val._setOORInfo(val)" wxString GetLabel(); void SetLabel(const wxString& label); }; //---------------------------------------------------------------------- class wxListBox : public wxControlWithItems { public: wxListBox(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT, wxString* choices = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyListBoxNameStr); %name(wxPreListBox)wxListBox(); bool Create(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT, wxString* choices = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyListBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreListBox:val._setOORInfo(val)" void Clear(); void Deselect(int n); // int GetSelections(int **selections); %addmethods { PyObject* GetSelections() { wxArrayInt lst; self->GetSelections(lst); PyObject *tup = PyTuple_New(lst.GetCount()); for(size_t i=0; iAppendText(text); } } // TODO: replace this when the method is really added to wxTextCtrl %addmethods { wxString GetString(long from, long to) { return self->GetValue().Mid(from, to - from); } } }; //---------------------------------------------------------------------- class wxScrollBar : public wxControl { public: wxScrollBar(wxWindow* parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSB_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyScrollBarNameStr); %name(wxPreScrollBar)wxScrollBar(); bool Create(wxWindow* parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSB_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyScrollBarNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreScrollBar:val._setOORInfo(val)" int GetRange(); int GetPageSize(); int GetThumbPosition(); int GetThumbSize(); %name(GetThumbLength) int GetThumbSize(); // to match the docs bool IsVertical(); void SetThumbPosition(int viewStart); void SetScrollbar(int position, int thumbSize, int range, int pageSize, bool refresh = TRUE); }; //---------------------------------------------------------------------- class wxSpinButton : public wxControl { public: wxSpinButton(wxWindow* parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSP_HORIZONTAL, const wxString& name = wxPySPIN_BUTTON_NAME); %name(wxPreSpinButton)wxSpinButton(); bool Create(wxWindow* parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSP_HORIZONTAL, const wxString& name = wxPySPIN_BUTTON_NAME); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreSpinButton:val._setOORInfo(val)" int GetMax(); int GetMin(); int GetValue(); void SetRange(int min, int max); void SetValue(int value); }; //---------------------------------------------------------------------- class wxStaticBitmap : public wxControl { public: wxStaticBitmap(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyStaticBitmapNameStr); %name(wxPreStaticBitmap)wxStaticBitmap(); bool Create(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxPyStaticBitmapNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticBitmap:val._setOORInfo(val)" wxBitmap GetBitmap(); void SetBitmap(const wxBitmap& bitmap); void SetIcon(const wxIcon& icon); }; //---------------------------------------------------------------------- class wxRadioBox : public wxControl { public: wxRadioBox(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT = 0, wxString* choices = NULL, int majorDimension = 0, long style = wxRA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyRadioBoxNameStr); %name(wxPreRadioBox)wxRadioBox(); bool Create(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, int LCOUNT = 0, wxString* choices = NULL, int majorDimension = 0, long style = wxRA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyRadioBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreRadioBox:val._setOORInfo(val)" void Enable(bool enable); %name(EnableItem)void Enable(int n, bool enable); int FindString(const wxString& string); wxString GetString(int n); void SetString(int n, const wxString& label); %pragma(python) addtoclass = " GetItemLabel = GetString SetItemLabel = SetString " #ifndef __WXGTK__ int GetColumnCount(); int GetRowCount(); int GetNextItem(int item, wxDirection dir, long style); #endif int GetSelection(); wxString GetStringSelection(); int GetCount(); %pragma(python) addtoclass = "Number = GetCount" void SetSelection(int n); void SetStringSelection(const wxString& string); void Show(bool show); %name(ShowItem)void Show(int item, bool show); }; //---------------------------------------------------------------------- class wxRadioButton : public wxControl { public: wxRadioButton(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyRadioButtonNameStr); %name(wxPreRadioButton)wxRadioButton(); bool Create(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyRadioButtonNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreRadioButton:val._setOORInfo(val)" bool GetValue(); void SetValue(bool value); }; //---------------------------------------------------------------------- class wxSlider : public wxControl { public: wxSlider(wxWindow* parent, wxWindowID id, int value, int minValue, int maxValue, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSL_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPySliderNameStr); %name(wxPreSlider)wxSlider(); bool Create(wxWindow* parent, wxWindowID id, int value, int minValue, int maxValue, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSL_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPySliderNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreSlider:val._setOORInfo(val)" void ClearSel(); void ClearTicks(); int GetLineSize(); int GetMax(); int GetMin(); int GetPageSize(); int GetSelEnd(); int GetSelStart(); int GetThumbLength(); int GetTickFreq(); int GetValue(); void SetRange(int minValue, int maxValue); void SetTickFreq(int n, int pos); void SetLineSize(int lineSize); void SetPageSize(int pageSize); void SetSelection(int startPos, int endPos); void SetThumbLength(int len); void SetTick(int tickPos); void SetValue(int value); }; //---------------------------------------------------------------------- class wxSpinCtrl : public wxSpinButton { public: wxSpinCtrl(wxWindow *parent, wxWindowID id = -1, const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSP_ARROW_KEYS, int min = 0, int max = 100, int initial = 0, const wxString& name = wxPySpinCtrlNameStr); %name(wxPreSpinCtrl)wxSpinCtrl(); bool Create(wxWindow *parent, wxWindowID id = -1, const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSP_ARROW_KEYS, int min = 0, int max = 100, int initial = 0, const wxString& name = wxPySpinCtrlNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreSpinCtrl:val._setOORInfo(val)" int GetMax(); int GetMin(); int GetValue(); void SetRange(int min, int max); void SetValue(int value); #ifdef __WXGTK__ %addmethods { void SetSelection(long from, long to) { } } #else void SetSelection(long from, long to); #endif }; //---------------------------------------------------------------------- #ifndef __WXMAC__ enum { wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, }; class wxToggleButton : public wxControl { public: wxToggleButton(wxWindow *parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyCheckBoxNameStr); %name(wxPreToggleButton)wxToggleButton(); bool Create(wxWindow *parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyCheckBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreToggleButton:val._setOORInfo(val)" void SetValue(bool value); bool GetValue() const ; void SetLabel(const wxString& label); }; #endif //---------------------------------------------------------------------- //---------------------------------------------------------------------- //----------------------------------------------------------------------