| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: toolbar.h
- // Purpose: interface of wxToolBar
- // Author: wxWidgets team
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- enum wxToolBarToolStyle
- {
- wxTOOL_STYLE_BUTTON = 1,
- wxTOOL_STYLE_SEPARATOR = 2,
- wxTOOL_STYLE_CONTROL
- };
- /** wxToolBar style flags */
- enum
- {
- /** lay out the toolbar horizontally */
- wxTB_HORIZONTAL = wxHORIZONTAL,
- wxTB_TOP = wxTB_HORIZONTAL,
- /** lay out the toolbar vertically */
- wxTB_VERTICAL = wxVERTICAL,
- wxTB_LEFT = wxTB_VERTICAL,
- /** show 3D buttons (wxToolBarSimple only) */
- wxTB_3DBUTTONS,
- /** "flat" buttons (Win32/GTK only) */
- wxTB_FLAT,
- /** dockable toolbar (GTK only) */
- wxTB_DOCKABLE,
- /** don't show the icons (they're shown by default) */
- wxTB_NOICONS,
- /** show the text (not shown by default) */
- wxTB_TEXT,
- /** don't show the divider between toolbar and the window (Win32 only) */
- wxTB_NODIVIDER,
- /** no automatic alignment (Win32 only, useless) */
- wxTB_NOALIGN,
- /** show the text and the icons alongside, not vertically stacked (Win32/GTK) */
- wxTB_HORZ_LAYOUT,
- wxTB_HORZ_TEXT = wxTB_HORZ_LAYOUT | wxTB_TEXT,
- /** don't show the toolbar short help tooltips */
- wxTB_NO_TOOLTIPS,
- /** lay out toolbar at the bottom of the window */
- wxTB_BOTTOM,
- /** lay out toolbar at the right edge of the window */
- wxTB_RIGHT,
- /** flags that are closest to the native look*/
- wxTB_DEFAULT_STYLE = wxTB_HORIZONTAL | wxTB_FLAT
- };
- /**
- @class wxToolBarToolBase
- A toolbar tool represents one item on the toolbar.
- It has a unique id (except for the separators), the style (telling whether
- it is a normal button, separator or a control), the state (toggled or not,
- enabled or not) and short and long help strings. The default
- implementations use the short help string for the tooltip text which is
- popped up when the mouse pointer enters the tool and the long help string
- for the applications status bar.
- */
- class wxToolBarToolBase : public wxObject
- {
- public:
- wxToolBarToolBase(wxToolBarBase *tbar = NULL,
- int toolid = wxID_SEPARATOR,
- const wxString& label = wxEmptyString,
- const wxBitmap& bmpNormal = wxNullBitmap,
- const wxBitmap& bmpDisabled = wxNullBitmap,
- wxItemKind kind = wxITEM_NORMAL,
- wxObject *clientData = NULL,
- const wxString& shortHelpString = wxEmptyString,
- const wxString& longHelpString = wxEmptyString);
- wxToolBarToolBase(wxToolBarBase *tbar,
- wxControl *control,
- const wxString& label);
- virtual ~wxToolBarToolBase();
- int GetId() const;
- wxControl *GetControl() const;
- wxToolBarBase *GetToolBar() const;
- bool IsStretchable() const;
- bool IsButton() const;
- bool IsControl() const;
- bool IsSeparator() const;
- bool IsStretchableSpace() const;
- int GetStyle() const;
- wxItemKind GetKind() const;
- void MakeStretchable();
- bool IsEnabled() const;
- bool IsToggled() const;
- bool CanBeToggled() const;
- const wxBitmap& GetNormalBitmap() const;
- const wxBitmap& GetDisabledBitmap() const;
- const wxBitmap& GetBitmap() const;
- const wxString& GetLabel() const;
- const wxString& GetShortHelp() const;
- const wxString& GetLongHelp() const;
- wxObject *GetClientData() const;
- virtual bool Enable(bool enable);
- virtual bool Toggle(bool toggle);
- virtual bool SetToggle(bool toggle);
- virtual bool SetShortHelp(const wxString& help);
- virtual bool SetLongHelp(const wxString& help);
- void Toggle();
- virtual void SetNormalBitmap(const wxBitmap& bmp);
- virtual void SetDisabledBitmap(const wxBitmap& bmp);
- virtual void SetLabel(const wxString& label);
- void SetClientData(wxObject *clientData);
-
- virtual void Detach();
- virtual void Attach(wxToolBarBase *tbar);
- virtual void SetDropdownMenu(wxMenu *menu);
- wxMenu *GetDropdownMenu() const;
- };
- /**
- @class wxToolBar
- A toolbar is a bar of buttons and/or other controls usually placed below
- the menu bar in a wxFrame.
- You may create a toolbar that is managed by a frame calling
- wxFrame::CreateToolBar(). Under Pocket PC, you should 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 wxToolBar as usual.
- There are several different types of tools you can add to a toolbar.
- These types are controlled by the ::wxItemKind enumeration.
- Note that many methods in wxToolBar such as wxToolBar::AddTool return a
- @c wxToolBarToolBase* object.
- This should be regarded as an opaque handle representing the newly added
- toolbar item, providing access to its id and position within the toolbar.
- Changes to the item's state should be made through calls to wxToolBar methods,
- for example wxToolBar::EnableTool.
- Calls to @c wxToolBarToolBase methods (undocumented by purpose) will not change
- the visible state of the item within the tool bar.
- <b>wxMSW note</b>: Note that under wxMSW 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 msw.remap system option before creating the toolbar:
- @code
- wxSystemOptions::SetOption("msw.remap", 0);
- @endcode
- If you wish to use 32-bit images (which include an alpha channel for
- transparency) use:
- @code
- wxSystemOptions::SetOption("msw.remap", 2);
- @endcode
- Then colour remapping is switched off, and a transparent background
- used. But only use this option under Windows XP with true colour:
- @code
- if (wxTheApp->GetComCtl32Version() >= 600 && ::wxDisplayDepth() >= 32)
- @endcode
- @beginStyleTable
- @style{wxTB_FLAT}
- Gives the toolbar a flat look (Windows and GTK only).
- @style{wxTB_DOCKABLE}
- Makes the toolbar floatable and dockable (GTK only).
- @style{wxTB_HORIZONTAL}
- Specifies horizontal layout (default).
- @style{wxTB_VERTICAL}
- Specifies vertical layout.
- @style{wxTB_TEXT}
- Shows the text in the toolbar buttons; by default only icons are shown.
- @style{wxTB_NOICONS}
- Specifies no icons in the toolbar buttons; by default they are shown.
- @style{wxTB_NODIVIDER}
- Specifies no divider (border) above the toolbar (Windows only)
- @style{wxTB_NOALIGN}
- Specifies no alignment with the parent window (Windows only, not very
- useful).
- @style{wxTB_HORZ_LAYOUT}
- Shows the text and the icons alongside, not vertically stacked (Windows
- and GTK 2 only). This style must be used with @c wxTB_TEXT.
- @style{wxTB_HORZ_TEXT}
- Combination of @c wxTB_HORZ_LAYOUT and @c wxTB_TEXT.
- @style{wxTB_NO_TOOLTIPS}
- Don't show the short help tooltips for the tools when the mouse hovers
- over them.
- @style{wxTB_BOTTOM}
- Align the toolbar at the bottom of parent window.
- @style{wxTB_RIGHT}
- Align the toolbar at the right side of parent window.
- @style{wxTB_DEFAULT_STYLE}
- Combination of @c wxTB_HORIZONTAL and @c wxTB_FLAT. This style is new
- since wxWidgets 2.9.5.
- @endStyleTable
- See also @ref overview_windowstyles. Note that the wxMSW native toolbar
- ignores @c wxTB_NOICONS style. Also, toggling the @c wxTB_TEXT works only
- if the style was initially on.
- @beginEventEmissionTable{wxCommandEvent}
- @event{EVT_TOOL(id, func)}
- Process a @c wxEVT_TOOL event (a synonym for @c
- wxEVT_MENU). Pass the id of the tool.
- @event{EVT_MENU(id, func)}
- The same as EVT_TOOL().
- @event{EVT_TOOL_RANGE(id1, id2, func)}
- Process a @c wxEVT_TOOL event for a range of
- identifiers. Pass the ids of the tools.
- @event{EVT_MENU_RANGE(id1, id2, func)}
- The same as EVT_TOOL_RANGE().
- @event{EVT_TOOL_RCLICKED(id, func)}
- Process a @c wxEVT_TOOL_RCLICKED event. Pass the id of the
- tool. (Not available on wxOSX.)
- @event{EVT_TOOL_RCLICKED_RANGE(id1, id2, func)}
- Process a @c wxEVT_TOOL_RCLICKED event for a range of ids. Pass
- the ids of the tools. (Not available on wxOSX.)
- @event{EVT_TOOL_ENTER(id, func)}
- Process a @c wxEVT_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. (Not available on wxOSX.)
- @event{EVT_TOOL_DROPDOWN(id, func)}
- Process a @c wxEVT_TOOL_DROPDOWN event. If unhandled,
- displays the default dropdown menu set using
- wxToolBar::SetDropdownMenu().
- @endEventTable
- 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 @c wxID_ANY when the
- mouse moves off a tool, and @c wxID_ANY is not allowed as an identifier in the event
- system.
- @library{wxcore}
- @category{miscwnd}
- @see @ref overview_toolbar
- */
- class wxToolBar : public wxControl
- {
- public:
- /**
- Default constructor.
- */
- wxToolBar();
- /**
- Constructs a toolbar.
- @param parent
- Pointer to a parent window.
- @param id
- Window identifier. If -1, will automatically create an identifier.
- @param pos
- Window position. ::wxDefaultPosition indicates that wxWidgets should
- generate a default position for the window.
- If using the wxWindow class directly, supply an actual position.
- @param size
- Window size. ::wxDefaultSize indicates that wxWidgets should generate
- a default size for the window.
- @param style
- Window style. See wxToolBar initial description for details.
- @param name
- Window name.
- @remarks After a toolbar is created, you use AddTool() and perhaps
- AddSeparator(), and then you must call Realize() to construct
- and display the toolbar tools.
- */
- wxToolBar(wxWindow* parent, wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = wxTB_HORIZONTAL,
- const wxString& name = wxToolBarNameStr);
- /**
- Toolbar destructor.
- */
- virtual ~wxToolBar();
- /**
- Adds a new check (or toggle) tool to the toolbar. The parameters are the
- same as in AddTool().
- @see AddTool()
- */
- wxToolBarToolBase* AddCheckTool(int toolId, const wxString& label,
- const wxBitmap& bitmap1,
- const wxBitmap& bmpDisabled = wxNullBitmap,
- const wxString& shortHelp = wxEmptyString,
- const wxString& longHelp = wxEmptyString,
- wxObject* clientData = NULL);
- /**
- Adds any control to the toolbar, typically e.g.\ a wxComboBox.
- @param control
- The control to be added.
- @param label
- Text to be displayed near the control.
- @remarks
- wxMSW: the label is only displayed if there is enough space
- available below the embedded control.
- @remarks
- wxMac: labels are only displayed if wxWidgets is built with @c
- wxMAC_USE_NATIVE_TOOLBAR set to 1
- */
- virtual wxToolBarToolBase* AddControl(wxControl* control,
- const wxString& label = wxEmptyString);
- /**
- 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.
- @see AddTool()
- */
- wxToolBarToolBase* AddRadioTool(int toolId, const wxString& label,
- const wxBitmap& bitmap1,
- const wxBitmap& bmpDisabled = wxNullBitmap,
- const wxString& shortHelp = wxEmptyString,
- const wxString& longHelp = wxEmptyString,
- wxObject* clientData = NULL);
- /**
- Adds a separator for spacing groups of tools.
- Notice that the separator uses the look appropriate for the current
- platform so it can be a vertical line (MSW, some versions of GTK) or
- just an empty space or something else.
- @see AddTool(), SetToolSeparation(), AddStretchableSpace()
- */
- virtual wxToolBarToolBase* AddSeparator();
- /**
- Adds a stretchable space to the toolbar.
- Any space not taken up by the fixed items (all items except for
- stretchable spaces) is distributed in equal measure between the
- stretchable spaces in the toolbar. The most common use for this method
- is to add a single stretchable space before the items which should be
- right-aligned in the toolbar, but more exotic possibilities are
- possible, e.g. a stretchable space may be added in the beginning and
- the end of the toolbar to centre all toolbar items.
- @see AddTool(), AddSeparator(), InsertStretchableSpace()
- @since 2.9.1
- */
- wxToolBarToolBase *AddStretchableSpace();
- //@{
- /**
- Adds a tool to the toolbar.
- @param tool
- The tool to be added.
- @remarks After you have added tools to a toolbar, you must call
- Realize() in order to have the tools appear.
- @see AddSeparator(), AddCheckTool(), AddRadioTool(),
- InsertTool(), DeleteTool(), Realize(), SetDropdownMenu()
- */
- virtual wxToolBarToolBase* AddTool(wxToolBarToolBase* tool);
- /**
- Adds a tool to the toolbar. This most commonly used version has fewer
- parameters than the full version below which specifies the more rarely
- used button features.
- @param toolId
- An integer by which the tool may be identified in subsequent
- operations.
- @param label
- The string to be displayed with the tool.
- @param bitmap
- The primary tool bitmap.
- @param shortHelp
- This string is used for the tools tooltip.
- @param 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. ::wxITEM_DROPDOWN
- specifies that a drop-down menu button will appear next to the
- tool button (only GTK+ and MSW). Call SetDropdownMenu() afterwards.
- @remarks After you have added tools to a toolbar, you must call
- Realize() in order to have the tools appear.
- @see AddSeparator(), AddCheckTool(), AddRadioTool(),
- InsertTool(), DeleteTool(), Realize(), SetDropdownMenu()
- */
- wxToolBarToolBase* AddTool(int toolId, const wxString& label,
- const wxBitmap& bitmap,
- const wxString& shortHelp = wxEmptyString,
- wxItemKind kind = wxITEM_NORMAL);
- /**
- Adds a tool to the toolbar.
- @param toolId
- An integer by which the tool may be identified in subsequent
- operations.
- @param label
- The string to be displayed with the tool.
- @param bitmap
- The primary tool bitmap.
- @param bmpDisabled
- The bitmap used when the tool is disabled. If it is equal to
- ::wxNullBitmap (default), the disabled bitmap is automatically
- generated by greying the normal one.
- @param 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. ::wxITEM_DROPDOWN
- specifies that a drop-down menu button will appear next to the
- tool button (only GTK+ and MSW). Call SetDropdownMenu() afterwards.
- @param shortHelpString
- This string is used for the tools tooltip.
- @param longHelpString
- This string is shown in the statusbar (if any) of the parent frame
- when the mouse pointer is inside the tool.
- @param clientData
- An optional pointer to client data which can be retrieved later
- using GetToolClientData().
- @remarks After you have added tools to a toolbar, you must call
- Realize() in order to have the tools appear.
- @see AddSeparator(), AddCheckTool(), AddRadioTool(),
- InsertTool(), DeleteTool(), Realize(), SetDropdownMenu()
- */
- wxToolBarToolBase* AddTool(int toolId, const wxString& label,
- const wxBitmap& bitmap,
- const wxBitmap& bmpDisabled,
- wxItemKind kind = wxITEM_NORMAL,
- const wxString& shortHelpString = wxEmptyString,
- const wxString& longHelpString = wxEmptyString,
- wxObject* clientData = NULL);
- //@}
- /**
- Deletes all the tools in the toolbar.
- */
- virtual void ClearTools();
- /**
- 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 RemoveTool() instead.
- @note It is unnecessary to call Realize() for the change to take
- place, it will happen immediately.
- @returns @true if the tool was deleted, @false otherwise.
- @see DeleteToolByPos()
- */
- virtual bool DeleteTool(int toolId);
- /**
- This function behaves like DeleteTool() but it deletes the tool at the
- specified position and not the one with the given id.
- */
- virtual bool DeleteToolByPos(size_t pos);
- /**
- Enables or disables the tool.
- @param toolId
- ID of the tool to enable or disable, as passed to AddTool().
- @param enable
- If @true, enables the tool, otherwise disables it.
- @remarks Some implementations will change the visible state of the tool
- to indicate that it is disabled.
- @see GetToolEnabled(), ToggleTool()
- */
- virtual void EnableTool(int toolId, bool enable);
- /**
- Returns a pointer to the tool identified by @a id or @NULL if no
- corresponding tool is found.
- */
- wxToolBarToolBase* FindById(int id) const;
- /**
- Returns a pointer to the control identified by @a id or @NULL if no
- corresponding control is found.
- */
- virtual wxControl* FindControl(int id);
- /**
- Finds a tool for the given mouse position.
- @param x
- X position.
- @param y
- Y position.
- @return A pointer to a tool if a tool is found, or @NULL otherwise.
- @remarks Currently not implemented in wxGTK (always returns @NULL
- there).
- */
- virtual wxToolBarToolBase* FindToolForPosition(wxCoord x, wxCoord y) const;
- /**
- Returns the left/right and top/bottom margins, which are also used for
- inter-toolspacing.
- @see SetMargins()
- */
- wxSize GetMargins() const;
- /**
- Returns the size of bitmap that the toolbar expects to have.
- The default bitmap size is platform-dependent: for example, it is 16*15
- for MSW and 24*24 for GTK. This size does @em not necessarily indicate
- the best size to use for the toolbars on the given platform, for this
- you should use @c wxArtProvider::GetNativeSizeHint(wxART_TOOLBAR) but
- in any case, as the bitmap size is deduced automatically from the size
- of the bitmaps associated with the tools added to the toolbar, it is
- usually unnecessary to call SetToolBitmapSize() explicitly.
- @remarks Note that this is the size of the bitmap you pass to AddTool(),
- and not the eventual size of the tool button.
- @see SetToolBitmapSize(), GetToolSize()
- */
- virtual wxSize GetToolBitmapSize() const;
- /**
- Returns a pointer to the tool at ordinal position @a pos.
- Don't confuse this with FindToolForPosition().
- @since 2.9.1
- @see GetToolsCount()
- */
- const wxToolBarToolBase *GetToolByPos(int pos) const;
- /**
- Get any client data associated with the tool.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @return Client data, or @NULL if there is none.
- */
- virtual wxObject* GetToolClientData(int toolId) const;
- /**
- Called to determine whether a tool is enabled (responds to user input).
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @return @true if the tool is enabled, @false otherwise.
- @see EnableTool()
- */
- virtual bool GetToolEnabled(int toolId) const;
- /**
- Returns the long help for the given tool.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @see SetToolLongHelp(), SetToolShortHelp()
- */
- virtual wxString GetToolLongHelp(int toolId) const;
- /**
- Returns the value used for packing tools.
- @see SetToolPacking()
- */
- virtual int GetToolPacking() const;
- /**
- Returns the tool position in the toolbar, or @c wxNOT_FOUND if the tool
- is not found.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- */
- virtual int GetToolPos(int toolId) const;
- /**
- Returns the default separator size.
- @see SetToolSeparation()
- */
- virtual int GetToolSeparation() const;
- /**
- Returns the short help for the given tool.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @see GetToolLongHelp(), SetToolShortHelp()
- */
- virtual wxString GetToolShortHelp(int toolId) const;
- /**
- Returns the size of a whole button, which is usually larger than a tool
- bitmap because of added 3D effects.
- @see SetToolBitmapSize(), GetToolBitmapSize()
- */
- virtual wxSize GetToolSize() const;
- /**
- Gets the on/off state of a toggle tool.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @return @true if the tool is toggled on, @false otherwise.
- @see ToggleTool()
- */
- virtual bool GetToolState(int toolId) const;
- /**
- Returns the number of tools in the toolbar.
- */
- size_t GetToolsCount() const;
- /**
- Inserts the control into the toolbar at the given position. You must
- call Realize() for the change to take place.
- @see AddControl(), InsertTool()
- */
- virtual wxToolBarToolBase* InsertControl(size_t pos, wxControl* control,
- const wxString& label = wxEmptyString);
- /**
- Inserts the separator into the toolbar at the given position. You must
- call Realize() for the change to take place.
- @see AddSeparator(), InsertTool()
- */
- virtual wxToolBarToolBase* InsertSeparator(size_t pos);
- /**
- Inserts a stretchable space at the given position.
- See AddStretchableSpace() for details about stretchable spaces.
- @see InsertTool(), InsertSeparator()
- @since 2.9.1
- */
- wxToolBarToolBase *InsertStretchableSpace(size_t pos);
- //@{
- /**
- Inserts the tool with the specified attributes into the toolbar at the
- given position.
- You must call Realize() for the change to take place.
- @see AddTool(), InsertControl(), InsertSeparator()
- @return The newly inserted tool or @NULL on failure. Notice that with
- the overload taking @a tool parameter the caller is responsible for
- deleting the tool in the latter case.
- */
- wxToolBarToolBase* InsertTool( size_t pos,
- int toolId,
- const wxString& label,
- const wxBitmap& bitmap,
- const wxBitmap& bmpDisabled = wxNullBitmap,
- wxItemKind kind = wxITEM_NORMAL,
- const wxString& shortHelp = wxEmptyString,
- const wxString& longHelp = wxEmptyString,
- wxObject *clientData = NULL);
- wxToolBarToolBase* InsertTool(size_t pos,
- wxToolBarToolBase* tool);
- //@}
- /**
- Called when the user clicks on a tool with the left mouse button. 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.
- @param toolId
- The identifier passed to AddTool().
- @param toggleDown
- @true if the tool is a toggle and the toggle is down, otherwise is
- @false.
- @return If the tool is a toggle and this function returns @false, the
- toggle state (internal and visual) will not be changed. This
- provides a way of specifying that toggle operations are not
- permitted in some circumstances.
- @see OnMouseEnter(), OnRightClick()
- */
- virtual bool OnLeftClick(int toolId, bool toggleDown);
- /**
- This is called when the mouse cursor moves into a tool or out of the
- toolbar. This is the old way of detecting mouse enter events;
- although it will still work, you should use the EVT_TOOL_ENTER()
- macro instead.
- @param 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.
- @remarks 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.
- */
- virtual void OnMouseEnter(int toolId);
- /**
- @deprecated This is the old way of detecting tool right clicks;
- although it will still work, you should use the
- EVT_TOOL_RCLICKED() macro instead.
- Called when the user clicks on a tool with the right mouse button. The
- programmer should override this function to detect right tool clicks.
- @param toolId
- The identifier passed to AddTool().
- @param x
- The x position of the mouse cursor.
- @param y
- The y position of the mouse cursor.
- @remarks A typical use of this member might be to pop up a menu.
- @see OnMouseEnter(), OnLeftClick()
- */
- virtual void OnRightClick(int toolId, long x, long y);
- /**
- This function should be called after you have added tools.
- */
- virtual bool Realize();
- /**
- 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 It is unnecessary to call Realize() for the change to take place,
- it will happen immediately.
- @see DeleteTool()
- */
- virtual wxToolBarToolBase* RemoveTool(int id);
- /**
- Sets the bitmap resource identifier for specifying tool bitmaps as
- indices into a custom bitmap.
- This is a Windows CE-specific method not available in the other ports.
- @onlyfor{wxmsw_wince}
- */
- void SetBitmapResource(int resourceId);
- /**
- Sets the dropdown menu for the tool given by its @e id. The tool itself
- will delete the menu when it's no longer needed. Only supported under
- GTK+ und MSW.
- If you define a EVT_TOOL_DROPDOWN() handler in your program, you must
- call wxEvent::Skip() from it or the menu won't be displayed.
- */
- bool SetDropdownMenu(int id, wxMenu* menu);
- //@{
- /**
- Set the values to be used as margins for the toolbar.
- @param x
- Left margin, right margin and inter-tool separation value.
- @param y
- Top margin, bottom margin and inter-tool separation value.
- @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.
- @see GetMargins()
- */
- virtual void SetMargins(int x, int y);
- /**
- Set the margins for the toolbar.
- @param size
- Margin size.
- @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.
- @see GetMargins(), wxSize
- */
- void SetMargins(const wxSize& size);
- //@}
- /**
- Sets the default size of each tool bitmap. The default bitmap size is 16
- by 15 pixels.
- @param size
- The size of the bitmaps in the toolbar.
- @remarks This should be called to tell the toolbar what the tool bitmap
- size is. Call it before you add tools.
- @see GetToolBitmapSize(), GetToolSize()
- */
- virtual void SetToolBitmapSize(const wxSize& size);
- /**
- Sets the client data associated with the tool.
- @param id
- ID of the tool in question, as passed to AddTool().
- @param clientData
- The client data to use.
- */
- virtual void SetToolClientData(int id, wxObject* clientData);
- /**
- 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.
- @param id
- ID of the tool in question, as passed to AddTool().
- @param bitmap
- Bitmap to use for disabled tools.
- @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.
- */
- virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
- /**
- Sets the long help for the given tool.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @param helpString
- A string for the long help.
- @remarks You might use the long help for displaying the tool purpose on
- the status line.
- @see GetToolLongHelp(), SetToolShortHelp(),
- */
- virtual void SetToolLongHelp(int toolId, const wxString& helpString);
- /**
- Sets the bitmap to be used by the tool with the given ID. This can only
- be used on Button tools, not controls.
- @param id
- ID of the tool in question, as passed to AddTool().
- @param bitmap
- Bitmap to use for normals tools.
- */
- virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
- /**
- Sets the value used for spacing tools. The default value is 1.
- @param packing
- The value for packing.
- @remarks 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.
- @see GetToolPacking()
- */
- virtual void SetToolPacking(int packing);
- /**
- Sets the default separator size. The default value is 5.
- @param separation
- The separator size.
- @see AddSeparator()
- */
- virtual void SetToolSeparation(int separation);
- /**
- Sets the short help for the given tool.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @param helpString
- The string for the short help.
- @remarks An application might use short help for identifying the tool
- purpose in a tooltip.
- @see GetToolShortHelp(), SetToolLongHelp()
- */
- virtual void SetToolShortHelp(int toolId, const wxString& helpString);
- /**
- Toggles a tool on or off. This does not cause any event to get emitted.
- @param toolId
- ID of the tool in question, as passed to AddTool().
- @param toggle
- If @true, toggles the tool on, otherwise toggles it off.
- @remarks Only applies to a tool that has been specified as a toggle
- tool.
- */
- virtual void ToggleTool(int toolId, bool toggle);
- /**
- Factory function to create a new toolbar tool.
- */
- virtual wxToolBarToolBase *CreateTool(int toolId,
- const wxString& label,
- const wxBitmap& bmpNormal,
- const wxBitmap& bmpDisabled = wxNullBitmap,
- wxItemKind kind = wxITEM_NORMAL,
- wxObject *clientData = NULL,
- const wxString& shortHelp = wxEmptyString,
- const wxString& longHelp = wxEmptyString);
- /**
- Factory function to create a new control toolbar tool.
- */
- virtual wxToolBarToolBase *CreateTool(wxControl *control,
- const wxString& label);
- /**
- Factory function to create a new separator toolbar tool.
- */
- wxToolBarToolBase *CreateSeparator()
- };
|