]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/spinctrl.cpp
Document steps needed to update to newer Scintilla. (From memory, will need to be...
[wxWidgets.git] / src / msw / spinctrl.cpp
index 6cc84eac58138af1991eb4583a8fdb37dd7c8612..7919453f856fe706c9a608987c7a8891b8a0d3a0 100644 (file)
@@ -264,6 +264,14 @@ void wxSpinCtrl::NormalizeValue()
 // construction
 // ----------------------------------------------------------------------------
 
 // construction
 // ----------------------------------------------------------------------------
 
+void wxSpinCtrl::Init()
+{
+    m_blockEvent = false;
+    m_hwndBuddy = NULL;
+    m_wndProcBuddy = NULL;
+    m_oldValue = INT_MIN;
+}
+
 bool wxSpinCtrl::Create(wxWindow *parent,
                         wxWindowID id,
                         const wxString& value,
 bool wxSpinCtrl::Create(wxWindow *parent,
                         wxWindowID id,
                         const wxString& value,
@@ -273,13 +281,6 @@ bool wxSpinCtrl::Create(wxWindow *parent,
                         int min, int max, int initial,
                         const wxString& name)
 {
                         int min, int max, int initial,
                         const wxString& name)
 {
-    m_blockEvent = false;
-
-    // this should be in ctor/init function but I don't want to add one to 2.8
-    // to avoid problems with default ctor which can be inlined in the user
-    // code and so might not get this fix without recompilation
-    m_oldValue = INT_MIN;
-
     // before using DoGetBestSize(), have to set style to let the base class
     // know whether this is a horizontal or vertical control (we're always
     // vertical)
     // before using DoGetBestSize(), have to set style to let the base class
     // know whether this is a horizontal or vertical control (we're always
     // vertical)
@@ -393,14 +394,15 @@ bool wxSpinCtrl::Create(wxWindow *parent,
     // Set the range in the native control
     SetRange(min, max);
 
     // Set the range in the native control
     SetRange(min, max);
 
-    if ( !value.empty() )
+    // If necessary, set the textual value. Don't do it if it's the same as the
+    // numeric value though.
+    if ( value != wxString::Format("%d", initial) )
     {
         SetValue(value);
         m_oldValue = (int) wxAtol(value);
     }
     else
     {
     {
         SetValue(value);
         m_oldValue = (int) wxAtol(value);
     }
     else
     {
-        SetValue(wxString::Format(wxT("%d"), initial));
         m_oldValue = initial;
     }
 
         m_oldValue = initial;
     }