Emptied patch.rsp
[wxWidgets.git] / wxPython / src / controls.i
index f209d1d1c662b1b998901cf5c2bd741aad7a7392..a622b6145d148d5aeeb0c2201d82c87d6b5de77f 100644 (file)
@@ -188,10 +188,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);
@@ -267,6 +267,103 @@ public:
 
 //----------------------------------------------------------------------
 
+// wxGTK's wxComboBox doesn't derive from wxChoice like wxMSW, or
+// even wxControlWithItems, so we have to duplicate the methods
+// here... <blech!>
+
+#ifdef __WXGTK__
+class wxComboBox : public wxControl
+{
+public:
+    wxComboBox(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");
+    %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");
+
+    %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) {
+            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;
+            }
+        }
+
+        void SetClientData(int n, PyObject* clientData) {
+            wxPyClientData* data = new wxPyClientData(clientData);
+            self->SetClientObject(n, data);
+        }
+    }
+
+};
+
+
+
+#else  // For all but wxGTK
+
+
 class wxComboBox : public wxChoice {
 public:
     wxComboBox(wxWindow* parent, wxWindowID id, char* value = "",
@@ -304,6 +401,8 @@ public:
     void SetValue(const wxString& text);
     void SetEditable(bool editable);
 };
+#endif
+
 
 //----------------------------------------------------------------------
 
@@ -517,12 +616,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);
 };
 
 
@@ -560,6 +666,7 @@ public:
 
     // If the return values from and to are the same, there is no selection.
     void GetSelection(long* OUTPUT, long* OUTPUT) const;
+    wxString GetStringSelection();
 
     void Clear();
     void Replace(long from, long to, const wxString& value);
@@ -627,6 +734,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);
+        }
+    }
 };
 
 //----------------------------------------------------------------------
@@ -656,6 +770,9 @@ public:
     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,
@@ -711,7 +828,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);
 };