Don't send events for disabled ribbon bar buttons.
Hover and activation events were sent even for the disabled buttons which was unexpected and inconsistent with wxRibbonToolBar, so don't do it. Closes #14709. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72574 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -94,6 +94,8 @@ public:
|
|||||||
void OnCheck(wxRibbonButtonBarEvent& evt);
|
void OnCheck(wxRibbonButtonBarEvent& evt);
|
||||||
void OnEnable(wxRibbonButtonBarEvent& evt);
|
void OnEnable(wxRibbonButtonBarEvent& evt);
|
||||||
void OnDisable(wxRibbonButtonBarEvent& evt);
|
void OnDisable(wxRibbonButtonBarEvent& evt);
|
||||||
|
void OnDisabled(wxRibbonButtonBarEvent& evt);
|
||||||
|
void OnEnableUpdated(wxRibbonButtonBarEvent& evt);
|
||||||
void OnChangeText1(wxRibbonButtonBarEvent& evt);
|
void OnChangeText1(wxRibbonButtonBarEvent& evt);
|
||||||
void OnChangeText2(wxRibbonButtonBarEvent& evt);
|
void OnChangeText2(wxRibbonButtonBarEvent& evt);
|
||||||
void OnCircleButton(wxRibbonButtonBarEvent& evt);
|
void OnCircleButton(wxRibbonButtonBarEvent& evt);
|
||||||
@@ -187,6 +189,8 @@ bool MyApp::OnInit()
|
|||||||
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||||
EVT_RIBBONBUTTONBAR_CLICKED(ID_ENABLE, MyFrame::OnEnable)
|
EVT_RIBBONBUTTONBAR_CLICKED(ID_ENABLE, MyFrame::OnEnable)
|
||||||
EVT_RIBBONBUTTONBAR_CLICKED(ID_DISABLE, MyFrame::OnDisable)
|
EVT_RIBBONBUTTONBAR_CLICKED(ID_DISABLE, MyFrame::OnDisable)
|
||||||
|
EVT_RIBBONBUTTONBAR_CLICKED(ID_DISABLED, MyFrame::OnDisabled)
|
||||||
|
EVT_RIBBONBUTTONBAR_CLICKED(ID_UI_ENABLE_UPDATED, MyFrame::OnEnableUpdated)
|
||||||
EVT_UPDATE_UI(ID_UI_ENABLE_UPDATED, MyFrame::OnEnableUpdateUI)
|
EVT_UPDATE_UI(ID_UI_ENABLE_UPDATED, MyFrame::OnEnableUpdateUI)
|
||||||
EVT_RIBBONBUTTONBAR_CLICKED(ID_CHECK, MyFrame::OnCheck)
|
EVT_RIBBONBUTTONBAR_CLICKED(ID_CHECK, MyFrame::OnCheck)
|
||||||
EVT_UPDATE_UI(ID_UI_CHECK_UPDATED, MyFrame::OnCheckUpdateUI)
|
EVT_UPDATE_UI(ID_UI_CHECK_UPDATED, MyFrame::OnCheckUpdateUI)
|
||||||
@@ -623,6 +627,16 @@ void MyFrame::OnDisable(wxRibbonButtonBarEvent& WXUNUSED(evt))
|
|||||||
m_bEnabled = false;
|
m_bEnabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnDisabled(wxRibbonButtonBarEvent& WXUNUSED(evt))
|
||||||
|
{
|
||||||
|
AddText("ERROR: Disabled button activated (not supposed to happen)");
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnEnableUpdated(wxRibbonButtonBarEvent& WXUNUSED(evt))
|
||||||
|
{
|
||||||
|
AddText("Button activated");
|
||||||
|
}
|
||||||
|
|
||||||
void MyFrame::OnCheck(wxRibbonButtonBarEvent& WXUNUSED(evt))
|
void MyFrame::OnCheck(wxRibbonButtonBarEvent& WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
m_bChecked = !m_bChecked;
|
m_bChecked = !m_bChecked;
|
||||||
|
@@ -992,6 +992,8 @@ void wxRibbonButtonBar::OnMouseMove(wxMouseEvent& evt)
|
|||||||
btn_rect.SetTopLeft(m_layout_offset + instance.position);
|
btn_rect.SetTopLeft(m_layout_offset + instance.position);
|
||||||
btn_rect.SetSize(size.size);
|
btn_rect.SetSize(size.size);
|
||||||
if(btn_rect.Contains(cursor))
|
if(btn_rect.Contains(cursor))
|
||||||
|
{
|
||||||
|
if((instance.base->state & wxRIBBON_BUTTONBAR_BUTTON_DISABLED) == 0)
|
||||||
{
|
{
|
||||||
new_hovered = &instance;
|
new_hovered = &instance;
|
||||||
new_hovered_state = instance.base->state;
|
new_hovered_state = instance.base->state;
|
||||||
@@ -1009,6 +1011,7 @@ void wxRibbonButtonBar::OnMouseMove(wxMouseEvent& evt)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
if(new_hovered == NULL && GetToolTip())
|
if(new_hovered == NULL && GetToolTip())
|
||||||
@@ -1081,6 +1084,8 @@ void wxRibbonButtonBar::OnMouseDown(wxMouseEvent& evt)
|
|||||||
btn_rect.SetTopLeft(m_layout_offset + instance.position);
|
btn_rect.SetTopLeft(m_layout_offset + instance.position);
|
||||||
btn_rect.SetSize(size.size);
|
btn_rect.SetSize(size.size);
|
||||||
if(btn_rect.Contains(cursor))
|
if(btn_rect.Contains(cursor))
|
||||||
|
{
|
||||||
|
if((instance.base->state & wxRIBBON_BUTTONBAR_BUTTON_DISABLED) == 0)
|
||||||
{
|
{
|
||||||
m_active_button = &instance;
|
m_active_button = &instance;
|
||||||
cursor -= btn_rect.GetTopLeft();
|
cursor -= btn_rect.GetTopLeft();
|
||||||
@@ -1095,6 +1100,7 @@ void wxRibbonButtonBar::OnMouseDown(wxMouseEvent& evt)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void wxRibbonButtonBar::OnMouseUp(wxMouseEvent& evt)
|
void wxRibbonButtonBar::OnMouseUp(wxMouseEvent& evt)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user