void OnCheck(wxRibbonButtonBarEvent& evt);
void OnEnable(wxRibbonButtonBarEvent& evt);
void OnDisable(wxRibbonButtonBarEvent& evt);
+ void OnDisabled(wxRibbonButtonBarEvent& evt);
+ void OnEnableUpdated(wxRibbonButtonBarEvent& evt);
void OnChangeText1(wxRibbonButtonBarEvent& evt);
void OnChangeText2(wxRibbonButtonBarEvent& evt);
void OnCircleButton(wxRibbonButtonBarEvent& evt);
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_RIBBONBUTTONBAR_CLICKED(ID_ENABLE, MyFrame::OnEnable)
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_RIBBONBUTTONBAR_CLICKED(ID_CHECK, MyFrame::OnCheck)
EVT_UPDATE_UI(ID_UI_CHECK_UPDATED, MyFrame::OnCheckUpdateUI)
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))
{
m_bChecked = !m_bChecked;
m_ribbon->Show();
evt.Skip();
-}
\ No newline at end of file
+}
btn_rect.SetSize(size.size);
if(btn_rect.Contains(cursor))
{
- new_hovered = &instance;
- new_hovered_state = instance.base->state;
- new_hovered_state &= ~wxRIBBON_BUTTONBAR_BUTTON_HOVER_MASK;
- wxPoint offset(cursor);
- offset -= btn_rect.GetTopLeft();
- if(size.normal_region.Contains(offset))
- {
- new_hovered_state |= wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED;
- }
- if(size.dropdown_region.Contains(offset))
+ if((instance.base->state & wxRIBBON_BUTTONBAR_BUTTON_DISABLED) == 0)
{
- new_hovered_state |= wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED;
+ new_hovered = &instance;
+ new_hovered_state = instance.base->state;
+ new_hovered_state &= ~wxRIBBON_BUTTONBAR_BUTTON_HOVER_MASK;
+ wxPoint offset(cursor);
+ offset -= btn_rect.GetTopLeft();
+ if(size.normal_region.Contains(offset))
+ {
+ new_hovered_state |= wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED;
+ }
+ if(size.dropdown_region.Contains(offset))
+ {
+ new_hovered_state |= wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED;
+ }
+ break;
}
- break;
}
}
btn_rect.SetSize(size.size);
if(btn_rect.Contains(cursor))
{
- m_active_button = &instance;
- cursor -= btn_rect.GetTopLeft();
- long state = 0;
- if(size.normal_region.Contains(cursor))
- state = wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE;
- else if(size.dropdown_region.Contains(cursor))
- state = wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE;
- instance.base->state |= state;
- Refresh(false);
- break;
+ if((instance.base->state & wxRIBBON_BUTTONBAR_BUTTON_DISABLED) == 0)
+ {
+ m_active_button = &instance;
+ cursor -= btn_rect.GetTopLeft();
+ long state = 0;
+ if(size.normal_region.Contains(cursor))
+ state = wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE;
+ else if(size.dropdown_region.Contains(cursor))
+ state = wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE;
+ instance.base->state |= state;
+ Refresh(false);
+ break;
+ }
}
}
}