virtual bool IsSizingContinuous() const;
virtual wxSize GetMinSize() const;
+
+ void SetShowToolTipsForDisabled(bool show);
+ bool GetShowToolTipsForDisabled() const;
+
protected:
friend class wxRibbonButtonBarEvent;
virtual wxSize DoGetBestSize() const;
int m_current_layout;
bool m_layouts_valid;
bool m_lock_active_state;
+ bool m_show_tooltips_for_disabled;
#ifndef SWIG
DECLARE_CLASS(wxRibbonButtonBar)
*/
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;
+
};
/**
m_hovered_button = NULL;
m_active_button = NULL;
m_lock_active_state = false;
+ m_show_tooltips_for_disabled = false;
SetBackgroundStyle(wxBG_STYLE_CUSTOM);
}
+void wxRibbonButtonBar::SetShowToolTipsForDisabled(bool show)
+{
+ m_show_tooltips_for_disabled = show;
+}
+
+bool wxRibbonButtonBar::GetShowToolTipsForDisabled() const
+{
+ return m_show_tooltips_for_disabled;
+}
+
wxSize wxRibbonButtonBar::GetMinSize() const
{
return m_layouts.Last()->overall_size;
{
wxPoint cursor(evt.GetPosition());
wxRibbonButtonBarButtonInstance* new_hovered = NULL;
+ wxRibbonButtonBarButtonInstance* tooltipButton = NULL;
long new_hovered_state = 0;
wxRibbonButtonBarLayout* layout = m_layouts.Item(m_current_layout);
{
if((instance.base->state & wxRIBBON_BUTTONBAR_BUTTON_DISABLED) == 0)
{
+ tooltipButton = &instance;
new_hovered = &instance;
new_hovered_state = instance.base->state;
new_hovered_state &= ~wxRIBBON_BUTTONBAR_BUTTON_HOVER_MASK;
}
break;
}
+ else if (m_show_tooltips_for_disabled)
+ {
+ tooltipButton = &instance;
+ }
}
}
#if wxUSE_TOOLTIPS
- if(new_hovered == NULL && GetToolTip())
+ if(tooltipButton == NULL && GetToolTip())
{
UnsetToolTip();
}
+ if(tooltipButton)
+ {
+ SetToolTip(tooltipButton->base->help_string);
+ }
#endif
if(new_hovered != m_hovered_button || (m_hovered_button != NULL &&
if(m_hovered_button != NULL)
{
m_hovered_button->base->state = new_hovered_state;
-#if wxUSE_TOOLTIPS
- SetToolTip(m_hovered_button->base->help_string);
-#endif
}
Refresh(false);
}