X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6418ad5ec8e66c3b367b59b56e0849399774f3ec..db51298a741c46719a70884f750befc3b5749036:/include/wx/msw/statusbar.h?ds=sidebyside diff --git a/include/wx/msw/statusbar.h b/include/wx/msw/statusbar.h index 4d148481b5..1e9ca99054 100644 --- a/include/wx/msw/statusbar.h +++ b/include/wx/msw/statusbar.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/statbr.h +// Name: wx/msw/statusbar.h // Purpose: native implementation of wxStatusBar // Author: Vadim Zeitlin // Modified by: @@ -40,28 +40,17 @@ public: virtual ~wxStatusBar(); - // a status line can have several (<256) fields numbered from 0 + // implement base class methods virtual void SetFieldsCount(int number = 1, const int *widths = NULL); - - // each field of status line has it's own text - virtual void SetStatusText(const wxString& text, int number = 0); - - // set status line fields' widths virtual void SetStatusWidths(int n, const int widths_field[]); - - // set status line fields' styles virtual void SetStatusStyles(int n, const int styles[]); - - // sets the minimal vertical size of the status bar virtual void SetMinHeight(int height); - - // get the position and size of the field's internal bounding rectangle virtual bool GetFieldRect(int i, wxRect& rect) const; - // get the border size virtual int GetBorderX() const; virtual int GetBorderY() const; + // override some wxWindow virtual methods too virtual bool SetFont(const wxFont& font); virtual WXLRESULT MSWWindowProc(WXUINT nMsg, @@ -69,11 +58,11 @@ public: WXLPARAM lParam); protected: - void CopyFieldsWidth(const int widths[]); - void SetFieldsWidth(); - void UpdateFieldText(int nField); + // implement base class pure virtual method + virtual void DoUpdateStatusText(int number); // override some base class virtuals + virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; virtual wxSize DoGetBestSize() const; virtual void DoMoveWindow(int x, int y, int width, int height); #if wxUSE_TOOLTIPS @@ -81,13 +70,40 @@ protected: virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result); #endif - // used by UpdateFieldText + // implementation of the public SetStatusWidths() + void MSWUpdateFieldsWidths(); + + // used by DoUpdateStatusText() wxClientDC *m_pDC; +#if wxUSE_TOOLTIPS // the tooltips used when wxSTB_SHOW_TIPS is given wxVector m_tooltips; +#endif private: + struct MSWBorders + { + int horz, + vert, + between; + }; + + // retrieve all status bar borders using SB_GETBORDERS + MSWBorders MSWGetBorders() const; + + // return the size of the border between the fields + int MSWGetBorderWidth() const; + + struct MSWMetrics + { + int gripWidth, + textMargin; + }; + + // return the various status bar metrics + static const MSWMetrics& MSWGetMetrics(); + DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBar) };