X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/955bad410e165e32aa3f8b438d3c4cace59774e9..1b7751aaa9a86d76a850b9267bc0c201e3cea30f:/interface/wx/ribbon/buttonbar.h diff --git a/interface/wx/ribbon/buttonbar.h b/interface/wx/ribbon/buttonbar.h index dd36d7c1b4..8bc04b0893 100644 --- a/interface/wx/ribbon/buttonbar.h +++ b/interface/wx/ribbon/buttonbar.h @@ -20,19 +20,19 @@ enum wxRibbonButtonBarButtonState { /** - Button is small (the interpretation of small is dependant upon the art + Button is small (the interpretation of small is dependent upon the art provider, but it will be smaller than medium). */ wxRIBBON_BUTTONBAR_BUTTON_SMALL = 0 << 0, /** - Button is medium sized (the interpretation of medium is dependant upon + Button is medium sized (the interpretation of medium is dependent upon the art provider, but it will be between small and large). */ wxRIBBON_BUTTONBAR_BUTTON_MEDIUM = 1 << 0, /** - Button is large (the interpretation of large is dependant upon the art + Button is large (the interpretation of large is dependent upon the art provider, but it will be larger than medium). */ wxRIBBON_BUTTONBAR_BUTTON_LARGE = 2 << 0, @@ -171,7 +171,7 @@ public: const wxString& label, const wxBitmap& bitmap, const wxString& help_string, - wxRibbonButtonBarButtonKind kind = wxRIBBON_BUTTONBAR_BUTTON_NORMAL); + wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL); /** Add a dropdown button to the button bar (simple version). @@ -231,8 +231,6 @@ public: The kind of button to add. @param help_string The UI help string to associate with the new button. - @param client_data - Client data to associate with the new button. @return An opaque pointer which can be used only with other button bar methods. @@ -248,9 +246,184 @@ public: const wxBitmap& bitmap_small = wxNullBitmap, const wxBitmap& bitmap_disabled = wxNullBitmap, const wxBitmap& bitmap_small_disabled = wxNullBitmap, - wxRibbonButtonBarButtonKind kind = wxRIBBON_BUTTONBAR_BUTTON_NORMAL, - const wxString& help_string = wxEmptyString, - wxObject* client_data = NULL); + wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, + const wxString& help_string = wxEmptyString); + + /** + Inserts a button to the button bar (simple version) at the given position. + + @see AddButton() + + @since 2.9.4 + */ + virtual wxRibbonButtonBarButtonBase* InsertButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string, + wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL); + + /** + Inserts a dropdown button to the button bar (simple version) at the + given position. + + @see InsertButton() + @see AddDropdownButton() + @see AddButton() + + @since 2.9.4 + */ + virtual wxRibbonButtonBarButtonBase* InsertDropdownButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string = wxEmptyString); + + /** + Inserts a hybrid button to the button bar (simple version) at the given + position. + + @see InsertButton() + @see AddHybridButton() + @see AddButton() + + @since 2.9.4 + */ + virtual wxRibbonButtonBarButtonBase* InsertHybridButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string = wxEmptyString); + + /** + Inserts a toggle button to the button bar (simple version) at the given + position. + + @see InsertButton() + @see AddToggleButton() + @see AddButton() + + @since 2.9.4 + */ + virtual wxRibbonButtonBarButtonBase* InsertToggleButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxString& help_string = wxEmptyString); + + /** + Insert a button to the button bar at the given position. + + @param pos + Position of the new button in the button bar. + @param button_id + ID of the new button (used for event callbacks). + @param label + Label of the new button. + @param bitmap + Large bitmap of the new button. Must be the same size as all other + large bitmaps used on the button bar. + @param bitmap_small + Small bitmap of the new button. If left as null, then a small + bitmap will be automatically generated. Must be the same size as + all other small bitmaps used on the button bar. + @param bitmap_disabled + Large bitmap of the new button when it is disabled. If left as + null, then a bitmap will be automatically generated from @a bitmap. + @param bitmap_small_disabled + Small bitmap of the new button when it is disabled. If left as + null, then a bitmap will be automatically generated from @a + bitmap_small. + @param kind + The kind of button to add. + @param help_string + The UI help string to associate with the new button. + + @return An opaque pointer which can be used only with other button bar + methods. + + @see InsertDropdownButton() + @see InsertHybridButton() + @see InsertToggleButton() + @see AddButton() + + @since 2.9.4 + */ + virtual wxRibbonButtonBarButtonBase* InsertButton( + size_t pos, + int button_id, + const wxString& label, + const wxBitmap& bitmap, + const wxBitmap& bitmap_small = wxNullBitmap, + const wxBitmap& bitmap_disabled = wxNullBitmap, + const wxBitmap& bitmap_small_disabled = wxNullBitmap, + wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, + const wxString& help_string = wxEmptyString); + + /** + Returns the number of buttons in this button bar. + + @since 2.9.4 + */ + virtual size_t GetButtonCount() const; + + /** + Set the client object associated with a button. The button bar + owns the given object and takes care of its deletion. + Please, note that you cannot use both client object and client data. + + @since 2.9.5 + */ + void SetItemClientObject(wxRibbonButtonBarButtonBase* item, wxClientData* data); + + /** + Get the client object associated with a button. + + @since 2.9.5 + */ + wxClientData* GetItemClientObject(const wxRibbonButtonBarButtonBase* item) const; + + /** + Set the client data associated with a button. + Please, note that you cannot use both client object and client data. + + @since 2.9.5 + */ + void SetItemClientData(wxRibbonButtonBarButtonBase* item, void* data); + + /** + Get the client data associated with a button. + + @since 2.9.5 + */ + void* GetItemClientData(const wxRibbonButtonBarButtonBase* item) const; + + /** + Returns the N-th button of the bar. + + @see GetButtonCount() + + @since 2.9.5 + */ + virtual wxRibbonButtonBarButtonBase *GetItem(size_t n) const; + + /** + Returns the first button having a given id or NULL if none matches. + + @since 2.9.5 + */ + virtual wxRibbonButtonBarButtonBase *GetItemById(int id) const; + + /** + Returns the id of a button. + + @since 2.9.5 + */ + virtual int GetItemId(wxRibbonButtonBarButtonBase *) const; /** Calculate button layouts and positions. @@ -295,6 +468,42 @@ public: @false to set it to the untoggled/unpressed/unchecked state. */ virtual void ToggleButton(int button_id, bool checked); + + /** + Returns the active item of the button bar or NULL if there is none. + The active button is the one being clicked. + + @since 2.9.5 + */ + virtual wxRibbonButtonBarButtonBase *GetActiveItem() const; + + /** + Returns the hovered item of the button bar or NULL if there is none. + The hovered button is the one the mouse is over. + + @since 2.9.5 + */ + virtual wxRibbonButtonBarButtonBase *GetHoveredItem() const; + + /** + Indicates whether tooltips are shown for disabled buttons. + + By default they are not shown. + + @since 2.9.5 + */ + void SetShowToolTipsForDisabled(bool show); + + /** + Sets whether tooltips should be shown for disabled buttons or not. + + You may wish to show it to explain why a button is disabled or + what it normally does when enabled. + + @since 2.9.5 + */ + bool GetShowToolTipsForDisabled() const; + }; /** @@ -319,7 +528,8 @@ public: */ wxRibbonButtonBarEvent(wxEventType command_type = wxEVT_NULL, int win_id = 0, - wxRibbonButtonBar* bar = NULL); + wxRibbonButtonBar* bar = NULL, + wxRibbonButtonBarButtonBase* button = NULL); /** Returns the bar which contains the button which the event relates to. @@ -331,6 +541,20 @@ public: */ void SetBar(wxRibbonButtonBar* bar); + /** + Returns the button which the event relates to. + + @since 2.9.5 + */ + wxRibbonButtonBarButtonBase* GetButton(); + + /** + Sets the button relating to this event. + + @since 2.9.5 + */ + void SetButton(wxRibbonButtonBarButtonBase* bar); + /** Display a popup menu as a result of this (dropdown clicked) event. */