Add wxRibbonButtonBar::GetActiveItem() and GetHoveredItem().

Add accessors for the button being currently clicked or hovered over.

See #14630.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-09-20 20:01:36 +00:00
parent 71a77e77d1
commit 02a40ac1da
3 changed files with 33 additions and 0 deletions

View File

@@ -137,6 +137,9 @@ public:
virtual void EnableButton(int button_id, bool enable = true); virtual void EnableButton(int button_id, bool enable = true);
virtual void ToggleButton(int button_id, bool checked); virtual void ToggleButton(int button_id, bool checked);
virtual wxRibbonButtonBarButtonBase *GetActiveItem() const;
virtual wxRibbonButtonBarButtonBase *GetHoveredItem() const;
virtual void SetArtProvider(wxRibbonArtProvider* art); virtual void SetArtProvider(wxRibbonArtProvider* art);
virtual bool IsSizingContinuous() const; virtual bool IsSizingContinuous() const;

View File

@@ -443,6 +443,23 @@ public:
@false to set it to the untoggled/unpressed/unchecked state. @false to set it to the untoggled/unpressed/unchecked state.
*/ */
virtual void ToggleButton(int button_id, bool checked); 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;
}; };
/** /**

View File

@@ -1139,6 +1139,19 @@ void wxRibbonButtonBar::OnMouseLeave(wxMouseEvent& WXUNUSED(evt))
if(repaint) if(repaint)
Refresh(false); Refresh(false);
} }
wxRibbonButtonBarButtonBase *wxRibbonButtonBar::GetActiveItem() const
{
return m_active_button == NULL ? NULL : m_active_button->base;
}
wxRibbonButtonBarButtonBase *wxRibbonButtonBar::GetHoveredItem() const
{
return m_hovered_button == NULL ? NULL : m_hovered_button->base;
}
wxRibbonButtonBarButtonBase *wxRibbonButtonBar::GetItem(size_t n) const wxRibbonButtonBarButtonBase *wxRibbonButtonBar::GetItem(size_t n) const
{ {
wxCHECK_MSG(n >= 0 && n < m_buttons.GetCount(), NULL, "wxRibbonButtonBar item's index is out of bound"); wxCHECK_MSG(n >= 0 && n < m_buttons.GetCount(), NULL, "wxRibbonButtonBar item's index is out of bound");