]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/statusbar.h
Add missing WXK constants for the control keys
[wxWidgets.git] / include / wx / msw / statusbar.h
index 4d148481b541568bf10d38ad090d6b4cc86e497f..1e9ca990548e9af9888806276ca1765133127602 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        wx/msw/statbr.h
+// Name:        wx/msw/statusbar.h
 // Purpose:     native implementation of wxStatusBar
 // Author:      Vadim Zeitlin
 // Modified by:
 // Purpose:     native implementation of wxStatusBar
 // Author:      Vadim Zeitlin
 // Modified by:
@@ -40,28 +40,17 @@ public:
 
     virtual ~wxStatusBar();
 
 
     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);
     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[]);
     virtual void SetStatusWidths(int n, const int widths_field[]);
-
-    // set status line fields' styles
     virtual void SetStatusStyles(int n, const int styles[]);
     virtual void SetStatusStyles(int n, const int styles[]);
-
-    // sets the minimal vertical size of the status bar
     virtual void SetMinHeight(int height);
     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;
 
     virtual bool GetFieldRect(int i, wxRect& rect) const;
 
-    // get the border size
     virtual int GetBorderX() const;
     virtual int GetBorderY() const;
 
     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,
     virtual bool SetFont(const wxFont& font);
 
     virtual WXLRESULT MSWWindowProc(WXUINT nMsg,
@@ -69,11 +58,11 @@ public:
                                     WXLPARAM lParam);
 
 protected:
                                     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
 
     // 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
     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
 
     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;
 
     wxClientDC *m_pDC;
 
+#if wxUSE_TOOLTIPS
     // the tooltips used when wxSTB_SHOW_TIPS is given
     wxVector<wxToolTip*> m_tooltips;
     // the tooltips used when wxSTB_SHOW_TIPS is given
     wxVector<wxToolTip*> m_tooltips;
+#endif
 
 private:
 
 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)
 };
 
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBar)
 };