| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: ribbon/toolbar.h
- // Purpose: interface of wxRibbonToolBar
- // Author: Peter Cawley
- // Licence: wxWindows licence
- ///////////////////////////////////////////////////////////////////////////////
- /**
- @class wxRibbonToolBar
-
- A ribbon tool bar is similar to a traditional toolbar which has no labels.
- It contains one or more tool groups, each of which contains one or more
- tools. Each tool is represented by a (generally small, i.e. 16x15) bitmap.
-
- @beginEventEmissionTable{wxRibbonToolBarEvent}
- @event{EVT_RIBBONTOOLBAR_CLICKED(id, func)}
- Triggered when the normal (non-dropdown) region of a tool on the tool
- bar is clicked.
- @event{EVT_RIBBONTOOLBAR_DROPDOWN_CLICKED(id, func)}
- Triggered when the dropdown region of a tool on the tool bar is
- clicked. wxRibbonToolBarEvent::PopupMenu() should be called by the
- event handler if it wants to display a popup menu (which is what most
- dropdown tools should be doing).
- @endEventTable
-
- @library{wxribbon}
- @category{ribbon}
- */
- class wxRibbonToolBar : public wxRibbonControl
- {
- public:
- /**
- Default constructor.
- With this constructor, Create() should be called in order to create
- the tool bar.
- */
- wxRibbonToolBar();
- /**
- Construct a ribbon tool bar with the given parameters.
-
- @param parent
- Parent window for the tool bar (typically a wxRibbonPanel).
- @param id
- An identifier for the toolbar. @c wxID_ANY is taken to mean a default.
- @param pos
- Initial position of the tool bar.
- @param size
- Initial size of the tool bar.
- @param style
- Tool bar style, currently unused.
- */
- wxRibbonToolBar(wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0);
- /**
- Destructor.
- */
- virtual ~wxRibbonToolBar();
- /**
- Create a tool bar in two-step tool bar construction.
- Should only be called when the default constructor is used, and
- arguments have the same meaning as in the full constructor.
- */
- bool Create(wxWindow* parent,
- wxWindowID id = wxID_ANY,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0);
- /**
- Add a tool to the tool bar (simple version).
- */
- virtual wxRibbonToolBarToolBase* AddTool(
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string,
- wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL);
- /**
- Add a dropdown tool to the tool bar (simple version).
-
- @see AddTool()
- */
- virtual wxRibbonToolBarToolBase* AddDropdownTool(
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string = wxEmptyString);
- /**
- Add a hybrid tool to the tool bar (simple version).
-
- @see AddTool()
- */
- virtual wxRibbonToolBarToolBase* AddHybridTool(
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string = wxEmptyString);
- /**
- Add a toggle tool to the tool bar (simple version).
- @since 2.9.4
- @see AddTool()
- */
- virtual wxRibbonToolBarToolBase* AddToggleTool(
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string);
- /**
- Add a tool to the tool bar.
-
- @param tool_id
- ID of the new tool (used for event callbacks).
- @param bitmap
- Bitmap to use as the foreground for the new tool. Does not have
- to be the same size as other tool bitmaps, but should be similar
- as otherwise it will look visually odd.
- @param bitmap_disabled
- Bitmap to use when the tool is disabled. If left as wxNullBitmap,
- then a bitmap will be automatically generated from @a bitmap.
- @param help_string
- The UI help string to associate with the new tool.
- @param kind
- The kind of tool to add.
- @param client_data
- Client data to associate with the new tool.
-
- @return An opaque pointer which can be used only with other tool bar
- methods.
-
- @see AddDropdownTool(), AddHybridTool(), AddSeparator(), InsertTool()
- */
- virtual wxRibbonToolBarToolBase* AddTool(
- int tool_id,
- const wxBitmap& bitmap,
- const wxBitmap& bitmap_disabled = wxNullBitmap,
- const wxString& help_string = wxEmptyString,
- wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL,
- wxObject* client_data = NULL);
- /**
- Add a separator to the tool bar.
-
- Separators are used to separate tools into groups. As such, a separator
- is not explicitly drawn, but is visually seen as the gap between tool
- groups.
- */
- virtual wxRibbonToolBarToolBase* AddSeparator();
- /**
- Insert a tool to the tool bar (simple version) as the specified
- position.
- @since 2.9.4
- @see InsertTool()
- */
- virtual wxRibbonToolBarToolBase* InsertTool(
- size_t pos,
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string,
- wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL);
- /**
- Insert a dropdown tool to the tool bar (simple version) as the specified
- position.
- @since 2.9.4
- @see AddDropdownTool(), InsertTool()
- */
- virtual wxRibbonToolBarToolBase* InsertDropdownTool(
- size_t pos,
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string = wxEmptyString);
- /**
- Insert a hybrid tool to the tool bar (simple version) as the specified
- position.
- @since 2.9.4
- @see AddHybridTool(), InsertTool()
- */
- virtual wxRibbonToolBarToolBase* InsertHybridTool(
- size_t pos,
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string = wxEmptyString);
- /**
- Insert a toggle tool to the tool bar (simple version) as the specified
- position.
- @since 2.9.4
- @see AddToggleTool(), InsertTool()
- */
- virtual wxRibbonToolBarToolBase* InsertToggleTool(
- size_t pos,
- int tool_id,
- const wxBitmap& bitmap,
- const wxString& help_string = wxEmptyString);
- /**
- Insert a tool to the tool bar at the specified position.
- @param pos
- Position of the new tool (number of tools and separators from the
- beginning of the toolbar).
- @param tool_id
- ID of the new tool (used for event callbacks).
- @param bitmap
- Bitmap to use as the foreground for the new tool. Does not have
- to be the same size as other tool bitmaps, but should be similar
- as otherwise it will look visually odd.
- @param bitmap_disabled
- Bitmap to use when the tool is disabled. If left as wxNullBitmap,
- then a bitmap will be automatically generated from @a bitmap.
- @param help_string
- The UI help string to associate with the new tool.
- @param kind
- The kind of tool to add.
- @param client_data
- Client data to associate with the new tool.
- @return An opaque pointer which can be used only with other tool bar
- methods.
- @since 2.9.4
- @see InsertDropdownTool(), InsertHybridTool(), InsertSeparator()
- */
- virtual wxRibbonToolBarToolBase* InsertTool(
- size_t pos,
- int tool_id,
- const wxBitmap& bitmap,
- const wxBitmap& bitmap_disabled = wxNullBitmap,
- const wxString& help_string = wxEmptyString,
- wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL,
- wxObject* client_data = NULL);
- /**
- Insert a separator to the tool bar at the specified position.
- @since 2.9.4
- @see AddSeparator(), InsertTool()
- */
- virtual wxRibbonToolBarToolBase* InsertSeparator(size_t pos);
- /**
- Deletes all the tools in the toolbar.
- @since 2.9.4
- */
- virtual void ClearTools();
- /**
- Removes the specified tool from the toolbar and deletes it.
- @param tool_id
- ID of the tool to delete.
- @returns @true if the tool was deleted, @false otherwise.
- @since 2.9.4
- @see DeleteToolByPos()
- */
- virtual bool DeleteTool(int tool_id);
- /**
- This function behaves like DeleteTool() but it deletes the tool at the
- specified position and not the one with the given id.
- Useful to delete separators.
- @since 2.9.4
- */
- virtual bool DeleteToolByPos(size_t pos);
- /**
- Returns a pointer to the tool opaque structure by @a id or @NULL if no
- corresponding tool is found.
- @since 2.9.4
- */
- virtual wxRibbonToolBarToolBase* FindById(int tool_id)const;
- /**
- Return the opaque pointer corresponding to the given tool.
- @return an opaque pointer, NULL if is a separator or not found.
- @since 2.9.4
- */
- wxRibbonToolBarToolBase* GetToolByPos(size_t pos)const
- /**
- Returns the number of tools in the toolbar.
- @since 2.9.4
- */
- virtual size_t GetToolCount() const;
- /**
- Return the id assciated to the tool opaque structure.
- The structure pointer must not be @NULL.
- @since 2.9.4
- */
- virtual int GetToolId(const wxRibbonToolBarToolBase* tool)const;
- /**
- Get any client data associated with the tool.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @return Client data, or @NULL if there is none.
- @since 2.9.4
- */
- virtual wxObject* GetToolClientData(int tool_id)const;
- /**
- Called to determine whether a tool is enabled (responds to user input).
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @return @true if the tool is enabled, @false otherwise.
- @since 2.9.4
- @see EnableTool()
- */
- virtual bool GetToolEnabled(int tool_id)const;
- /**
- Returns the help string for the given tool.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @since 2.9.4
- */
- virtual wxString GetToolHelpString(int tool_id)const;
- /**
- Return the kind of the given tool.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @since 2.9.4
- */
- virtual wxRibbonButtonKind GetToolKind(int tool_id)const;
- /**
- Returns the tool position in the toolbar, or @c wxNOT_FOUND if the tool
- is not found.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @since 2.9.4
- */
- virtual int GetToolPos(int tool_id)const;
- /**
- Gets the on/off state of a toggle tool.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @return @true if the tool is toggled on, @false otherwise.
- @see ToggleTool()
- @since 2.9.4
- */
- virtual bool GetToolState(int tool_id)const;
- /**
- Calculate tool layouts and positions.
- Must be called after tools are added to the tool bar, as otherwise
- the newly added tools will not be displayed.
- */
- virtual bool Realize();
- /**
- Set the number of rows to distribute tool groups over.
-
- Tool groups can be distributed over a variable number of rows. The way
- in which groups are assigned to rows is not specified, and the order
- of groups may change, but they will be distributed in such a way as to
- minimise the overall size of the tool bar.
-
- @param nMin
- The minimum number of rows to use.
- @param nMax
- The maximum number of rows to use (defaults to nMin).
- */
- virtual void SetRows(int nMin, int nMax = -1);
- /**
- Sets the client data associated with the tool.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @param clientData
- The client data to use.
- @since 2.9.4
- */
- virtual void SetToolClientData(int tool_id, wxObject* clientData);
- /**
- Sets the bitmap to be used by the tool with the given ID when the tool
- is in a disabled state.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @param bitmap
- Bitmap to use for disabled tools.
- @since 2.9.4
- */
- virtual void SetToolDisabledBitmap(int tool_id, const wxBitmap &bitmap);
- /**
- Sets the help string shown in tooltip for the given tool.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @param helpString
- A string for the help.
- @see GetToolHelpString()
- @since 2.9.4
- */
- virtual void SetToolHelpString(int tool_id, const wxString& helpString);
- /**
- Sets the bitmap to be used by the tool with the given ID.
- @param tool_id
- ID of the tool in question, as passed to AddTool().
- @param bitmap
- Bitmap to use for normals tools.
- @since 2.9.4
- */
- virtual void SetToolNormalBitmap(int tool_id, const wxBitmap &bitmap);
- /**
- Enable or disable a single tool on the bar.
- @param tool_id
- ID of the tool to enable or disable.
- @param enable
- @true to enable the tool, @false to disable it.
- @since 2.9.4
- */
- virtual void EnableTool(int tool_id, bool enable = true);
- /**
- Set a toggle tool to the checked or unchecked state.
- @param tool_id
- ID of the toggle tool to manipulate.
- @param checked
- @true to set the tool to the toggled/pressed/checked state,
- @false to set it to the untoggled/unpressed/unchecked state.
- @since 2.9.4
- */
- virtual void ToggleTool(int tool_id, bool checked);
- };
|