/////////////////////////////////////////////////////////////////////////////
-// 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_