]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_statusbar.i
better report if the subclass factory has import problems
[wxWidgets.git] / wxPython / src / _statusbar.i
index 360970e3fafb221d69b1d33c9aeec0db461fcfca..8cc9caab2448f362aec6041dc48567f48db61ae7 100644 (file)
 %newgroup;
 
 
+enum {
+    wxSB_NORMAL,
+    wxSB_FLAT,
+    wxSB_RAISED
+};
+
+
+
+      
 // wxStatusBar: a window near the bottom of the frame used for status info
+MustHaveApp(wxStatusBar);
 class wxStatusBar : public wxWindow
 {
 public:
-    %addtofunc wxStatusBar         "self._setOORInfo(self)"
-    %addtofunc wxStatusBar()       ""
+    %pythonAppend wxStatusBar         "self._setOORInfo(self)"
+    %pythonAppend wxStatusBar()       ""
+    %typemap(out) wxStatusBar*;    // turn off this typemap
     
     wxStatusBar(wxWindow* parent, wxWindowID id = -1,
-                long style = wxST_SIZEGRIP,
+                long style = wxDEFAULT_STATUSBAR_STYLE,
                 const wxString& name = wxPyStatusLineNameStr);
-    %name(PreStatusBar)wxStatusBar();
+    %RenameCtor(PreStatusBar, wxStatusBar());
+
+    // Turn it back on again
+    %typemap(out) wxStatusBar* { $result = wxPyMake_wxObject($1, $owner); }
 
-    bool Create(wxWindow* parent, wxWindowID id,
+    bool Create(wxWindow* parent, wxWindowID id=-1,
                 long style = wxST_SIZEGRIP,
                 const wxString& name = wxPyStatusLineNameStr);
 
@@ -56,17 +70,53 @@ public:
     // minus the sum of fixed width fields) is divided between the fields with
     // negative width according to the abs value of the width (field with width
     // -2 grows twice as much as one with width -1 &c)
-    virtual void SetStatusWidths(int widths, const int* widths_field); // uses typemap in _toplvl.i
+    virtual void SetStatusWidths(int widths, const int* widths_field); 
 
-    // Get the position and size of the field's internal bounding rectangle
-    virtual bool GetFieldRect(int i, wxRect& rect) const;
 
+    // Set the field style. Use either wxSB_NORMAL (default) for a standard 3D 
+    // border around a field, wxSB_FLAT for no border around a field, so that it 
+    // appears flat or wxSB_POPOUT to make the field appear raised.
+    // Setting field styles only works on wxMSW
+    virtual void SetStatusStyles(int styles, const int* styles_field);
+    
+    
+    // Get the position and size of the field's internal bounding rectangle
+    %extend {
+        wxRect GetFieldRect(int i) {
+            wxRect r;
+            self->GetFieldRect(i, r);
+            return r;
+        }
+    }
+    
     // sets the minimal vertical size of the status bar
     virtual void SetMinHeight(int height);
 
     // get the dimensions of the horizontal and vertical borders
     virtual int GetBorderX() const;
     virtual int GetBorderY() const;
+
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
+    %pythoncode {
+        def GetFields(self):
+            """Return a list of field values in the status bar. """
+            return [self.GetStatusText(i) for i in range(self.GetFieldsCount())]
+            
+        def SetFields(self, items):
+            """Set the values of the statusbar fields from a list of strings. """
+            self.SetFieldsCount(len(items))
+            for i in range(len(items)):
+                self.SetStatusText(items[i], i)
+    }
+    
+    %property(BorderX, GetBorderX, doc="See `GetBorderX`");
+    %property(BorderY, GetBorderY, doc="See `GetBorderY`");
+    %property(FieldRect, GetFieldRect, doc="See `GetFieldRect`");
+    %property(Fields, GetFields, SetFields, doc="See `GetFields` and `SetFields`");
+    %property(FieldsCount, GetFieldsCount, SetFieldsCount, doc="See `GetFieldsCount` and `SetFieldsCount`");
+    %property(StatusText, GetStatusText, SetStatusText, doc="See `GetStatusText` and `SetStatusText`");
 };