]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/spinctlg.cpp
Fix setting tooltips for generic wxSpinCtrl.
[wxWidgets.git] / src / generic / spinctlg.cpp
index 796f89efb584df931bf6755adff014c32ea464ef..ca2a1bb465fed7b156ce7d94307cbf7f316ca870 100644 (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
 // ----------------------------------------------------------------------------