1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: SWIG interface defs for wxStatusBar
7 // Created: 24-Aug-1998
9 // Copyright: (c) 2003 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
16 //---------------------------------------------------------------------------
18 MAKE_CONST_WXSTRING_NOSWIG(ToolBarNameStr);
21 //---------------------------------------------------------------------------
27 enum wxToolBarToolStyle
29 wxTOOL_STYLE_BUTTON = 1,
30 wxTOOL_STYLE_SEPARATOR = 2,
56 // wxToolBarTool is a toolbar element.
58 // It has a unique id (except for the separators which always have id -1), the
59 // style (telling whether it is a normal button, separator or a control), the
60 // state (toggled or not, enabled or not) and short and long help strings. The
61 // default implementations use the short help string for the tooltip text which
62 // is popped up when the mouse pointer enters the tool and the long help string
63 // for the applications status bar.
64 class wxToolBarToolBase : public wxObject {
66 // wxToolBarToolBase(wxToolBarBase *tbar = (wxToolBarBase *)NULL,
67 // int id = wxID_SEPARATOR,
68 // const wxString& label = wxPyEmptyString,
69 // const wxBitmap& bmpNormal = wxNullBitmap,
70 // const wxBitmap& bmpDisabled = wxNullBitmap,
71 // wxItemKind kind = wxITEM_NORMAL,
72 // wxObject *clientData = (wxObject *) NULL,
73 // const wxString& shortHelpString = wxPyEmptyString,
74 // const wxString& longHelpString = wxPyEmptyString)
75 // ~wxToolBarToolBase();
78 wxControl *GetControl();
79 wxToolBarBase *GetToolBar();
88 const wxBitmap& GetNormalBitmap();
89 const wxBitmap& GetDisabledBitmap();
92 wxString GetShortHelp();
93 wxString GetLongHelp();
94 bool Enable(bool enable);
96 bool SetToggle(bool toggle);
97 bool SetShortHelp(const wxString& help);
98 bool SetLongHelp(const wxString& help);
99 void SetNormalBitmap(const wxBitmap& bmp);
100 void SetDisabledBitmap(const wxBitmap& bmp);
101 void SetLabel(const wxString& label);
103 void Attach(wxToolBarBase *tbar);
105 //wxObject *GetClientData();
107 // convert the ClientData back to a PyObject
108 PyObject* GetClientData() {
109 wxPyUserData* udata = (wxPyUserData*)self->GetClientData();
111 Py_INCREF(udata->m_obj);
119 void SetClientData(PyObject* clientData) {
120 self->SetClientData(new wxPyUserData(clientData));
125 GetBitmap1 = GetNormalBitmap
126 GetBitmap2 = GetDisabledBitmap
127 SetBitmap1 = SetNormalBitmap
128 SetBitmap2 = SetDisabledBitmap
131 %property(Bitmap, GetBitmap, doc="See `GetBitmap`");
132 %property(ClientData, GetClientData, SetClientData, doc="See `GetClientData` and `SetClientData`");
133 %property(Control, GetControl, doc="See `GetControl`");
134 %property(DisabledBitmap, GetDisabledBitmap, SetDisabledBitmap, doc="See `GetDisabledBitmap` and `SetDisabledBitmap`");
135 %property(Id, GetId, doc="See `GetId`");
136 %property(Kind, GetKind, doc="See `GetKind`");
137 %property(Label, GetLabel, SetLabel, doc="See `GetLabel` and `SetLabel`");
138 %property(LongHelp, GetLongHelp, SetLongHelp, doc="See `GetLongHelp` and `SetLongHelp`");
139 %property(NormalBitmap, GetNormalBitmap, SetNormalBitmap, doc="See `GetNormalBitmap` and `SetNormalBitmap`");
140 %property(ShortHelp, GetShortHelp, SetShortHelp, doc="See `GetShortHelp` and `SetShortHelp`");
141 %property(Style, GetStyle, doc="See `GetStyle`");
142 %property(ToolBar, GetToolBar, doc="See `GetToolBar`");
148 class wxToolBarBase : public wxControl {
151 // This is an Abstract Base Class
155 // The full AddTool() function. Call it DoAddTool in wxPython and
156 // implement the other Add methods by calling it.
158 // If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap
159 // is created and used as the disabled image.
160 wxToolBarToolBase *DoAddTool(int id,
161 const wxString& label,
162 const wxBitmap& bitmap,
163 const wxBitmap& bmpDisabled = wxNullBitmap,
164 wxItemKind kind = wxITEM_NORMAL,
165 const wxString& shortHelp = wxPyEmptyString,
166 const wxString& longHelp = wxPyEmptyString,
167 PyObject *clientData = NULL)
169 wxPyUserData* udata = NULL;
170 if (clientData && clientData != Py_None)
171 udata = new wxPyUserData(clientData);
172 return self->AddTool(id, label, bitmap, bmpDisabled, kind,
173 shortHelp, longHelp, udata);
177 // Insert the new tool at the given position, if pos == GetToolsCount(), it
178 // is equivalent to DoAddTool()
179 wxToolBarToolBase *DoInsertTool(size_t pos,
181 const wxString& label,
182 const wxBitmap& bitmap,
183 const wxBitmap& bmpDisabled = wxNullBitmap,
184 wxItemKind kind = wxITEM_NORMAL,
185 const wxString& shortHelp = wxPyEmptyString,
186 const wxString& longHelp = wxPyEmptyString,
187 PyObject *clientData = NULL)
189 wxPyUserData* udata = NULL;
190 if (clientData && clientData != Py_None)
191 udata = new wxPyUserData(clientData);
192 return self->InsertTool(pos, id, label, bitmap, bmpDisabled, kind,
193 shortHelp, longHelp, udata);
200 %# These match the original Add methods for this class, kept for
201 %# backwards compatibility with versions < 2.3.3.
204 def AddTool(self, id, bitmap,
205 pushedBitmap = wx.NullBitmap,
208 shortHelpString = '',
209 longHelpString = '') :
210 '''Old style method to add a tool to the toolbar.'''
211 kind = wx.ITEM_NORMAL
212 if isToggle: kind = wx.ITEM_CHECK
213 return self.DoAddTool(id, '', bitmap, pushedBitmap, kind,
214 shortHelpString, longHelpString, clientData)
216 def AddSimpleTool(self, id, bitmap,
217 shortHelpString = '',
220 '''Old style method to add a tool to the toolbar.'''
221 kind = wx.ITEM_NORMAL
222 if isToggle: kind = wx.ITEM_CHECK
223 return self.DoAddTool(id, '', bitmap, wx.NullBitmap, kind,
224 shortHelpString, longHelpString, None)
226 def InsertTool(self, pos, id, bitmap,
227 pushedBitmap = wx.NullBitmap,
230 shortHelpString = '',
231 longHelpString = ''):
232 '''Old style method to insert a tool in the toolbar.'''
233 kind = wx.ITEM_NORMAL
234 if isToggle: kind = wx.ITEM_CHECK
235 return self.DoInsertTool(pos, id, '', bitmap, pushedBitmap, kind,
236 shortHelpString, longHelpString, clientData)
238 def InsertSimpleTool(self, pos, id, bitmap,
239 shortHelpString = '',
242 '''Old style method to insert a tool in the toolbar.'''
243 kind = wx.ITEM_NORMAL
244 if isToggle: kind = wx.ITEM_CHECK
245 return self.DoInsertTool(pos, id, '', bitmap, wx.NullBitmap, kind,
246 shortHelpString, longHelpString, None)
249 %# The following are the new toolbar Add methods starting with
250 %# 2.3.3. They are renamed to have 'Label' in the name so as to be
251 %# able to keep backwards compatibility with using the above
252 %# methods. Eventually these should migrate to be the methods used
253 %# primarily and lose the 'Label' in the name...
255 def AddLabelTool(self, id, label, bitmap,
256 bmpDisabled = wx.NullBitmap,
257 kind = wx.ITEM_NORMAL,
258 shortHelp = '', longHelp = '',
261 The full AddTool() function.
263 If bmpDisabled is wx.NullBitmap, a shadowed version of the normal bitmap
264 is created and used as the disabled image.
266 return self.DoAddTool(id, label, bitmap, bmpDisabled, kind,
267 shortHelp, longHelp, clientData)
270 def InsertLabelTool(self, pos, id, label, bitmap,
271 bmpDisabled = wx.NullBitmap,
272 kind = wx.ITEM_NORMAL,
273 shortHelp = '', longHelp = '',
276 Insert the new tool at the given position, if pos == GetToolsCount(), it
277 is equivalent to AddTool()
279 return self.DoInsertTool(pos, id, label, bitmap, bmpDisabled, kind,
280 shortHelp, longHelp, clientData)
282 def AddCheckLabelTool(self, id, label, bitmap,
283 bmpDisabled = wx.NullBitmap,
284 shortHelp = '', longHelp = '',
286 '''Add a check tool, i.e. a tool which can be toggled'''
287 return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.ITEM_CHECK,
288 shortHelp, longHelp, clientData)
290 def AddRadioLabelTool(self, id, label, bitmap,
291 bmpDisabled = wx.NullBitmap,
292 shortHelp = '', longHelp = '',
295 Add a radio tool, i.e. a tool which can be toggled and releases any
296 other toggled radio tools in the same group when it happens
298 return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.ITEM_RADIO,
299 shortHelp, longHelp, clientData)
302 %# For consistency with the backwards compatible methods above, here are
303 %# some non-'Label' versions of the Check and Radio methods
305 def AddCheckTool(self, id, bitmap,
306 bmpDisabled = wx.NullBitmap,
307 shortHelp = '', longHelp = '',
309 '''Add a check tool, i.e. a tool which can be toggled'''
310 return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.ITEM_CHECK,
311 shortHelp, longHelp, clientData)
313 def AddRadioTool(self, id, bitmap,
314 bmpDisabled = wx.NullBitmap,
315 shortHelp = '', longHelp = '',
318 Add a radio tool, i.e. a tool which can be toggled and releases any
319 other toggled radio tools in the same group when it happens
321 return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.ITEM_RADIO,
322 shortHelp, longHelp, clientData)
325 %Rename(AddToolItem, wxToolBarToolBase*, AddTool (wxToolBarToolBase *tool));
326 %Rename(InsertToolItem, wxToolBarToolBase*, InsertTool (size_t pos, wxToolBarToolBase *tool));
328 wxToolBarToolBase *AddControl(wxControl *control,
329 const wxString& label = wxEmptyString);
330 wxToolBarToolBase *InsertControl(size_t pos, wxControl *control,
331 const wxString& label = wxEmptyString);
332 wxControl *FindControl( int id );
334 wxToolBarToolBase *AddSeparator();
335 wxToolBarToolBase *InsertSeparator(size_t pos);
337 wxToolBarToolBase *RemoveTool(int id);
339 bool DeleteToolByPos(size_t pos);
340 bool DeleteTool(int id);
344 void EnableTool(int id, bool enable);
345 void ToggleTool(int id, bool toggle);
346 void SetToggle(int id, bool toggle);
350 // convert the ClientData back to a PyObject
351 PyObject* GetToolClientData(int id) {
352 wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(id);
354 Py_INCREF(udata->m_obj);
362 void SetToolClientData(int id, PyObject* clientData) {
363 self->SetToolClientData(id, new wxPyUserData(clientData));
367 // returns tool pos, or wxNOT_FOUND if tool isn't found
368 int GetToolPos(int id) const;
370 bool GetToolState(int id);
371 bool GetToolEnabled(int id);
372 void SetToolShortHelp(int id, const wxString& helpString);
373 wxString GetToolShortHelp(int id);
374 void SetToolLongHelp(int id, const wxString& helpString);
375 wxString GetToolLongHelp(int id);
377 %Rename(SetMarginsXY, void, SetMargins(int x, int y));
378 void SetMargins(const wxSize& size);
379 void SetToolPacking(int packing);
380 void SetToolSeparation(int separation);
381 wxSize GetToolMargins();
383 int GetToolPacking();
384 int GetToolSeparation();
386 void SetRows(int nRows);
387 void SetMaxRowsCols(int rows, int cols);
391 void SetToolBitmapSize(const wxSize& size);
392 wxSize GetToolBitmapSize();
393 wxSize GetToolSize();
395 // returns a (non separator) tool containing the point (x, y) or NULL if
396 // there is no tool at this point (corrdinates are client)
397 wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
399 // find the tool by id
400 wxToolBarToolBase *FindById(int toolid) const;
402 // return True if this is a vertical toolbar, otherwise False
405 size_t GetToolsCount() const;
407 %property(Margins, GetMargins, SetMargins, doc="See `GetMargins` and `SetMargins`");
408 %property(MaxCols, GetMaxCols, doc="See `GetMaxCols`");
409 %property(MaxRows, GetMaxRows, doc="See `GetMaxRows`");
410 %property(ToolBitmapSize, GetToolBitmapSize, SetToolBitmapSize, doc="See `GetToolBitmapSize` and `SetToolBitmapSize`");
411 %property(ToolMargins, GetToolMargins, doc="See `GetToolMargins`");
412 %property(ToolPacking, GetToolPacking, SetToolPacking, doc="See `GetToolPacking` and `SetToolPacking`");
413 %property(ToolSeparation, GetToolSeparation, SetToolSeparation, doc="See `GetToolSeparation` and `SetToolSeparation`");
414 %property(ToolSize, GetToolSize, doc="See `GetToolSize`");
415 %property(ToolsCount, GetToolsCount, doc="See `GetToolsCount`");
421 MustHaveApp(wxToolBar);
423 class wxToolBar : public wxToolBarBase {
425 %pythonAppend wxToolBar "self._setOORInfo(self)"
426 %pythonAppend wxToolBar() ""
427 %typemap(out) wxToolBar*; // turn off this typemap
429 wxToolBar(wxWindow *parent,
431 const wxPoint& pos = wxDefaultPosition,
432 const wxSize& size = wxDefaultSize,
433 long style = wxNO_BORDER | wxTB_HORIZONTAL,
434 const wxString& name = wxPyToolBarNameStr);
435 %RenameCtor(PreToolBar, wxToolBar());
437 // Turn it back on again
438 %typemap(out) wxToolBar* { $result = wxPyMake_wxObject($1, $owner); }
440 bool Create(wxWindow *parent,
442 const wxPoint& pos = wxDefaultPosition,
443 const wxSize& size = wxDefaultSize,
444 long style = wxNO_BORDER | wxTB_HORIZONTAL,
445 const wxString& name = wxPyToolBarNameStr);
447 // TODO: In 2.9 move these to the base class...
448 void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
449 void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
451 static wxVisualAttributes
452 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
455 //---------------------------------------------------------------------------
459 #include <wx/generic/buttonbar.h>
462 MustHaveApp(wxToolBar);
463 class wxButtonToolBar : public wxToolBarBase
466 %pythonAppend wxButtonToolBar "self._setOORInfo(self)"
467 %pythonAppend wxButtonToolBar() ""
469 wxButtonToolBar(wxWindow *parent,
471 const wxPoint& pos = wxDefaultPosition,
472 const wxSize& size = wxDefaultSize,
474 const wxString& name = wxPyToolBarNameStr);
475 %RenameCtor(PreButtonToolBar, wxButtonToolBar());
478 bool Create(wxWindow *parent,
480 const wxPoint& pos = wxDefaultPosition,
481 const wxSize& size = wxDefaultSize,
483 const wxString& name = wxPyToolBarNameStr);
487 //---------------------------------------------------------------------------