]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/controls.i
Did splitting of wxEntry for wxMSW. Not nearly as complex as wxGTK
[wxWidgets.git] / utils / wxPython / src / controls.i
index 27401be2c694efa1fc6a39183c060fcbcb18c3f6..129a23b1d37f7db37d5f2d6d4f89cbc14d000162 100644 (file)
 #include "helpers.h"
 #include <wx/slider.h>
 #include <wx/spinbutt.h>
+#include <wx/dynarray.h>
+#include <wx/statline.h>
+//#include <wx/toggbutt.h>
 
 #ifdef __WXMSW__
 #if wxUSE_OWNER_DRAWN
 #include <wx/checklst.h>
 #endif
 #endif
+
+#ifdef __WXGTK__
+#include <wx/checklst.h>
+#endif
+
 %}
 
 //----------------------------------------------------------------------
@@ -36,7 +44,7 @@
 %import gdi.i
 %import events.i
 
-%pragma(python) code = "import wxp"
+%pragma(python) code = "import wx"
 
 //----------------------------------------------------------------------
 
 wxValidator wxPyDefaultValidator;       // Non-const default because of SWIG
 %}
 
+%readonly
+wxValidator wxDefaultValidator;
+%readwrite
+
 //----------------------------------------------------------------------
 
 class wxControl : public wxWindow {
 public:
+    wxControl(wxWindow *parent,
+                       wxWindowID id,
+                       const wxPoint& pos=wxPyDefaultPosition,
+                       const wxSize& size=wxPyDefaultSize,
+                       long style=0,
+                       const wxValidator& validator=wxPyDefaultValidator,
+                       const char* name="control");
+
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
+
     void Command(wxCommandEvent& event);
     wxString GetLabel();
     void SetLabel(const wxString& label);
 };
 
+
 //----------------------------------------------------------------------
 
 class wxButton : public wxControl {
@@ -64,11 +87,20 @@ public:
              const wxValidator& validator = wxPyDefaultValidator,
              char* name = "button");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     void SetDefault();
+    void SetBackgroundColour(const wxColour& colour);
+    void SetForegroundColour(const wxColour& colour);
 };
 
+
+%inline %{
+    wxSize wxButton_GetDefaultSize() {
+        return wxButton::GetDefaultSize();
+    }
+%}
+
 //----------------------------------------------------------------------
 
 class wxBitmapButton : public wxButton {
@@ -80,21 +112,44 @@ public:
                    const wxValidator& validator = wxPyDefaultValidator,
                    char* name = "button");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     wxBitmap& GetBitmapLabel();
-#ifdef __WXMSW__
     wxBitmap& GetBitmapDisabled();
     wxBitmap& GetBitmapFocus();
     wxBitmap& GetBitmapSelected();
     void SetBitmapDisabled(const wxBitmap& bitmap);
     void SetBitmapFocus(const wxBitmap& bitmap);
     void SetBitmapSelected(const wxBitmap& bitmap);
-#endif
     void SetBitmapLabel(const wxBitmap& bitmap);
 
 };
 
+//----------------------------------------------------------------------
+
+//  class wxToggleButton : public wxControl {
+//  public:
+//      wxToggleButton(wxWindow *parent, wxWindowID id, const wxString& label,
+//                     const wxPoint& pos = wxPyDefaultPosition,
+//                     const wxSize& size = wxPyDefaultSize, long style = 0,
+//                     const wxValidator& validator = wxPyDefaultValidator,
+//                     const char* name = "toggle");
+//      void SetValue(bool value);
+//      bool GetValue() const ;
+//      void SetLabel(const wxString& label);
+//  };
+
+//  class wxBitmapToggleButton : public wxToggleButton {
+//  public:
+//      wxBitmapToggleButton(wxWindow *parent, wxWindowID id, const wxBitmap *label,
+//                           const wxPoint& pos = wxPyDefaultPosition,
+//                           const wxSize& size = wxPyDefaultSize, long style = 0,
+//                           const wxValidator& validator = wxPyDefaultValidator,
+//                           const char *name = "toggle");
+//      void SetLabel(const wxBitmap& bitmap);
+//  };
+
+
 //----------------------------------------------------------------------
 
 class wxCheckBox : public wxControl {
@@ -106,7 +161,7 @@ public:
                const wxValidator& val = wxPyDefaultValidator,
                char* name = "checkBox");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     bool GetValue();
     void SetValue(const bool state);
@@ -119,12 +174,12 @@ public:
     wxChoice(wxWindow *parent, wxWindowID id,
              const wxPoint& pos = wxPyDefaultPosition,
              const wxSize& size = wxPyDefaultSize,
-             int LCOUNT=0, wxString* LIST=NULL,
+             int LCOUNT=0, wxString* choices=NULL,
              long style = 0,
              const wxValidator& validator = wxPyDefaultValidator,
              char* name = "choice");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     void Append(const wxString& item);
     void Clear();
@@ -141,17 +196,17 @@ public:
 
 //----------------------------------------------------------------------
 
-class wxComboBox : public wxControl {
+class wxComboBox : public wxChoice {
 public:
     wxComboBox(wxWindow* parent, wxWindowID id, char* value = "",
                const wxPoint& pos = wxPyDefaultPosition,
                const wxSize& size = wxPyDefaultSize,
-               int LCOUNT=0, wxString* LIST=NULL,
+               int LCOUNT=0, wxString* choices=NULL,
                long style = 0,
                const wxValidator& validator = wxPyDefaultValidator,
                char* name = "comboBox");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     void Append(const wxString& item);
     // TODO: void Append(const wxString& item, char* clientData);
@@ -175,7 +230,7 @@ public:
     // TODO:    void SetClientData(const int n, char* data);
     void SetInsertionPoint(long pos);
     void SetInsertionPointEnd();
-    void SetSelection(int n, bool select = TRUE);
+    void SetSelection(int n);
     %name(SetMark)void SetSelection(long from, long to);
     void SetValue(const wxString& text);
 };
@@ -191,7 +246,7 @@ public:
             const wxValidator& validator = wxPyDefaultValidator,
             char* name = "gauge");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     int GetBezelFace();
     int GetRange();
@@ -215,6 +270,19 @@ public:
 };
 
 
+//----------------------------------------------------------------------
+
+
+class wxStaticLine : public wxControl {
+public:
+    wxStaticLine( wxWindow *parent, wxWindowID id,
+                  const wxPoint &pos = wxPyDefaultPosition,
+                  const wxSize &size = wxPyDefaultSize,
+                  long style = wxLI_HORIZONTAL,
+                  const char* name = "staticLine" );
+};
+
+
 //----------------------------------------------------------------------
 
 class wxStaticText : public wxControl {
@@ -225,7 +293,7 @@ public:
                  long style = 0,
                  char* name = "staticText");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     wxString GetLabel();
     void SetLabel(const wxString& label);
@@ -238,12 +306,12 @@ public:
     wxListBox(wxWindow* parent, wxWindowID id,
               const wxPoint& pos = wxPyDefaultPosition,
               const wxSize& size = wxPyDefaultSize,
-              int LCOUNT, wxString* LIST = NULL,
+              int LCOUNT, wxString* choices = NULL,
               long style = 0,
               const wxValidator& validator = wxPyDefaultValidator,
               char* name = "listBox");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     void Append(const wxString& item);
     // TODO:    void Append(const wxString& item, char* clientData);
@@ -253,12 +321,27 @@ public:
     int FindString(const wxString& string);
     // TODO:    char* GetClientData(const int n);
     int GetSelection();
-    // TODO: int GetSelections(int **selections);
+
+    // int GetSelections(int **selections);
+    %addmethods {
+      PyObject* GetSelections() {
+          wxArrayInt lst;
+          self->GetSelections(lst);
+          PyObject *tup = PyTuple_New(lst.GetCount());
+          for(int i=0; i<lst.GetCount(); i++) {
+              PyTuple_SetItem(tup, i, PyInt_FromLong(lst[i]));
+          }
+          return tup;
+      }
+    }
+
+    void InsertItems(int LCOUNT, wxString* choices, int pos);
+
     wxString GetString(int n);
     wxString GetStringSelection();
     int Number();
     bool Selected(const int n);
-    void Set(int LCOUNT, wxString* LIST);
+    void Set(int LCOUNT, wxString* choices);
     // TODO:    void SetClientData(const int n, char* data);
     void SetFirstItem(int n);
     %name(SetFirstItemStr)void SetFirstItem(const wxString& string);
@@ -270,26 +353,25 @@ public:
 
 //----------------------------------------------------------------------
 
-#ifdef __WXMSW__
 class wxCheckListBox : public wxListBox {
 public:
     wxCheckListBox(wxWindow *parent, wxWindowID id,
                    const wxPoint& pos = wxPyDefaultPosition,
                    const wxSize& size = wxPyDefaultSize,
                    int LCOUNT = 0,
-                   wxString* LIST = NULL,
+                   wxString* choices = NULL,
                    long style = 0,
                    const wxValidator& validator = wxPyDefaultValidator,
                    char* name = "listBox");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     bool  IsChecked(int uiIndex);
-    void  Check(int uiIndex, bool bCheck = TRUE);
+    void  Check(int uiIndex, int bCheck = TRUE);
+    void InsertItems(int LCOUNT, wxString* choices, int pos);
 
     int GetItemHeight();
 };
-#endif
 
 //----------------------------------------------------------------------
 
@@ -302,7 +384,7 @@ public:
                const wxValidator& validator = wxPyDefaultValidator,
                char* name = "text");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     void Clear();
     void Copy();
@@ -328,7 +410,24 @@ public:
     void SetValue(const wxString& value);
     void ShowPosition(long pos);
     void WriteText(const wxString& text);
+    void AppendText(const wxString& text);
     long XYToPosition(long x, long y);
+
+    bool CanCopy();
+    bool CanCut();
+    bool CanPaste();
+    bool CanRedo();
+    bool CanUndo();
+    void GetSelection(long* OUTPUT, long* OUTPUT);
+    bool IsEditable();
+    void Undo();
+    void Redo();
+
+    %addmethods {
+        void write(const wxString& text) {
+            self->AppendText(text + '\n');
+        }
+    }
 };
 
 //----------------------------------------------------------------------
@@ -342,13 +441,14 @@ public:
                 const wxValidator& validator = wxPyDefaultValidator,
                 char* name = "scrollBar");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     int GetRange();
     int GetPageSize();
-    int GetPosition();
+    int GetThumbPosition();
     int GetThumbSize();
-    void SetPosition(int viewStart);
+    %name(GetThumbLength) int GetThumbSize();  // to match the docs
+    void SetThumbPosition(int viewStart);
     void SetScrollbar(int position, int thumbSize,
                       int range,    int pageSize,
                       bool refresh = TRUE);
@@ -382,10 +482,11 @@ public:
                    long style = 0,
                    char* name = "staticBitmap");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
-    wxBitmap& GetBitmap();
+    const wxBitmap& GetBitmap();
     void SetBitmap(const wxBitmap& bitmap);
+    void SetIcon(const wxIcon& icon);
 };
 
 //----------------------------------------------------------------------
@@ -396,27 +497,27 @@ public:
                const wxString& label,
                const wxPoint& point = wxPyDefaultPosition,
                const wxSize& size = wxPyDefaultSize,
-               int LCOUNT = 0, wxString* LIST = NULL,
+               int LCOUNT = 0, wxString* choices = NULL,
                int majorDimension = 0,
                long style = wxRA_HORIZONTAL,
                const wxValidator& validator = wxPyDefaultValidator,
                char* name = "radioBox");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
-    %name(EnableBox)void Enable(bool enable);
-    void Enable(int n, bool enable);
+    void Enable(bool enable);
+    %name(EnableItem)void Enable(int n, bool enable);
     int FindString(const wxString& string);
-#ifdef __WXMSW__
-    %name(GetBoxLabel)wxString GetLabel();
-#endif
-    wxString GetLabel(int n);
+
+//***    wxString GetLabel();
+//***    void SetLabel(const wxString& label);
+
+    %name(GetItemLabel)wxString GetLabel(int n);
     int GetSelection();
     wxString GetString(int n);
     wxString GetStringSelection();
     int Number();
-    %name(SetBoxLabel)void SetLabel(const wxString& label);
-    void SetLabel(int n, const wxString& label);
+    %name(SetItemLabel)void SetLabel(int n, const wxString& label);
     void SetSelection(int n);
     void SetStringSelection(const wxString& string);
     void Show(bool show);
@@ -435,7 +536,7 @@ public:
                   const wxValidator& validator = wxPyDefaultValidator,
                   char* name = "radioButton");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     bool GetValue();
     void SetValue(bool value);
@@ -453,7 +554,7 @@ public:
              const wxValidator& validator = wxPyDefaultValidator,
              char* name = "slider");
 
-    %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
 
     void ClearSel();
     void ClearTicks();
@@ -479,37 +580,3 @@ public:
 
 //----------------------------------------------------------------------
 
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// $Log$
-// Revision 1.7  1998/11/16 00:00:53  RD
-// Generic treectrl for wxPython/GTK compiles...
-//
-// Revision 1.6  1998/11/15 23:03:43  RD
-// Removing some ifdef's for wxGTK
-//
-// Revision 1.5  1998/10/07 07:34:32  RD
-// Version 0.4.1 for wxGTK
-//
-// Revision 1.4  1998/10/02 06:40:35  RD
-//
-// Version 0.4 of wxPython for MSW.
-//
-// Revision 1.3  1998/08/18 19:48:14  RD
-// more wxGTK compatibility things.
-//
-// It builds now but there are serious runtime problems...
-//
-// Revision 1.2  1998/08/15 07:36:28  RD
-// - Moved the header in the .i files out of the code that gets put into
-// the .cpp files.  It caused CVS conflicts because of the RCS ID being
-// different each time.
-//
-// - A few minor fixes.
-//
-// Revision 1.1  1998/08/09 08:25:49  RD
-// Initial version
-//
-//
-