X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7f0cbaaa4ab3037587fa796d38e7eaf16ed54933..86ac84b8ce086e6bbda58f422d41f84268606e35:/include/wx/generic/spinctlg.h diff --git a/include/wx/generic/spinctlg.h b/include/wx/generic/spinctlg.h index bdd0d4e55e..1fe9c2b984 100644 --- a/include/wx/generic/spinctlg.h +++ b/include/wx/generic/spinctlg.h @@ -50,8 +50,9 @@ public: const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS, - double min = 0, double max = 100, double initial = 0, double inc = 1, + long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, + double min = 0, double max = 100, double initial = 0, + double inc = 1, const wxString& name = _T("wxSpinCtrl")); virtual ~wxSpinCtrlGenericBase(); @@ -110,8 +111,13 @@ protected: // Send the correct event type virtual void DoSendEvent() = 0; + // check if the value is in range bool InRange(double n) const { return (n >= m_min) && (n <= m_max); } + // ensure that the value is in range wrapping it round if necessary + double AdjustToFitInRange(double value) const; + + double m_value; double m_min; double m_max; @@ -152,8 +158,9 @@ public: const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS, - double min = 0, double max = 100, double initial = 0, double inc = 1, + long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, + double min = 0, double max = 100, double initial = 0, + double inc = 1, const wxString& name = _T("wxSpinCtrl")) { m_min = min; @@ -181,7 +188,8 @@ public: // void SetValue(T val) // void SetRange(T minVal, T maxVal) // void SetIncrement(T inc) - virtual void SetSnapToTicks(bool snap_to_ticks) { m_snap_to_ticks = snap_to_ticks; } + virtual void SetSnapToTicks(bool snap_to_ticks) + { m_snap_to_ticks = snap_to_ticks; } // void SetDigits(unsigned digits) - wxSpinCtrlDouble only // Select text in the textctrl @@ -198,8 +206,16 @@ protected: return n; } - bool DoSetValue(double val) { wxTextCtrl::SetValue(wxString::Format(m_format.c_str(), val)); return true; } - void DoSetRange(double min_val, double max_val) { m_min = min_val; m_max = max_val; } + bool DoSetValue(double val) + { + wxTextCtrl::SetValue(wxString::Format(m_format.c_str(), val)); + return true; + } + void DoSetRange(double min_val, double max_val) + { + m_min = min_val; + m_max = max_val; + } void DoSetIncrement(double inc) { m_increment = inc; } // Note: unused double m_value; @@ -227,7 +243,7 @@ public: const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS, + long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, int min = 0, int max = 100, int initial = 0, const wxString& name = _T("wxSpinCtrl")) { @@ -239,21 +255,24 @@ public: const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS, + long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, int min = 0, int max = 100, int initial = 0, const wxString& name = _T("wxSpinCtrl")) { - return wxSpinCtrlGenericBase::Create(parent, id, value, pos, size, style, min, max, initial, 1, name); + return wxSpinCtrlGenericBase::Create(parent, id, value, pos, size, + style, min, max, initial, 1, name); } // accessors - int GetValue(wxSPINCTRL_GETVALUE_FIX) const { return int(DoGetValue() + 0.5); } - int GetMin() const { return int(m_min + 0.5); } - int GetMax() const { return int(m_max + 0.5); } - int GetIncrement() const { return int(m_increment + 0.5); } + int GetValue(wxSPINCTRL_GETVALUE_FIX) const + { return wxRound( DoGetValue() ); } + int GetMin() const { return wxRound( m_min ); } + int GetMax() const { return wxRound( m_max ); } + int GetIncrement() const { return wxRound( m_increment ); } // operations - void SetValue(const wxString& value) { wxSpinCtrlGenericBase::SetValue(value); } // visibility problem w/ gcc + void SetValue(const wxString& value) + { wxSpinCtrlGenericBase::SetValue(value); } void SetValue( int value ) { DoSetValue(value); } void SetRange( int minVal, int maxVal ) { DoSetRange(minVal, maxVal); } void SetIncrement( double inc ) { DoSetIncrement(inc); } @@ -280,12 +299,14 @@ public: const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS, - double min = 0, double max = 100, double initial = 0, double inc = 1, + long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, + double min = 0, double max = 100, double initial = 0, + double inc = 1, const wxString& name = _T("wxSpinCtrlDouble")) { m_digits = 0; - Create(parent, id, value, pos, size, style, min, max, initial, inc, name); + Create(parent, id, value, pos, size, style, + min, max, initial, inc, name); } bool Create(wxWindow *parent, @@ -293,11 +314,14 @@ public: const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS, - double min = 0, double max = 100, double initial = 0, double inc = 1, + long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, + double min = 0, double max = 100, double initial = 0, + double inc = 1, const wxString& name = _T("wxSpinCtrlDouble")) { - return wxSpinCtrlGenericBase::Create(parent, id, value, pos, size, style, min, max, initial, inc, name); + return wxSpinCtrlGenericBase::Create(parent, id, value, pos, size, + style, min, max, initial, + inc, name); } // accessors @@ -308,7 +332,8 @@ public: unsigned GetDigits() const { return m_digits; } // operations - void SetValue(const wxString& value) { wxSpinCtrlGenericBase::SetValue(value); } // visibility problem w/ gcc + void SetValue(const wxString& value) + { wxSpinCtrlGenericBase::SetValue(value); } void SetValue(double value) { DoSetValue(value); } void SetRange(double minVal, double maxVal) { DoSetRange(minVal, maxVal); } void SetIncrement(double inc) { DoSetIncrement(inc); }