Set the range before setting the initial value when creating wxSpinCtrl, as
otherwise the value was wrongly limited to the default 0..100 range instead of
the one really specified.
Closes #14894.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73394
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- Fix calling Iconize(false) on hidden top level windows (Christian Walther).
- Don't send any events from wxSpinCtrl::SetRange() even if the value changed.
- Display system drag images during drag and drop if available (PeterO).
+- Fix setting initial wxSpinCtrl value outside 0..100 range (joim).
wxOSX/Cocoa:
if ( value.ToLong(&initialFromText) )
initial = initialFromText;
- SetValue(initial);
-
- m_oldValue = initial;
-
- // Set the range in the native control
+ // Set the range in the native control: notice that we must do it before
+ // calling SetValue() to use the correct validity checks for the initial
+ // value.
SetRange(min, max);
+ SetValue(initial);
// Also set the text part of the control if it was specified independently
// but don't generate an event for this, it would be unexpected.
0, 100, 17);
CPPUNIT_ASSERT_EQUAL( 17, m_spin->GetValue() );
+ // Recreate the control with another "initial" outside of standard spin
+ // ctrl range.
+ delete m_spin;
+ m_spin = new wxSpinCtrl(parent, wxID_ANY, "",
+ wxDefaultPosition, wxDefaultSize, 0,
+ 0, 200, 150);
+ CPPUNIT_ASSERT_EQUAL( 150, m_spin->GetValue() );
+
// But if the text string is specified, it takes precedence.
delete m_spin;
m_spin = new wxSpinCtrl(parent, wxID_ANY, "99",