X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..846b11857e328bd01ae377e419107d2ff08339f3:/wxPython/src/_statusbar.i diff --git a/wxPython/src/_statusbar.i b/wxPython/src/_statusbar.i index 360970e3fa..8cc9caab24 100644 --- a/wxPython/src/_statusbar.i +++ b/wxPython/src/_statusbar.i @@ -22,19 +22,33 @@ %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`"); };