]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/toolbar.tex
patch 1306473
[wxWidgets.git] / docs / latex / wx / toolbar.tex
CommitLineData
81d66cf3 1\section{\class{wxToolBar}}\label{wxtoolbar}
a660d684 2
81d66cf3
JS
3The name wxToolBar is defined to be a synonym for one of the following classes:
4
5\begin{itemize}\itemsep=0pt
6\item {\bf wxToolBar95} The native Windows 95 toolbar. Used on Windows 95, NT 4 and above.
7\item {\bf wxToolBarMSW} A Windows implementation. Used on 16-bit Windows.
8\item {\bf wxToolBarGTK} The GTK toolbar.
81d66cf3
JS
9\end{itemize}
10
11Note that the base class {\bf wxToolBarBase} defines
5f445b31 12automatic scrolling management functionality which is similar
81d66cf3 13to \helpref{wxScrolledWindow}{wxscrolledwindow}, so please refer to this class also.
a660d684
KB
14
15\wxheading{Derived from}
16
81d66cf3 17wxToolBarBase\\
a660d684
KB
18\helpref{wxControl}{wxcontrol}\\
19\helpref{wxWindow}{wxwindow}\\
20\helpref{wxEvtHandler}{wxevthandler}\\
21\helpref{wxObject}{wxobject}
22
954b8ae6
JS
23\wxheading{Include files}
24
fc2171bd 25<wx/toolbar.h> (to allow wxWidgets to select an appropriate toolbar class)\\
a9102b36 26<wx/tbarbase.h> (the base class)
954b8ae6 27
a660d684
KB
28\wxheading{Remarks}
29
81d66cf3 30You may also create a toolbar that is managed by the frame, by
a9102b36
JS
31calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. Under Pocket PC,
32you should {\it always} use this function for creating the toolbar
33to be managed by the frame, so that wxWidgets can use a combined
34menubar and toolbar. Where you manage your own toolbars, create a wxToolBar
35as usual.
81d66cf3 36
a9102b36 37The meaning of a "separator" is a vertical line under Windows and simple space under GTK+.
5f445b31 38
33c4f27f
JS
39{\bf wxToolBar95:} Note that this toolbar paints tools to reflect system-wide colours.
40If you use more than 16 colours in your tool bitmaps, you may wish to suppress
41this behaviour, otherwise system colours in your bitmaps will inadvertently be
c36f1fc7 42mapped to system colours. To do this, set the {\tt msw.remap} system option
33c4f27f
JS
43before creating the toolbar:
44
45\begin{verbatim}
c36f1fc7 46 wxSystemOptions::SetOption(wxT("msw.remap"), 0);
33c4f27f 47\end{verbatim}
81d66cf3 48
92661f97
VZ
49If you wish to use 32-bit images (which include an alpha channel for transparency)
50use:
51
52\begin{verbatim}
53 wxSystemOptions::SetOption(wxT("msw.remap"), 2);
54\end{verbatim}
55
dbd94b75 56then colour remapping is switched off, and a transparent background used. But only
92661f97
VZ
57use this option under Windows XP with true colour:
58
59\begin{verbatim}
60 (wxTheApp->GetComCtl32Version() >= 600 && ::wxDisplayDepth() >= 32)
61\end{verbatim}
62
81d66cf3
JS
63\wxheading{Window styles}
64
65\twocolwidtha{5cm}
66\begin{twocollist}\itemsep=0pt
b06ba076
JS
67\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look (Windows and GTK only).}
68\twocolitem{\windowstyle{wxTB\_DOCKABLE}}{Makes the toolbar floatable and dockable (GTK only).}
69\twocolitem{\windowstyle{wxTB\_HORIZONTAL}}{Specifies horizontal layout (default).}
70\twocolitem{\windowstyle{wxTB\_VERTICAL}}{Specifies vertical layout.}
d3c17ee7 71\twocolitem{\windowstyle{wxTB\_TEXT}}{Shows the text in the toolbar buttons; by default only icons are shown.}
b06ba076
JS
72\twocolitem{\windowstyle{wxTB\_NOICONS}}{Specifies no icons in the toolbar buttons; by default they are shown.}
73\twocolitem{\windowstyle{wxTB\_NODIVIDER}}{Specifies no divider (border) above the toolbar (Windows only).}
74\twocolitem{\windowstyle{wxTB\_NOALIGN}}{Specifies no alignment with the parent window (Windows only, not very useful).}
d3c17ee7 75\twocolitem{\windowstyle{wxTB\_HORZ\_LAYOUT}}{Shows the text and the icons alongside, not vertically stacked (Windows and GTK
99e8cb50 762 only). This style must be used with wxTB\_TEXT.}
b06ba076 77\twocolitem{\windowstyle{wxTB\_HORZ\_TEXT}}{Combination of wxTB\_HORZ\_LAYOUT and wxTB\_TEXT.}
81d66cf3
JS
78\end{twocollist}
79
c631abda
VZ
80See also \helpref{window styles overview}{windowstyles}. Note that the Win32
81native toolbar ignores {\tt wxTB\_NOICONS} style. Also, toggling the
82{\tt wxTB\_TEXT} works only if the style was initially on.
a660d684
KB
83
84\wxheading{Event handling}
85
eb5fa34b 86The toolbar class emits menu commands in the same way that a frame menubar does,
81d66cf3
JS
87so you can use one EVT\_MENU macro for both a menu item and a toolbar button.
88The event handler functions take a wxCommandEvent argument. For most event macros,
89the identifier of the tool is passed, but for EVT\_TOOL\_ENTER the toolbar
d3c17ee7
JS
90window identifier is passed and the tool identifier is retrieved from the wxCommandEvent.
91This is because the identifier may be -1 when the mouse moves off a tool, and -1 is not
81d66cf3 92allowed as an identifier in the event system.
a660d684 93
81d66cf3
JS
94\twocolwidtha{7cm}
95\begin{twocollist}\itemsep=0pt
96\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
97(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
98\twocolitem{{\bf EVT\_MENU(id, func)}}{The same as EVT\_TOOL.}
99\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
d3c17ee7 100for a range of identifiers. Pass the ids of the tools.}
81d66cf3 101\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{The same as EVT\_TOOL\_RANGE.}
81d66cf3
JS
102\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
103Pass the id of the tool.}
104\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
105for a range of ids. Pass the ids of the tools.}
106\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event.
107Pass the id of the toolbar itself. The value of wxCommandEvent::GetSelection is the tool id, or -1 if the mouse cursor has moved off a tool.}
108\end{twocollist}
a660d684
KB
109
110\wxheading{See also}
111
112\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
a660d684
KB
113\helpref{wxScrolledWindow}{wxscrolledwindow}
114
115\latexignore{\rtfignore{\wxheading{Members}}}
116
81d66cf3 117\membersection{wxToolBar::wxToolBar}\label{wxtoolbarconstr}
a660d684 118
81d66cf3 119\func{}{wxToolBar}{\void}
a660d684
KB
120
121Default constructor.
122
81d66cf3
JS
123\func{}{wxToolBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},
124 \param{const wxPoint\& }{pos = wxDefaultPosition},
125 \param{const wxSize\& }{size = wxDefaultSize},
126 \param{long }{style = wxTB\_HORIZONTAL \pipe wxNO\_BORDER},
127 \param{const wxString\& }{name = wxPanelNameStr}}
128
129Constructs a toolbar.
130
131\wxheading{Parameters}
132
133\docparam{parent}{Pointer to a parent window.}
a660d684 134
81d66cf3
JS
135\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
136
fc2171bd 137\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWidgets
81d66cf3
JS
138should generate a default position for the window. If using the wxWindow class directly, supply
139an actual position.}
140
fc2171bd 141\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets
81d66cf3
JS
142should generate a default size for the window.}
143
144\docparam{style}{Window style. See \helpref{wxToolBar}{wxtoolbar} for details.}
145
146\docparam{name}{Window name.}
147
148\wxheading{Remarks}
149
150After a toolbar is created, you use \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} and
151perhaps \helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, and then you
152must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} to construct and display the toolbar
153tools.
154
155You may also create a toolbar that is managed by the frame, by
156calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
157
6d06e061 158\membersection{wxToolBar::\destruct{wxToolBar}}\label{wxtoolbardtor}
81d66cf3
JS
159
160\func{void}{\destruct{wxToolBar}}{\void}
a660d684
KB
161
162Toolbar destructor.
163
5f445b31
RR
164\membersection{wxToolBar::AddControl}\label{wxtoolbaraddcontrol}
165
166\func{bool}{AddControl}{\param{wxControl*}{ control}}
167
168Adds any control to the toolbar, typically e.g. a combobox.
169
170\docparam{control}{The control to be added.}
171
81d66cf3 172\membersection{wxToolBar::AddSeparator}\label{wxtoolbaraddseparator}
a660d684
KB
173
174\func{void}{AddSeparator}{\void}
175
176Adds a separator for spacing groups of tools.
177
178\wxheading{See also}
179
81d66cf3 180\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
a660d684 181
81d66cf3 182\membersection{wxToolBar::AddTool}\label{wxtoolbaraddtool}
a660d684 183
9a75ba66 184\func{wxToolBarToolBase*}{AddTool}{\param{int}{ toolId},\rtfsp
882bf210
VZ
185\param{const wxString\&}{ label},\rtfsp
186\param{const wxBitmap\&}{ bitmap1},\rtfsp
187\param{const wxString\& }{shortHelpString = ""},\rtfsp
188\param{wxItemKind}{ kind = wxITEM\_NORMAL}}
189
9a75ba66 190\func{wxToolBarToolBase*}{AddTool}{\param{int}{ toolId},\rtfsp
882bf210
VZ
191\param{const wxString\&}{ label},\rtfsp
192\param{const wxBitmap\&}{ bitmap1},\rtfsp
193\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap},\rtfsp
194\param{wxItemKind}{ kind = wxITEM\_NORMAL},\rtfsp
195\param{const wxString\& }{shortHelpString = ""},
196\param{const wxString\& }{longHelpString = ""},\rtfsp
197\param{wxObject* }{clientData = NULL}}
a660d684 198
9a75ba66 199\func{wxToolBarToolBase*}{AddTool}{\param{wxToolBarToolBase* }{tool}}
dd91da4e 200
3ca6a5f0 201Adds a tool to the toolbar. The first (short and most commonly used) version
882bf210 202has fewer parameters than the full version at the price of not being able to
dd91da4e 203specify some of the more rarely used button features. The last version allows
ac1f013c 204you to add an existing tool.
a660d684
KB
205
206\wxheading{Parameters}
207
5ef2e633 208\docparam{toolId}{An integer by which
a660d684
KB
209the tool may be identified in subsequent operations.}
210
882bf210
VZ
211\docparam{kind}{May be wxITEM\_NORMAL for a normal button (default),
212wxITEM\_CHECK for a checkable tool (such tool stays pressed after it had been
213toggled) or wxITEM\_RADIO for a checkable tool which makes part of a radio
214group of tools each of which is automatically unchecked whenever another button
215in the group is checked}
a660d684 216
0bab4df5 217\docparam{bitmap1}{The primary tool bitmap.}
a660d684 218
0bab4df5
VZ
219\docparam{bitmap2}{The bitmap used when the tool is disabled. If it is equal to
220wxNullBitmap, the disabled bitmap is automatically generated by greing the
221normal one.}
a660d684 222
5ef2e633 223\docparam{shortHelpString}{This string is used for the tools tooltip}
a660d684 224
5ef2e633
VZ
225\docparam{longHelpString}{This string is shown in the statusbar (if any) of the
226parent frame when the mouse pointer is inside the tool}
a660d684 227
882bf210
VZ
228\docparam{clientData}{An optional pointer to client data which can be
229retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.}
230
dd91da4e
VZ
231\docparam{tool}{The tool to be added.}
232
81d66cf3 233\wxheading{Remarks}
a660d684 234
81d66cf3
JS
235After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in
236order to have the tools appear.
a660d684 237
81d66cf3 238\wxheading{See also}
a660d684 239
882bf210
VZ
240\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator},\rtfsp
241\helpref{wxToolBar::AddCheckTool}{wxtoolbaraddchecktool},\rtfsp
242\helpref{wxToolBar::AddRadioTool}{wxtoolbaraddradiotool},\rtfsp
243\helpref{wxToolBar::InsertTool}{wxtoolbarinserttool},\rtfsp
244\helpref{wxToolBar::DeleteTool}{wxtoolbardeletetool},\rtfsp
245\helpref{wxToolBar::Realize}{wxtoolbarrealize}
246
247\membersection{wxToolBar::AddCheckTool}\label{wxtoolbaraddchecktool}
248
9a75ba66 249\func{wxToolBarToolBase*}{AddCheckTool}{\param{int}{ toolId},\rtfsp
882bf210
VZ
250\param{const wxString\&}{ label},\rtfsp
251\param{const wxBitmap\&}{ bitmap1},\rtfsp
252\param{const wxBitmap\&}{ bitmap2},\rtfsp
253\param{const wxString\& }{shortHelpString = ""},\rtfsp
254\param{const wxString\& }{longHelpString = ""},\rtfsp
255\param{wxObject* }{clientData = NULL}}
256
257Adds a new check (or toggle) tool to the toolbar. The parameters are the same
258as in \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.
259
260\wxheading{See also}
261
262\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}
263
264\membersection{wxToolBar::AddRadioTool}\label{wxtoolbaraddradiotool}
265
9a75ba66 266\func{wxToolBarToolBase*}{AddRadioTool}{\param{int}{ toolId},\rtfsp
882bf210
VZ
267\param{const wxString\&}{ label},\rtfsp
268\param{const wxBitmap\&}{ bitmap1},\rtfsp
269\param{const wxBitmap\&}{ bitmap2},\rtfsp
270\param{const wxString\& }{shortHelpString = ""},\rtfsp
271\param{const wxString\& }{longHelpString = ""},\rtfsp
272\param{wxObject* }{clientData = NULL}}
273
274Adds a new radio tool to the toolbar. Consecutive radio tools form a radio
275group such that exactly one button in the group is pressed at any moment, in
276other words whenever a button in the group is pressed the previously pressed
277button is automatically released. You should avoid having the radio groups of
278only one element as it would be impossible for the user to use such button.
279
280By default, the first button in the radio group is initially pressed, the
281others are not.
282
283\wxheading{See also}
284
285\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}
a660d684 286
5ef2e633 287\membersection{wxToolBar::DeleteTool}\label{wxtoolbardeletetool}
a660d684 288
5ef2e633 289\func{bool}{DeleteTool}{\param{int }{toolId}}
a660d684 290
5ef2e633
VZ
291Removes the specified tool from the toolbar and deletes it. If you don't want
292to delete the tool, but just to remove it from the toolbar (to possibly add it
293back later), you may use \helpref{RemoveTool}{wxtoolbarremovetool} instead.
a660d684 294
5ef2e633
VZ
295Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the
296change to take place, it will happen immediately.
a660d684 297
cc81d32f 298Returns true if the tool was deleted, false otherwise.
a660d684 299
5ef2e633 300\wxheading{See also}
a660d684 301
5ef2e633 302\helpref{DeleteToolByPos}{wxtoolbardeletetoolbypos}
a660d684 303
5ef2e633 304\membersection{wxToolBar::DeleteToolByPos}\label{wxtoolbardeletetoolbypos}
a660d684 305
5ef2e633 306\func{bool}{DeleteToolByPos}{\param{size\_t }{pos}}
a660d684 307
5ef2e633
VZ
308This function behaves like \helpref{DeleteTool}{wxtoolbardeletetool} but it
309deletes the tool at the specified position and not the one with the given id.
a660d684 310
81d66cf3 311\membersection{wxToolBar::EnableTool}\label{wxtoolbarenabletool}
a660d684 312
5ef2e633 313\func{void}{EnableTool}{\param{int }{toolId}, \param{const bool}{ enable}}
a660d684
KB
314
315Enables or disables the tool.
316
317\wxheading{Parameters}
318
5ef2e633 319\docparam{toolId}{Tool to enable or disable.}
a660d684 320
cc81d32f 321\docparam{enable}{If true, enables the tool, otherwise disables it.}
a660d684 322
9856788f
VZ
323{\bf NB:} This function should only be called after
324\helpref{Realize}{wxtoolbarrealize}.
325
a660d684
KB
326\wxheading{Remarks}
327
ac1f013c 328Some implementations will change the visible state of the tool to indicate that it is disabled.
a660d684
KB
329
330\wxheading{See also}
331
81d66cf3 332\helpref{wxToolBar::GetToolEnabled}{wxtoolbargettoolenabled},\rtfsp
81d66cf3 333\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
a660d684 334
ae071f31
JS
335\membersection{wxToolBar::FindById}\label{wxtoolbarfindbyid}
336
9a75ba66 337\func{wxToolBarToolBase*}{FindById}{\param{int }{id}}
ae071f31
JS
338
339Returns a pointer to the tool identified by {\it id} or
340NULL if no corresponding tool is found.
341
f89a1397
RR
342\membersection{wxToolBar::FindControl}\label{wxtoolbarfindcontrol}
343
344\func{wxControl*}{FindControl}{\param{int }{id}}
345
346Returns a pointer to the control identified by {\it id} or
347NULL if no corresponding control is found.
348
81d66cf3 349\membersection{wxToolBar::FindToolForPosition}\label{wxtoolbarfindtoolforposition}
a660d684 350
9a75ba66 351\constfunc{wxToolBarToolBase*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}}
a660d684
KB
352
353Finds a tool for the given mouse position.
354
355\wxheading{Parameters}
356
357\docparam{x}{X position.}
358
359\docparam{y}{Y position.}
360
361\wxheading{Return value}
362
363A pointer to a tool if a tool is found, or NULL otherwise.
364
365\wxheading{Remarks}
366
367Used internally, and should not need to be used by the programmer.
368
81d66cf3 369\membersection{wxToolBar::GetToolSize}\label{wxtoolbargettoolsize}
a660d684 370
81d66cf3 371\func{wxSize}{GetToolSize}{\void}
a660d684
KB
372
373Returns the size of a whole button, which is usually larger than a tool bitmap because
374of added 3D effects.
375
376\wxheading{See also}
377
81d66cf3
JS
378\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
379\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize}
a660d684 380
81d66cf3 381\membersection{wxToolBar::GetToolBitmapSize}\label{wxtoolbargettoolbitmapsize}
a660d684 382
81d66cf3 383\func{wxSize}{GetToolBitmapSize}{\void}
a660d684
KB
384
385Returns the size of bitmap that the toolbar expects to have. The default bitmap size is 16 by 15 pixels.
386
387\wxheading{Remarks}
388
81d66cf3 389Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
a660d684
KB
390and not the eventual size of the tool button.
391
392\wxheading{See also}
393
81d66cf3
JS
394\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
395\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
a660d684 396
81d66cf3 397\membersection{wxToolBar::GetMargins}\label{wxtoolbargetmargins}
a660d684
KB
398
399\constfunc{wxSize}{GetMargins}{\void}
400
401Returns the left/right and top/bottom margins, which are also used for inter-toolspacing.
402
403\wxheading{See also}
404
81d66cf3 405\helpref{wxToolBar::SetMargins}{wxtoolbarsetmargins}
a660d684 406
81d66cf3 407\membersection{wxToolBar::GetToolClientData}\label{wxtoolbargettoolclientdata}
a660d684 408
5ef2e633 409\constfunc{wxObject*}{GetToolClientData}{\param{int }{toolId}}
a660d684
KB
410
411Get any client data associated with the tool.
412
413\wxheading{Parameters}
414
5ef2e633 415\docparam{toolId}{Id of the tool, as passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
a660d684
KB
416
417\wxheading{Return value}
418
419Client data, or NULL if there is none.
420
81d66cf3 421\membersection{wxToolBar::GetToolEnabled}\label{wxtoolbargettoolenabled}
a660d684 422
5ef2e633 423\constfunc{bool}{GetToolEnabled}{\param{int }{toolId}}
a660d684
KB
424
425Called to determine whether a tool is enabled (responds to user input).
426
427\wxheading{Parameters}
428
5ef2e633 429\docparam{toolId}{Id of the tool in question.}
a660d684
KB
430
431\wxheading{Return value}
432
cc81d32f 433true if the tool is enabled, false otherwise.
a660d684 434
5ef2e633
VZ
435\wxheading{See also}
436
437\helpref{wxToolBar::EnableTool}{wxtoolbarenabletool}
438
81d66cf3 439\membersection{wxToolBar::GetToolLongHelp}\label{wxtoolbargettoollonghelp}
a660d684 440
5ef2e633 441\constfunc{wxString}{GetToolLongHelp}{\param{int }{toolId}}
a660d684
KB
442
443Returns the long help for the given tool.
444
445\wxheading{Parameters}
446
5ef2e633 447\docparam{toolId}{The tool in question.}
a660d684
KB
448
449\wxheading{See also}
450
81d66cf3
JS
451\helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp},\rtfsp
452\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
a660d684 453
81d66cf3 454\membersection{wxToolBar::GetToolPacking}\label{wxtoolbargettoolpacking}
a660d684
KB
455
456\constfunc{int}{GetToolPacking}{\void}
457
458Returns the value used for packing tools.
459
460\wxheading{See also}
461
81d66cf3 462\helpref{wxToolBar::SetToolPacking}{wxtoolbarsettoolpacking}
a660d684 463
e6c96a7c
JS
464\membersection{wxToolBar::GetToolPos}\label{wxtoolbargettoolpos}
465
466\constfunc{int}{GetToolPos}{\param{int }{toolId}}
467
a8d08dbd 468Returns the tool position in the toolbar, or {\tt wxNOT\_FOUND} if the tool is not found.
e6c96a7c 469
81d66cf3 470\membersection{wxToolBar::GetToolSeparation}\label{wxtoolbargettoolseparation}
a660d684
KB
471
472\constfunc{int}{GetToolSeparation}{\void}
473
474Returns the default separator size.
475
476\wxheading{See also}
477
81d66cf3 478\helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
a660d684 479
81d66cf3 480\membersection{wxToolBar::GetToolShortHelp}\label{wxtoolbargettoolshorthelp}
a660d684 481
5ef2e633 482\constfunc{wxString}{GetToolShortHelp}{\param{int }{toolId}}
a660d684
KB
483
484Returns the short help for the given tool.
485
a660d684
KB
486\wxheading{Parameters}
487
5ef2e633 488\docparam{toolId}{The tool in question.}
a660d684
KB
489
490\wxheading{See also}
491
81d66cf3
JS
492\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
493\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
a660d684 494
81d66cf3 495\membersection{wxToolBar::GetToolState}\label{wxtoolbargettoolstate}
a660d684 496
5ef2e633 497\constfunc{bool}{GetToolState}{\param{int }{toolId}}
a660d684
KB
498
499Gets the on/off state of a toggle tool.
500
501\wxheading{Parameters}
502
5ef2e633 503\docparam{toolId}{The tool in question.}
a660d684
KB
504
505\wxheading{Return value}
506
cc81d32f 507true if the tool is toggled on, false otherwise.
a660d684 508
5ef2e633
VZ
509\wxheading{See also}
510
511\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
512
513\membersection{wxToolBar::InsertControl}\label{wxtoolbarinsertcontrol}
514
9a75ba66 515\func{wxToolBarToolBase *}{InsertControl}{\param{size\_t }{pos}, \param{wxControl *}{control}}
5ef2e633
VZ
516
517Inserts the control into the toolbar at the given position.
518
519You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
a660d684 520
5ef2e633
VZ
521\wxheading{See also}
522
523\helpref{AddControl}{wxtoolbaraddcontrol},\\
524\helpref{InsertTool}{wxtoolbarinserttool}
525
526\membersection{wxToolBar::InsertSeparator}\label{wxtoolbarinsertseparator}
527
9a75ba66 528\func{wxToolBarToolBase *}{InsertSeparator}{\param{size\_t }{pos}}
5ef2e633
VZ
529
530Inserts the separator into the toolbar at the given position.
531
532You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
533
534\wxheading{See also}
535
536\helpref{AddSeparator}{wxtoolbaraddseparator},\\
537\helpref{InsertTool}{wxtoolbarinserttool}
538
539\membersection{wxToolBar::InsertTool}\label{wxtoolbarinserttool}
a660d684 540
9a75ba66 541\func{wxToolBarToolBase *}{InsertTool}{\param{size\_t }{pos},\rtfsp
605d715d 542\param{int}{ toolId}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
cc81d32f 543\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = false},\rtfsp
5ef2e633
VZ
544\param{wxObject* }{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
545
9a75ba66
RN
546\func{wxToolBarToolBase *}{InsertTool}{\param{size\_t }{pos},\rtfsp
547\param{wxToolBarToolBase* }{tool}}
dd91da4e 548
5ef2e633
VZ
549Inserts the tool with the specified attributes into the toolbar at the given
550position.
a660d684 551
5ef2e633 552You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
81d66cf3
JS
553
554\wxheading{See also}
555
5ef2e633
VZ
556\helpref{AddTool}{wxtoolbaraddtool},\\
557\helpref{InsertControl}{wxtoolbarinsertcontrol},\\
558\helpref{InsertSeparator}{wxtoolbarinsertseparator}
81d66cf3
JS
559
560\membersection{wxToolBar::OnLeftClick}\label{wxtoolbaronleftclick}
a660d684 561
5ef2e633 562\func{bool}{OnLeftClick}{\param{int}{ toolId}, \param{bool}{ toggleDown}}
a660d684 563
81d66cf3
JS
564Called when the user clicks on a tool with the left mouse button.
565
566This is the old way of detecting tool clicks; although it will still work,
567you should use the EVT\_MENU or EVT\_TOOL macro instead.
a660d684
KB
568
569\wxheading{Parameters}
570
5ef2e633 571\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
a660d684 572
cc81d32f 573\docparam{toggleDown}{true if the tool is a toggle and the toggle is down, otherwise is false.}
a660d684
KB
574
575\wxheading{Return value}
576
cc81d32f 577If the tool is a toggle and this function returns false, the toggle
a660d684
KB
578toggle state (internal and visual) will not be changed. This provides a way of
579specifying that toggle operations are not permitted in some circumstances.
580
581\wxheading{See also}
582
81d66cf3
JS
583\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
584\helpref{wxToolBar::OnRightClick}{wxtoolbaronrightclick}
a660d684 585
81d66cf3 586\membersection{wxToolBar::OnMouseEnter}\label{wxtoolbaronmouseenter}
a660d684 587
5ef2e633 588\func{void}{OnMouseEnter}{\param{int}{ toolId}}
a660d684
KB
589
590This is called when the mouse cursor moves into a tool or out of
591the toolbar.
592
81d66cf3
JS
593This is the old way of detecting mouse enter events; although it will still work,
594you should use the EVT\_TOOL\_ENTER macro instead.
595
a660d684
KB
596\wxheading{Parameters}
597
5ef2e633 598\docparam{toolId}{Greater than -1 if the mouse cursor has moved into the tool,
a660d684
KB
599or -1 if the mouse cursor has moved. The
600programmer can override this to provide extra information about the tool,
601such as a short description on the status line.}
602
603\wxheading{Remarks}
604
fc2171bd 605With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWidgets may not be able to
a660d684
KB
606detect it. Therefore this function may not always be called when expected.
607
81d66cf3 608\membersection{wxToolBar::OnRightClick}\label{wxtoolbaronrightclick}
a660d684 609
5ef2e633 610\func{void}{OnRightClick}{\param{int}{ toolId}, \param{float}{ x}, \param{float}{ y}}
a660d684
KB
611
612Called when the user clicks on a tool with the right mouse button. The
613programmer should override this function to detect right tool clicks.
614
81d66cf3
JS
615This is the old way of detecting tool right clicks; although it will still work,
616you should use the EVT\_TOOL\_RCLICKED macro instead.
617
a660d684
KB
618\wxheading{Parameters}
619
5ef2e633 620\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
a660d684
KB
621
622\docparam{x}{The x position of the mouse cursor.}
623
624\docparam{y}{The y position of the mouse cursor.}
625
626\wxheading{Remarks}
627
628A typical use of this member might be to pop up a menu.
629
630\wxheading{See also}
631
81d66cf3
JS
632\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
633\helpref{wxToolBar::OnLeftClick}{wxtoolbaronleftclick}
634
635\membersection{wxToolBar::Realize}\label{wxtoolbarrealize}
636
637\func{bool}{Realize}{\void}
638
e12be2f7 639This function should be called after you have added tools.
81d66cf3 640
5ef2e633
VZ
641\membersection{wxToolBar::RemoveTool}\label{wxtoolbarremovetool}
642
9a75ba66 643\func{wxToolBarToolBase *}{RemoveTool}{\param{int }{id}}
5ef2e633
VZ
644
645Removes the given tool from the toolbar but doesn't delete it. This allows to
646insert/add this tool back to this (or another) toolbar later.
647
648Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the
649change to take place, it will happen immediately.
650
651\wxheading{See also}
652
653\helpref{DeleteTool}{wxtoolbardeletetool}
654
ac1f013c
JS
655\membersection{wxToolBar::SetBitmapResource}\label{wxtoolbarsetbitmapresource}
656
657\func{void}{SetBitmapResource}{\param{int }{resourceId}}
658
659Sets the bitmap resource identifier for specifying tool bitmaps as indices
660into a custom bitmap. Windows CE only.
661
6fd5fa4f
VZ
662\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
663
664\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
665
666\func{void}{SetMargins}{\param{int}{ x}, \param{int}{ y}}
667
668Set the values to be used as margins for the toolbar.
669
670\wxheading{Parameters}
671
672\docparam{size}{Margin size.}
673
674\docparam{x}{Left margin, right margin and inter-tool separation value.}
675
676\docparam{y}{Top margin, bottom margin and inter-tool separation value.}
677
678\wxheading{Remarks}
679
680This must be called before the tools are added if absolute positioning is to be used, and the
681default (zero-size) margins are to be overridden.
682
683\wxheading{See also}
684
685\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
686
81d66cf3 687\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
a660d684 688
81d66cf3 689\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
a660d684
KB
690
691Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
692
693\wxheading{Parameters}
694
695\docparam{size}{The size of the bitmaps in the toolbar.}
696
697\wxheading{Remarks}
698
699This should be called to tell the toolbar what the tool bitmap size is. Call
700it before you add tools.
701
81d66cf3 702Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
a660d684
KB
703and not the eventual size of the tool button.
704
705\wxheading{See also}
706
81d66cf3
JS
707\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
708\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
a660d684 709
6fd5fa4f 710\membersection{wxToolBar::SetToolClientData}\label{wxtoolbarsettoolclientdata}
a660d684 711
7899ef95 712\func{void}{SetToolClientData}{\param{int }{id}, \param{wxObject* }{clientData}}
a660d684 713
6fd5fa4f 714Sets the client data associated with the tool.
a660d684 715
81d66cf3 716\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp}
a660d684 717
5ef2e633 718\func{void}{SetToolLongHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}}
a660d684
KB
719
720Sets the long help for the given tool.
721
722\wxheading{Parameters}
723
5ef2e633 724\docparam{toolId}{The tool in question.}
a660d684
KB
725
726\docparam{helpString}{A string for the long help.}
727
728\wxheading{Remarks}
729
730You might use the long help for displaying the tool purpose on the status line.
731
732\wxheading{See also}
733
81d66cf3
JS
734\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
735\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp},\rtfsp
a660d684 736
81d66cf3 737\membersection{wxToolBar::SetToolPacking}\label{wxtoolbarsettoolpacking}
a660d684 738
eaaa6a06 739\func{void}{SetToolPacking}{\param{int}{ packing}}
a660d684
KB
740
741Sets the value used for spacing tools. The default value is 1.
742
743\wxheading{Parameters}
744
745\docparam{packing}{The value for packing.}
746
747\wxheading{Remarks}
748
749The packing is used for spacing in the vertical direction if the toolbar is horizontal,
750and for spacing in the horizontal direction if the toolbar is vertical.
751
752\wxheading{See also}
753
81d66cf3 754\helpref{wxToolBar::GetToolPacking}{wxtoolbargettoolpacking}
a660d684 755
81d66cf3 756\membersection{wxToolBar::SetToolShortHelp}\label{wxtoolbarsettoolshorthelp}
a660d684 757
5ef2e633 758\func{void}{SetToolShortHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}}
a660d684
KB
759
760Sets the short help for the given tool.
761
762\wxheading{Parameters}
763
5ef2e633 764\docparam{toolId}{The tool in question.}
a660d684
KB
765
766\docparam{helpString}{The string for the short help.}
767
768\wxheading{Remarks}
769
770An application might use short help for identifying the tool purpose in a tooltip.
771
772\wxheading{See also}
773
81d66cf3 774\helpref{wxToolBar::GetToolShortHelp}{wxtoolbargettoolshorthelp}, \helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp}
a660d684 775
81d66cf3 776\membersection{wxToolBar::SetToolSeparation}\label{wxtoolbarsettoolseparation}
a660d684 777
eaaa6a06 778\func{void}{SetToolSeparation}{\param{int}{ separation}}
a660d684
KB
779
780Sets the default separator size. The default value is 5.
781
782\wxheading{Parameters}
783
784\docparam{separation}{The separator size.}
785
786\wxheading{See also}
787
81d66cf3 788\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}
a660d684 789
81d66cf3 790\membersection{wxToolBar::ToggleTool}\label{wxtoolbartoggletool}
a660d684 791
5ef2e633 792\func{void}{ToggleTool}{\param{int }{toolId}, \param{const bool}{ toggle}}
a660d684 793
41bf0eb3 794Toggles a tool on or off. This does not cause any event to get emitted.
a660d684
KB
795
796\wxheading{Parameters}
797
5ef2e633 798\docparam{toolId}{Tool in question.}
a660d684 799
cc81d32f 800\docparam{toggle}{If true, toggles the tool on, otherwise toggles it off.}
a660d684
KB
801
802\wxheading{Remarks}
803
804Only applies to a tool that has been specified as a toggle tool.
805
806\wxheading{See also}
807
81d66cf3 808\helpref{wxToolBar::GetToolState}{wxtoolbargettoolstate}
0497e172 809