]> git.saurik.com Git - wxWidgets.git/blob - src/palmos/toolbar.cpp
reenabled WM_MOUSELEAVE event handling (patch 1104551); moved duplicated code in...
[wxWidgets.git] / src / palmos / toolbar.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: palmos/toolbar.cpp
3 // Purpose: wxToolBar
4 // Author: William Osborne
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 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
21 #pragma implementation "toolbar.h"
22 #endif
23
24 // For compilers that support precompilation, includes "wx.h".
25 #include "wx/wxprec.h"
26
27 #ifdef __BORLANDC__
28 #pragma hdrstop
29 #endif
30
31 #ifndef WX_PRECOMP
32 #include "wx/frame.h"
33 #include "wx/log.h"
34 #include "wx/intl.h"
35 #include "wx/dynarray.h"
36 #include "wx/settings.h"
37 #include "wx/bitmap.h"
38 #include "wx/dcmemory.h"
39 #include "wx/control.h"
40 #endif
41
42 #if wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE
43
44 #include "wx/toolbar.h"
45 #include "wx/sysopt.h"
46
47 #include "wx/palmos/private.h"
48
49 #include "wx/palmos/wrapcctl.h"
50
51 #include "wx/app.h" // for GetComCtl32Version
52
53 // ----------------------------------------------------------------------------
54 // conditional compilation
55 // ----------------------------------------------------------------------------
56
57 // wxWidgets previously always considered that toolbar buttons have light grey
58 // (0xc0c0c0) background and so ignored any bitmap masks - however, this
59 // doesn't work with XPMs which then appear to have black background. To make
60 // this work, we must respect the bitmap masks - which we do now. This should
61 // be ok in any case, but to restore 100% compatible with the old version
62 // behaviour, you can set this to 0.
63 #define USE_BITMAP_MASKS 1
64
65 // ----------------------------------------------------------------------------
66 // constants
67 // ----------------------------------------------------------------------------
68
69 // ----------------------------------------------------------------------------
70 // wxWin macros
71 // ----------------------------------------------------------------------------
72
73 IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
74
75 /*
76 TOOLBAR PROPERTIES
77 tool
78 bitmap
79 bitmap2
80 tooltip
81 longhelp
82 radio (bool)
83 toggle (bool)
84 separator
85 style ( wxNO_BORDER | wxTB_HORIZONTAL)
86 bitmapsize
87 margins
88 packing
89 separation
90
91 dontattachtoframe
92 */
93
94 BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase)
95 EVT_MOUSE_EVENTS(wxToolBar::OnMouseEvent)
96 EVT_SYS_COLOUR_CHANGED(wxToolBar::OnSysColourChanged)
97 END_EVENT_TABLE()
98
99 // ----------------------------------------------------------------------------
100 // private classes
101 // ----------------------------------------------------------------------------
102
103 class wxToolBarTool : public wxToolBarToolBase
104 {
105 public:
106 wxToolBarTool(wxToolBar *tbar,
107 int id,
108 const wxString& label,
109 const wxBitmap& bmpNormal,
110 const wxBitmap& bmpDisabled,
111 wxItemKind kind,
112 wxObject *clientData,
113 const wxString& shortHelp,
114 const wxString& longHelp)
115 : wxToolBarToolBase(tbar, id, label, bmpNormal, bmpDisabled, kind,
116 clientData, shortHelp, longHelp)
117 {
118 }
119
120 wxToolBarTool(wxToolBar *tbar, wxControl *control)
121 : wxToolBarToolBase(tbar, control)
122 {
123 }
124
125 virtual void SetLabel(const wxString& label)
126 {
127 }
128
129 // set/get the number of separators which we use to cover the space used by
130 // a control in the toolbar
131 void SetSeparatorsCount(size_t count) { m_nSepCount = count; }
132 size_t GetSeparatorsCount() const { return m_nSepCount; }
133
134 private:
135 size_t m_nSepCount;
136
137 DECLARE_NO_COPY_CLASS(wxToolBarTool)
138 };
139
140
141 // ============================================================================
142 // implementation
143 // ============================================================================
144
145 // ----------------------------------------------------------------------------
146 // wxToolBarTool
147 // ----------------------------------------------------------------------------
148
149 wxToolBarToolBase *wxToolBar::CreateTool(int id,
150 const wxString& label,
151 const wxBitmap& bmpNormal,
152 const wxBitmap& bmpDisabled,
153 wxItemKind kind,
154 wxObject *clientData,
155 const wxString& shortHelp,
156 const wxString& longHelp)
157 {
158 return new wxToolBarTool(this, id, label, bmpNormal, bmpDisabled, kind,
159 clientData, shortHelp, longHelp);
160 }
161
162 wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
163 {
164 return new wxToolBarTool(this, control);
165 }
166
167 // ----------------------------------------------------------------------------
168 // wxToolBar construction
169 // ----------------------------------------------------------------------------
170
171 void wxToolBar::Init()
172 {
173 }
174
175 bool wxToolBar::Create(wxWindow *parent,
176 wxWindowID id,
177 const wxPoint& pos,
178 const wxSize& size,
179 long style,
180 const wxString& name)
181 {
182 return false;
183 }
184
185 void wxToolBar::Recreate()
186 {
187 }
188
189 wxToolBar::~wxToolBar()
190 {
191 }
192
193 wxSize wxToolBar::DoGetBestSize() const
194 {
195 return wxSize(0,0);
196 }
197
198 // ----------------------------------------------------------------------------
199 // adding/removing tools
200 // ----------------------------------------------------------------------------
201
202 bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
203 {
204 return false;
205 }
206
207 bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool)
208 {
209 return false;
210 }
211
212 bool wxToolBar::Realize()
213 {
214 return false;
215 }
216
217 // ----------------------------------------------------------------------------
218 // toolbar geometry
219 // ----------------------------------------------------------------------------
220
221 void wxToolBar::SetToolBitmapSize(const wxSize& size)
222 {
223 }
224
225 void wxToolBar::SetRows(int nRows)
226 {
227 }
228
229 // The button size is bigger than the bitmap size
230 wxSize wxToolBar::GetToolSize() const
231 {
232 return wxSize(0,0);
233 }
234
235 static
236 wxToolBarToolBase *GetItemSkippingDummySpacers(const wxToolBarToolsList& tools,
237 size_t index )
238 {
239 return 0;
240 }
241
242 wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord x, wxCoord y) const
243 {
244 return NULL;
245 }
246
247 void wxToolBar::UpdateSize()
248 {
249 }
250
251 // ----------------------------------------------------------------------------
252 // toolbar styles
253 // ---------------------------------------------------------------------------
254
255 void wxToolBar::SetWindowStyleFlag(long style)
256 {
257 }
258
259 // ----------------------------------------------------------------------------
260 // tool state
261 // ----------------------------------------------------------------------------
262
263 void wxToolBar::DoEnableTool(wxToolBarToolBase *tool, bool enable)
264 {
265 }
266
267 void wxToolBar::DoToggleTool(wxToolBarToolBase *tool, bool toggle)
268 {
269 }
270
271 void wxToolBar::DoSetToggle(wxToolBarToolBase *WXUNUSED(tool), bool WXUNUSED(toggle))
272 {
273 }
274
275 // ----------------------------------------------------------------------------
276 // event handlers
277 // ----------------------------------------------------------------------------
278
279 // Responds to colour changes, and passes event on to children.
280 void wxToolBar::OnSysColourChanged(wxSysColourChangedEvent& event)
281 {
282 }
283
284 void wxToolBar::OnMouseEvent(wxMouseEvent& event)
285 {
286 }
287
288 #endif // wxUSE_TOOLBAR
289