]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/stattool.i
Updates to match recent CVS changes.
[wxWidgets.git] / wxPython / src / stattool.i
index 37702d31f426891790c258c350c412ee8f6367ed..d209ba87e751ca43928f2a72889b1c2e291cb35e 100644 (file)
 
 %pragma(python) code = "import wx"
 
+
+//----------------------------------------------------------------------
+
+%{
+    // Put some wx default wxChar* values into wxStrings.
+    DECLARE_DEF_STRING(StatusLineNameStr);
+    DECLARE_DEF_STRING(ToolBarNameStr);
+    static const wxString wxPyEmptyString(wxT(""));
+%}
+
 //---------------------------------------------------------------------------
 
 class wxStatusBar : public wxWindow {
 public:
-    wxStatusBar(wxWindow* parent, wxWindowID id,
-                const wxPoint& pos = wxPyDefaultPosition,
-                const wxSize& size = wxPyDefaultSize,
+    wxStatusBar(wxWindow* parent, wxWindowID id = -1,
+                long style = wxST_SIZEGRIP,
+                const wxString& name = wxPyStatusLineNameStr);
+    %name(wxPreStatusBar)wxStatusBar();
+
+    bool Create(wxWindow* parent, wxWindowID id,
                 long style = wxST_SIZEGRIP,
-                char* name = "statusBar");
+                const wxString& name = wxPyStatusLineNameStr);
 
-    %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+    %pragma(python) addtomethod = "wxPreStatusBar:val._setOORInfo(val)"
 
     %addmethods {
         %new wxRect* GetFieldRect(long item) {
@@ -56,10 +70,6 @@ public:
     int GetBorderX();
     int GetBorderY();
 
-//      void DrawField(wxDC& dc, int i);
-//      void DrawFieldText(wxDC& dc, int i);
-//      void InitColours(void);
-
     void SetFieldsCount(int number = 1);
     void SetStatusText(const wxString& text, int i = 0);
     void SetStatusWidths(int LCOUNT, int* choices);
@@ -80,17 +90,17 @@ enum wxToolBarToolStyle
 
 
 
-class wxToolBarToolBase {
+class wxToolBarToolBase : public wxObject {
 public:
 //      wxToolBarToolBase(wxToolBarBase *tbar = (wxToolBarBase *)NULL,
 //                        int id = wxID_SEPARATOR,
-//                        const wxBitmap& bitmap1 = wxNullBitmap,
-//                        const wxBitmap& bitmap2 = wxNullBitmap,
-//                        bool toggle = FALSE,
+//                        const wxString& label = wxEmptyString,
+//                        const wxBitmap& bmpNormal = wxNullBitmap,
+//                        const wxBitmap& bmpDisabled = wxNullBitmap,
+//                        wxItemKind kind = wxITEM_NORMAL,
 //                        wxObject *clientData = (wxObject *) NULL,
 //                        const wxString& shortHelpString = wxEmptyString,
-//                        const wxString& longHelpString = wxEmptyString);
-//      wxToolBarToolBase(wxToolBarBase *tbar, wxControl *control);
+//                        const wxString& longHelpString = wxEmptyString)
 //      ~wxToolBarToolBase();
 
     %addmethods { void Destroy() { delete self; } }
@@ -102,21 +112,24 @@ public:
     int IsControl();
     int IsSeparator();
     int GetStyle();
+    wxItemKind GetKind();
     bool IsEnabled();
     bool IsToggled();
     bool CanBeToggled();
-    const wxBitmap& GetBitmap1();
-    const wxBitmap& GetBitmap2();
-    const wxBitmap& GetBitmap();
+    const wxBitmap& GetNormalBitmap();
+    const wxBitmap& GetDisabledBitmap();
+    wxBitmap GetBitmap();
+    wxString GetLabel();
     wxString GetShortHelp();
     wxString GetLongHelp();
     bool Enable(bool enable);
-    bool Toggle(bool toggle);
+    void Toggle();
     bool SetToggle(bool toggle);
     bool SetShortHelp(const wxString& help);
     bool SetLongHelp(const wxString& help);
-    void SetBitmap1(const wxBitmap& bmp);
-    void SetBitmap2(const wxBitmap& bmp);
+    void SetNormalBitmap(const wxBitmap& bmp);
+    void SetDisabledBitmap(const wxBitmap& bmp);
+    void SetLabel(const wxString& label);
     void Detach();
     void Attach(wxToolBarBase *tbar);
 
@@ -138,6 +151,13 @@ public:
             self->SetClientData(new wxPyUserData(clientData));
         }
     }
+
+    %pragma(python) addtoclass="
+    GetBitmap1 = GetNormalBitmap
+    GetBitmap2 = GetDisabledBitmap
+    SetBitmap1 = SetNormalBitmap
+    SetBitmap2 = SetDisabledBitmap
+    "
 };
 
 
@@ -148,57 +168,102 @@ public:
     // This is an Abstract Base Class
 
     %addmethods {
-        // wrap ClientData in a class that knows about PyObjects
+
+        // the full AddTool() function
+        //
+        // If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap
+        // is created and used as the disabled image.
         wxToolBarToolBase *AddTool(int id,
+                                   const wxString& label,
                                    const wxBitmap& bitmap,
-                                   const wxBitmap& pushedBitmap = wxNullBitmap,
-                                   int toggle = FALSE,
-                                   PyObject *clientData = NULL,
-                                   const wxString& shortHelpString = wxPyEmptyStr,
-                                   const wxString& longHelpString = wxPyEmptyStr) {
+                                   const wxBitmap& bmpDisabled,
+                                   wxItemKind kind = wxITEM_NORMAL,
+                                   const wxString& shortHelp = wxPyEmptyString,
+                                   const wxString& longHelp = wxPyEmptyString,
+                                   PyObject *clientData = NULL)
+        {
             wxPyUserData* udata = NULL;
             if (clientData)
                 udata = new wxPyUserData(clientData);
-            return self->AddTool(id, bitmap, pushedBitmap, (bool)toggle,
-                                 udata, shortHelpString, longHelpString);
+            return self->AddTool(id, label, bitmap, bmpDisabled, kind,
+                                 shortHelp, longHelp, udata);
         }
 
-        // This one is easier to use...
+        // The most common version of AddTool
         wxToolBarToolBase *AddSimpleTool(int id,
+                                         const wxString& label,
                                          const wxBitmap& bitmap,
-                                         const wxString& shortHelpString = wxPyEmptyStr,
-                                         const wxString& longHelpString = wxPyEmptyStr,
-                                         int toggle = FALSE) {
-            return self->AddTool(id, bitmap, wxNullBitmap, toggle, NULL,
-                                 shortHelpString, longHelpString);
+                                         const wxString& shortHelp = wxPyEmptyString,
+                                         const wxString& longHelp = wxPyEmptyString,
+                                         wxItemKind kind = wxITEM_NORMAL)
+        {
+            return self->AddTool(id, label, bitmap, wxNullBitmap, kind,
+                                 shortHelp, longHelp, NULL);
         }
 
+        // add a check tool, i.e. a tool which can be toggled
+        wxToolBarToolBase *AddCheckTool(int id,
+                                        const wxString& label,
+                                        const wxBitmap& bitmap,
+                                        const wxBitmap& bmpDisabled = wxNullBitmap,
+                                        const wxString& shortHelp = wxEmptyString,
+                                        const wxString& longHelp = wxEmptyString,
+                                        PyObject *clientData = NULL)
+        {
+            wxPyUserData* udata = NULL;
+            if (clientData)
+                udata = new wxPyUserData(clientData);
+            return self->AddCheckTool(id, label, bitmap, bmpDisabled,
+                                      shortHelp, longHelp, udata);
+        }
+
+        // add a radio tool, i.e. a tool which can be toggled and releases any
+        // other toggled radio tools in the same group when it happens
+        wxToolBarToolBase *AddRadioTool(int id,
+                                    const wxString& label,
+                                    const wxBitmap& bitmap,
+                                    const wxBitmap& bmpDisabled = wxNullBitmap,
+                                    const wxString& shortHelp = wxEmptyString,
+                                    const wxString& longHelp = wxEmptyString,
+                                    PyObject *clientData = NULL)
+        {
+            wxPyUserData* udata = NULL;
+            if (clientData)
+                udata = new wxPyUserData(clientData);
+            return self->AddRadioTool(id, label, bitmap, bmpDisabled,
+                                      shortHelp, longHelp, udata);
+        }
 
-        // wrap ClientData in a class that knows about PyObjects
+        // insert the new tool at the given position, if pos == GetToolsCount(), it
+        // is equivalent to AddTool()
         wxToolBarToolBase *InsertTool(size_t pos,
                                       int id,
+                                      const wxString& label,
                                       const wxBitmap& bitmap,
-                                      const wxBitmap& pushedBitmap = wxNullBitmap,
-                                      int toggle = FALSE,
-                                      PyObject *clientData = NULL,
-                                      const wxString& shortHelpString = wxPyEmptyStr,
-                                      const wxString& longHelpString = wxPyEmptyStr) {
+                                      const wxBitmap& bmpDisabled = wxNullBitmap,
+                                      wxItemKind kind = wxITEM_NORMAL,
+                                      const wxString& shortHelp = wxEmptyString,
+                                      const wxString& longHelp = wxEmptyString,
+                                      PyObject *clientData = NULL)
+        {
             wxPyUserData* udata = NULL;
             if (clientData)
                 udata = new wxPyUserData(clientData);
-            return self->InsertTool(pos, id, bitmap, pushedBitmap, (bool)toggle,
-                                    udata, shortHelpString, longHelpString);
+            return self->InsertTool(pos, id, label, bitmap, bmpDisabled, kind,
+                                    shortHelp, longHelp, udata);
         }
 
-        // This one is easier to use...
+        // A simpler InsertTool
         wxToolBarToolBase *InsertSimpleTool(size_t pos,
-                                            int id,
-                                            const wxBitmap& bitmap,
-                                            const wxString& shortHelpString = wxPyEmptyStr,
-                                            const wxString& longHelpString = wxPyEmptyStr,
-                                            int toggle = FALSE) {
-            return self->InsertTool(pos, id, bitmap, wxNullBitmap, toggle, NULL,
-                                    shortHelpString, longHelpString);
+                                      int id,
+                                      const wxString& label,
+                                      const wxBitmap& bitmap,
+                                      wxItemKind kind = wxITEM_NORMAL,
+                                      const wxString& shortHelp = wxEmptyString,
+                                      const wxString& longHelp = wxEmptyString)
+        {
+            return self->InsertTool(pos, id, label, bitmap, wxNullBitmap, kind,
+                                    shortHelp, longHelp);
         }
     }
 
@@ -223,8 +288,8 @@ public:
 
     %addmethods {
         // convert the ClientData back to a PyObject
-        PyObject* GetToolClientData(int index) {
-            wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(index);
+        PyObject* GetToolClientData(int id) {
+            wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(id);
             if (udata) {
                 Py_INCREF(udata->m_obj);
                 return udata->m_obj;
@@ -234,8 +299,8 @@ public:
             }
         }
 
-        void SetToolClientData(int index, PyObject* clientData) {
-            self->SetToolClientData(index, new wxPyUserData(clientData));
+        void SetToolClientData(int id, PyObject* clientData) {
+            self->SetToolClientData(id, new wxPyUserData(clientData));
         }
     }
 
@@ -252,6 +317,7 @@ public:
     void SetToolPacking(int packing);
     void SetToolSeparation(int separation);
     wxSize GetToolMargins();
+    wxSize GetMargins();
     int GetToolPacking();
     int GetToolSeparation();
 
@@ -264,6 +330,12 @@ public:
     wxSize GetToolBitmapSize();
     wxSize GetToolSize();
 
+    // returns a (non separator) tool containing the point (x, y) or NULL if
+    // there is no tool at this point (corrdinates are client)
+    wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
+
+    // return TRUE if this is a vertical toolbar, otherwise FALSE
+    bool IsVertical();
 };
 
 
@@ -273,12 +345,21 @@ class wxToolBar : public wxToolBarBase {
 public:
     wxToolBar(wxWindow *parent,
               wxWindowID id,
-              const wxPoint& pos = wxPyDefaultPosition,
-              const wxSize& size = wxPyDefaultSize,
+              const wxPoint& pos = wxDefaultPosition,
+              const wxSize& size = wxDefaultSize,
               long style = wxNO_BORDER | wxTB_HORIZONTAL,
-              const char* name = wxToolBarNameStr);
+              const wxString& name = wxPyToolBarNameStr);
+    %name(wxPreToolBar)wxToolBar();
 
-    %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
+    bool Create(wxWindow *parent,
+              wxWindowID id,
+              const wxPoint& pos = wxDefaultPosition,
+              const wxSize& size = wxDefaultSize,
+              long style = wxNO_BORDER | wxTB_HORIZONTAL,
+              const wxString& name = wxPyToolBarNameStr);
+
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+    %pragma(python) addtomethod = "wxPreToolBar:val._setOORInfo(val)"
 
     wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
 };
@@ -290,131 +371,25 @@ class wxToolBarSimple : public wxToolBarBase {
 public:
     wxToolBarSimple(wxWindow *parent,
                     wxWindowID id,
-                    const wxPoint& pos = wxPyDefaultPosition,
-                    const wxSize& size = wxPyDefaultSize,
+                    const wxPoint& pos = wxDefaultPosition,
+                    const wxSize& size = wxDefaultSize,
                     long style = wxNO_BORDER | wxTB_HORIZONTAL,
-                    const char* name = wxToolBarNameStr);
+                    const wxString& name = wxPyToolBarNameStr);
+    %name(wxPreToolBarSimple)wxToolBarSimple();
 
-    %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
+    bool Create(wxWindow *parent,
+                    wxWindowID id,
+                    const wxPoint& pos = wxDefaultPosition,
+                    const wxSize& size = wxDefaultSize,
+                    long style = wxNO_BORDER | wxTB_HORIZONTAL,
+                    const wxString& name = wxPyToolBarNameStr);
+
+    %pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
+    %pragma(python) addtomethod = "wxPreToolBarSimple:val._setOORInfo(val)"
 
     wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
 };
 
 //---------------------------------------------------------------------------
-
-
-
-#ifdef THE_OLD_ONE
-
-class wxToolBarTool {
-public:
-    wxToolBarTool();
-    ~wxToolBarTool();
-    void SetSize( long w, long h )
-    long GetWidth ();
-    long GetHeight ();
-    wxControl *GetControl();
-
-public:
-    int                   m_toolStyle;
-    wxObject *            m_clientData;
-    int                   m_index;
-    long                  m_x;
-    long                  m_y;
-    long                  m_width;
-    long                  m_height;
-    bool                  m_toggleState;
-    bool                  m_isToggle;
-    bool                  m_deleteSecondBitmap;
-    bool                  m_enabled;
-    wxBitmap              m_bitmap1;
-    wxBitmap              m_bitmap2;
-    bool                  m_isMenuCommand;
-    wxString              m_shortHelpString;
-    wxString              m_longHelpString;
-};
-
-
-
-//  class wxToolBarBase : public wxControl {
-//  public:
-
-class wxToolBar : public wxControl {
-public:
-    wxToolBar(wxWindow* parent, wxWindowID id,
-              const wxPoint& pos = wxPyDefaultPosition,
-              const wxSize& size = wxPyDefaultSize,
-              long style = wxTB_HORIZONTAL | wxNO_BORDER,
-              char* name = "toolBar");
-
-    %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
-
-
-    bool AddControl(wxControl * control);
-    void AddSeparator();
-    void ClearTools();
-
-    // Ignoge the clientData for now...
-    %addmethods {
-        wxToolBarTool* AddTool(int toolIndex,
-                               const wxBitmap& bitmap1,
-                               const wxBitmap& bitmap2 = wxNullBitmap,
-                               int  isToggle = FALSE,
-                               long xPos = -1,
-                               long yPos = -1,
-                               //wxObject* clientData = NULL,
-                               const wxString& shortHelpString = wxPyEmptyStr,
-                               const wxString& longHelpString = wxPyEmptyStr) {
-            return self->AddTool(toolIndex, bitmap1, bitmap2,
-                                 isToggle, xPos, yPos, NULL,
-                                 shortHelpString, longHelpString);
-        }
-
-        wxToolBarTool* AddSimpleTool(int toolIndex,
-                               const wxBitmap& bitmap,
-                               const wxString& shortHelpString = wxPyEmptyStr,
-                               const wxString& longHelpString = wxPyEmptyStr) {
-            return self->AddTool(toolIndex, bitmap, wxNullBitmap,
-                                 FALSE, -1, -1, NULL,
-                                 shortHelpString, longHelpString);
-        }
-    }
-
-
-    void EnableTool(int toolIndex, bool enable);
-#ifdef __WXMSW__
-    wxToolBarTool* FindToolForPosition(long x, long y);
-    wxSize GetToolSize();
-    wxSize GetToolBitmapSize();
-    void SetToolBitmapSize(const wxSize& size);
-    wxSize GetMaxSize();
-#endif
-    wxSize GetToolMargins();
-//    wxObject* GetToolClientData(int toolIndex);
-    bool GetToolEnabled(int toolIndex);
-    wxString GetToolLongHelp(int toolIndex);
-    int GetToolPacking();
-    int GetToolSeparation();
-    wxString GetToolShortHelp(int toolIndex);
-    bool GetToolState(int toolIndex);
-
-
-    bool Realize();
-
-    void SetToolLongHelp(int toolIndex, const wxString& helpString);
-    void SetToolShortHelp(int toolIndex, const wxString& helpString);
-    void SetMargins(const wxSize& size);
-    void SetToolPacking(int packing);
-    void SetToolSeparation(int separation);
-    void ToggleTool(int toolIndex, const bool toggle);
-    void SetToggle(int toolIndex, bool toggle);
-    void SetMaxRowsCols(int rows, int cols);
-    int GetMaxRows();
-    int GetMaxCols();
-};
-
-
-#endif
-
 //---------------------------------------------------------------------------