X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2f4e928794167715f19a3021d62b7c4f77611694..5dacf03c57128529219145bafe9cee07d4348e85:/wxPython/src/controls.i diff --git a/wxPython/src/controls.i b/wxPython/src/controls.i index 5b17e97859..461262b48e 100644 --- a/wxPython/src/controls.i +++ b/wxPython/src/controls.i @@ -30,7 +30,6 @@ #ifdef __WXGTK__ #include #endif - %} //---------------------------------------------------------------------- @@ -50,35 +49,80 @@ //---------------------------------------------------------------------- %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 char* name="control"); + 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 char* name="control"); + 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); }; @@ -90,24 +134,42 @@ 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); @@ -116,6 +178,7 @@ public: 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) { @@ -127,42 +190,93 @@ public: } } + // 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, - char* name = "button"); + 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, - char* name = "button"); + 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(); }; @@ -175,7 +289,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, const wxValidator& validator = wxDefaultValidator, - char* name = "button"); + const wxString& name = wxPyButtonNameStr); %name(wxPreBitmapButton)wxBitmapButton(); bool Create(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, @@ -183,15 +297,15 @@ public: const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, const wxValidator& validator = wxDefaultValidator, - char* name = "button"); + 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(); + wxBitmap GetBitmapLabel(); + wxBitmap GetBitmapDisabled(); + wxBitmap GetBitmapFocus(); + wxBitmap GetBitmapSelected(); void SetBitmapDisabled(const wxBitmap& bitmap); void SetBitmapFocus(const wxBitmap& bitmap); void SetBitmapSelected(const wxBitmap& bitmap); @@ -210,21 +324,22 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& val = wxDefaultValidator, - char* name = "checkBox"); + 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& val = wxDefaultValidator, - char* name = "checkBox"); + 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); }; @@ -238,7 +353,7 @@ public: int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "choice"); + const wxString& name = wxPyChoiceNameStr); %name(wxPreChoice)wxChoice(); bool Create(wxWindow *parent, wxWindowID id, @@ -247,7 +362,7 @@ public: int LCOUNT=0, wxString* choices=NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "choice"); + const wxString& name = wxPyChoiceNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreChoice:val._setOORInfo(val)" @@ -267,30 +382,32 @@ public: //---------------------------------------------------------------------- -// wxGTK's wxComboBox doesn't derive from wxChoice like wxMSW, or -// even wxControlWithItems, so we have to duplicate the methods -// here... +// 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. -#ifdef __WXGTK__ +#ifndef __WXMSW__ class wxComboBox : public wxControl { public: - wxComboBox(wxWindow* parent, wxWindowID id, char* value = "", + 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, - char* name = "comboBox"); + const wxString& name = wxPyComboBoxNameStr); %name(wxPreComboBox)wxComboBox(); - bool Create(wxWindow* parent, wxWindowID id, char* value = "", - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int LCOUNT=0, wxString* choices=NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - char* name = "comboBox"); + 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)" @@ -341,7 +458,11 @@ public: } 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; @@ -353,7 +474,11 @@ public: void SetClientData(int n, PyObject* clientData) { wxPyClientData* data = new wxPyClientData(clientData); +#ifdef __WXMAC__ + self->wxItemContainer::SetClientObject(n, data); +#else self->SetClientObject(n, data); +#endif } } @@ -361,27 +486,29 @@ public: -#else // For all but wxGTK - +#else +// MSW's version derives from wxChoice class wxComboBox : public wxChoice { public: - wxComboBox(wxWindow* parent, wxWindowID id, char* value = "", + 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, - char* name = "comboBox"); + const wxString& name = wxPyComboBoxNameStr); %name(wxPreComboBox)wxComboBox(); - bool Create(wxWindow* parent, wxWindowID id, char* value = "", + 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, - char* name = "comboBox"); + const wxString& name = wxPyComboBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreComboBox:val._setOORInfo(val)" @@ -413,7 +540,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxGA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "gauge"); + const wxString& name = wxPyGaugeNameStr); %name(wxPreGauge)wxGauge(); bool Create(wxWindow* parent, wxWindowID id, int range, @@ -421,7 +548,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxGA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "gauge"); + const wxString& name = wxPyGaugeNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreGauge:val._setOORInfo(val)" @@ -444,14 +571,14 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - char* name = "staticBox"); + 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, - char* name = "staticBox"); + const wxString& name = wxPyStaticBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticBox:val._setOORInfo(val)" @@ -467,14 +594,14 @@ public: const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxLI_HORIZONTAL, - const char* name = "staticLine" ); + 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 char* name = "staticLine" ); + const wxString& name = wxPyStaticTextNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticLine:val._setOORInfo(val)" @@ -489,14 +616,14 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - char* name = "staticText"); + 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, - char* name = "staticText"); + const wxString& name = wxPyStaticTextNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticText:val._setOORInfo(val)" @@ -515,7 +642,7 @@ public: int LCOUNT, wxString* choices = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "listBox"); + const wxString& name = wxPyListBoxNameStr); %name(wxPreListBox)wxListBox(); bool Create(wxWindow* parent, wxWindowID id, @@ -524,7 +651,7 @@ public: int LCOUNT, wxString* choices = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "listBox"); + const wxString& name = wxPyListBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreListBox:val._setOORInfo(val)" @@ -570,7 +697,7 @@ public: wxString* choices = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "listBox"); + const wxString& name = wxPyListBoxNameStr); %name(wxPreCheckListBox)wxCheckListBox(); bool Create(wxWindow *parent, wxWindowID id, @@ -580,7 +707,7 @@ public: wxString* choices = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "listBox"); + const wxString& name = wxPyListBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreCheckListBox:val._setOORInfo(val)" @@ -592,10 +719,65 @@ public: #ifndef __WXMAC__ int GetItemHeight(); #endif + + // return the index of the item at this position or wxNOT_FOUND + int HitTest(const wxPoint& pt) const; + %name(HitTestXY)int HitTest(wxCoord x, wxCoord y) const; + }; //---------------------------------------------------------------------- +enum { + // Styles + wxTE_NO_VSCROLL, + wxTE_AUTO_SCROLL, + wxTE_READONLY, + wxTE_MULTILINE, + wxTE_PROCESS_TAB, + wxTE_LEFT, + wxTE_CENTER, + wxTE_RIGHT, + wxTE_CENTRE, + wxTE_RICH, + wxTE_PROCESS_ENTER, + wxTE_PASSWORD, + wxTE_AUTO_URL, + wxTE_NOHIDESEL, + wxTE_DONTWRAP, + wxTE_LINEWRAP, + wxTE_WORDWRAP, + wxTE_RICH2, + + // Flags to indicate which attributes are being applied + wxTEXT_ATTR_TEXT_COLOUR, + wxTEXT_ATTR_BACKGROUND_COLOUR, + wxTEXT_ATTR_FONT_FACE, + wxTEXT_ATTR_FONT_SIZE, + wxTEXT_ATTR_FONT_WEIGHT, + wxTEXT_ATTR_FONT_ITALIC, + wxTEXT_ATTR_FONT_UNDERLINE, + wxTEXT_ATTR_FONT, + wxTEXT_ATTR_ALIGNMENT, + wxTEXT_ATTR_LEFT_INDENT, + wxTEXT_ATTR_RIGHT_INDENT, + wxTEXT_ATTR_TABS, + +}; + + +enum wxTextAttrAlignment +{ + wxTEXT_ALIGNMENT_DEFAULT, + wxTEXT_ALIGNMENT_LEFT, + wxTEXT_ALIGNMENT_CENTRE, + wxTEXT_ALIGNMENT_CENTER, + wxTEXT_ALIGNMENT_RIGHT, + wxTEXT_ALIGNMENT_JUSTIFIED +}; + + + class wxTextAttr { @@ -603,22 +785,41 @@ public: // ctors wxTextAttr(const wxColour& colText = wxNullColour, const wxColour& colBack = wxNullColour, - const wxFont& font = wxNullFont); + const wxFont& font = wxNullFont, + wxTextAttrAlignment alignment = wxTEXT_ALIGNMENT_DEFAULT); ~wxTextAttr(); + void Init(); + // setters void SetTextColour(const wxColour& colText); void SetBackgroundColour(const wxColour& colBack); void SetFont(const wxFont& font); + void SetAlignment(wxTextAttrAlignment alignment); + void SetTabs(const wxArrayInt& tabs); + void SetLeftIndent(int indent); + void SetRightIndent(int indent); + void SetFlags(long flags); // accessors bool HasTextColour() const; bool HasBackgroundColour() const; bool HasFont() const; + bool HasAlignment() const; + bool HasTabs() const; + bool HasLeftIndent() const; + bool HasRightIndent() const; + bool HasFlag(long flag) const; + + wxColour GetTextColour() const; + wxColour GetBackgroundColour() const; + wxFont GetFont() const; + wxTextAttrAlignment GetAlignment(); + const wxArrayInt& GetTabs() const; + long GetLeftIndent() const; + long GetRightIndent() const; + long GetFlags() const; - const wxColour& GetTextColour() const; - const wxColour& GetBackgroundColour() const; - const wxFont& GetFont() const; // returns false if we have any attributes set, true otherwise bool IsDefault(); @@ -635,20 +836,22 @@ public: class wxTextCtrl : public wxControl { public: - wxTextCtrl(wxWindow* parent, wxWindowID id, char* value = "", + wxTextCtrl(wxWindow* parent, wxWindowID id, + const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "text"); + const wxString& name = wxPyTextCtrlNameStr); %name(wxPreTextCtrl)wxTextCtrl(); - bool Create(wxWindow* parent, wxWindowID id, char* value = "", + bool Create(wxWindow* parent, wxWindowID id, + const wxString& value = wxPyEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "text"); + const wxString& name = wxPyTextCtrlNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreTextCtrl:val._setOORInfo(val)" @@ -657,6 +860,8 @@ public: wxString GetValue() const; void SetValue(const wxString& value); + wxString GetRange(long from, long to); + int GetLineLength(long lineNo) const; wxString GetLineText(long lineNo) const; int GetNumberOfLines() const; @@ -674,7 +879,7 @@ public: // load/save the controls contents from/to the file bool LoadFile(const wxString& file); - bool SaveFile(const wxString& file = wxEmptyString); + bool SaveFile(const wxString& file = wxPyEmptyString); // clears the dirty flag void DiscardEdits(); @@ -688,18 +893,26 @@ public: void WriteText(const wxString& text); void AppendText(const wxString& text); + // insert the character which would have resulted from this key event, + // return TRUE if anything has been inserted + bool EmulateKeyPress(const wxKeyEvent& event); + // text control under some platforms supports the text styles: these // methods allow to apply the given text style to the given selection or to // set/get the style which will be used for all appended text bool SetStyle(long start, long end, const wxTextAttr& style); bool SetDefaultStyle(const wxTextAttr& style); const wxTextAttr& GetDefaultStyle() const; + bool GetStyle(long position, wxTextAttr& style); // translate between the position (which is just an index in the text ctrl // considering all its contents as a single strings) and (x, y) coordinates // which represent column and line. long XYToPosition(long x, long y) const; - bool PositionToXY(long pos, long *OUTPUT, long *OUTPUT) const; + void PositionToXY(long pos, long *OUTPUT, long *OUTPUT) const; + + //bool PositionToXY(long pos, long *OUTPUT, long *OUTPUT) const; + // TODO: check return value, raise exception. void ShowPosition(long pos); @@ -729,6 +942,10 @@ public: void SelectAll(); void SetEditable(bool editable); + bool IsSingleLine(); + bool IsMultiLine(); + + %addmethods { void write(const wxString& text) { self->AppendText(text); @@ -738,7 +955,7 @@ public: // 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); + return self->GetValue().Mid(from, to - from); } } }; @@ -752,7 +969,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxSB_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "scrollBar"); + const wxString& name = wxPyScrollBarNameStr); %name(wxPreScrollBar)wxScrollBar(); bool Create(wxWindow* parent, wxWindowID id = -1, @@ -760,7 +977,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxSB_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "scrollBar"); + const wxString& name = wxPyScrollBarNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreScrollBar:val._setOORInfo(val)" @@ -787,14 +1004,14 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxSP_HORIZONTAL, - char* name = "spinButton"); + 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, - char* name = "spinButton"); + const wxString& name = wxPySPIN_BUTTON_NAME); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreSpinButton:val._setOORInfo(val)" @@ -815,7 +1032,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - char* name = "staticBitmap"); + const wxString& name = wxPyStaticBitmapNameStr); %name(wxPreStaticBitmap)wxStaticBitmap(); bool Create(wxWindow* parent, wxWindowID id, @@ -823,12 +1040,12 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, - char* name = "staticBitmap"); + const wxString& name = wxPyStaticBitmapNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreStaticBitmap:val._setOORInfo(val)" - const wxBitmap& GetBitmap(); + wxBitmap GetBitmap(); void SetBitmap(const wxBitmap& bitmap); void SetIcon(const wxIcon& icon); }; @@ -845,7 +1062,7 @@ public: int majorDimension = 0, long style = wxRA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "radioBox"); + const wxString& name = wxPyRadioBoxNameStr); %name(wxPreRadioBox)wxRadioBox(); bool Create(wxWindow* parent, wxWindowID id, @@ -856,7 +1073,7 @@ public: int majorDimension = 0, long style = wxRA_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "radioBox"); + const wxString& name = wxPyRadioBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreRadioBox:val._setOORInfo(val)" @@ -866,18 +1083,15 @@ public: int FindString(const wxString& string); wxString GetString(int n); - -#ifdef __WXGTK__ - %name(GetItemLabel)wxString GetLabel( int item ); - %name(SetItemLabel)void SetLabel( int item, const wxString& label ); -#else 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(); @@ -901,7 +1115,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "radioButton"); + const wxString& name = wxPyRadioButtonNameStr); %name(wxPreRadioButton)wxRadioButton(); bool Create(wxWindow* parent, wxWindowID id, @@ -910,7 +1124,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - char* name = "radioButton"); + const wxString& name = wxPyRadioButtonNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreRadioButton:val._setOORInfo(val)" @@ -929,7 +1143,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxSL_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "slider"); + const wxString& name = wxPySliderNameStr); %name(wxPreSlider)wxSlider(); bool Create(wxWindow* parent, wxWindowID id, @@ -938,7 +1152,7 @@ public: const wxSize& size = wxDefaultSize, long style = wxSL_HORIZONTAL, const wxValidator& validator = wxDefaultValidator, - char* name = "slider"); + const wxString& name = wxPySliderNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreSlider:val._setOORInfo(val)" @@ -971,22 +1185,22 @@ class wxSpinCtrl : public wxSpinButton { public: wxSpinCtrl(wxWindow *parent, wxWindowID id = -1, - const char* value = "", + 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 char* name = "wxSpinCtrl"); + const wxString& name = wxPySpinCtrlNameStr); %name(wxPreSpinCtrl)wxSpinCtrl(); bool Create(wxWindow *parent, wxWindowID id = -1, - const char* value = "", + 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 char* name = "wxSpinCtrl"); + const wxString& name = wxPySpinCtrlNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreSpinCtrl:val._setOORInfo(val)" @@ -996,7 +1210,14 @@ public: 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 }; @@ -1014,7 +1235,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - const char* name = "toggle"); + const wxString& name = wxPyCheckBoxNameStr); %name(wxPreToggleButton)wxToggleButton(); bool Create(wxWindow *parent, @@ -1024,7 +1245,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, - const char* name = "toggle"); + const wxString& name = wxPyCheckBoxNameStr); %pragma(python) addtomethod = "__init__:self._setOORInfo(self)" %pragma(python) addtomethod = "wxPreToggleButton:val._setOORInfo(val)" @@ -1036,6 +1257,7 @@ public: }; #endif + //---------------------------------------------------------------------- //---------------------------------------------------------------------- //----------------------------------------------------------------------