]> git.saurik.com Git - wxWidgets.git/blob - src/palmos/spinctrl.cpp
forcefully get rid of the scrollbars in CalcWindowSizes() if we don't need them any...
[wxWidgets.git] / src / palmos / spinctrl.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/palmos/spinctrl.cpp
3 // Purpose: wxSpinCtrl class implementation for Palm OS
4 // Author: William Osborne - minimal working wxPalmOS port
5 // Modified by:
6 // Created: 10/13/04
7 // RCS-ID: $Id$
8 // Copyright: (c) William Osborne
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // ============================================================================
13 // declarations
14 // ============================================================================
15
16 // ----------------------------------------------------------------------------
17 // headers
18 // ----------------------------------------------------------------------------
19
20 // for compilers that support precompilation, includes "wx.h".
21 #include "wx/wxprec.h"
22
23 #ifdef __BORLANDC__
24 #pragma hdrstop
25 #endif
26
27 #ifndef WX_PRECOMP
28 #include "wx/wx.h"
29 #endif
30
31 #if wxUSE_SPINCTRL
32
33 #if defined(__WIN95__)
34
35 #include "wx/spinctrl.h"
36 #include "wx/palmos/private.h"
37
38 // ----------------------------------------------------------------------------
39 // macros
40 // ----------------------------------------------------------------------------
41
42 #if wxUSE_EXTENDED_RTTI
43 WX_DEFINE_FLAGS( wxSpinCtrlStyle )
44
45 wxBEGIN_FLAGS( wxSpinCtrlStyle )
46 // new style border flags, we put them first to
47 // use them for streaming out
48 wxFLAGS_MEMBER(wxBORDER_SIMPLE)
49 wxFLAGS_MEMBER(wxBORDER_SUNKEN)
50 wxFLAGS_MEMBER(wxBORDER_DOUBLE)
51 wxFLAGS_MEMBER(wxBORDER_RAISED)
52 wxFLAGS_MEMBER(wxBORDER_STATIC)
53 wxFLAGS_MEMBER(wxBORDER_NONE)
54
55 // old style border flags
56 wxFLAGS_MEMBER(wxSIMPLE_BORDER)
57 wxFLAGS_MEMBER(wxSUNKEN_BORDER)
58 wxFLAGS_MEMBER(wxDOUBLE_BORDER)
59 wxFLAGS_MEMBER(wxRAISED_BORDER)
60 wxFLAGS_MEMBER(wxSTATIC_BORDER)
61 wxFLAGS_MEMBER(wxBORDER)
62
63 // standard window styles
64 wxFLAGS_MEMBER(wxTAB_TRAVERSAL)
65 wxFLAGS_MEMBER(wxCLIP_CHILDREN)
66 wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW)
67 wxFLAGS_MEMBER(wxWANTS_CHARS)
68 wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE)
69 wxFLAGS_MEMBER(wxALWAYS_SHOW_SB )
70 wxFLAGS_MEMBER(wxVSCROLL)
71 wxFLAGS_MEMBER(wxHSCROLL)
72
73 wxFLAGS_MEMBER(wxSP_HORIZONTAL)
74 wxFLAGS_MEMBER(wxSP_VERTICAL)
75 wxFLAGS_MEMBER(wxSP_ARROW_KEYS)
76 wxFLAGS_MEMBER(wxSP_WRAP)
77
78 wxEND_FLAGS( wxSpinCtrlStyle )
79
80 IMPLEMENT_DYNAMIC_CLASS_XTI(wxSpinCtrl, wxControl,"wx/spinbut.h")
81
82 wxBEGIN_PROPERTIES_TABLE(wxSpinCtrl)
83 wxEVENT_RANGE_PROPERTY( Spin , wxEVT_SCROLL_TOP , wxEVT_SCROLL_ENDSCROLL , wxSpinEvent )
84 wxEVENT_PROPERTY( Updated , wxEVT_COMMAND_SPINCTRL_UPDATED , wxCommandEvent )
85 wxEVENT_PROPERTY( TextUpdated , wxEVT_COMMAND_TEXT_UPDATED , wxCommandEvent )
86 wxEVENT_PROPERTY( TextEnter , wxEVT_COMMAND_TEXT_ENTER , wxCommandEvent )
87
88 wxPROPERTY( ValueString , wxString , SetValue , GetValue , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) ;
89 wxPROPERTY( Value , int , SetValue, GetValue, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
90 wxPROPERTY( Min , int , SetMin, GetMin, 0, 0 /*flags*/ , wxT("Helpstring") , wxT("group") )
91 wxPROPERTY( Max , int , SetMax, GetMax, 0 , 0 /*flags*/ , wxT("Helpstring") , wxT("group"))
92 wxPROPERTY_FLAGS( WindowStyle , wxSpinCtrlStyle , long , SetWindowStyleFlag , GetWindowStyleFlag , EMPTY_MACROVALUE , 0 /*flags*/ , wxT("Helpstring") , wxT("group")) // style
93 /*
94 TODO PROPERTIES
95 style wxSP_ARROW_KEYS
96 */
97 wxEND_PROPERTIES_TABLE()
98
99 wxBEGIN_HANDLERS_TABLE(wxSpinCtrl)
100 wxEND_HANDLERS_TABLE()
101
102 wxCONSTRUCTOR_6( wxSpinCtrl , wxWindow* , Parent , wxWindowID , Id , wxString , ValueString , wxPoint , Position , wxSize , Size , long , WindowStyle )
103 #else
104 IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl)
105 #endif
106
107 BEGIN_EVENT_TABLE(wxSpinCtrl, wxSpinButton)
108 EVT_CHAR(wxSpinCtrl::OnChar)
109
110 EVT_SET_FOCUS(wxSpinCtrl::OnSetFocus)
111
112 EVT_SPIN(-1, wxSpinCtrl::OnSpinChange)
113 END_EVENT_TABLE()
114
115 #define GetBuddyHwnd() (HWND)(m_hwndBuddy)
116
117 // ----------------------------------------------------------------------------
118 // constants
119 // ----------------------------------------------------------------------------
120
121 // the margin between the up-down control and its buddy (can be arbitrary,
122 // choose what you like - or may be decide during run-time depending on the
123 // font size?)
124 static const int MARGIN_BETWEEN = 1;
125
126 // ============================================================================
127 // implementation
128 // ============================================================================
129
130 wxArraySpins wxSpinCtrl::ms_allSpins;
131
132 /* static */
133 wxSpinCtrl *wxSpinCtrl::GetSpinForTextCtrl(WXHWND hwndBuddy)
134 {
135 return NULL;
136 }
137
138 // process a WM_COMMAND generated by the buddy text control
139 bool wxSpinCtrl::ProcessTextCommand(WXWORD cmd, WXWORD WXUNUSED(id))
140 {
141 return false;
142 }
143
144 void wxSpinCtrl::OnChar(wxKeyEvent& event)
145 {
146 }
147
148 void wxSpinCtrl::OnSetFocus(wxFocusEvent& event)
149 {
150 }
151
152 // ----------------------------------------------------------------------------
153 // construction
154 // ----------------------------------------------------------------------------
155
156 bool wxSpinCtrl::Create(wxWindow *parent,
157 wxWindowID id,
158 const wxString& value,
159 const wxPoint& pos,
160 const wxSize& size,
161 long style,
162 int min, int max, int initial,
163 const wxString& name)
164 {
165 return false;
166 }
167
168 wxSpinCtrl::~wxSpinCtrl()
169 {
170 }
171
172 // ----------------------------------------------------------------------------
173 // wxTextCtrl-like methods
174 // ----------------------------------------------------------------------------
175
176 void wxSpinCtrl::SetValue(const wxString& text)
177 {
178 }
179
180 int wxSpinCtrl::GetValue() const
181 {
182 return 0;
183 }
184
185 void wxSpinCtrl::SetSelection(long from, long to)
186 {
187 }
188
189 // ----------------------------------------------------------------------------
190 // forward some methods to subcontrols
191 // ----------------------------------------------------------------------------
192
193 bool wxSpinCtrl::SetFont(const wxFont& font)
194 {
195 return false;
196 }
197
198 bool wxSpinCtrl::Show(bool show)
199 {
200 return false;
201 }
202
203 bool wxSpinCtrl::Enable(bool enable)
204 {
205 return false;
206 }
207
208 void wxSpinCtrl::SetFocus()
209 {
210 }
211
212 // ----------------------------------------------------------------------------
213 // event processing
214 // ----------------------------------------------------------------------------
215
216 void wxSpinCtrl::OnSpinChange(wxSpinEvent& eventSpin)
217 {
218 }
219
220 // ----------------------------------------------------------------------------
221 // size calculations
222 // ----------------------------------------------------------------------------
223
224 wxSize wxSpinCtrl::DoGetBestSize() const
225 {
226 return wxSize(0,0);
227 }
228
229 void wxSpinCtrl::DoMoveWindow(int x, int y, int width, int height)
230 {
231 }
232
233 // get total size of the control
234 void wxSpinCtrl::DoGetSize(int *x, int *y) const
235 {
236 }
237
238 void wxSpinCtrl::DoGetPosition(int *x, int *y) const
239 {
240 }
241
242 #endif // __WIN95__
243
244 #endif
245 // wxUSE_SPINCTRL
246