Use wxUILocale in wxSpinCtrlDouble
This ensures that we use the decimal separator corresponding to the UI locale of the application, rather than C locale, so that e.g. comma is used under macOS even if setlocale() is not used.
This commit is contained in:
@@ -427,8 +427,6 @@ private:
|
|||||||
void DoSetDigitsAndUpdate(unsigned digits);
|
void DoSetDigitsAndUpdate(unsigned digits);
|
||||||
|
|
||||||
|
|
||||||
wxString m_format;
|
|
||||||
|
|
||||||
wxDECLARE_DYNAMIC_CLASS(wxSpinCtrlDouble);
|
wxDECLARE_DYNAMIC_CLASS(wxSpinCtrlDouble);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -41,6 +41,7 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxSpinDoubleEvent, wxNotifyEvent);
|
|||||||
|
|
||||||
#if wxUSE_SPINBTN
|
#if wxUSE_SPINBTN
|
||||||
|
|
||||||
|
#include "wx/numformatter.h"
|
||||||
#include "wx/valnum.h"
|
#include "wx/valnum.h"
|
||||||
#include "wx/valtext.h"
|
#include "wx/valtext.h"
|
||||||
|
|
||||||
@@ -754,12 +755,12 @@ void wxSpinCtrlDouble::DoSendEvent()
|
|||||||
|
|
||||||
bool wxSpinCtrlDouble::DoTextToValue(const wxString& text, double *val)
|
bool wxSpinCtrlDouble::DoTextToValue(const wxString& text, double *val)
|
||||||
{
|
{
|
||||||
return text.ToDouble(val);
|
return wxNumberFormatter::FromString(text, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxSpinCtrlDouble::DoValueToText(double val)
|
wxString wxSpinCtrlDouble::DoValueToText(double val)
|
||||||
{
|
{
|
||||||
return wxString::Format(m_format, val);
|
return wxNumberFormatter::ToString(val, m_digits);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxSpinCtrlDouble::SetIncrement(double inc)
|
void wxSpinCtrlDouble::SetIncrement(double inc)
|
||||||
@@ -802,8 +803,6 @@ void wxSpinCtrlDouble::DoSetDigitsAndUpdate(unsigned digits)
|
|||||||
void wxSpinCtrlDouble::DoSetDigits(unsigned digits)
|
void wxSpinCtrlDouble::DoSetDigits(unsigned digits)
|
||||||
{
|
{
|
||||||
m_digits = digits;
|
m_digits = digits;
|
||||||
|
|
||||||
m_format.Printf(wxT("%%0.%ulf"), digits);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxSpinCtrlDouble::ResetTextValidator()
|
void wxSpinCtrlDouble::ResetTextValidator()
|
||||||
|
Reference in New Issue
Block a user