1 ///////////////////////////////////////////////////////////////////////////////
2 // Name:        wx/gauge.h
3 // Purpose:     wxGauge interface
4 // Author:      Vadim Zeitlin
5 // Modified by:
6 // Created:     20.02.01
7 // RCS-ID:      $Id: gauge.h 41089 2006-09-09 13:36:54Z RR $
8 // Copyright:   (c) 1996-2001 wxWidgets team
9 // Licence:     wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11 
12 #ifndef _WX_GAUGE_H_BASE_
13 #define _WX_GAUGE_H_BASE_
14 
15 #include "wx/defs.h"
16 
17 #if wxUSE_GAUGE
18 
19 #include "wx/control.h"
20 
21 // ----------------------------------------------------------------------------
22 // wxGauge style flags
23 // ----------------------------------------------------------------------------
24 
25 #define wxGA_HORIZONTAL      wxHORIZONTAL
26 #define wxGA_VERTICAL        wxVERTICAL
27 
28 // Win32 only, is default (and only) on some other platforms
29 #define wxGA_SMOOTH          0x0020
30 
31 #if WXWIN_COMPATIBILITY_2_6
32     // obsolete style
33     #define wxGA_PROGRESSBAR     0
34 #endif // WXWIN_COMPATIBILITY_2_6
35 
36 // GTK and Mac always have native implementation of the indeterminate mode
37 // wxMSW has native implementation only if comctl32.dll >= 6.00
38 #if !defined(__WXGTK20__) && !defined(__WXMAC__) && !defined(__WXCOCOA__)
39     #define wxGAUGE_EMULATE_INDETERMINATE_MODE 1
40 #else
41     #define wxGAUGE_EMULATE_INDETERMINATE_MODE 0
42 #endif
43 
44 extern WXDLLEXPORT_DATA(const wxChar) wxGaugeNameStr[];
45 
46 // ----------------------------------------------------------------------------
47 // wxGauge: a progress bar
48 // ----------------------------------------------------------------------------
49 
50 class WXDLLEXPORT wxGaugeBase : public wxControl
51 {
52 public:
wxGaugeBase()53     wxGaugeBase() { m_rangeMax = m_gaugePos = 0; }
54     virtual ~wxGaugeBase();
55 
56     bool Create(wxWindow *parent,
57                 wxWindowID id,
58                 int range,
59                 const wxPoint& pos = wxDefaultPosition,
60                 const wxSize& size = wxDefaultSize,
61                 long style = wxGA_HORIZONTAL,
62                 const wxValidator& validator = wxDefaultValidator,
63                 const wxString& name = wxGaugeNameStr);
64 
65     // determinate mode API
66 
67     // set/get the control range
68     virtual void SetRange(int range);
69     virtual int GetRange() const;
70 
71     virtual void SetValue(int pos);
72     virtual int GetValue() const;
73 
74     // indeterminate mode API
75     virtual void Pulse();
76 
77     // simple accessors
IsVertical()78     bool IsVertical() const { return HasFlag(wxGA_VERTICAL); }
79 
80     // appearance params (not implemented for most ports)
81     virtual void SetShadowWidth(int w);
82     virtual int GetShadowWidth() const;
83 
84     virtual void SetBezelFace(int w);
85     virtual int GetBezelFace() const;
86 
87     // overriden base class virtuals
AcceptsFocus()88     virtual bool AcceptsFocus() const { return false; }
89 
90 protected:
91     // the max position
92     int m_rangeMax;
93 
94     // the current position
95     int m_gaugePos;
96 
97 #if wxGAUGE_EMULATE_INDETERMINATE_MODE
98     int m_nDirection;       // can be wxRIGHT or wxLEFT
99 #endif
100 
101     DECLARE_NO_COPY_CLASS(wxGaugeBase)
102 };
103 
104 #if defined(__WXUNIVERSAL__)
105     #include "wx/univ/gauge.h"
106 #elif defined(__WXMSW__)
107     #include "wx/msw/gauge95.h"
108     #define wxGauge wxGauge95
109 #elif defined(__WXMOTIF__)
110     #include "wx/motif/gauge.h"
111 #elif defined(__WXGTK20__)
112     #include "wx/gtk/gauge.h"
113 #elif defined(__WXGTK__)
114     #include "wx/gtk1/gauge.h"
115 #elif defined(__WXMAC__)
116     #include "wx/mac/gauge.h"
117 #elif defined(__WXCOCOA__)
118     #include "wx/cocoa/gauge.h"
119 #elif defined(__WXPM__)
120     #include "wx/os2/gauge.h"
121 #endif
122 
123 #endif // wxUSE_GAUGE
124 
125 #endif
126     // _WX_GAUGE_H_BASE_
127