1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG interface defs for wxStatusBar
 
   7 // Created:     24-Aug-1998
 
   9 // Copyright:   (c) 2003 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  16 //---------------------------------------------------------------------------
 
  21 //---------------------------------------------------------------------------
 
  34 // wxStatusBar: a window near the bottom of the frame used for status info
 
  35 MustHaveApp(wxStatusBar);
 
  36 class wxStatusBar : public wxWindow
 
  39     %pythonAppend wxStatusBar         "self._setOORInfo(self)"
 
  40     %pythonAppend wxStatusBar()       ""
 
  41     %typemap(out) wxStatusBar*;    // turn off this typemap
 
  43     wxStatusBar(wxWindow* parent, wxWindowID id = -1,
 
  44                 long style = wxDEFAULT_STATUSBAR_STYLE,
 
  45                 const wxString& name = wxPyStatusLineNameStr);
 
  46     %RenameCtor(PreStatusBar, wxStatusBar());
 
  48     // Turn it back on again
 
  49     %typemap(out) wxStatusBar* { $result = wxPyMake_wxObject($1, $owner); }
 
  51     bool Create(wxWindow* parent, wxWindowID id=-1,
 
  52                 long style = wxST_SIZEGRIP,
 
  53                 const wxString& name = wxPyStatusLineNameStr);
 
  55     // set the number of fields and call SetStatusWidths(widths) if widths are
 
  57     virtual void SetFieldsCount(int number = 1 /*, const int *widths = NULL*/);
 
  58     int GetFieldsCount() const;
 
  60     virtual void SetStatusText(const wxString& text, int number = 0);
 
  61     virtual wxString GetStatusText(int number = 0) const;
 
  63     void PushStatusText(const wxString& text, int number = 0);
 
  64     void PopStatusText(int number = 0);
 
  67     // set status field widths as absolute numbers: positive widths mean that
 
  68     // the field has the specified absolute width, negative widths are
 
  69     // interpreted as the sizer options, i.e. the extra space (total space
 
  70     // minus the sum of fixed width fields) is divided between the fields with
 
  71     // negative width according to the abs value of the width (field with width
 
  72     // -2 grows twice as much as one with width -1 &c)
 
  73     virtual void SetStatusWidths(int widths, const int* widths_field); 
 
  76     // Set the field style. Use either wxSB_NORMAL (default) for a standard 3D 
 
  77     // border around a field, wxSB_FLAT for no border around a field, so that it 
 
  78     // appears flat or wxSB_POPOUT to make the field appear raised.
 
  79     // Setting field styles only works on wxMSW
 
  80     virtual void SetStatusStyles(int styles, const int* styles_field);
 
  83     // Get the position and size of the field's internal bounding rectangle
 
  85         wxRect GetFieldRect(int i) {
 
  87             self->GetFieldRect(i, r);
 
  92     // sets the minimal vertical size of the status bar
 
  93     virtual void SetMinHeight(int height);
 
  95     // get the dimensions of the horizontal and vertical borders
 
  96     virtual int GetBorderX() const;
 
  97     virtual int GetBorderY() const;
 
  99     static wxVisualAttributes
 
 100     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 
 104             """Return a list of field values in the status bar. """
 
 105             return [self.GetStatusText(i) for i in range(self.GetFieldsCount())]
 
 107         def SetFields(self, items):
 
 108             """Set the values of the statusbar fields from a list of strings. """
 
 109             self.SetFieldsCount(len(items))
 
 110             for i in range(len(items)):
 
 111                 self.SetStatusText(items[i], i)
 
 114     %property(BorderX, GetBorderX, doc="See `GetBorderX`");
 
 115     %property(BorderY, GetBorderY, doc="See `GetBorderY`");
 
 116     %property(FieldRect, GetFieldRect, doc="See `GetFieldRect`");
 
 117     %property(Fields, GetFields, SetFields, doc="See `GetFields` and `SetFields`");
 
 118     %property(FieldsCount, GetFieldsCount, SetFieldsCount, doc="See `GetFieldsCount` and `SetFieldsCount`");
 
 119     %property(StatusText, GetStatusText, SetStatusText, doc="See `GetStatusText` and `SetStatusText`");
 
 123 //---------------------------------------------------------------------------