]> git.saurik.com Git - wxWidgets.git/blob - include/wx/gauge.h
handlers added using AddHandler() last must have the highest priority (patch 1522807)
[wxWidgets.git] / include / wx / gauge.h
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$
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:
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
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
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_