]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/gauge.h
remove SetBackgroundStyle call from OnInternalIdle, it should be done from realize...
[wxWidgets.git] / include / wx / msw / gauge.h
index 3b5569a769a1229e3b8099241dac80158f443bd1..4ddbd3bd0efe6e9a2e6b220774c9749b7f8d40a8 100644 (file)
@@ -1,30 +1,78 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// Name:        gauge.h
-// Purpose:     wxGauge header, includes gauge class headers as appropriate
+// 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
 // Author:      Julian Smart
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_GAUGE_H_
-#define _WX_GAUGE_H_
-
-#ifdef __GNUG__
-#pragma interface "gauge.h"
-#endif
-
-#ifdef __WIN95__
-#include "wx/msw/gauge95.h"
-#define wxGauge wxGauge95
-#define sm_classwxGauge sm_classwxGauge95
-#else
-#include "wx/msw/gaugemsw.h"
-#define wxGauge wxGaugeMSW
-#define sm_classwxGauge sm_classwxGaugeMSW
-#endif
-
-#endif
-    // _WX_GAUGE_H_
+#ifndef _WX_MSW_GAUGE_H_
+#define _WX_MSW_GAUGE_H_
+
+#if wxUSE_GAUGE
+
+extern WXDLLIMPEXP_DATA_CORE(const char) wxGaugeNameStr[];
+
+// Group box
+class WXDLLIMPEXP_CORE wxGauge : public wxGaugeBase
+{
+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 // wxUSE_GAUGE
+
+#endif // _WX_MSW_GAUGE_H_