Add wxRibbonButtonBarEvent::GetButton().

Allow to retrieve the button associated with the given button bar event.

See #14630.

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

View File

@ -195,25 +195,30 @@ class WXDLLIMPEXP_RIBBON wxRibbonButtonBarEvent : public wxCommandEvent
public:
wxRibbonButtonBarEvent(wxEventType command_type = wxEVT_NULL,
int win_id = 0,
wxRibbonButtonBar* bar = NULL)
wxRibbonButtonBar* bar = NULL,
wxRibbonButtonBarButtonBase* button = NULL)
: wxCommandEvent(command_type, win_id)
, m_bar(bar)
, m_bar(bar), m_button(button)
{
}
#ifndef SWIG
wxRibbonButtonBarEvent(const wxRibbonButtonBarEvent& e) : wxCommandEvent(e)
{
m_bar = e.m_bar;
m_button = e.m_button;
}
#endif
wxEvent *Clone() const { return new wxRibbonButtonBarEvent(*this); }
wxRibbonButtonBar* GetBar() {return m_bar;}
wxRibbonButtonBarButtonBase *GetButton() { return m_button; }
void SetBar(wxRibbonButtonBar* bar) {m_bar = bar;}
void SetButton(wxRibbonButtonBarButtonBase* button) { m_button = button; }
bool PopupMenu(wxMenu* menu);
protected:
wxRibbonButtonBar* m_bar;
wxRibbonButtonBarButtonBase *m_button;
#ifndef SWIG
private:

View File

@ -484,7 +484,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.
@ -496,6 +497,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.
*/

View File

@ -1098,6 +1098,7 @@ void wxRibbonButtonBar::OnMouseUp(wxMouseEvent& evt)
}
notification.SetEventObject(this);
notification.SetBar(this);
notification.SetButton(m_active_button->base);
m_lock_active_state = true;
ProcessWindowEvent(notification);
m_lock_active_state = false;