]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_toolbar.i
autodoc docstring fixes and such
[wxWidgets.git] / wxPython / src / _toolbar.i
CommitLineData
9c039d08 1/////////////////////////////////////////////////////////////////////////////
d14a1e28
RD
2// Name: _toolbar.i
3// Purpose: SWIG interface defs for wxStatusBar
9c039d08
RD
4//
5// Author: Robin Dunn
6//
d14a1e28 7// Created: 24-Aug-1998
9c039d08 8// RCS-ID: $Id$
d14a1e28 9// Copyright: (c) 2003 by Total Control Software
9c039d08
RD
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
d14a1e28 13// Not a %module
9c039d08 14
9c039d08 15
d14a1e28 16//---------------------------------------------------------------------------
137b5242
RD
17
18%{
137b5242 19 DECLARE_DEF_STRING(ToolBarNameStr);
137b5242
RD
20%}
21
9c039d08 22//---------------------------------------------------------------------------
d14a1e28 23%newgroup;
9c039d08 24
9c039d08 25
9b3d3bc4
RD
26class wxToolBarBase;
27
28enum wxToolBarToolStyle
29{
30 wxTOOL_STYLE_BUTTON = 1,
31 wxTOOL_STYLE_SEPARATOR = 2,
32 wxTOOL_STYLE_CONTROL
33};
34
3ef86e32
RD
35enum {
36 wxTB_HORIZONTAL,
37 wxTB_VERTICAL,
38 wxTB_3DBUTTONS,
39 wxTB_FLAT,
40 wxTB_DOCKABLE,
41 wxTB_NOICONS,
42 wxTB_TEXT,
43 wxTB_NODIVIDER,
44 wxTB_NOALIGN,
45 wxTB_HORZ_LAYOUT,
46 wxTB_HORZ_TEXT,
47};
48
9b3d3bc4
RD
49
50
d14a1e28
RD
51// wxToolBarTool is a toolbar element.
52//
53// It has a unique id (except for the separators which always have id -1), the
54// style (telling whether it is a normal button, separator or a control), the
55// state (toggled or not, enabled or not) and short and long help strings. The
56// default implementations use the short help string for the tooltip text which
57// is popped up when the mouse pointer enters the tool and the long help string
58// for the applications status bar.
9416aa89 59class wxToolBarToolBase : public wxObject {
9b3d3bc4
RD
60public:
61// wxToolBarToolBase(wxToolBarBase *tbar = (wxToolBarBase *)NULL,
62// int id = wxID_SEPARATOR,
b96c7a38
RD
63// const wxString& label = wxEmptyString,
64// const wxBitmap& bmpNormal = wxNullBitmap,
65// const wxBitmap& bmpDisabled = wxNullBitmap,
66// wxItemKind kind = wxITEM_NORMAL,
9b3d3bc4 67// wxObject *clientData = (wxObject *) NULL,
b96c7a38
RD
68// const wxString& shortHelpString = wxEmptyString,
69// const wxString& longHelpString = wxEmptyString)
9b3d3bc4
RD
70// ~wxToolBarToolBase();
71
9b3d3bc4
RD
72 int GetId();
73 wxControl *GetControl();
74 wxToolBarBase *GetToolBar();
75 int IsButton();
76 int IsControl();
77 int IsSeparator();
78 int GetStyle();
b96c7a38 79 wxItemKind GetKind();
9b3d3bc4
RD
80 bool IsEnabled();
81 bool IsToggled();
82 bool CanBeToggled();
c6ebc32a
RD
83 const wxBitmap& GetNormalBitmap();
84 const wxBitmap& GetDisabledBitmap();
c5943253 85 wxBitmap GetBitmap();
c6ebc32a 86 wxString GetLabel();
9b3d3bc4
RD
87 wxString GetShortHelp();
88 wxString GetLongHelp();
89 bool Enable(bool enable);
c6ebc32a 90 void Toggle();
9b3d3bc4
RD
91 bool SetToggle(bool toggle);
92 bool SetShortHelp(const wxString& help);
93 bool SetLongHelp(const wxString& help);
c6ebc32a
RD
94 void SetNormalBitmap(const wxBitmap& bmp);
95 void SetDisabledBitmap(const wxBitmap& bmp);
96 void SetLabel(const wxString& label);
9b3d3bc4
RD
97 void Detach();
98 void Attach(wxToolBarBase *tbar);
99
100 //wxObject *GetClientData();
d14a1e28 101 %extend {
9b3d3bc4
RD
102 // convert the ClientData back to a PyObject
103 PyObject* GetClientData() {
104 wxPyUserData* udata = (wxPyUserData*)self->GetClientData();
105 if (udata) {
106 Py_INCREF(udata->m_obj);
107 return udata->m_obj;
108 } else {
109 Py_INCREF(Py_None);
110 return Py_None;
111 }
112 }
113
114 void SetClientData(PyObject* clientData) {
115 self->SetClientData(new wxPyUserData(clientData));
116 }
117 }
c6ebc32a 118
d14a1e28 119 %pythoncode {
c6ebc32a
RD
120 GetBitmap1 = GetNormalBitmap
121 GetBitmap2 = GetDisabledBitmap
122 SetBitmap1 = SetNormalBitmap
123 SetBitmap2 = SetDisabledBitmap
d14a1e28 124 }
9b3d3bc4
RD
125};
126
127
128
d14a1e28 129
9b3d3bc4
RD
130class wxToolBarBase : public wxControl {
131public:
132
133 // This is an Abstract Base Class
134
d14a1e28 135 %extend {
b96c7a38 136
15030c51
RD
137 // The full AddTool() function. Call it DoAddTool in wxPython and
138 // implement the other Add methods by calling it.
b96c7a38
RD
139 //
140 // If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap
141 // is created and used as the disabled image.
15030c51
RD
142 wxToolBarToolBase *DoAddTool(int id,
143 const wxString& label,
144 const wxBitmap& bitmap,
145 const wxBitmap& bmpDisabled = wxNullBitmap,
146 wxItemKind kind = wxITEM_NORMAL,
147 const wxString& shortHelp = wxPyEmptyString,
148 const wxString& longHelp = wxPyEmptyString,
149 PyObject *clientData = NULL)
b96c7a38 150 {
9b3d3bc4 151 wxPyUserData* udata = NULL;
15030c51 152 if (clientData && clientData != Py_None)
9b3d3bc4 153 udata = new wxPyUserData(clientData);
b96c7a38
RD
154 return self->AddTool(id, label, bitmap, bmpDisabled, kind,
155 shortHelp, longHelp, udata);
9b3d3bc4
RD
156 }
157
9b3d3bc4 158
15030c51
RD
159 // Insert the new tool at the given position, if pos == GetToolsCount(), it
160 // is equivalent to DoAddTool()
1e4a197e 161 wxToolBarToolBase *DoInsertTool(size_t pos,
9b3d3bc4 162 int id,
b96c7a38 163 const wxString& label,
9b3d3bc4 164 const wxBitmap& bitmap,
b96c7a38
RD
165 const wxBitmap& bmpDisabled = wxNullBitmap,
166 wxItemKind kind = wxITEM_NORMAL,
c12de7f8
RD
167 const wxString& shortHelp = wxPyEmptyString,
168 const wxString& longHelp = wxPyEmptyString,
b96c7a38
RD
169 PyObject *clientData = NULL)
170 {
9b3d3bc4 171 wxPyUserData* udata = NULL;
15030c51 172 if (clientData && clientData != Py_None)
9b3d3bc4 173 udata = new wxPyUserData(clientData);
b96c7a38
RD
174 return self->InsertTool(pos, id, label, bitmap, bmpDisabled, kind,
175 shortHelp, longHelp, udata);
9b3d3bc4
RD
176 }
177
9b3d3bc4
RD
178 }
179
180
d14a1e28
RD
181 %pythoncode {
182 %# These match the original Add methods for this class, kept for
183 %# backwards compatibility with versions < 2.3.3.
15030c51
RD
184
185
186 def AddTool(self, id, bitmap,
d14a1e28 187 pushedBitmap = wx.NullBitmap,
15030c51
RD
188 isToggle = 0,
189 clientData = None,
190 shortHelpString = '',
191 longHelpString = '') :
192 '''Old style method to add a tool to the toolbar.'''
d14a1e28
RD
193 kind = wx.ITEM_NORMAL
194 if isToggle: kind = wx.ITEM_CHECK
15030c51
RD
195 return self.DoAddTool(id, '', bitmap, pushedBitmap, kind,
196 shortHelpString, longHelpString, clientData)
197
198 def AddSimpleTool(self, id, bitmap,
199 shortHelpString = '',
200 longHelpString = '',
201 isToggle = 0):
202 '''Old style method to add a tool to the toolbar.'''
d14a1e28
RD
203 kind = wx.ITEM_NORMAL
204 if isToggle: kind = wx.ITEM_CHECK
205 return self.DoAddTool(id, '', bitmap, wx.NullBitmap, kind,
15030c51
RD
206 shortHelpString, longHelpString, None)
207
208 def InsertTool(self, pos, id, bitmap,
d14a1e28 209 pushedBitmap = wx.NullBitmap,
15030c51
RD
210 isToggle = 0,
211 clientData = None,
212 shortHelpString = '',
213 longHelpString = ''):
214 '''Old style method to insert a tool in the toolbar.'''
d14a1e28
RD
215 kind = wx.ITEM_NORMAL
216 if isToggle: kind = wx.ITEM_CHECK
15030c51
RD
217 return self.DoInsertTool(pos, id, '', bitmap, pushedBitmap, kind,
218 shortHelpString, longHelpString, clientData)
219
220 def InsertSimpleTool(self, pos, id, bitmap,
221 shortHelpString = '',
222 longHelpString = '',
223 isToggle = 0):
224 '''Old style method to insert a tool in the toolbar.'''
d14a1e28
RD
225 kind = wx.ITEM_NORMAL
226 if isToggle: kind = wx.ITEM_CHECK
227 return self.DoInsertTool(pos, id, '', bitmap, wx.NullBitmap, kind,
15030c51
RD
228 shortHelpString, longHelpString, None)
229
230
d14a1e28
RD
231 %# The following are the new toolbar Add methods starting with
232 %# 2.3.3. They are renamed to have 'Label' in the name so as to be
233 %# able to keep backwards compatibility with using the above
234 %# methods. Eventually these should migrate to be the methods used
235 %# primarily and lose the 'Label' in the name...
15030c51
RD
236
237 def AddLabelTool(self, id, label, bitmap,
d14a1e28
RD
238 bmpDisabled = wx.NullBitmap,
239 kind = wx.ITEM_NORMAL,
15030c51
RD
240 shortHelp = '', longHelp = '',
241 clientData = None):
242 '''
243 The full AddTool() function.
244
d14a1e28 245 If bmpDisabled is wx.NullBitmap, a shadowed version of the normal bitmap
15030c51
RD
246 is created and used as the disabled image.
247 '''
248 return self.DoAddTool(id, label, bitmap, bmpDisabled, kind,
249 shortHelp, longHelp, clientData)
250
251
252 def InsertLabelTool(self, pos, id, label, bitmap,
d14a1e28
RD
253 bmpDisabled = wx.NullBitmap,
254 kind = wx.ITEM_NORMAL,
15030c51
RD
255 shortHelp = '', longHelp = '',
256 clientData = None):
257 '''
258 Insert the new tool at the given position, if pos == GetToolsCount(), it
259 is equivalent to AddTool()
260 '''
261 return self.DoInsertTool(pos, id, label, bitmap, bmpDisabled, kind,
262 shortHelp, longHelp, clientData)
263
264 def AddCheckLabelTool(self, id, label, bitmap,
d14a1e28 265 bmpDisabled = wx.NullBitmap,
15030c51
RD
266 shortHelp = '', longHelp = '',
267 clientData = None):
268 '''Add a check tool, i.e. a tool which can be toggled'''
d14a1e28 269 return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.ITEM_CHECK,
15030c51
RD
270 shortHelp, longHelp, clientData)
271
272 def AddRadioLabelTool(self, id, label, bitmap,
d14a1e28 273 bmpDisabled = wx.NullBitmap,
15030c51
RD
274 shortHelp = '', longHelp = '',
275 clientData = None):
276 '''
277 Add a radio tool, i.e. a tool which can be toggled and releases any
278 other toggled radio tools in the same group when it happens
279 '''
d14a1e28 280 return self.DoAddTool(id, label, bitmap, bmpDisabled, wx.ITEM_RADIO,
15030c51
RD
281 shortHelp, longHelp, clientData)
282
283
d14a1e28
RD
284 %# For consistency with the backwards compatible methods above, here are
285 %# some non-'Label' versions of the Check and Radio methods
15030c51 286 def AddCheckTool(self, id, bitmap,
d14a1e28 287 bmpDisabled = wx.NullBitmap,
15030c51
RD
288 shortHelp = '', longHelp = '',
289 clientData = None):
290 '''Add a check tool, i.e. a tool which can be toggled'''
d14a1e28 291 return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.ITEM_CHECK,
15030c51
RD
292 shortHelp, longHelp, clientData)
293
294 def AddRadioTool(self, id, bitmap,
d14a1e28 295 bmpDisabled = wx.NullBitmap,
15030c51
RD
296 shortHelp = '', longHelp = '',
297 clientData = None):
298 '''
299 Add a radio tool, i.e. a tool which can be toggled and releases any
300 other toggled radio tools in the same group when it happens
301 '''
d14a1e28 302 return self.DoAddTool(id, '', bitmap, bmpDisabled, wx.ITEM_RADIO,
15030c51 303 shortHelp, longHelp, clientData)
d14a1e28 304 }
15030c51 305
a6d2f5bb
RD
306 %name(AddToolItem) wxToolBarToolBase *AddTool (wxToolBarToolBase *tool);
307 %name(InsertToolItem) wxToolBarToolBase *InsertTool (size_t pos, wxToolBarToolBase *tool);
15030c51 308
9b3d3bc4
RD
309 wxToolBarToolBase *AddControl(wxControl *control);
310 wxToolBarToolBase *InsertControl(size_t pos, wxControl *control);
fe953afb 311 wxControl *FindControl( int id );
9b3d3bc4
RD
312
313 wxToolBarToolBase *AddSeparator();
314 wxToolBarToolBase *InsertSeparator(size_t pos);
315
316 wxToolBarToolBase *RemoveTool(int id);
317
318 bool DeleteToolByPos(size_t pos);
319 bool DeleteTool(int id);
320 void ClearTools();
321 bool Realize();
322
323 void EnableTool(int id, bool enable);
324 void ToggleTool(int id, bool toggle);
325 void SetToggle(int id, bool toggle);
326
327
d14a1e28 328 %extend {
9b3d3bc4 329 // convert the ClientData back to a PyObject
c6ebc32a
RD
330 PyObject* GetToolClientData(int id) {
331 wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(id);
9b3d3bc4
RD
332 if (udata) {
333 Py_INCREF(udata->m_obj);
334 return udata->m_obj;
335 } else {
336 Py_INCREF(Py_None);
337 return Py_None;
338 }
339 }
340
c6ebc32a
RD
341 void SetToolClientData(int id, PyObject* clientData) {
342 self->SetToolClientData(id, new wxPyUserData(clientData));
9b3d3bc4
RD
343 }
344 }
345
3ef86e32
RD
346 // returns tool pos, or wxNOT_FOUND if tool isn't found
347 int GetToolPos(int id) const;
9b3d3bc4
RD
348
349 bool GetToolState(int id);
350 bool GetToolEnabled(int id);
351 void SetToolShortHelp(int id, const wxString& helpString);
352 wxString GetToolShortHelp(int id);
353 void SetToolLongHelp(int id, const wxString& helpString);
354 wxString GetToolLongHelp(int id);
355
356 %name(SetMarginsXY) void SetMargins(int x, int y);
357 void SetMargins(const wxSize& size);
358 void SetToolPacking(int packing);
359 void SetToolSeparation(int separation);
360 wxSize GetToolMargins();
83b18bab 361 wxSize GetMargins();
9b3d3bc4
RD
362 int GetToolPacking();
363 int GetToolSeparation();
364
365 void SetRows(int nRows);
366 void SetMaxRowsCols(int rows, int cols);
367 int GetMaxRows();
368 int GetMaxCols();
369
370 void SetToolBitmapSize(const wxSize& size);
371 wxSize GetToolBitmapSize();
372 wxSize GetToolSize();
373
c6ebc32a
RD
374 // returns a (non separator) tool containing the point (x, y) or NULL if
375 // there is no tool at this point (corrdinates are client)
376 wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
377
a6d2f5bb
RD
378 // find the tool by id
379 wxToolBarToolBase *FindById(int toolid) const;
380
dd9f7fea 381 // return True if this is a vertical toolbar, otherwise False
c6ebc32a 382 bool IsVertical();
9b3d3bc4
RD
383};
384
385
386
387
388class wxToolBar : public wxToolBarBase {
389public:
d14a1e28
RD
390 %addtofunc wxToolBar "self._setOORInfo(self)"
391 %addtofunc wxToolBar() ""
392
9b3d3bc4
RD
393 wxToolBar(wxWindow *parent,
394 wxWindowID id,
b68dc582
RD
395 const wxPoint& pos = wxDefaultPosition,
396 const wxSize& size = wxDefaultSize,
9b3d3bc4 397 long style = wxNO_BORDER | wxTB_HORIZONTAL,
137b5242 398 const wxString& name = wxPyToolBarNameStr);
d14a1e28 399 %name(PreToolBar)wxToolBar();
09f3d4e6
RD
400
401 bool Create(wxWindow *parent,
402 wxWindowID id,
403 const wxPoint& pos = wxDefaultPosition,
404 const wxSize& size = wxDefaultSize,
405 long style = wxNO_BORDER | wxTB_HORIZONTAL,
137b5242 406 const wxString& name = wxPyToolBarNameStr);
9b3d3bc4 407
9b3d3bc4
RD
408 wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
409};
410
9c039d08 411//---------------------------------------------------------------------------