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 wxToolBarToolBase *InsertControl(size_t pos, wxControl *control);
330 wxControl *FindControl( int id );
332 wxToolBarToolBase *AddSeparator();
333 wxToolBarToolBase *InsertSeparator(size_t pos);
335 wxToolBarToolBase *RemoveTool(int id);
337 bool DeleteToolByPos(size_t pos);
338 bool DeleteTool(int id);
342 void EnableTool(int id, bool enable);
343 void ToggleTool(int id, bool toggle);
344 void SetToggle(int id, bool toggle);
348 // convert the ClientData back to a PyObject
349 PyObject* GetToolClientData(int id) {
350 wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(id);
352 Py_INCREF(udata->m_obj);
360 void SetToolClientData(int id, PyObject* clientData) {
361 self->SetToolClientData(id, new wxPyUserData(clientData));
365 // returns tool pos, or wxNOT_FOUND if tool isn't found
366 int GetToolPos(int id) const;
368 bool GetToolState(int id);
369 bool GetToolEnabled(int id);
370 void SetToolShortHelp(int id, const wxString& helpString);
371 wxString GetToolShortHelp(int id);
372 void SetToolLongHelp(int id, const wxString& helpString);
373 wxString GetToolLongHelp(int id);
375 %Rename(SetMarginsXY, void, SetMargins(int x, int y));
376 void SetMargins(const wxSize& size);
377 void SetToolPacking(int packing);
378 void SetToolSeparation(int separation);
379 wxSize GetToolMargins();
381 int GetToolPacking();
382 int GetToolSeparation();
384 void SetRows(int nRows);
385 void SetMaxRowsCols(int rows, int cols);
389 void SetToolBitmapSize(const wxSize& size);
390 wxSize GetToolBitmapSize();
391 wxSize GetToolSize();
393 // returns a (non separator) tool containing the point (x, y) or NULL if
394 // there is no tool at this point (corrdinates are client)
395 wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
397 // find the tool by id
398 wxToolBarToolBase *FindById(int toolid) const;
400 // return True if this is a vertical toolbar, otherwise False
403 size_t GetToolsCount() const;
405 %property(Margins, GetMargins, SetMargins, doc="See `GetMargins` and `SetMargins`");
406 %property(MaxCols, GetMaxCols, doc="See `GetMaxCols`");
407 %property(MaxRows, GetMaxRows, doc="See `GetMaxRows`");
408 %property(ToolBitmapSize, GetToolBitmapSize, SetToolBitmapSize, doc="See `GetToolBitmapSize` and `SetToolBitmapSize`");
409 %property(ToolMargins, GetToolMargins, doc="See `GetToolMargins`");
410 %property(ToolPacking, GetToolPacking, SetToolPacking, doc="See `GetToolPacking` and `SetToolPacking`");
411 %property(ToolSeparation, GetToolSeparation, SetToolSeparation, doc="See `GetToolSeparation` and `SetToolSeparation`");
412 %property(ToolSize, GetToolSize, doc="See `GetToolSize`");
413 %property(ToolsCount, GetToolsCount, doc="See `GetToolsCount`");
419 MustHaveApp(wxToolBar);
421 class wxToolBar : public wxToolBarBase {
423 %pythonAppend wxToolBar "self._setOORInfo(self)"
424 %pythonAppend wxToolBar() ""
425 %typemap(out) wxToolBar*; // turn off this typemap
427 wxToolBar(wxWindow *parent,
429 const wxPoint& pos = wxDefaultPosition,
430 const wxSize& size = wxDefaultSize,
431 long style = wxNO_BORDER | wxTB_HORIZONTAL,
432 const wxString& name = wxPyToolBarNameStr);
433 %RenameCtor(PreToolBar, wxToolBar());
435 // Turn it back on again
436 %typemap(out) wxToolBar* { $result = wxPyMake_wxObject($1, $owner); }
438 bool Create(wxWindow *parent,
440 const wxPoint& pos = wxDefaultPosition,
441 const wxSize& size = wxDefaultSize,
442 long style = wxNO_BORDER | wxTB_HORIZONTAL,
443 const wxString& name = wxPyToolBarNameStr);
445 // TODO: In 2.9 move these to the base class...
446 void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
447 void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
449 static wxVisualAttributes
450 GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
453 //---------------------------------------------------------------------------
457 #include <wx/generic/buttonbar.h>
460 MustHaveApp(wxToolBar);
461 class wxButtonToolBar : public wxToolBarBase
464 %pythonAppend wxButtonToolBar "self._setOORInfo(self)"
465 %pythonAppend wxButtonToolBar() ""
467 wxButtonToolBar(wxWindow *parent,
469 const wxPoint& pos = wxDefaultPosition,
470 const wxSize& size = wxDefaultSize,
472 const wxString& name = wxPyToolBarNameStr);
473 %RenameCtor(PreButtonToolBar, wxButtonToolBar());
476 bool Create(wxWindow *parent,
478 const wxPoint& pos = wxDefaultPosition,
479 const wxSize& size = wxDefaultSize,
481 const wxString& name = wxPyToolBarNameStr);
485 //---------------------------------------------------------------------------