#include "wx/tooltip.h"
#endif // wxUSE_TOOLTIPS
+#if wxUSE_HELP
+ #include "wx/cshelp.h"
+#endif
+
// ============================================================================
// implementation
// ============================================================================
// per-item tooltips not implemented by default
}
+#endif // wxUSE_TOOLTIPS
+
wxRadioBoxBase::~wxRadioBoxBase()
{
+#if wxUSE_TOOLTIPS
if ( m_itemsTooltips )
{
const size_t n = m_itemsTooltips->size();
delete m_itemsTooltips;
}
+#endif // wxUSE_TOOLTIPS
}
-#endif // wxUSE_TOOLTIPS
+#if wxUSE_HELP
+
+// set helptext for a particular item
+void wxRadioBoxBase::SetItemHelpText(unsigned int n, const wxString& helpText)
+{
+ wxCHECK_RET( n < GetCount(), _T("Invalid item index") );
-#if WXWIN_COMPATIBILITY_2_4
+ if ( m_itemsHelpTexts.empty() )
+ {
+ // once-only initialization of the array: reserve space for all items
+ m_itemsHelpTexts.Add(wxEmptyString, GetCount());
+ }
-// these functions are deprecated and don't do anything
-int wxRadioBoxBase::GetNumberOfRowsOrCols() const
+ m_itemsHelpTexts[n] = helpText;
+}
+
+// retrieve helptext for a particular item
+wxString wxRadioBoxBase::GetItemHelpText( unsigned int n ) const
{
- return 1;
+ wxCHECK_MSG( n < GetCount(), wxEmptyString, _T("Invalid item index") );
+
+ return m_itemsHelpTexts.empty() ? wxString() : m_itemsHelpTexts[n];
}
-void wxRadioBoxBase::SetNumberOfRowsOrCols(int WXUNUSED(n))
+// return help text for the item for which wxEVT_HELP was generated.
+wxString wxRadioBoxBase::DoGetHelpTextAtPoint(const wxWindow *derived,
+ const wxPoint& pt,
+ wxHelpEvent::Origin origin) const
{
+ const int item = origin == wxHelpEvent::Origin_HelpButton
+ ? GetItemFromPoint(pt)
+ : GetSelection();
+
+ if ( item != wxNOT_FOUND )
+ {
+ wxString text = GetItemHelpText(wx_static_cast(unsigned int, item));
+ if( !text.empty() )
+ return text;
+ }
+
+ return derived->wxWindowBase::GetHelpTextAtPoint(pt, origin);
}
-#endif // WXWIN_COMPATIBILITY_2_4
+#endif // wxUSE_HELP
#endif // wxUSE_RADIOBOX