X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/78612fa68fdeb01b2cb0fa8b2b89fc8924bb71ff..d642db66a5efc82d374b813022c72ba88bc50839:/include/wx/generic/statusbr.h diff --git a/include/wx/generic/statusbr.h b/include/wx/generic/statusbr.h index 4b195104f0..a27eaf6dad 100644 --- a/include/wx/generic/statusbr.h +++ b/include/wx/generic/statusbr.h @@ -30,7 +30,7 @@ public: wxStatusBarGeneric() { Init(); } wxStatusBarGeneric(wxWindow *parent, wxWindowID winid = wxID_ANY, - long style = wxST_SIZEGRIP, + long style = wxSTB_DEFAULT_STYLE, const wxString& name = wxStatusBarNameStr) { Init(); @@ -41,50 +41,47 @@ public: virtual ~wxStatusBarGeneric(); bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY, - long style = wxST_SIZEGRIP, + long style = wxSTB_DEFAULT_STYLE, const wxString& name = wxStatusBarNameStr); - // Create status line - virtual void SetFieldsCount(int number = 1, - const int *widths = (const int *) NULL); - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - virtual wxString GetStatusText(int number = 0) const; - - // Set status line widths + // implement base class methods virtual void SetStatusWidths(int n, const int widths_field[]); - - // Get the position and size of the field's internal bounding rectangle virtual bool GetFieldRect(int i, wxRect& rect) const; - - // sets the minimal vertical size of the status bar virtual void SetMinHeight(int height); virtual int GetBorderX() const { return m_borderX; } virtual int GetBorderY() const { return m_borderY; } -protected: + // implementation only (not part of wxStatusBar public API): - virtual void DrawFieldText(wxDC& dc, int i); - virtual void DrawField(wxDC& dc, int i); + int GetFieldFromPoint(const wxPoint& point) const; - void SetBorderX(int x); - void SetBorderY(int y); +protected: + virtual void DoUpdateStatusText(int number); + // event handlers void OnPaint(wxPaintEvent& event); + void OnSize(wxSizeEvent& event); void OnLeftDown(wxMouseEvent& event); void OnRightDown(wxMouseEvent& event); - virtual void InitColours(); - // Responds to colour changes void OnSysColourChanged(wxSysColourChangedEvent& event); +protected: + + virtual void DrawFieldText(wxDC& dc, const wxRect& rc, int i, int textHeight); + virtual void DrawField(wxDC& dc, int i, int textHeight); + + void SetBorderX(int x); + void SetBorderY(int y); + + virtual void InitColours(); + // true if the status bar shows the size grip: for this it must have - // wxST_SIZEGRIP style and the window it is attached to must be resizeable + // wxSTB_SIZEGRIP style and the window it is attached to must be resizable // and not maximized bool ShowsSizeGrip() const; @@ -94,23 +91,25 @@ protected: // common part of all ctors void Init(); - // the array of the currently displayed strings - wxArrayString m_statusStrings; - - // the last known width of the client rect (used to rebuild cache) - int m_lastClientWidth; + // the last known size, fields widths must be updated whenever it's out of + // date + wxSize m_lastClientSize; // the absolute widths of the status bar panes in pixels wxArrayInt m_widthsAbs; int m_borderX; int m_borderY; + wxPen m_mediumShadowPen; wxPen m_hilightPen; virtual wxSize DoGetBestSize() const; private: + // Update m_lastClientSize and m_widthsAbs from the current size. + void DoUpdateFieldWidths(); + DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBarGeneric) };