]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/toolbar.tex
command events are not redirected to focused window
[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.
9\item {\bf wxToolBarSimple} A simple implementation, with scrolling.
10Used on platforms with no native toolbar control, or where scrolling is required.
11\end{itemize}
12
13Note that the base class {\bf wxToolBarBase} defines
5f445b31 14automatic scrolling management functionality which is similar
81d66cf3
JS
15to \helpref{wxScrolledWindow}{wxscrolledwindow}, so please refer to this class also.
16Not all toolbars support scrolling, but wxToolBarSimple does.
a660d684
KB
17
18\wxheading{Derived from}
19
81d66cf3 20wxToolBarBase\\
a660d684
KB
21\helpref{wxControl}{wxcontrol}\\
22\helpref{wxWindow}{wxwindow}\\
23\helpref{wxEvtHandler}{wxevthandler}\\
24\helpref{wxObject}{wxobject}
25
954b8ae6
JS
26\wxheading{Include files}
27
28<wx/toolbar.h> (to allow wxWindows to select an appropriate toolbar class)\\
29<wx/tbarbase.h> (the base class)\\
30<wx/tbarmsw.h> (the non-Windows 95 Windows toolbar class)\\
31<wx/tbar95.h> (the Windows 95/98 toolbar class)\\
32<wx/tbarsmpl.h> (the generic simple toolbar class)
33
a660d684
KB
34\wxheading{Remarks}
35
81d66cf3
JS
36You may also create a toolbar that is managed by the frame, by
37calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
38
5f445b31
RR
39Due to the use of native toolbars on the various platforms, certain adaptions will
40often have to be made in order to get optimal look on all platforms as some platforms
41ignore the values for explicit placement and use their own layout and the meaning
42of a "separator" is a vertical line under Windows95 vs. simple space under GTK etc.
43
81d66cf3 44{\bf wxToolBar95:} Note that this toolbar paints tools to reflect user-selected colours.
85eb36c2
RR
45The toolbar orientation must always be {\bf wxHORIZONTAL}.
46
5f445b31 47{\bf wxToolBarGtk:} The toolbar orientation is ignored and is always {\bf wxHORIZONTAL}.
81d66cf3
JS
48
49\wxheading{Window styles}
50
51\twocolwidtha{5cm}
52\begin{twocollist}\itemsep=0pt
85eb36c2
RR
53\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look ('coolbar' or 'flatbar' style). Windows 95 and GTK 1.2 only.}
54\twocolitem{\windowstyle{wxTB\_DOCKABLE}}{Makes the toolbar floatable and dockable. GTK only.}
81d66cf3 55\twocolitem{\windowstyle{wxTB\_HORIZONTAL}}{Specifies horizontal layout.}
85eb36c2 56\twocolitem{\windowstyle{wxTB\_VERTICAL}}{Specifies vertical layout (not available for the GTK and Windows 95
81d66cf3
JS
57toolbar).}
58\twocolitem{\windowstyle{wxTB\_3DBUTTONS}}{Gives wxToolBarSimple a mild 3D look to its buttons.}
59\end{twocollist}
60
61See also \helpref{window styles overview}{windowstyles}.
a660d684
KB
62
63\wxheading{Event handling}
64
81d66cf3
JS
65The toolbar class emits menu commands in the same was that a frame menubar does,
66so you can use one EVT\_MENU macro for both a menu item and a toolbar button.
67The event handler functions take a wxCommandEvent argument. For most event macros,
68the identifier of the tool is passed, but for EVT\_TOOL\_ENTER the toolbar
69window is passed and the tool id is retrieved from the wxCommandEvent.
70This is because the id may be -1 when the mouse moves off a tool, and -1 is not
71allowed as an identifier in the event system.
a660d684 72
e702ff0f
JS
73Note that tool commands (and UI update events for tools) are first sent to
74the focus window within the frame that contains the toolbar. If no window within the frame has the focus,
75then the events are sent directly to the toolbar (and up the hierarchy to the
76frame, depending on where the application has put its event handlers). This allows command and UI update
77handling to be processed by specific windows and controls, and not necessarily
78by the application frame.
79
81d66cf3
JS
80\twocolwidtha{7cm}
81\begin{twocollist}\itemsep=0pt
82\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
83(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
84\twocolitem{{\bf EVT\_MENU(id, func)}}{The same as EVT\_TOOL.}
85\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
86for a range id identifiers. Pass the ids of the tools.}
87\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{The same as EVT\_TOOL\_RANGE.}
88
89\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
90Pass the id of the tool.}
91\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
92for a range of ids. Pass the ids of the tools.}
93\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event.
94Pass 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.}
95\end{twocollist}
a660d684
KB
96
97\wxheading{See also}
98
99\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
a660d684
KB
100\helpref{wxScrolledWindow}{wxscrolledwindow}
101
102\latexignore{\rtfignore{\wxheading{Members}}}
103
81d66cf3 104\membersection{wxToolBar::wxToolBar}\label{wxtoolbarconstr}
a660d684 105
81d66cf3 106\func{}{wxToolBar}{\void}
a660d684
KB
107
108Default constructor.
109
81d66cf3
JS
110\func{}{wxToolBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},
111 \param{const wxPoint\& }{pos = wxDefaultPosition},
112 \param{const wxSize\& }{size = wxDefaultSize},
113 \param{long }{style = wxTB\_HORIZONTAL \pipe wxNO\_BORDER},
114 \param{const wxString\& }{name = wxPanelNameStr}}
115
116Constructs a toolbar.
117
118\wxheading{Parameters}
119
120\docparam{parent}{Pointer to a parent window.}
a660d684 121
81d66cf3
JS
122\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
123
124\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWindows
125should generate a default position for the window. If using the wxWindow class directly, supply
126an actual position.}
127
128\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWindows
129should generate a default size for the window.}
130
131\docparam{style}{Window style. See \helpref{wxToolBar}{wxtoolbar} for details.}
132
133\docparam{name}{Window name.}
134
135\wxheading{Remarks}
136
137After a toolbar is created, you use \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} and
138perhaps \helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, and then you
139must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} to construct and display the toolbar
140tools.
141
142You may also create a toolbar that is managed by the frame, by
143calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
144
145\membersection{wxToolBar::\destruct{wxToolBar}}
146
147\func{void}{\destruct{wxToolBar}}{\void}
a660d684
KB
148
149Toolbar destructor.
150
5f445b31
RR
151\membersection{wxToolBar::AddControl}\label{wxtoolbaraddcontrol}
152
153\func{bool}{AddControl}{\param{wxControl*}{ control}}
154
155Adds any control to the toolbar, typically e.g. a combobox.
156
157\docparam{control}{The control to be added.}
158
81d66cf3 159\membersection{wxToolBar::AddSeparator}\label{wxtoolbaraddseparator}
a660d684
KB
160
161\func{void}{AddSeparator}{\void}
162
163Adds a separator for spacing groups of tools.
164
165\wxheading{See also}
166
81d66cf3 167\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
a660d684 168
81d66cf3 169\membersection{wxToolBar::AddTool}\label{wxtoolbaraddtool}
a660d684 170
5ef2e633 171\func{wxToolBarTool*}{AddTool}{\param{int}{ toolId}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
81d66cf3
JS
172\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = FALSE},\rtfsp
173\param{long}{ xPos = -1}, \param{long}{ yPos = -1},\rtfsp
174\param{wxObject* }{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
a660d684
KB
175
176Adds a tool to the toolbar.
177
178\wxheading{Parameters}
179
5ef2e633 180\docparam{toolId}{An integer by which
a660d684
KB
181the tool may be identified in subsequent operations.}
182
183\docparam{isToggle}{Specifies whether the tool is a toggle or not: a toggle tool may be in
184two states, whereas a non-toggle tool is just a button.}
185
186\docparam{bitmap1}{The primary tool bitmap for toggle and button tools.}
187
188\docparam{bitmap2}{The second bitmap specifies the on-state bitmap for a toggle
85eb36c2 189tool. If this is wxNullBitmap, either an inverted version of the primary bitmap is
a660d684 190used for the on-state of a toggle tool (monochrome displays) or a black
85eb36c2
RR
191border is drawn around the tool (colour displays) or the pixmap is shown
192as a pressed button (GTK). }
a660d684
KB
193
194\docparam{xPos}{Specifies the x position of the tool if automatic layout is not suitable.}
195
196\docparam{yPos}{Specifies the y position of the tool if automatic layout is not suitable.}
197
198\docparam{clientData}{An optional pointer to client data which can be
81d66cf3 199retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.}
a660d684 200
5ef2e633 201\docparam{shortHelpString}{This string is used for the tools tooltip}
a660d684 202
5ef2e633
VZ
203\docparam{longHelpString}{This string is shown in the statusbar (if any) of the
204parent frame when the mouse pointer is inside the tool}
a660d684 205
81d66cf3 206\wxheading{Remarks}
a660d684 207
81d66cf3
JS
208After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in
209order to have the tools appear.
a660d684 210
81d66cf3 211\wxheading{See also}
a660d684 212
81d66cf3 213\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator},
5ef2e633
VZ
214\helpref{wxToolBar::InsertTool}{wxtoolbarinserttool},
215\helpref{wxToolBar::DeleteTool}{wxtoolbardeletetool},
81d66cf3 216\helpref{wxToolBar::Realize}{wxtoolbarrealize},
a660d684 217
5ef2e633 218\membersection{wxToolBar::DeleteTool}\label{wxtoolbardeletetool}
a660d684 219
5ef2e633 220\func{bool}{DeleteTool}{\param{int }{toolId}}
a660d684 221
5ef2e633
VZ
222Removes the specified tool from the toolbar and deletes it. If you don't want
223to delete the tool, but just to remove it from the toolbar (to possibly add it
224back later), you may use \helpref{RemoveTool}{wxtoolbarremovetool} instead.
a660d684 225
5ef2e633
VZ
226Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the
227change to take place, it will happen immediately.
a660d684 228
5ef2e633 229Returns TRUE if the tool was deleted, FALSE otherwise.
a660d684 230
5ef2e633 231\wxheading{See also}
a660d684 232
5ef2e633 233\helpref{DeleteToolByPos}{wxtoolbardeletetoolbypos}
a660d684 234
5ef2e633 235\membersection{wxToolBar::DeleteToolByPos}\label{wxtoolbardeletetoolbypos}
a660d684 236
5ef2e633 237\func{bool}{DeleteToolByPos}{\param{size\_t }{pos}}
a660d684 238
5ef2e633
VZ
239This function behaves like \helpref{DeleteTool}{wxtoolbardeletetool} but it
240deletes the tool at the specified position and not the one with the given id.
a660d684 241
81d66cf3 242\membersection{wxToolBar::EnableTool}\label{wxtoolbarenabletool}
a660d684 243
5ef2e633 244\func{void}{EnableTool}{\param{int }{toolId}, \param{const bool}{ enable}}
a660d684
KB
245
246Enables or disables the tool.
247
248\wxheading{Parameters}
249
5ef2e633 250\docparam{toolId}{Tool to enable or disable.}
a660d684
KB
251
252\docparam{enable}{If TRUE, enables the tool, otherwise disables it.}
253
9856788f
VZ
254{\bf NB:} This function should only be called after
255\helpref{Realize}{wxtoolbarrealize}.
256
a660d684
KB
257\wxheading{Remarks}
258
f7bd2698 259For wxToolBarSimple, does nothing. Some other implementations
a660d684
KB
260will change the visible state of the tool to indicate that it is disabled.
261
262\wxheading{See also}
263
81d66cf3 264\helpref{wxToolBar::GetToolEnabled}{wxtoolbargettoolenabled},\rtfsp
81d66cf3 265\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
a660d684 266
81d66cf3 267\membersection{wxToolBar::FindToolForPosition}\label{wxtoolbarfindtoolforposition}
a660d684 268
81d66cf3 269\constfunc{wxToolBarTool*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}}
a660d684
KB
270
271Finds a tool for the given mouse position.
272
273\wxheading{Parameters}
274
275\docparam{x}{X position.}
276
277\docparam{y}{Y position.}
278
279\wxheading{Return value}
280
281A pointer to a tool if a tool is found, or NULL otherwise.
282
283\wxheading{Remarks}
284
285Used internally, and should not need to be used by the programmer.
286
81d66cf3 287\membersection{wxToolBar::GetToolSize}\label{wxtoolbargettoolsize}
a660d684 288
81d66cf3 289\func{wxSize}{GetToolSize}{\void}
a660d684
KB
290
291Returns the size of a whole button, which is usually larger than a tool bitmap because
292of added 3D effects.
293
294\wxheading{See also}
295
81d66cf3
JS
296\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
297\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize}
a660d684 298
81d66cf3 299\membersection{wxToolBar::GetToolBitmapSize}\label{wxtoolbargettoolbitmapsize}
a660d684 300
81d66cf3 301\func{wxSize}{GetToolBitmapSize}{\void}
a660d684
KB
302
303Returns the size of bitmap that the toolbar expects to have. The default bitmap size is 16 by 15 pixels.
304
305\wxheading{Remarks}
306
81d66cf3 307Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
a660d684
KB
308and not the eventual size of the tool button.
309
310\wxheading{See also}
311
81d66cf3
JS
312\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
313\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
a660d684 314
81d66cf3 315\membersection{wxToolBar::GetMargins}\label{wxtoolbargetmargins}
a660d684
KB
316
317\constfunc{wxSize}{GetMargins}{\void}
318
319Returns the left/right and top/bottom margins, which are also used for inter-toolspacing.
320
321\wxheading{See also}
322
81d66cf3 323\helpref{wxToolBar::SetMargins}{wxtoolbarsetmargins}
a660d684 324
81d66cf3 325\membersection{wxToolBar::GetToolClientData}\label{wxtoolbargettoolclientdata}
a660d684 326
5ef2e633 327\constfunc{wxObject*}{GetToolClientData}{\param{int }{toolId}}
a660d684
KB
328
329Get any client data associated with the tool.
330
331\wxheading{Parameters}
332
5ef2e633 333\docparam{toolId}{Id of the tool, as passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
a660d684
KB
334
335\wxheading{Return value}
336
337Client data, or NULL if there is none.
338
81d66cf3 339\membersection{wxToolBar::GetToolEnabled}\label{wxtoolbargettoolenabled}
a660d684 340
5ef2e633 341\constfunc{bool}{GetToolEnabled}{\param{int }{toolId}}
a660d684
KB
342
343Called to determine whether a tool is enabled (responds to user input).
344
345\wxheading{Parameters}
346
5ef2e633 347\docparam{toolId}{Id of the tool in question.}
a660d684
KB
348
349\wxheading{Return value}
350
351TRUE if the tool is enabled, FALSE otherwise.
352
5ef2e633
VZ
353\wxheading{See also}
354
355\helpref{wxToolBar::EnableTool}{wxtoolbarenabletool}
356
81d66cf3 357\membersection{wxToolBar::GetToolLongHelp}\label{wxtoolbargettoollonghelp}
a660d684 358
5ef2e633 359\constfunc{wxString}{GetToolLongHelp}{\param{int }{toolId}}
a660d684
KB
360
361Returns the long help for the given tool.
362
363\wxheading{Parameters}
364
5ef2e633 365\docparam{toolId}{The tool in question.}
a660d684
KB
366
367\wxheading{See also}
368
81d66cf3
JS
369\helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp},\rtfsp
370\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
a660d684 371
81d66cf3 372\membersection{wxToolBar::GetToolPacking}\label{wxtoolbargettoolpacking}
a660d684
KB
373
374\constfunc{int}{GetToolPacking}{\void}
375
376Returns the value used for packing tools.
377
378\wxheading{See also}
379
81d66cf3 380\helpref{wxToolBar::SetToolPacking}{wxtoolbarsettoolpacking}
a660d684 381
81d66cf3 382\membersection{wxToolBar::GetToolSeparation}\label{wxtoolbargettoolseparation}
a660d684
KB
383
384\constfunc{int}{GetToolSeparation}{\void}
385
386Returns the default separator size.
387
388\wxheading{See also}
389
81d66cf3 390\helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
a660d684 391
81d66cf3 392\membersection{wxToolBar::GetToolShortHelp}\label{wxtoolbargettoolshorthelp}
a660d684 393
5ef2e633 394\constfunc{wxString}{GetToolShortHelp}{\param{int }{toolId}}
a660d684
KB
395
396Returns the short help for the given tool.
397
398Returns the long help for the given tool.
399
400\wxheading{Parameters}
401
5ef2e633 402\docparam{toolId}{The tool in question.}
a660d684
KB
403
404\wxheading{See also}
405
81d66cf3
JS
406\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
407\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
a660d684 408
81d66cf3 409\membersection{wxToolBar::GetToolState}\label{wxtoolbargettoolstate}
a660d684 410
5ef2e633 411\constfunc{bool}{GetToolState}{\param{int }{toolId}}
a660d684
KB
412
413Gets the on/off state of a toggle tool.
414
415\wxheading{Parameters}
416
5ef2e633 417\docparam{toolId}{The tool in question.}
a660d684
KB
418
419\wxheading{Return value}
420
421TRUE if the tool is toggled on, FALSE otherwise.
422
5ef2e633
VZ
423\wxheading{See also}
424
425\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
426
427\membersection{wxToolBar::InsertControl}\label{wxtoolbarinsertcontrol}
428
429\func{wxToolBarTool *}{InsertControl}{\param{size\_t }{pos}, \param{wxControl *}{control}}
430
431Inserts the control into the toolbar at the given position.
432
433You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
a660d684 434
5ef2e633
VZ
435\wxheading{See also}
436
437\helpref{AddControl}{wxtoolbaraddcontrol},\\
438\helpref{InsertTool}{wxtoolbarinserttool}
439
440\membersection{wxToolBar::InsertSeparator}\label{wxtoolbarinsertseparator}
441
442\func{wxToolBarTool *}{InsertSeparator}{\param{size\_t }{pos}}
443
444Inserts the separator into the toolbar at the given position.
445
446You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
447
448\wxheading{See also}
449
450\helpref{AddSeparator}{wxtoolbaraddseparator},\\
451\helpref{InsertTool}{wxtoolbarinserttool}
452
453\membersection{wxToolBar::InsertTool}\label{wxtoolbarinserttool}
a660d684 454
5ef2e633 455\func{wxToolBarTool *}{InsertTool}{\param{size\_t }{pos},\rtfsp
605d715d 456\param{int}{ toolId}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
5ef2e633
VZ
457\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = FALSE},\rtfsp
458\param{wxObject* }{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
459
460Inserts the tool with the specified attributes into the toolbar at the given
461position.
a660d684 462
5ef2e633 463You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
81d66cf3
JS
464
465\wxheading{See also}
466
5ef2e633
VZ
467\helpref{AddTool}{wxtoolbaraddtool},\\
468\helpref{InsertControl}{wxtoolbarinsertcontrol},\\
469\helpref{InsertSeparator}{wxtoolbarinsertseparator}
81d66cf3
JS
470
471\membersection{wxToolBar::OnLeftClick}\label{wxtoolbaronleftclick}
a660d684 472
5ef2e633 473\func{bool}{OnLeftClick}{\param{int}{ toolId}, \param{bool}{ toggleDown}}
a660d684 474
81d66cf3
JS
475Called when the user clicks on a tool with the left mouse button.
476
477This is the old way of detecting tool clicks; although it will still work,
478you should use the EVT\_MENU or EVT\_TOOL macro instead.
a660d684
KB
479
480\wxheading{Parameters}
481
5ef2e633 482\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
a660d684
KB
483
484\docparam{toggleDown}{TRUE if the tool is a toggle and the toggle is down, otherwise is FALSE.}
485
486\wxheading{Return value}
487
488If the tool is a toggle and this function returns FALSE, the toggle
489toggle state (internal and visual) will not be changed. This provides a way of
490specifying that toggle operations are not permitted in some circumstances.
491
492\wxheading{See also}
493
81d66cf3
JS
494\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
495\helpref{wxToolBar::OnRightClick}{wxtoolbaronrightclick}
a660d684 496
81d66cf3 497\membersection{wxToolBar::OnMouseEnter}\label{wxtoolbaronmouseenter}
a660d684 498
5ef2e633 499\func{void}{OnMouseEnter}{\param{int}{ toolId}}
a660d684
KB
500
501This is called when the mouse cursor moves into a tool or out of
502the toolbar.
503
81d66cf3
JS
504This is the old way of detecting mouse enter events; although it will still work,
505you should use the EVT\_TOOL\_ENTER macro instead.
506
a660d684
KB
507\wxheading{Parameters}
508
5ef2e633 509\docparam{toolId}{Greater than -1 if the mouse cursor has moved into the tool,
a660d684
KB
510or -1 if the mouse cursor has moved. The
511programmer can override this to provide extra information about the tool,
512such as a short description on the status line.}
513
514\wxheading{Remarks}
515
516With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWindows may not be able to
517detect it. Therefore this function may not always be called when expected.
518
81d66cf3 519\membersection{wxToolBar::OnRightClick}\label{wxtoolbaronrightclick}
a660d684 520
5ef2e633 521\func{void}{OnRightClick}{\param{int}{ toolId}, \param{float}{ x}, \param{float}{ y}}
a660d684
KB
522
523Called when the user clicks on a tool with the right mouse button. The
524programmer should override this function to detect right tool clicks.
525
81d66cf3
JS
526This is the old way of detecting tool right clicks; although it will still work,
527you should use the EVT\_TOOL\_RCLICKED macro instead.
528
a660d684
KB
529\wxheading{Parameters}
530
5ef2e633 531\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
a660d684
KB
532
533\docparam{x}{The x position of the mouse cursor.}
534
535\docparam{y}{The y position of the mouse cursor.}
536
537\wxheading{Remarks}
538
539A typical use of this member might be to pop up a menu.
540
541\wxheading{See also}
542
81d66cf3
JS
543\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
544\helpref{wxToolBar::OnLeftClick}{wxtoolbaronleftclick}
545
546\membersection{wxToolBar::Realize}\label{wxtoolbarrealize}
547
548\func{bool}{Realize}{\void}
549
e12be2f7 550This function should be called after you have added tools.
81d66cf3
JS
551
552If you are using absolute positions for your tools when using a wxToolBarSimple object,
553do not call this function. You must call it at all other times.
a660d684 554
5ef2e633
VZ
555\membersection{wxToolBar::RemoveTool}\label{wxtoolbarremovetool}
556
557\func{wxToolBarTool *}{RemoveTool}{\param{int }{id}}
558
559Removes the given tool from the toolbar but doesn't delete it. This allows to
560insert/add this tool back to this (or another) toolbar later.
561
562Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the
563change to take place, it will happen immediately.
564
565\wxheading{See also}
566
567\helpref{DeleteTool}{wxtoolbardeletetool}
568
6fd5fa4f
VZ
569\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
570
571\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
572
573\func{void}{SetMargins}{\param{int}{ x}, \param{int}{ y}}
574
575Set the values to be used as margins for the toolbar.
576
577\wxheading{Parameters}
578
579\docparam{size}{Margin size.}
580
581\docparam{x}{Left margin, right margin and inter-tool separation value.}
582
583\docparam{y}{Top margin, bottom margin and inter-tool separation value.}
584
585\wxheading{Remarks}
586
587This must be called before the tools are added if absolute positioning is to be used, and the
588default (zero-size) margins are to be overridden.
589
590\wxheading{See also}
591
592\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
593
81d66cf3 594\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
a660d684 595
81d66cf3 596\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
a660d684
KB
597
598Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
599
600\wxheading{Parameters}
601
602\docparam{size}{The size of the bitmaps in the toolbar.}
603
604\wxheading{Remarks}
605
606This should be called to tell the toolbar what the tool bitmap size is. Call
607it before you add tools.
608
81d66cf3 609Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
a660d684
KB
610and not the eventual size of the tool button.
611
612\wxheading{See also}
613
81d66cf3
JS
614\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
615\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
a660d684 616
6fd5fa4f 617\membersection{wxToolBar::SetToolClientData}\label{wxtoolbarsettoolclientdata}
a660d684 618
6fd5fa4f 619\func{void}{GetToolClientData}{\param{wxObject* }{clientData}}
a660d684 620
6fd5fa4f 621Sets the client data associated with the tool.
a660d684 622
81d66cf3 623\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp}
a660d684 624
5ef2e633 625\func{void}{SetToolLongHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}}
a660d684
KB
626
627Sets the long help for the given tool.
628
629\wxheading{Parameters}
630
5ef2e633 631\docparam{toolId}{The tool in question.}
a660d684
KB
632
633\docparam{helpString}{A string for the long help.}
634
635\wxheading{Remarks}
636
637You might use the long help for displaying the tool purpose on the status line.
638
639\wxheading{See also}
640
81d66cf3
JS
641\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
642\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp},\rtfsp
a660d684 643
81d66cf3 644\membersection{wxToolBar::SetToolPacking}\label{wxtoolbarsettoolpacking}
a660d684 645
eaaa6a06 646\func{void}{SetToolPacking}{\param{int}{ packing}}
a660d684
KB
647
648Sets the value used for spacing tools. The default value is 1.
649
650\wxheading{Parameters}
651
652\docparam{packing}{The value for packing.}
653
654\wxheading{Remarks}
655
656The packing is used for spacing in the vertical direction if the toolbar is horizontal,
657and for spacing in the horizontal direction if the toolbar is vertical.
658
659\wxheading{See also}
660
81d66cf3 661\helpref{wxToolBar::GetToolPacking}{wxtoolbargettoolpacking}
a660d684 662
81d66cf3 663\membersection{wxToolBar::SetToolShortHelp}\label{wxtoolbarsettoolshorthelp}
a660d684 664
5ef2e633 665\func{void}{SetToolShortHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}}
a660d684
KB
666
667Sets the short help for the given tool.
668
669\wxheading{Parameters}
670
5ef2e633 671\docparam{toolId}{The tool in question.}
a660d684
KB
672
673\docparam{helpString}{The string for the short help.}
674
675\wxheading{Remarks}
676
677An application might use short help for identifying the tool purpose in a tooltip.
678
679\wxheading{See also}
680
81d66cf3 681\helpref{wxToolBar::GetToolShortHelp}{wxtoolbargettoolshorthelp}, \helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp}
a660d684 682
81d66cf3 683\membersection{wxToolBar::SetToolSeparation}\label{wxtoolbarsettoolseparation}
a660d684 684
eaaa6a06 685\func{void}{SetToolSeparation}{\param{int}{ separation}}
a660d684
KB
686
687Sets the default separator size. The default value is 5.
688
689\wxheading{Parameters}
690
691\docparam{separation}{The separator size.}
692
693\wxheading{See also}
694
81d66cf3 695\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}
a660d684 696
81d66cf3 697\membersection{wxToolBar::ToggleTool}\label{wxtoolbartoggletool}
a660d684 698
5ef2e633 699\func{void}{ToggleTool}{\param{int }{toolId}, \param{const bool}{ toggle}}
a660d684 700
41bf0eb3 701Toggles a tool on or off. This does not cause any event to get emitted.
a660d684
KB
702
703\wxheading{Parameters}
704
5ef2e633 705\docparam{toolId}{Tool in question.}
a660d684
KB
706
707\docparam{toggle}{If TRUE, toggles the tool on, otherwise toggles it off.}
708
709\wxheading{Remarks}
710
711Only applies to a tool that has been specified as a toggle tool.
712
713\wxheading{See also}
714
81d66cf3 715\helpref{wxToolBar::GetToolState}{wxtoolbargettoolstate}
a660d684
KB
716
717