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