Fix setting tooltips for generic wxSpinCtrl.

Forward the tooltip set for the control to its subcontrols.

Closes #9817.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67199 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2011-03-15 11:10:38 +00:00
parent 8c40af9430
commit cb7ef329e7
3 changed files with 36 additions and 0 deletions

View File

@ -489,6 +489,7 @@ All (GUI):
- Added wxFont::Underlined() and MakeUnderlined() methods.
- Added wxFont::SetSymbolicSize() and related methods.
- Fix SVG files generation in locales using decimal comma (snowleopard).
- Fix setting tooltips for generic wxSpinCtrl (Catalin Raceanu).
GTK:

View File

@ -82,6 +82,9 @@ public:
virtual bool Enable(bool enable = true);
virtual bool Show(bool show = true);
virtual bool Reparent(wxWindowBase *newParent);
#if wxUSE_TOOLTIPS
virtual void DoSetToolTip(wxToolTip *tip);
#endif // wxUSE_TOOLTIPS
// get the subcontrols
wxTextCtrl *GetText() const { return m_textCtrl; }

View File

@ -29,6 +29,7 @@
#endif //WX_PRECOMP
#include "wx/spinctrl.h"
#include "wx/tooltip.h"
#if wxUSE_SPINCTRL
@ -192,6 +193,10 @@ bool wxSpinCtrlGenericBase::Create(wxWindow *parent,
m_textCtrl = new wxSpinCtrlTextGeneric(this, value, style);
m_spinButton = new wxSpinCtrlButtonGeneric(this, style);
#if wxUSE_TOOLTIPS
m_textCtrl->SetToolTip(GetToolTipText());
m_spinButton->SetToolTip(GetToolTipText());
#endif // wxUSE_TOOLTIPS
m_spin_value = m_spinButton->GetValue();
@ -321,6 +326,33 @@ bool wxSpinCtrlGenericBase::Reparent(wxWindowBase *newParent)
return true;
}
#if wxUSE_TOOLTIPS
void wxSpinCtrlGenericBase::DoSetToolTip(wxToolTip *tip)
{
// Notice that we must check for the subcontrols not being NULL (as they
// could be if we were created with the default ctor and this is called
// before Create() for some reason) and that we can't call SetToolTip(tip)
// because this would take ownership of the wxToolTip object (twice).
if ( m_textCtrl )
{
if ( tip )
m_textCtrl->SetToolTip(tip->GetTip());
else
m_textCtrl->SetToolTip(NULL);
}
if ( m_spinButton )
{
if( tip )
m_spinButton->SetToolTip(tip->GetTip());
else
m_spinButton->SetToolTip(NULL);
}
wxWindowBase::DoSetToolTip(tip);
}
#endif // wxUSE_TOOLTIPS
// ----------------------------------------------------------------------------
// Handle sub controls events
// ----------------------------------------------------------------------------