svn-gvsig-desktop / trunk / install / launcher / izpack-launcher-1.3_linux / src / wx / include / wx / generic / spinctlg.h @ 6834
History | View | Annotate | Download (5.62 KB)
1 |
/////////////////////////////////////////////////////////////////////////////
|
---|---|
2 |
// Name: wx/generic/spinctlg.h
|
3 |
// Purpose: generic wxSpinCtrl class
|
4 |
// Author: Vadim Zeitlin
|
5 |
// Modified by:
|
6 |
// Created: 28.10.99
|
7 |
// RCS-ID: $Id: spinctlg.h 6834 2006-08-24 08:23:24Z jmvivo $
|
8 |
// Copyright: (c) Vadim Zeitlin
|
9 |
// Licence: wxWindows licence
|
10 |
/////////////////////////////////////////////////////////////////////////////
|
11 |
|
12 |
#ifndef _WX_GENERIC_SPINCTRL_H_
|
13 |
#define _WX_GENERIC_SPINCTRL_H_
|
14 |
|
15 |
// ----------------------------------------------------------------------------
|
16 |
// wxSpinCtrl is a combination of wxSpinButton and wxTextCtrl, so if
|
17 |
// wxSpinButton is available, this is what we do - but if it isn't, we still
|
18 |
// define wxSpinCtrl class which then has the same appearance as wxTextCtrl but
|
19 |
// the different interface. This allows to write programs using wxSpinCtrl
|
20 |
// without tons of #ifdefs.
|
21 |
// ----------------------------------------------------------------------------
|
22 |
|
23 |
#if wxUSE_SPINBTN
|
24 |
|
25 |
class WXDLLEXPORT wxSpinButton; |
26 |
class WXDLLEXPORT wxTextCtrl; |
27 |
|
28 |
// ----------------------------------------------------------------------------
|
29 |
// wxSpinCtrl is a combination of wxTextCtrl and wxSpinButton
|
30 |
// ----------------------------------------------------------------------------
|
31 |
|
32 |
class WXDLLEXPORT wxSpinCtrl : public wxControl |
33 |
{ |
34 |
public:
|
35 |
wxSpinCtrl() { Init(); } |
36 |
|
37 |
wxSpinCtrl(wxWindow *parent, |
38 |
wxWindowID id = -1,
|
39 |
const wxString& value = wxEmptyString,
|
40 |
const wxPoint& pos = wxDefaultPosition,
|
41 |
const wxSize& size = wxDefaultSize,
|
42 |
long style = wxSP_ARROW_KEYS,
|
43 |
int min = 0, int max = 100, int initial = 0, |
44 |
const wxString& name = _T("wxSpinCtrl")) |
45 |
{ |
46 |
Init(); |
47 |
Create(parent, id, value, pos, size, style, min, max, initial, name); |
48 |
} |
49 |
|
50 |
bool Create(wxWindow *parent,
|
51 |
wxWindowID id = -1,
|
52 |
const wxString& value = wxEmptyString,
|
53 |
const wxPoint& pos = wxDefaultPosition,
|
54 |
const wxSize& size = wxDefaultSize,
|
55 |
long style = wxSP_ARROW_KEYS,
|
56 |
int min = 0, int max = 100, int initial = 0, |
57 |
const wxString& name = _T("wxSpinCtrl")); |
58 |
|
59 |
virtual ~wxSpinCtrl(); |
60 |
|
61 |
// operations
|
62 |
void SetValue(int val); |
63 |
void SetValue(const wxString& text); |
64 |
void SetRange(int min, int max); |
65 |
void SetSelection(long from, long to); |
66 |
|
67 |
// accessors
|
68 |
int GetValue() const; |
69 |
int GetMin() const; |
70 |
int GetMax() const; |
71 |
|
72 |
// implementation from now on
|
73 |
|
74 |
// forward these functions to all subcontrols
|
75 |
virtual bool Enable(bool enable = TRUE); |
76 |
virtual bool Show(bool show = TRUE); |
77 |
|
78 |
// get the subcontrols
|
79 |
wxTextCtrl *GetText() const { return m_text; } |
80 |
wxSpinButton *GetSpinButton() const { return m_btn; } |
81 |
|
82 |
// set the value of the text (only)
|
83 |
void SetTextValue(int val); |
84 |
|
85 |
// put the numeric value of the string in the text ctrl into val and return
|
86 |
// TRUE or return FALSE if the text ctrl doesn't contain a number or if the
|
87 |
// number is out of range
|
88 |
bool GetTextValue(int *val) const; |
89 |
|
90 |
protected:
|
91 |
// override the base class virtuals involved into geometry calculations
|
92 |
virtual wxSize DoGetBestSize() const;
|
93 |
virtual void DoMoveWindow(int x, int y, int width, int height); |
94 |
|
95 |
// common part of all ctors
|
96 |
void Init();
|
97 |
|
98 |
private:
|
99 |
// the subcontrols
|
100 |
wxTextCtrl *m_text; |
101 |
wxSpinButton *m_btn; |
102 |
|
103 |
private:
|
104 |
DECLARE_DYNAMIC_CLASS(wxSpinCtrl) |
105 |
}; |
106 |
|
107 |
#else // !wxUSE_SPINBTN |
108 |
|
109 |
// ----------------------------------------------------------------------------
|
110 |
// wxSpinCtrl is just a text control
|
111 |
// ----------------------------------------------------------------------------
|
112 |
|
113 |
#include "wx/textctrl.h" |
114 |
|
115 |
class WXDLLEXPORT wxSpinCtrl : public wxTextCtrl |
116 |
{ |
117 |
public:
|
118 |
wxSpinCtrl() { Init(); } |
119 |
|
120 |
wxSpinCtrl(wxWindow *parent, |
121 |
wxWindowID id = -1,
|
122 |
const wxString& value = wxEmptyString,
|
123 |
const wxPoint& pos = wxDefaultPosition,
|
124 |
const wxSize& size = wxDefaultSize,
|
125 |
long style = wxSP_ARROW_KEYS,
|
126 |
int min = 0, int max = 100, int initial = 0, |
127 |
const wxString& name = _T("wxSpinCtrl")) |
128 |
{ |
129 |
Create(parent, id, value, pos, size, style, min, max, initial, name); |
130 |
} |
131 |
|
132 |
bool Create(wxWindow *parent,
|
133 |
wxWindowID id = -1,
|
134 |
const wxString& value = wxEmptyString,
|
135 |
const wxPoint& pos = wxDefaultPosition,
|
136 |
const wxSize& size = wxDefaultSize,
|
137 |
long style = wxSP_ARROW_KEYS,
|
138 |
int min = 0, int max = 100, int initial = 0, |
139 |
const wxString& name = _T("wxSpinCtrl")) |
140 |
{ |
141 |
SetRange(min, max); |
142 |
|
143 |
bool ok = wxTextCtrl::Create(parent, id, value, pos, size, style,
|
144 |
wxDefaultValidator, name); |
145 |
SetValue(initial); |
146 |
|
147 |
return ok;
|
148 |
} |
149 |
|
150 |
// accessors
|
151 |
int GetValue(int WXUNUSED(dummy) = 1) const |
152 |
{ |
153 |
int n;
|
154 |
if ( (wxSscanf(wxTextCtrl::GetValue(), wxT("%d"), &n) != 1) ) |
155 |
n = INT_MIN; |
156 |
|
157 |
return n;
|
158 |
} |
159 |
|
160 |
int GetMin() const { return m_min; } |
161 |
int GetMax() const { return m_max; } |
162 |
|
163 |
// operations
|
164 |
void SetValue(const wxString& value) { wxTextCtrl::SetValue(value); } |
165 |
void SetValue(int val) { wxString s; s << val; wxTextCtrl::SetValue(s); } |
166 |
void SetRange(int min, int max) { m_min = min; m_max = max; } |
167 |
|
168 |
protected:
|
169 |
// initialize m_min/max with the default values
|
170 |
void Init() { SetRange(0, 100); } |
171 |
|
172 |
int m_min;
|
173 |
int m_max;
|
174 |
|
175 |
private:
|
176 |
DECLARE_DYNAMIC_CLASS(wxSpinCtrl) |
177 |
}; |
178 |
|
179 |
#endif // wxUSE_SPINBTN/!wxUSE_SPINBTN |
180 |
|
181 |
#endif // _WX_GENERIC_SPINCTRL_H_ |
182 |
|