]> git.saurik.com Git - wxWidgets.git/blame - src/palmos/toolbar.cpp
Added XPM ctor
[wxWidgets.git] / src / palmos / toolbar.cpp
CommitLineData
ffecfa5a 1/////////////////////////////////////////////////////////////////////////////
e2731512 2// Name: src/palmos/toolbar.cpp
ffecfa5a 3// Purpose: wxToolBar
e2731512 4// Author: William Osborne - minimal working wxPalmOS port
ffecfa5a
JS
5// Modified by:
6// Created: 10/13/04
e2731512 7// RCS-ID: $Id$
ffecfa5a
JS
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
73IMPLEMENT_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
94BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase)
95 EVT_MOUSE_EVENTS(wxToolBar::OnMouseEvent)
ffecfa5a
JS
96END_EVENT_TABLE()
97
98// ----------------------------------------------------------------------------
99// private classes
100// ----------------------------------------------------------------------------
101
102class wxToolBarTool : public wxToolBarToolBase
103{
104public:
105 wxToolBarTool(wxToolBar *tbar,
106 int id,
107 const wxString& label,
108 const wxBitmap& bmpNormal,
109 const wxBitmap& bmpDisabled,
110 wxItemKind kind,
111 wxObject *clientData,
112 const wxString& shortHelp,
113 const wxString& longHelp)
114 : wxToolBarToolBase(tbar, id, label, bmpNormal, bmpDisabled, kind,
115 clientData, shortHelp, longHelp)
116 {
117 }
118
119 wxToolBarTool(wxToolBar *tbar, wxControl *control)
120 : wxToolBarToolBase(tbar, control)
121 {
122 }
123
124 virtual void SetLabel(const wxString& label)
125 {
126 }
127
128 // set/get the number of separators which we use to cover the space used by
129 // a control in the toolbar
130 void SetSeparatorsCount(size_t count) { m_nSepCount = count; }
131 size_t GetSeparatorsCount() const { return m_nSepCount; }
132
133private:
134 size_t m_nSepCount;
135
136 DECLARE_NO_COPY_CLASS(wxToolBarTool)
137};
138
139
140// ============================================================================
141// implementation
142// ============================================================================
143
144// ----------------------------------------------------------------------------
145// wxToolBarTool
146// ----------------------------------------------------------------------------
147
148wxToolBarToolBase *wxToolBar::CreateTool(int id,
149 const wxString& label,
150 const wxBitmap& bmpNormal,
151 const wxBitmap& bmpDisabled,
152 wxItemKind kind,
153 wxObject *clientData,
154 const wxString& shortHelp,
155 const wxString& longHelp)
156{
157 return new wxToolBarTool(this, id, label, bmpNormal, bmpDisabled, kind,
158 clientData, shortHelp, longHelp);
159}
160
161wxToolBarToolBase *wxToolBar::CreateTool(wxControl *control)
162{
163 return new wxToolBarTool(this, control);
164}
165
166// ----------------------------------------------------------------------------
167// wxToolBar construction
168// ----------------------------------------------------------------------------
169
170void wxToolBar::Init()
171{
172}
173
174bool wxToolBar::Create(wxWindow *parent,
175 wxWindowID id,
176 const wxPoint& pos,
177 const wxSize& size,
178 long style,
179 const wxString& name)
180{
181 return false;
182}
183
184void wxToolBar::Recreate()
185{
186}
187
188wxToolBar::~wxToolBar()
189{
190}
191
192wxSize wxToolBar::DoGetBestSize() const
193{
194 return wxSize(0,0);
195}
196
197// ----------------------------------------------------------------------------
198// adding/removing tools
199// ----------------------------------------------------------------------------
200
201bool wxToolBar::DoInsertTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
202{
203 return false;
204}
205
206bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *tool)
207{
208 return false;
209}
210
211bool wxToolBar::Realize()
212{
213 return false;
214}
215
216// ----------------------------------------------------------------------------
217// toolbar geometry
218// ----------------------------------------------------------------------------
219
220void wxToolBar::SetToolBitmapSize(const wxSize& size)
221{
222}
223
224void wxToolBar::SetRows(int nRows)
225{
226}
227
228// The button size is bigger than the bitmap size
229wxSize wxToolBar::GetToolSize() const
230{
231 return wxSize(0,0);
232}
233
234static
235wxToolBarToolBase *GetItemSkippingDummySpacers(const wxToolBarToolsList& tools,
236 size_t index )
237{
238 return 0;
239}
240
241wxToolBarToolBase *wxToolBar::FindToolForPosition(wxCoord x, wxCoord y) const
242{
243 return NULL;
244}
245
246void wxToolBar::UpdateSize()
247{
248}
249
ffecfa5a
JS
250// ----------------------------------------------------------------------------
251// tool state
252// ----------------------------------------------------------------------------
253
254void wxToolBar::DoEnableTool(wxToolBarToolBase *tool, bool enable)
255{
256}
257
258void wxToolBar::DoToggleTool(wxToolBarToolBase *tool, bool toggle)
259{
260}
261
262void wxToolBar::DoSetToggle(wxToolBarToolBase *WXUNUSED(tool), bool WXUNUSED(toggle))
263{
264}
265
266// ----------------------------------------------------------------------------
267// event handlers
268// ----------------------------------------------------------------------------
269
ffecfa5a
JS
270void wxToolBar::OnMouseEvent(wxMouseEvent& event)
271{
272}
273
274#endif // wxUSE_TOOLBAR
275