X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ebf4302cbe16578f60e51dca83e3defaebb6db28..f9ee64b1356530b7f5c957d250d2a1dcbef60f60:/wxPython/src/controls.i diff --git a/wxPython/src/controls.i b/wxPython/src/controls.i index e5824e6db8..c18c03d843 100644 --- a/wxPython/src/controls.i +++ b/wxPython/src/controls.i @@ -30,7 +30,6 @@ #ifdef __WXGTK__ #include #endif - %} //---------------------------------------------------------------------- @@ -55,8 +54,15 @@ wxValidator wxDefaultValidator; //---------------------------------------------------------------------- + +// 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, @@ -64,8 +70,11 @@ public: long style=0, const wxValidator& validator=wxDefaultValidator, const char* name="control"); + + // %name(wxPreControl)wxControl(); + // bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos=wxDefaultPosition, @@ -77,8 +86,14 @@ public: %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 +105,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 +149,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,25 +161,60 @@ 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"); + + // 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, @@ -156,13 +225,29 @@ public: %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(); }; @@ -188,10 +273,10 @@ public: %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); @@ -616,12 +701,19 @@ public: bool HasBackgroundColour() const; bool HasFont() const; - const wxColour& GetTextColour() const; - const wxColour& GetBackgroundColour() const; - const wxFont& GetFont() const; + wxColour GetTextColour() const; + wxColour GetBackgroundColour() const; + wxFont GetFont() const; // returns false if we have any attributes set, true otherwise bool IsDefault(); + + // return the attribute having the valid font and colours: it uses the + // attributes set in attr and falls back first to attrDefault and then to + // the text control font/colours for those attributes which are not set + static wxTextAttr Combine(const wxTextAttr& attr, + const wxTextAttr& attrDef, + const wxTextCtrl *text); }; @@ -650,6 +742,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; @@ -692,7 +786,10 @@ public: // 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); @@ -727,6 +824,13 @@ public: self->AppendText(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); + } + } }; //---------------------------------------------------------------------- @@ -814,7 +918,7 @@ public: %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); }; @@ -1022,6 +1126,7 @@ public: }; #endif + //---------------------------------------------------------------------- //---------------------------------------------------------------------- //----------------------------------------------------------------------