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