]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/gauge.h
Fix wxPropertyGrid::GetPropertyRect when the last item is collapsed.
[wxWidgets.git] / include / wx / msw / gauge.h
index 070d25ca464928a1cd9ca7207b5eca3b1ac59db7..ac820e99b7c0aeaf0070e3af071b420100cf17d7 100644 (file)
@@ -1,81 +1,77 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        gauge.h
-// Purpose:     wxGauge class
+// Name:        wx/msw/gauge.h
+// Purpose:     wxGauge implementation for MSW
 // Author:      Julian Smart
 // Modified by:
 // Created:     01/02/97
-// RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __GAUGEH__
-#define __GAUGEH__
+#ifndef _WX_MSW_GAUGE_H_
+#define _WX_MSW_GAUGE_H_
 
-#ifdef __GNUG__
-#pragma interface "gauge.h"
-#endif
+#if wxUSE_GAUGE
 
-#include "wx/control.h"
-
-WXDLLEXPORT_DATA(extern const char*) wxGaugeNameStr;
+extern WXDLLIMPEXP_DATA_CORE(const char) wxGaugeNameStr[];
 
 // Group box
-class WXDLLEXPORT wxGauge: public wxControl
+class WXDLLIMPEXP_CORE wxGauge : public wxGaugeBase
 {
-  DECLARE_DYNAMIC_CLASS(wxGauge)
- public:
-  inline wxGauge(void) { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = FALSE; }
-
-  inline wxGauge(wxWindow *parent, const wxWindowID id,
-           const int range,
-           const wxPoint& pos = wxDefaultPosition,
-           const wxSize& size = wxDefaultSize,
-           const long style = wxGA_HORIZONTAL,
-           const wxValidator& validator = wxDefaultValidator,
-           const wxString& name = wxGaugeNameStr)
-  {
-    Create(parent, id, range, pos, size, style, validator, name);
-  }
-
-  bool Create(wxWindow *parent, const wxWindowID id,
-           const int range,
-           const wxPoint& pos = wxDefaultPosition,
-           const wxSize& size = wxDefaultSize,
-           const long style = wxGA_HORIZONTAL,
-           const wxValidator& validator = wxDefaultValidator,
-           const wxString& name = wxGaugeNameStr);
-
-  void SetShadowWidth(const int w);
-  void SetBezelFace(const int w);
-  void SetRange(const int r);
-  void SetValue(const int pos);
-
-  int GetShadowWidth(void) const ;
-  int GetBezelFace(void) const ;
-  int GetRange(void) const ;
-  int GetValue(void) const ;
-
-  void SetForegroundColour(const wxColour& col);
-  void SetBackgroundColour(const wxColour& col);
-
-  // Backward compatibility
-#if WXWIN_COMPATIBILITY
-  inline void SetButtonColour(const wxColour& col) { SetForegroundColour(col); }
-#endif
-
-  void SetSize(const int x, const int y, const int width, const int height, const int sizeFlags = wxSIZE_AUTO);
-
-  // Are we a Win95 progress bar, or a normal gauge?
-  inline bool GetProgressBar(void) const { return m_useProgressBar; }
-
-  virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ;
-
- protected:
-   int      m_rangeMax;
-   int      m_gaugePos;
-   bool     m_useProgressBar;
+public:
+    wxGauge() { }
+
+    wxGauge(wxWindow *parent,
+            wxWindowID id,
+            int range,
+            const wxPoint& pos = wxDefaultPosition,
+            const wxSize& size = wxDefaultSize,
+            long style = wxGA_HORIZONTAL,
+            const wxValidator& validator = wxDefaultValidator,
+            const wxString& name = wxGaugeNameStr)
+    {
+        (void)Create(parent, id, range, pos, size, style, validator, name);
+    }
+
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                int range,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = wxGA_HORIZONTAL,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxGaugeNameStr);
+
+    // set gauge range/value
+    virtual void SetRange(int range);
+    virtual void SetValue(int pos);
+
+    // overridden base class virtuals
+    virtual bool SetForegroundColour(const wxColour& col);
+    virtual bool SetBackgroundColour(const wxColour& col);
+
+    virtual void Pulse();
+
+    WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+
+    // returns true if the platform should explicitly apply a theme border
+    virtual bool CanApplyThemeBorder() const { return false; }
+
+protected:
+    virtual wxSize DoGetBestSize() const;
+
+private:
+    // returns true if the control is currently in indeterminate (a.k.a.
+    // "marquee") mode
+    bool IsInIndeterminateMode() const;
+
+    // switch to/from indeterminate mode
+    void SetIndeterminateMode();
+    void SetDeterminateMode();
+
+    DECLARE_DYNAMIC_CLASS_NO_COPY(wxGauge)
 };
 
-#endif
-    // __GAUGEH__
+#endif // wxUSE_GAUGE
+
+#endif // _WX_MSW_GAUGE_H_