-\section{\class{wxToolBarBase}}\label{wxtoolbarbase}
+\section{\class{wxToolBar}}\label{wxtoolbar}
-{\bf wxToolBarBase} is the base class for a number of toolbar classes. The most portable
-one of these is the generic \helpref{wxToolBarSimple}{wxtoolbarsimple} class. {\bf wxToolBarBase} defines
-automatic scrolling management functionality which is identical to \helpref{wxScrolledWindow}{wxscrolledwindow},
-so please refer to this class also.
+The name wxToolBar is defined to be a synonym for one of the following classes:
+
+\begin{itemize}\itemsep=0pt
+\item {\bf wxToolBar95} The native Windows 95 toolbar. Used on Windows 95, NT 4 and above.
+\item {\bf wxToolBarMSW} A Windows implementation. Used on 16-bit Windows.
+\item {\bf wxToolBarGTK} The GTK toolbar.
+\end{itemize}
\wxheading{Derived from}
+wxToolBarBase\\
\helpref{wxControl}{wxcontrol}\\
\helpref{wxWindow}{wxwindow}\\
\helpref{wxEvtHandler}{wxevthandler}\\
\helpref{wxObject}{wxobject}
+\wxheading{Include files}
+
+<wx/toolbar.h> (to allow wxWidgets to select an appropriate toolbar class)\\
+<wx/tbarbase.h> (the base class)
+
\wxheading{Remarks}
-Because there is a variety of toolbar classes, you may wish to choose which class
-is best for your application on each platform, and define {\bf wxToolBar} appropriately. For example:
+You may also create a toolbar that is managed by the frame, by
+calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}. Under Pocket PC,
+you should \arg{always} use this function for creating the toolbar
+to be managed by the frame, so that wxWidgets can use a combined
+menubar and toolbar. Where you manage your own toolbars, create a wxToolBar
+as usual.
+
+The meaning of a "separator" is a vertical line under Windows and simple space under GTK+.
+
+{\bf wxToolBar95:} Note that this toolbar paints tools to reflect system-wide colours.
+If you use more than 16 colours in your tool bitmaps, you may wish to suppress
+this behaviour, otherwise system colours in your bitmaps will inadvertently be
+mapped to system colours. To do this, set the {\tt msw.remap} system option
+before creating the toolbar:
+
+\begin{verbatim}
+ wxSystemOptions::SetOption(wxT("msw.remap"), 0);
+\end{verbatim}
+
+If you wish to use 32-bit images (which include an alpha channel for transparency)
+use:
\begin{verbatim}
-#if WIN95
-class wxToolBar: public wxToolBar95
-#elif defined(wx_msw)
-class wxToolBar: public wxToolBarMSW
-#else
-class wxToolBar: public wxToolBarSimple
-#endif
-{
-};
+ wxSystemOptions::SetOption(wxT("msw.remap"), 2);
\end{verbatim}
-TODO: maybe change the confusing names: GetDefaultSize becomes GetToolBitmapSize, and
-GetDefaultButtonSize becomes GetToolSize. Document SetRows for wxToolBar95, and make it
-part of the base API?
+then colour remapping is switched off, and a transparent background used. But only
+use this option under Windows XP with true colour:
+
+\begin{verbatim}
+ (wxTheApp->GetComCtl32Version() >= 600 && ::wxDisplayDepth() >= 32)
+\end{verbatim}
+
+\wxheading{Window styles}
+
+\twocolwidtha{5cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\windowstyle{wxTB\_FLAT}}{Gives the toolbar a flat look (Windows and GTK only).}
+\twocolitem{\windowstyle{wxTB\_DOCKABLE}}{Makes the toolbar floatable and dockable (GTK only).}
+\twocolitem{\windowstyle{wxTB\_HORIZONTAL}}{Specifies horizontal layout (default).}
+\twocolitem{\windowstyle{wxTB\_VERTICAL}}{Specifies vertical layout.}
+\twocolitem{\windowstyle{wxTB\_TEXT}}{Shows the text in the toolbar buttons; by default only icons are shown.}
+\twocolitem{\windowstyle{wxTB\_NOICONS}}{Specifies no icons in the toolbar buttons; by default they are shown.}
+\twocolitem{\windowstyle{wxTB\_NODIVIDER}}{Specifies no divider (border) above the toolbar (Windows only).}
+\twocolitem{\windowstyle{wxTB\_NOALIGN}}{Specifies no alignment with the parent window (Windows only, not very useful).}
+\twocolitem{\windowstyle{wxTB\_HORZ\_LAYOUT}}{Shows the text and the icons alongside, not vertically stacked (Windows and GTK
+2 only). This style must be used with wxTB\_TEXT.}
+\twocolitem{\windowstyle{wxTB\_HORZ\_TEXT}}{Combination of wxTB\_HORZ\_LAYOUT and wxTB\_TEXT.}
+\twocolitem{\windowstyle{wxTB\_NO\_TOOLTIPS}}{Don't show the short help tooltips for the tools when the mouse hovers over them.}
+\twocolitem{\windowstyle{wxTB\_BOTTOM}}{Align the toolbar at the bottom of parent window.}
+\twocolitem{\windowstyle{wxTB\_RIGHT}}{Align the toolbar at the right side of parent window.}
+\end{twocollist}
+
+See also \helpref{window styles overview}{windowstyles}. Note that the Win32
+native toolbar ignores {\tt wxTB\_NOICONS} style. Also, toggling the
+{\tt wxTB\_TEXT} works only if the style was initially on.
\wxheading{Event handling}
-Derive a new class from an existing toolbar class, and override appropriate virtual functions.
+The toolbar class emits menu commands in the same way that a frame menubar does,
+so you can use one EVT\_MENU macro for both a menu item and a toolbar button.
+The event handler functions take a wxCommandEvent argument. For most event macros,
+the identifier of the tool is passed, but for EVT\_TOOL\_ENTER the toolbar
+window identifier is passed and the tool identifier is retrieved from the wxCommandEvent.
+This is because the identifier may be -1 when the mouse moves off a tool, and -1 is not
+allowed as an identifier in the event system.
-TODO: make consistent with other event handling; have wxToolBarEvent and appropriate macros.
+\twocolwidtha{7cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\bf EVT\_TOOL(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
+(a synonym for wxEVT\_COMMAND\_MENU\_SELECTED). Pass the id of the tool.}
+\twocolitem{{\bf EVT\_MENU(id, func)}}{The same as EVT\_TOOL.}
+\twocolitem{{\bf EVT\_TOOL\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_CLICKED event
+for a range of identifiers. Pass the ids of the tools.}
+\twocolitem{{\bf EVT\_MENU\_RANGE(id1, id2, func)}}{The same as EVT\_TOOL\_RANGE.}
+\twocolitem{{\bf EVT\_TOOL\_RCLICKED(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event.
+Pass the id of the tool.}
+\twocolitem{{\bf EVT\_TOOL\_RCLICKED\_RANGE(id1, id2, func)}}{Process a wxEVT\_COMMAND\_TOOL\_RCLICKED event
+for a range of ids. Pass the ids of the tools.}
+\twocolitem{{\bf EVT\_TOOL\_ENTER(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_ENTER event.
+Pass 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.}
+\twocolitem{{\bf EVT\_TOOL\_DROPDOWN(id, func)}}{Process a wxEVT\_COMMAND\_TOOL\_DROPDOWN\_CLICKED event. If unhandled, displays the default dropdown menu set using \helpref{wxToolBar::SetDropdownMenu}{wxtoolbarsetdropdownmenu}.}
+\end{twocollist}
+
+\wxheading{wxItemKind}
+
+There are several different types of tools you can add to a toolbar. These
+types are controlled by the wxItemKind enumeration which has the following
+values:
+\twocolwidtha{5cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{{\bf wxITEM\_NORMAL}}{Normal tool button}
+\twocolitem{{\bf wxITEM\_CHECK}}{Check (or toggle) tool button.}
+\twocolitem{{\bf wxITEM\_NORMAL}}{Radio tool button. See \helpref{wxToolBar::AddRadioTool}{wxtoolbaraddradiotool} for details}
+\twocolitem{{\bf wxITEM\_DROPDOWN}}{Normal tool button with a dropdown arrow
+next to it. Clicking the dropdown arrow sends a wxEVT\_COMMAND\_TOOL\_DROPDOWN\_CLICKED
+event and may also display the menu previously associated with the item with
+\helpref{wxToolBar::SetDropdownMenu}{wxtoolbarsetdropdownmenu}. Currently this
+type of tools is supported under MSW and GTK.}
+\end{twocollist}
\wxheading{See also}
\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
-\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
-\helpref{wxToolBarMSW}{wxtoolbarmsw},\rtfsp
-\helpref{wxToolBar95}{wxtoolbar95},\rtfsp
\helpref{wxScrolledWindow}{wxscrolledwindow}
\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxToolBarBase::wxToolBarBase}\label{wxtoolbarbaseconstr}
-\func{}{wxToolBarBase}{\void}
+\membersection{wxToolBar::wxToolBar}\label{wxtoolbarconstr}
+
+\func{}{wxToolBar}{\void}
Default constructor.
-%\wxheading{See also}
-%
-%\helpref{wxToolBarBase::Create}{wxtoolbarbasecreate}
-%
-\membersection{wxToolBarBase::\destruct{wxToolBarBase}}
+\func{}{wxToolBar}{\param{wxWindow*}{ parent}, \param{wxWindowID }{id},
+ \param{const wxPoint\& }{pos = wxDefaultPosition},
+ \param{const wxSize\& }{size = wxDefaultSize},
+ \param{long }{style = wxTB\_HORIZONTAL \pipe wxNO\_BORDER},
+ \param{const wxString\& }{name = wxPanelNameStr}}
-\func{void}{\destruct{wxToolBarBase}}{\void}
+Constructs a toolbar.
+
+\wxheading{Parameters}
+
+\docparam{parent}{Pointer to a parent window.}
+
+\docparam{id}{Window identifier. If -1, will automatically create an identifier.}
+
+\docparam{pos}{Window position. wxDefaultPosition is (-1, -1) which indicates that wxWidgets
+should generate a default position for the window. If using the wxWindow class directly, supply
+an actual position.}
+
+\docparam{size}{Window size. wxDefaultSize is (-1, -1) which indicates that wxWidgets
+should generate a default size for the window.}
+
+\docparam{style}{Window style. See \helpref{wxToolBar}{wxtoolbar} for details.}
+
+\docparam{name}{Window name.}
+
+\wxheading{Remarks}
+
+After a toolbar is created, you use \helpref{wxToolBar::AddTool}{wxtoolbaraddtool} and
+perhaps \helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}, and then you
+must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} to construct and display the toolbar
+tools.
+
+You may also create a toolbar that is managed by the frame, by
+calling \helpref{wxFrame::CreateToolBar}{wxframecreatetoolbar}.
+
+
+\membersection{wxToolBar::\destruct{wxToolBar}}\label{wxtoolbardtor}
+
+\func{void}{\destruct{wxToolBar}}{\void}
Toolbar destructor.
-\membersection{wxToolBarBase::AddSeparator}\label{wxtoolbarbaseaddseparator}
+
+\membersection{wxToolBar::AddControl}\label{wxtoolbaraddcontrol}
+
+\func{bool}{AddControl}{\param{wxControl*}{ control}, \param{const wxString&}{ label = ""}}
+
+Adds any control to the toolbar, typically e.g. a combobox.
+
+\docparam{control}{The control to be added.}
+
+\docparam{label}{Text to be displayed near the control.}
+
+\wxheading{Remarks}
+
+wxMSW: the label is only displayed if there is enough space available below the embedded control.
+
+wxMac: labels are only displayed if wxWidgets is built with wxMAC\_USE\_NATIVE\_TOOLBAR set to 1
+
+
+\membersection{wxToolBar::AddSeparator}\label{wxtoolbaraddseparator}
\func{void}{AddSeparator}{\void}
\wxheading{See also}
-\helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}, \helpref{wxToolBarBase::SetToolSeparation}{wxtoolbarbasesettoolseparation}
+\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}, \helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
+
+
+\membersection{wxToolBar::AddTool}\label{wxtoolbaraddtool}
-\membersection{wxToolBarBase::AddTool}\label{wxtoolbarbaseaddtool}
+\func{wxToolBarToolBase*}{AddTool}{\param{int}{ toolId},\rtfsp
+\param{const wxString\&}{ label},\rtfsp
+\param{const wxBitmap\&}{ bitmap1},\rtfsp
+\param{const wxString\& }{shortHelpString = ""},\rtfsp
+\param{wxItemKind}{ kind = wxITEM\_NORMAL}}
-\func{wxToolBarBaseTool*}{AddTool}{\param{const int}{ toolIndex}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
-\param{const wxBitmap\&}{ bitmap2 = (wxBitmap *)NULL}, \param{const bool}{ isToggle = FALSE},\rtfsp
-\param{const float}{ xPos = -1}, \param{const float}{ yPos = -1},\rtfsp
-\param{wxObject *}{clientData = NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
+\func{wxToolBarToolBase*}{AddTool}{\param{int}{ toolId},\rtfsp
+\param{const wxString\&}{ label},\rtfsp
+\param{const wxBitmap\&}{ bitmap1},\rtfsp
+\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap},\rtfsp
+\param{wxItemKind}{ kind = wxITEM\_NORMAL},\rtfsp
+\param{const wxString\& }{shortHelpString = ""},
+\param{const wxString\& }{longHelpString = ""},\rtfsp
+\param{wxObject* }{clientData = \NULL}}
-Adds a tool to the toolbar.
+\func{wxToolBarToolBase*}{AddTool}{\param{wxToolBarToolBase* }{tool}}
+
+Adds a tool to the toolbar. The first (short and most commonly used) version
+has fewer parameters than the full version at the price of not being able to
+specify some of the more rarely used button features. The last version allows
+you to add an existing tool.
\wxheading{Parameters}
-\docparam{toolIndex}{An integer by which
+\docparam{toolId}{An integer by which
the tool may be identified in subsequent operations.}
-\docparam{isToggle}{Specifies whether the tool is a toggle or not: a toggle tool may be in
-two states, whereas a non-toggle tool is just a button.}
+\docparam{kind}{May be wxITEM\_NORMAL for a normal button (default),
+wxITEM\_CHECK for a checkable tool (such tool stays pressed after it had been
+toggled) or wxITEM\_RADIO for a checkable tool which makes part of a radio
+group of tools each of which is automatically unchecked whenever another button
+in the group is checked}
-\docparam{bitmap1}{The primary tool bitmap for toggle and button tools.}
+\docparam{bitmap1}{The primary tool bitmap.}
-\docparam{bitmap2}{The second bitmap specifies the on-state bitmap for a toggle
-tool. If this is NULL, either an inverted version of the primary bitmap is
-used for the on-state of a toggle tool (monochrome displays) or a black
-border is drawn around the tool (colour displays). Note that to pass a NULL value,
-you need to cast it to (wxBitmap *) so that C++ can construct an appropriate temporary
-wxBitmap object.}
+\docparam{bitmap2}{The bitmap used when the tool is disabled. If it is equal to
+wxNullBitmap, the disabled bitmap is automatically generated by greing the
+normal one.}
-\docparam{xPos}{Specifies the x position of the tool if automatic layout is not suitable.}
+\docparam{shortHelpString}{This string is used for the tools tooltip}
-\docparam{yPos}{Specifies the y position of the tool if automatic layout is not suitable.}
+\docparam{longHelpString}{This string is shown in the statusbar (if any) of the
+parent frame when the mouse pointer is inside the tool}
\docparam{clientData}{An optional pointer to client data which can be
-retrieved later using \helpref{wxToolBarBase::GetToolClientData}{wxtoolbarbasegettoolclientdata}.}
+retrieved later using \helpref{wxToolBar::GetToolClientData}{wxtoolbargettoolclientdata}.}
-\docparam{shortHelpString}{Used for displaying a tooltip for the tool in the
-Windows 95 implementation of wxButtonBar. Pass the empty string if this is not required.}
+\docparam{tool}{The tool to be added.}
-\docparam{longHelpString}{Used to displayer longer help, such as status line help.
-Pass the empty string if this is not required.}
+\wxheading{Remarks}
+
+After you have added tools to a toolbar, you must call \helpref{wxToolBar::Realize}{wxtoolbarrealize} in
+order to have the tools appear.
\wxheading{See also}
-\helpref{wxToolBarBase::AddSeparator}{wxtoolbarbaseaddseparator}
+\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator},\rtfsp
+\helpref{wxToolBar::AddCheckTool}{wxtoolbaraddchecktool},\rtfsp
+\helpref{wxToolBar::AddRadioTool}{wxtoolbaraddradiotool},\rtfsp
+\helpref{wxToolBar::InsertTool}{wxtoolbarinserttool},\rtfsp
+\helpref{wxToolBar::DeleteTool}{wxtoolbardeletetool},\rtfsp
+\helpref{wxToolBar::Realize}{wxtoolbarrealize}
-\membersection{wxToolBarBase::CreateTools}\label{wxtoolbarbasecreatetools}
-\func{bool}{CreateTools}{\void}
+\membersection{wxToolBar::AddCheckTool}\label{wxtoolbaraddchecktool}
-Call this function after all tools have been added to the toolbar, to actually
-create the tools.
+\func{wxToolBarToolBase*}{AddCheckTool}{\param{int}{ toolId},\rtfsp
+\param{const wxString\&}{ label},\rtfsp
+\param{const wxBitmap\&}{ bitmap1},\rtfsp
+\param{const wxBitmap\&}{ bitmap2},\rtfsp
+\param{const wxString\& }{shortHelpString = ""},\rtfsp
+\param{const wxString\& }{longHelpString = ""},\rtfsp
+\param{wxObject* }{clientData = \NULL}}
-\wxheading{Remarks}
+Adds a new check (or toggle) tool to the toolbar. The parameters are the same
+as in \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.
+
+\wxheading{See also}
-Strictly speaking, this is required only for the Windows 95 version of wxButtonBar,
-but for portability it should be called anyway.
+\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}
+
+
+\membersection{wxToolBar::AddRadioTool}\label{wxtoolbaraddradiotool}
+
+\func{wxToolBarToolBase*}{AddRadioTool}{\param{int}{ toolId},\rtfsp
+\param{const wxString\&}{ label},\rtfsp
+\param{const wxBitmap\&}{ bitmap1},\rtfsp
+\param{const wxBitmap\&}{ bitmap2},\rtfsp
+\param{const wxString\& }{shortHelpString = ""},\rtfsp
+\param{const wxString\& }{longHelpString = ""},\rtfsp
+\param{wxObject* }{clientData = \NULL}}
+
+Adds a new radio tool to the toolbar. Consecutive radio tools form a radio
+group such that exactly one button in the group is pressed at any moment, in
+other words whenever a button in the group is pressed the previously pressed
+button is automatically released. You should avoid having the radio groups of
+only one element as it would be impossible for the user to use such button.
+
+By default, the first button in the radio group is initially pressed, the
+others are not.
\wxheading{See also}
-\helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}
+\helpref{wxToolBar::AddTool}{wxtoolbaraddtool}
-\membersection{wxToolBarBase::DrawTool}\label{wxtoolbarbasedrawtool}
+\membersection{wxToolBar::ClearTools}\label{wxtoolbarcleartools}
-\func{void}{DrawTool}{\param{wxMemoryDC\& }{memDC}, \param{wxToolBarBaseTool* }{tool}}
+\func{void}{ClearTools}{\void}
-Draws the specified tool onto the canvas using the given memory device context.
+Deletes all the tools in the toolbar.
-\wxheading{Parameters}
+\membersection{wxToolBar::DeleteTool}\label{wxtoolbardeletetool}
-\docparam{memDC}{A memory DC to be used for drawing the tool.}
+\func{bool}{DeleteTool}{\param{int }{toolId}}
-\docparam{tool}{Tool to be drawn.}
+Removes the specified tool from the toolbar and deletes it. If you don't want
+to delete the tool, but just to remove it from the toolbar (to possibly add it
+back later), you may use \helpref{RemoveTool}{wxtoolbarremovetool} instead.
-\wxheading{Remarks}
+Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the
+change to take place, it will happen immediately.
+
+Returns true if the tool was deleted, false otherwise.
-For internal use only.
+\wxheading{See also}
+
+\helpref{DeleteToolByPos}{wxtoolbardeletetoolbypos}
+
+
+\membersection{wxToolBar::DeleteToolByPos}\label{wxtoolbardeletetoolbypos}
+
+\func{bool}{DeleteToolByPos}{\param{size\_t }{pos}}
-\membersection{wxToolBarBase::EnableTool}\label{wxtoolbarbaseenabletool}
+This function behaves like \helpref{DeleteTool}{wxtoolbardeletetool} but it
+deletes the tool at the specified position and not the one with the given id.
-\func{void}{EnableTool}{\param{const int }{toolIndex}, \param{const bool}{ enable}}
+
+\membersection{wxToolBar::EnableTool}\label{wxtoolbarenabletool}
+
+\func{void}{EnableTool}{\param{int }{toolId}, \param{bool}{ enable}}
Enables or disables the tool.
\wxheading{Parameters}
-\docparam{toolIndex}{Tool to enable or disable.}
+\docparam{toolId}{Tool to enable or disable.}
-\docparam{enable}{If TRUE, enables the tool, otherwise disables it.}
+\docparam{enable}{If true, enables the tool, otherwise disables it.}
+
+{\bf NB:} This function should only be called after
+\helpref{Realize}{wxtoolbarrealize}.
\wxheading{Remarks}
-For \helpref{wxToolBarSimple}{wxtoolbarsimple}, does nothing. Some other implementations
-will change the visible state of the tool to indicate that it is disabled.
+Some implementations will change the visible state of the tool to indicate that it is disabled.
\wxheading{See also}
-\helpref{wxToolBarBase::GetToolEnabled}{wxtoolbarbasegettoolenabled},\rtfsp
-%\helpref{wxToolBarBase::SetToolState}{wxtoolbarbasesettoolstate},\rtfsp
-\helpref{wxToolBarBase::ToggleTool}{wxtoolbarbasetoggletool}
+\helpref{wxToolBar::GetToolEnabled}{wxtoolbargettoolenabled},\rtfsp
+\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
+
-\membersection{wxToolBarBase::FindToolForPosition}\label{wxtoolbarbasefindtoolforposition}
+\membersection{wxToolBar::FindById}\label{wxtoolbarfindbyid}
-\constfunc{wxToolBarBaseTool*}{FindToolForPosition}{\param{const float}{ x}, \param{const float}{ y}}
+\func{wxToolBarToolBase*}{FindById}{\param{int }{id}}
+
+Returns a pointer to the tool identified by \arg{id} or
+\NULL if no corresponding tool is found.
+
+
+\membersection{wxToolBar::FindControl}\label{wxtoolbarfindcontrol}
+
+\func{wxControl*}{FindControl}{\param{int }{id}}
+
+Returns a pointer to the control identified by \arg{id} or
+\NULL if no corresponding control is found.
+
+
+\membersection{wxToolBar::FindToolForPosition}\label{wxtoolbarfindtoolforposition}
+
+\constfunc{wxToolBarToolBase*}{FindToolForPosition}{\param{wxCoord }{x}, \param{wxCoord }{y}}
Finds a tool for the given mouse position.
\wxheading{Return value}
-A pointer to a tool if a tool is found, or NULL otherwise.
+A pointer to a tool if a tool is found, or \NULL otherwise.
\wxheading{Remarks}
-Used internally, and should not need to be used by the programmer.
+Currently not implemented in wxGTK (always returns \NULL there).
+
-\membersection{wxToolBarBase::GetDefaultButtonSize}\label{wxtoolbarbasegetdefaultbuttonsize}
+\membersection{wxToolBar::GetToolsCount}\label{wxtoolbargettoolscount}
-\func{wxSize}{GetDefaultButtonSize}{\void}
+\constfunc{int}{GetToolsCount}{\void}
+
+Returns the number of tools in the toolbar.
+
+
+\membersection{wxToolBar::GetToolSize}\label{wxtoolbargettoolsize}
+
+\func{wxSize}{GetToolSize}{\void}
Returns the size of a whole button, which is usually larger than a tool bitmap because
of added 3D effects.
\wxheading{See also}
-\helpref{wxToolBarBase::SetDefaultSize}{wxtoolbarbasesetdefaultsize},\rtfsp
-\helpref{wxToolBarBase::GetDefaultSize}{wxtoolbarbasegetdefaultsize}
+\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
+\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize}
+
-\membersection{wxToolBarBase::GetDefaultSize}\label{wxtoolbarbasegetdefaultsize}
+\membersection{wxToolBar::GetToolBitmapSize}\label{wxtoolbargettoolbitmapsize}
-\func{wxSize}{GetDefaultSize}{\void}
+\func{wxSize}{GetToolBitmapSize}{\void}
Returns the size of bitmap that the toolbar expects to have. The default bitmap size is 16 by 15 pixels.
\wxheading{Remarks}
-Note that this is the size of the bitmap you pass to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool},
+Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
and not the eventual size of the tool button.
\wxheading{See also}
-\helpref{wxToolBarBase::SetDefaultSize}{wxtoolbarbasesetdefaultsize},\rtfsp
-\helpref{wxToolBarBase::GetDefaultButtonSize}{wxtoolbarbasegetdefaultbuttonsize}
+\helpref{wxToolBar::SetToolBitmapSize}{wxtoolbarsettoolbitmapsize},\rtfsp
+\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
-\membersection{wxToolBarBase::GetMargins}\label{wxtoolbarbasegetmargins}
+
+\membersection{wxToolBar::GetMargins}\label{wxtoolbargetmargins}
\constfunc{wxSize}{GetMargins}{\void}
\wxheading{See also}
-\helpref{wxToolBarBase::SetMargins}{wxtoolbarbasesetmargins}
-
-\membersection{wxToolBarBase::GetMaxSize}\label{wxtoolbarbasegetmaxsize}
-
-\constfunc{void}{GetMaxSize}{\param{float*}{ w}, \param{float*}{ h}}
-
-Gets the maximum size taken up by the tools after layout, including margins.
-This can be used to size a frame around the toolbar canvas.
+\helpref{wxToolBar::SetMargins}{wxtoolbarsetmargins}
-\wxheading{Parameters}
-
-\docparam{w}{Receives the maximum horizontal size.}
-
-\docparam{h}{Receives the maximum vertical size.}
-\membersection{wxToolBarBase::GetToolClientData}\label{wxtoolbarbasegettoolclientdata}
+\membersection{wxToolBar::GetToolClientData}\label{wxtoolbargettoolclientdata}
-\constfunc{wxObject*}{GetToolClientData}{\param{const int }{toolIndex}}
+\constfunc{wxObject*}{GetToolClientData}{\param{int }{toolId}}
Get any client data associated with the tool.
\wxheading{Parameters}
-\docparam{toolIndex}{Index of the tool, as passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
+\docparam{toolId}{Id of the tool, as passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
\wxheading{Return value}
-Client data, or NULL if there is none.
+Client data, or \NULL if there is none.
-\membersection{wxToolBarBase::GetToolEnabled}\label{wxtoolbarbasegettoolenabled}
-\constfunc{bool}{GetToolEnabled}{\param{const int }{toolIndex}}
+\membersection{wxToolBar::GetToolEnabled}\label{wxtoolbargettoolenabled}
+
+\constfunc{bool}{GetToolEnabled}{\param{int }{toolId}}
Called to determine whether a tool is enabled (responds to user input).
\wxheading{Parameters}
-\docparam{toolIndex}{Index of the tool in question.}
+\docparam{toolId}{Id of the tool in question.}
\wxheading{Return value}
-TRUE if the tool is enabled, FALSE otherwise.
+true if the tool is enabled, false otherwise.
-%\wxheading{See also}
-%
-%\helpref{wxToolBarBase::SetToolEnabled}{wxtoolbarbasesettoolenabled}
-%
-\membersection{wxToolBarBase::GetToolLongHelp}\label{wxtoolbarbasegettoollonghelp}
+\wxheading{See also}
-\constfunc{wxString}{GetToolLongHelp}{\param{const int }{toolIndex}}
+\helpref{wxToolBar::EnableTool}{wxtoolbarenabletool}
+
+
+\membersection{wxToolBar::GetToolLongHelp}\label{wxtoolbargettoollonghelp}
+
+\constfunc{wxString}{GetToolLongHelp}{\param{int }{toolId}}
Returns the long help for the given tool.
\wxheading{Parameters}
-\docparam{toolIndex}{The tool in question.}
+\docparam{toolId}{The tool in question.}
\wxheading{See also}
-\helpref{wxToolBarBase::SetToolLongHelp}{wxtoolbarbasesettoollonghelp},\rtfsp
-\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp}\rtfsp
+\helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp},\rtfsp
+\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
+
-\membersection{wxToolBarBase::GetToolPacking}\label{wxtoolbarbasegettoolpacking}
+\membersection{wxToolBar::GetToolPacking}\label{wxtoolbargettoolpacking}
\constfunc{int}{GetToolPacking}{\void}
\wxheading{See also}
-\helpref{wxToolBarBase::SetToolPacking}{wxtoolbarbasesettoolpacking}
+\helpref{wxToolBar::SetToolPacking}{wxtoolbarsettoolpacking}
-\membersection{wxToolBarBase::GetToolSeparation}\label{wxtoolbarbasegettoolseparation}
+
+\membersection{wxToolBar::GetToolPos}\label{wxtoolbargettoolpos}
+
+\constfunc{int}{GetToolPos}{\param{int }{toolId}}
+
+Returns the tool position in the toolbar, or {\tt wxNOT\_FOUND} if the tool is not found.
+
+
+\membersection{wxToolBar::GetToolSeparation}\label{wxtoolbargettoolseparation}
\constfunc{int}{GetToolSeparation}{\void}
\wxheading{See also}
-\helpref{wxToolBarBase::SetToolSeparation}{wxtoolbarbasesettoolseparation}
+\helpref{wxToolBar::SetToolSeparation}{wxtoolbarsettoolseparation}
-\membersection{wxToolBarBase::GetToolShortHelp}\label{wxtoolbarbasegettoolshorthelp}
-\constfunc{wxString}{GetToolShortHelp}{\param{const int }{toolIndex}}
+\membersection{wxToolBar::GetToolShortHelp}\label{wxtoolbargettoolshorthelp}
-Returns the short help for the given tool.
+\constfunc{wxString}{GetToolShortHelp}{\param{int }{toolId}}
-Returns the long help for the given tool.
+Returns the short help for the given tool.
\wxheading{Parameters}
-\docparam{toolIndex}{The tool in question.}
+\docparam{toolId}{The tool in question.}
\wxheading{See also}
-\helpref{wxToolBarBase::GetToolLongHelp}{wxtoolbarbasegettoollonghelp},\rtfsp
-\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp}\rtfsp
+\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
+\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp}\rtfsp
+
-\membersection{wxToolBarBase::GetToolState}\label{wxtoolbarbasegettoolstate}
+\membersection{wxToolBar::GetToolState}\label{wxtoolbargettoolstate}
-\constfunc{bool}{GetToolState}{\param{const int }{toolIndex}}
+\constfunc{bool}{GetToolState}{\param{int }{toolId}}
Gets the on/off state of a toggle tool.
\wxheading{Parameters}
-\docparam{toolIndex}{The tool in question.}
+\docparam{toolId}{The tool in question.}
\wxheading{Return value}
-TRUE if the tool is toggled on, FALSE otherwise.
+true if the tool is toggled on, false otherwise.
-%\wxheading{See also}
-%
-%\helpref{wxToolBarBase::SetToolState}{wxtoolbarbasesettoolstate}
-%
-\membersection{wxToolBarBase::Layout}\label{wxtoolbarbaselayout}
-
-\func{void}{Layout}{\void}
-
-Called by the application after the tools have been added to
-automatically lay the tools out on the canvas. If you have given
-absolute positions when adding the tools, do not call this.
-
-\membersection{wxToolBarBase::OnLeftClick}\label{wxtoolbarbaseonleftclick}
+\wxheading{See also}
-\func{bool}{OnLeftClick}{\param{int}{ toolIndex}, \param{bool}{ toggleDown}}
+\helpref{wxToolBar::ToggleTool}{wxtoolbartoggletool}
-Called when the user clicks on a tool with the left mouse button. The
-programmer should override this function to detect left tool clicks.
-\wxheading{Parameters}
+\membersection{wxToolBar::InsertControl}\label{wxtoolbarinsertcontrol}
-\docparam{toolIndex}{The identifier passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
+\func{wxToolBarToolBase *}{InsertControl}{\param{size\_t }{pos}, \param{wxControl *}{control}}
-\docparam{toggleDown}{TRUE if the tool is a toggle and the toggle is down, otherwise is FALSE.}
+Inserts the control into the toolbar at the given position.
-\wxheading{Return value}
-
-If the tool is a toggle and this function returns FALSE, the toggle
-toggle state (internal and visual) will not be changed. This provides a way of
-specifying that toggle operations are not permitted in some circumstances.
+You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
\wxheading{See also}
-\helpref{wxToolBarBase::OnMouseEnter}{wxtoolbarbaseonmouseenter},\rtfsp
-\helpref{wxToolBarBase::OnRightClick}{wxtoolbarbaseonrightclick}
+\helpref{AddControl}{wxtoolbaraddcontrol},\\
+\helpref{InsertTool}{wxtoolbarinserttool}
-\membersection{wxToolBarBase::OnMouseEnter}\label{wxtoolbarbaseonmouseenter}
-\func{void}{OnMouseEnter}{\param{int}{ toolIndex}}
+\membersection{wxToolBar::InsertSeparator}\label{wxtoolbarinsertseparator}
-This is called when the mouse cursor moves into a tool or out of
-the toolbar.
+\func{wxToolBarToolBase *}{InsertSeparator}{\param{size\_t }{pos}}
-\wxheading{Parameters}
+Inserts the separator into the toolbar at the given position.
-\docparam{toolIndex}{Greater than -1 if the mouse cursor has moved into the tool,
-or -1 if the mouse cursor has moved. The
-programmer can override this to provide extra information about the tool,
-such as a short description on the status line.}
-
-\wxheading{Remarks}
+You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
-With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWindows may not be able to
-detect it. Therefore this function may not always be called when expected.
+\wxheading{See also}
-\membersection{wxToolBarBase::OnRightClick}\label{wxtoolbarbaseonrightclick}
+\helpref{AddSeparator}{wxtoolbaraddseparator},\\
+\helpref{InsertTool}{wxtoolbarinserttool}
-\func{void}{OnRightClick}{\param{int}{ toolIndex}, \param{float}{ x}, \param{float}{ y}}
-Called when the user clicks on a tool with the right mouse button. The
-programmer should override this function to detect right tool clicks.
+\membersection{wxToolBar::InsertTool}\label{wxtoolbarinserttool}
-\wxheading{Parameters}
+\func{wxToolBarToolBase *}{InsertTool}{\param{size\_t }{pos},\rtfsp
+\param{int}{ toolId}, \param{const wxBitmap\&}{ bitmap1},\rtfsp
+\param{const wxBitmap\&}{ bitmap2 = wxNullBitmap}, \param{bool}{ isToggle = false},\rtfsp
+\param{wxObject* }{clientData = \NULL}, \param{const wxString\& }{shortHelpString = ""}, \param{const wxString\& }{longHelpString = ""}}
-\docparam{toolIndex}{The identifier passed to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool}.}
+\func{wxToolBarToolBase *}{InsertTool}{\param{size\_t }{pos},\rtfsp
+\param{wxToolBarToolBase* }{tool}}
-\docparam{x}{The x position of the mouse cursor.}
+Inserts the tool with the specified attributes into the toolbar at the given
+position.
-\docparam{y}{The y position of the mouse cursor.}
+You must call \helpref{Realize}{wxtoolbarrealize} for the change to take place.
-\wxheading{Remarks}
+\wxheading{See also}
-A typical use of this member might be to pop up a menu.
+\helpref{AddTool}{wxtoolbaraddtool},\\
+\helpref{InsertControl}{wxtoolbarinsertcontrol},\\
+\helpref{InsertSeparator}{wxtoolbarinsertseparator}
-\wxheading{See also}
-\helpref{wxToolBarBase::OnMouseEnter}{wxtoolbarbaseonmouseenter},\rtfsp
-\helpref{wxToolBarBase::OnLeftClick}{wxtoolbarbaseonleftclick}
+\membersection{wxToolBar::OnLeftClick}\label{wxtoolbaronleftclick}
-\membersection{wxToolBarBase::SetDefaultSize}\label{wxtoolbarbasesetdefaultsize}
+\func{bool}{OnLeftClick}{\param{int}{ toolId}, \param{bool}{ toggleDown}}
-\func{void}{SetDefaultSize}{\param{const wxSize\&}{ size}}
+Called when the user clicks on a tool with the left mouse button.
-Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
+This is the old way of detecting tool clicks; although it will still work,
+you should use the EVT\_MENU or EVT\_TOOL macro instead.
\wxheading{Parameters}
-\docparam{size}{The size of the bitmaps in the toolbar.}
+\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
-\wxheading{Remarks}
+\docparam{toggleDown}{true if the tool is a toggle and the toggle is down, otherwise is false.}
-This should be called to tell the toolbar what the tool bitmap size is. Call
-it before you add tools.
+\wxheading{Return value}
-Note that this is the size of the bitmap you pass to \helpref{wxToolBarBase::AddTool}{wxtoolbarbaseaddtool},
-and not the eventual size of the tool button.
+If the tool is a toggle and this function returns false, the toggle
+toggle state (internal and visual) will not be changed. This provides a way of
+specifying that toggle operations are not permitted in some circumstances.
\wxheading{See also}
-\helpref{wxToolBarBase::GetDefaultSize}{wxtoolbarbasegetdefaultsize},\rtfsp
-\helpref{wxToolBarBase::GetDefaultButtonSize}{wxtoolbarbasegetdefaultbuttonsize}
+\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
+\helpref{wxToolBar::OnRightClick}{wxtoolbaronrightclick}
-\membersection{wxToolBarBase::SetMargins}\label{wxtoolbarbasesetmargins}
-\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
+\membersection{wxToolBar::OnMouseEnter}\label{wxtoolbaronmouseenter}
-\func{void}{SetMargins}{\param{const int}{ x}, \param{const int}{ y}}
-
-Set the values to be used as margins for the toolbar.
+\func{void}{OnMouseEnter}{\param{int}{ toolId}}
-\wxheading{Parameters}
+This is called when the mouse cursor moves into a tool or out of
+the toolbar.
-\docparam{size}{Margin size.}
+This is the old way of detecting mouse enter events; although it will still work,
+you should use the EVT\_TOOL\_ENTER macro instead.
-\docparam{x}{Left margin, right margin and inter-tool separation value.}
+\wxheading{Parameters}
-\docparam{y}{Top margin, bottom margin and inter-tool separation value.}
+\docparam{toolId}{Greater than -1 if the mouse cursor has moved into the tool,
+or -1 if the mouse cursor has moved. The
+programmer can override this to provide extra information about the tool,
+such as a short description on the status line.}
\wxheading{Remarks}
-This must be called before the tools are added if absolute positioning is to be used, and the
-default (zero-size) margins are to be overridden.
+With some derived toolbar classes, if the mouse moves quickly out of the toolbar, wxWidgets may not be able to
+detect it. Therefore this function may not always be called when expected.
-\wxheading{See also}
-\helpref{wxToolBarBase::GetMargins}{wxtoolbarbasegetmargins}, \helpref{wxSize}{wxsize}
+\membersection{wxToolBar::OnRightClick}\label{wxtoolbaronrightclick}
-\membersection{wxToolBarBase::SetToolLongHelp}\label{wxtoolbarbasesettoollonghelp}
+\func{void}{OnRightClick}{\param{int}{ toolId}, \param{float}{ x}, \param{float}{ y}}
-\func{void}{SetToolLongHelp}{\param{int }{toolIndex}, \param{const wxString\& }{helpString}}
+Called when the user clicks on a tool with the right mouse button. The
+programmer should override this function to detect right tool clicks.
-Sets the long help for the given tool.
+This is the old way of detecting tool right clicks; although it will still work,
+you should use the EVT\_TOOL\_RCLICKED macro instead.
\wxheading{Parameters}
-\docparam{toolIndex}{The tool in question.}
+\docparam{toolId}{The identifier passed to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool}.}
-\docparam{helpString}{A string for the long help.}
+\docparam{x}{The x position of the mouse cursor.}
+
+\docparam{y}{The y position of the mouse cursor.}
\wxheading{Remarks}
-You might use the long help for displaying the tool purpose on the status line.
+A typical use of this member might be to pop up a menu.
\wxheading{See also}
-\helpref{wxToolBarBase::GetToolLongHelp}{wxtoolbarbasegettoollonghelp},\rtfsp
-\helpref{wxToolBarBase::SetToolShortHelp}{wxtoolbarbasesettoolshorthelp},\rtfsp
+\helpref{wxToolBar::OnMouseEnter}{wxtoolbaronmouseenter},\rtfsp
+\helpref{wxToolBar::OnLeftClick}{wxtoolbaronleftclick}
-\membersection{wxToolBarBase::SetToolPacking}\label{wxtoolbarbasesettoolpacking}
-\func{void}{SetToolPacking}{\param{const int}{ packing}}
+\membersection{wxToolBar::Realize}\label{wxtoolbarrealize}
-Sets the value used for spacing tools. The default value is 1.
+\func{bool}{Realize}{\void}
-\wxheading{Parameters}
+This function should be called after you have added tools.
-\docparam{packing}{The value for packing.}
-\wxheading{Remarks}
+\membersection{wxToolBar::RemoveTool}\label{wxtoolbarremovetool}
-The packing is used for spacing in the vertical direction if the toolbar is horizontal,
-and for spacing in the horizontal direction if the toolbar is vertical.
+\func{wxToolBarToolBase *}{RemoveTool}{\param{int }{id}}
+
+Removes the given tool from the toolbar but doesn't delete it. This allows to
+insert/add this tool back to this (or another) toolbar later.
+
+Note that it is unnecessary to call \helpref{Realize}{wxtoolbarrealize} for the
+change to take place, it will happen immediately.
\wxheading{See also}
-\helpref{wxToolBarBase::GetToolPacking}{wxtoolbarbasegettoolpacking}
+\helpref{DeleteTool}{wxtoolbardeletetool}
-\membersection{wxToolBarBase::SetToolShortHelp}\label{wxtoolbarbasesettoolshorthelp}
-\func{void}{SetToolShortHelp}{\param{const int }{toolIndex}, \param{const wxString\& }{helpString}}
+\membersection{wxToolBar::SetBitmapResource}\label{wxtoolbarsetbitmapresource}
-Sets the short help for the given tool.
+\func{void}{SetBitmapResource}{\param{int }{resourceId}}
-\wxheading{Parameters}
+Sets the bitmap resource identifier for specifying tool bitmaps as indices
+into a custom bitmap. Windows CE only.
-\docparam{toolIndex}{The tool in question.}
-\docparam{helpString}{The string for the short help.}
+\membersection{wxToolBar::SetMargins}\label{wxtoolbarsetmargins}
-\wxheading{Remarks}
+\func{void}{SetMargins}{\param{const wxSize\&}{ size}}
-An application might use short help for identifying the tool purpose in a tooltip.
+\func{void}{SetMargins}{\param{int}{ x}, \param{int}{ y}}
-\wxheading{See also}
+Set the values to be used as margins for the toolbar.
-\helpref{wxToolBarBase::GetToolShortHelp}{wxtoolbarbasegettoolshorthelp}, \helpref{wxToolBarBase::SetToolLongHelp}{wxtoolbarbasesettoollonghelp}
+\wxheading{Parameters}
-\membersection{wxToolBarBase::SetToolSeparation}\label{wxtoolbarbasesettoolseparation}
+\docparam{size}{Margin size.}
-\func{void}{SetToolSeparation}{\param{const int}{ separation}}
+\docparam{x}{Left margin, right margin and inter-tool separation value.}
-Sets the default separator size. The default value is 5.
+\docparam{y}{Top margin, bottom margin and inter-tool separation value.}
-\wxheading{Parameters}
+\wxheading{Remarks}
-\docparam{separation}{The separator size.}
+This must be called before the tools are added if absolute positioning is to be used, and the
+default (zero-size) margins are to be overridden.
\wxheading{See also}
-\helpref{wxToolBarBase::AddSeparator}{wxtoolbarbaseaddseparator}
+\helpref{wxToolBar::GetMargins}{wxtoolbargetmargins}, \helpref{wxSize}{wxsize}
-\membersection{wxToolBarBase::ToggleTool}\label{wxtoolbarbasetoggletool}
-\func{void}{ToggleTool}{\param{const int }{toolIndex}, \param{const bool}{ toggle}}
+\membersection{wxToolBar::SetDropdownMenu}\label{wxtoolbarsetdropdownmenu}
-Toggles a tool on or off.
+\func{bool}{SetDropdownMenu}{\param{int }{id}, \param{wxMenu* }{menu}}
-\wxheading{Parameters}
-
-\docparam{toolIndex}{Tool in question.}
+Sets the dropdown menu for the tool given by its \arg{id}. The tool itself will
+delete the menu when it's no longer needed.
-\docparam{toggle}{If TRUE, toggles the tool on, otherwise toggles it off.}
+If you define a EVT\_TOOL\_DROPDOWN handler in your program, you must call
+\helpref{wxEvent::Skip()}{wxeventskip} from it or the menu won't be displayed.
-\wxheading{Remarks}
-Only applies to a tool that has been specified as a toggle tool.
+\membersection{wxToolBar::SetToolBitmapSize}\label{wxtoolbarsettoolbitmapsize}
-\wxheading{See also}
+\func{void}{SetToolBitmapSize}{\param{const wxSize\&}{ size}}
-\helpref{wxToolBarBase::GetToolState}{wxtoolbarbasegettoolstate}
+Sets the default size of each tool bitmap. The default bitmap size is 16 by 15 pixels.
-\section{\class{wxToolBar95}}\label{wxtoolbar95}
+\wxheading{Parameters}
-This class should be used when a 3D-effect toolbar is required under Windows 95.
-It uses the native toolbar control.
+\docparam{size}{The size of the bitmaps in the toolbar.}
-\wxheading{Derived from}
+\wxheading{Remarks}
-\helpref{wxToolBarBase}{wxtoolbarbase}\\
-\helpref{wxControl}{wxcontrol}\\
-\helpref{wxWindow}{wxwindow}\\
-\helpref{wxEvtHandler}{wxevthandler}\\
-\helpref{wxObject}{wxobject}
+This should be called to tell the toolbar what the tool bitmap size is. Call
+it before you add tools.
-\wxheading{Window styles}
+Note that this is the size of the bitmap you pass to \helpref{wxToolBar::AddTool}{wxtoolbaraddtool},
+and not the eventual size of the tool button.
-There are no specific styles for this class.
+\wxheading{See also}
-See also \helpref{window styles overview}{windowstyles}.
+\helpref{wxToolBar::GetToolBitmapSize}{wxtoolbargettoolbitmapsize},\rtfsp
+\helpref{wxToolBar::GetToolSize}{wxtoolbargettoolsize}
-\wxheading{Remarks}
-Note that this toolbar paints tools to reflect user-selected colours.
-The toolbar orientation must always be {\bf wxVERTICAL}.
+\membersection{wxToolBar::SetToolClientData}\label{wxtoolbarsettoolclientdata}
-For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
+\func{void}{SetToolClientData}{\param{int }{id}, \param{wxObject* }{clientData}}
-\wxheading{See also}
+Sets the client data associated with the tool.
-\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
-\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
-\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
-\helpref{wxToolBarMSW}{wxtoolbarmsw}
-\latexignore{\rtfignore{\wxheading{Members}}}
+\membersection{wxToolBar::SetToolDisabledBitmap}\label{wxtoolbarsettooldisabledbitmap}
-\membersection{wxToolBar95::wxToolBar95}\label{wxtoolbar95constr}
+\func{void}{SetToolDisabledBitmap}{\param{int }{id}, \param{const wxBitmap\& }{bitmap}}
-\func{}{wxToolBar95}{\param{wxWindow*}{ parent}, \param{const wxWindowID }{id},\rtfsp
-\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
-\param{const long }{style = 0}, \param{const int }{orientation = wxVERTICAL},\rtfsp
-\param{const int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
+Sets the bitmap to be used by the tool with the given ID when the tool
+is in a disabled state. This can only be used on Button tools, not
+controls. NOTE: The native toolbar classes on the main platforms all
+synthesize the disabled bitmap from the normal bitmap, so this
+function will have no effect on those platforms.
-Constructs a toolbar.
-\wxheading{Parameters}
+\membersection{wxToolBar::SetToolLongHelp}\label{wxtoolbarsettoollonghelp}
-\docparam{parent}{Parent window. Must not be NULL.}
+\func{void}{SetToolLongHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}}
-\docparam{id}{Window identifier. A value of -1 indicates a default value.}
+Sets the long help for the given tool.
-\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
+\wxheading{Parameters}
-\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
+\docparam{toolId}{The tool in question.}
-\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
-the toolbar.}
+\docparam{helpString}{A string for the long help.}
-\docparam{nRowsOrColumns}{Specifies the number of rows or
-columns, whose meaning depends on {\it orientation}. If laid out
-vertically, {\it nRowsOrColumns} specifies the number of rows to draw
-before the next column is started; if horizontal, it refers to the
-number of columns to draw before the next row is started.}
+\wxheading{Remarks}
-\docparam{style}{Window style. See \helpref{wxToolBar95}{wxtoolbar95}.}
+You might use the long help for displaying the tool purpose on the status line.
-\docparam{name}{Window name.}
+\wxheading{See also}
-\section{\class{wxToolBarMSW}}\label{wxtoolbarmsw}
+\helpref{wxToolBar::GetToolLongHelp}{wxtoolbargettoollonghelp},\rtfsp
+\helpref{wxToolBar::SetToolShortHelp}{wxtoolbarsettoolshorthelp},\rtfsp
-This class should be used when a 3D-effect toolbar is required for Windows versions earlier
-than Windows 95.
-\wxheading{Derived from}
+\membersection{wxToolBar::SetToolPacking}\label{wxtoolbarsettoolpacking}
-\helpref{wxToolBarBase}{wxtoolbarbase}\\
-\helpref{wxControl}{wxcontrol}\\
-\helpref{wxWindow}{wxwindow}\\
-\helpref{wxEvtHandler}{wxevthandler}\\
-\helpref{wxObject}{wxobject}
+\func{void}{SetToolPacking}{\param{int}{ packing}}
-\wxheading{Window styles}
+Sets the value used for spacing tools. The default value is 1.
-There are no specific styles for this class.
+\wxheading{Parameters}
-See also \helpref{window styles overview}{windowstyles}.
+\docparam{packing}{The value for packing.}
\wxheading{Remarks}
-Note that this toolbar does not paint tools to reflect user-selected colours: grey shading is used.
-
-For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
+The packing is used for spacing in the vertical direction if the toolbar is horizontal,
+and for spacing in the horizontal direction if the toolbar is vertical.
\wxheading{See also}
-\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
-\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
-\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
-\helpref{wxToolBar95}{wxtoolbar95}
+\helpref{wxToolBar::GetToolPacking}{wxtoolbargettoolpacking}
-\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxToolBarMSW::wxToolBarMSW}\label{wxtoolbarmswconstr}
+\membersection{wxToolBar::SetToolShortHelp}\label{wxtoolbarsettoolshorthelp}
-\func{}{wxToolBarMSW}{\param{wxWindow*}{ parent}, \param{const wxWindowID }{id},\rtfsp
-\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
-\param{const long }{style = 0}, \param{const int }{orientation = wxVERTICAL},\rtfsp
-\param{const int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
+\func{void}{SetToolShortHelp}{\param{int }{toolId}, \param{const wxString\& }{helpString}}
-Constructs a toolbar.
+Sets the short help for the given tool.
\wxheading{Parameters}
-\docparam{parent}{Parent window. Must not be NULL.}
+\docparam{toolId}{The tool in question.}
-\docparam{id}{Window identifier. A value of -1 indicates a default value.}
+\docparam{helpString}{The string for the short help.}
-\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
+\wxheading{Remarks}
-\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
+An application might use short help for identifying the tool purpose in a tooltip.
-\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
-the toolbar.}
+\wxheading{See also}
-\docparam{nRowsOrColumns}{Specifies the number of rows or
-columns, whose meaning depends on {\it orientation}. If laid out
-vertically, {\it nRowsOrColumns} specifies the number of rows to draw
-before the next column is started; if horizontal, it refers to the
-number of columns to draw before the next row is started.}
+\helpref{wxToolBar::GetToolShortHelp}{wxtoolbargettoolshorthelp}, \helpref{wxToolBar::SetToolLongHelp}{wxtoolbarsettoollonghelp}
-\docparam{style}{Window style. See \helpref{wxToolBarMSW}{wxtoolbarmsw}.}
-\docparam{name}{Window name.}
+\membersection{wxToolBar::SetToolNormalBitmap}\label{wxtoolbarsettoolnormalbitmap}
+\func{void}{SetToolNormalBitmap}{\param{int }{id}, \param{const wxBitmap\& }{bitmap}}
-\section{\class{wxToolBarSimple}}\label{wxtoolbarsimple}
+Sets the bitmap to be used by the tool with the given ID. This can
+only be used on Button tools, not controls.
-This is the generic toolbar class which has an identical appearance
-on all platforms.
-\wxheading{Derived from}
-\helpref{wxToolBarBase}{wxtoolbarbase}\\
-\helpref{wxControl}{wxcontrol}\\
-\helpref{wxWindow}{wxwindow}\\
-\helpref{wxEvtHandler}{wxevthandler}\\
-\helpref{wxObject}{wxobject}
+\membersection{wxToolBar::SetToolSeparation}\label{wxtoolbarsettoolseparation}
-\wxheading{Window styles}
+\func{void}{SetToolSeparation}{\param{int}{ separation}}
-\twocolwidtha{5cm}
-\begin{twocollist}\itemsep=0pt
-\twocolitem{\windowstyle{wxTB\_3DBUTTONS}}{Gives the simple toolbar a mild 3D look to its buttons.}
-\end{twocollist}
-
-See also \helpref{window styles overview}{windowstyles}.
-
-\wxheading{Remarks}
+Sets the default separator size. The default value is 5.
-In this class, disabling a toolbar tool does not change its appearance.
+\wxheading{Parameters}
-For member functions, see the documentation for \helpref{wxToolBarBase}{wxtoolbarbase}.
+\docparam{separation}{The separator size.}
\wxheading{See also}
-\overview{Toolbar overview}{wxtoolbaroverview},\rtfsp
-\helpref{wxToolBarBase}{wxtoolbarbase},\rtfsp
-\helpref{wxToolBarSimple}{wxtoolbarsimple},\rtfsp
-\helpref{wxToolBar95}{wxtoolbar95}
+\helpref{wxToolBar::AddSeparator}{wxtoolbaraddseparator}
-\latexignore{\rtfignore{\wxheading{Members}}}
-\membersection{wxToolBarSimple::wxToolBarSimple}\label{wxtoolbarsimpleconstr}
+\membersection{wxToolBar::ToggleTool}\label{wxtoolbartoggletool}
-\func{}{wxToolBarSimple}{\param{wxWindow*}{ parent}, \param{const wxWindowID }{id},\rtfsp
-\param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
-\param{const long }{style = 0}, \param{const int }{orientation = wxVERTICAL},\rtfsp
-\param{const int }{nRowsOrColumns = 1}, \param{const wxString\& }{name = ``toolBar"}}
+\func{void}{ToggleTool}{\param{int }{toolId}, \param{bool}{ toggle}}
-Constructs a toolbar.
+Toggles a tool on or off. This does not cause any event to get emitted.
\wxheading{Parameters}
-\docparam{parent}{Parent window. Must not be NULL.}
+\docparam{toolId}{Tool in question.}
-\docparam{id}{Window identifier. A value of -1 indicates a default value.}
+\docparam{toggle}{If true, toggles the tool on, otherwise toggles it off.}
-\docparam{pos}{Window position. If the position (-1, -1) is specified then a default position is chosen.}
-
-\docparam{size}{Window size. If the default size (-1, -1) is specified then a default size is chosen.}
-
-\docparam{orientation}{Specifies a wxVERTICAL or wxHORIZONTAL orientation for laying out
-the toolbar.}
-
-\docparam{nRowsOrColumns}{Specifies the number of rows or
-columns, whose meaning depends on {\it orientation}. If laid out
-vertically, {\it nRowsOrColumns} specifies the number of rows to draw
-before the next column is started; if horizontal, it refers to the
-number of columns to draw before the next row is started.}
-
-\docparam{style}{Window style. See \helpref{wxToolBarSimple}{wxtoolbarsimple}.}
+\wxheading{Remarks}
-\docparam{name}{Window name.}
+Only applies to a tool that has been specified as a toggle tool.
+\wxheading{See also}
+\helpref{wxToolBar::GetToolState}{wxtoolbargettoolstate}