Add wxNumberFormatter class helping to deal with thousands separators.

wxNumberFormatter formats and parses numbers with thousands separators.

Add the class itself as well as documentation and the unit test for it.

See #12166.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-01-19 10:47:40 +00:00
parent 6e91eb1f76
commit 6686fbad16
33 changed files with 822 additions and 4 deletions

View File

@@ -362,6 +362,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/common/mimecmn.cpp
src/common/module.cpp
src/common/mstream.cpp
src/common/numformatter.cpp
src/common/object.cpp
src/common/platinfo.cpp
src/common/powercmn.cpp
@@ -490,6 +491,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/msgout.h
wx/msgqueue.h
wx/mstream.h
wx/numformatter.h
wx/object.h
wx/platform.h
wx/platinfo.h

View File

@@ -369,6 +369,7 @@ MONODLL_OBJECTS = \
$(OBJS)\monodll_mimecmn.obj \
$(OBJS)\monodll_module.obj \
$(OBJS)\monodll_mstream.obj \
$(OBJS)\monodll_numformatter.obj \
$(OBJS)\monodll_object.obj \
$(OBJS)\monodll_platinfo.obj \
$(OBJS)\monodll_powercmn.obj \
@@ -516,6 +517,7 @@ MONOLIB_OBJECTS = \
$(OBJS)\monolib_mimecmn.obj \
$(OBJS)\monolib_module.obj \
$(OBJS)\monolib_mstream.obj \
$(OBJS)\monolib_numformatter.obj \
$(OBJS)\monolib_object.obj \
$(OBJS)\monolib_platinfo.obj \
$(OBJS)\monolib_powercmn.obj \
@@ -661,6 +663,7 @@ BASEDLL_OBJECTS = \
$(OBJS)\basedll_mimecmn.obj \
$(OBJS)\basedll_module.obj \
$(OBJS)\basedll_mstream.obj \
$(OBJS)\basedll_numformatter.obj \
$(OBJS)\basedll_object.obj \
$(OBJS)\basedll_platinfo.obj \
$(OBJS)\basedll_powercmn.obj \
@@ -790,6 +793,7 @@ BASELIB_OBJECTS = \
$(OBJS)\baselib_mimecmn.obj \
$(OBJS)\baselib_module.obj \
$(OBJS)\baselib_mstream.obj \
$(OBJS)\baselib_numformatter.obj \
$(OBJS)\baselib_object.obj \
$(OBJS)\baselib_platinfo.obj \
$(OBJS)\baselib_powercmn.obj \
@@ -6000,6 +6004,9 @@ $(OBJS)\monodll_module.obj: ..\..\src\common\module.cpp
$(OBJS)\monodll_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\monodll_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\monodll_object.obj: ..\..\src\common\object.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\object.cpp
@@ -8322,6 +8329,9 @@ $(OBJS)\monolib_module.obj: ..\..\src\common\module.cpp
$(OBJS)\monolib_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\monolib_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\monolib_object.obj: ..\..\src\common\object.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\object.cpp
@@ -10644,6 +10654,9 @@ $(OBJS)\basedll_module.obj: ..\..\src\common\module.cpp
$(OBJS)\basedll_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) -q -c -P -o$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\basedll_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) -q -c -P -o$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\basedll_object.obj: ..\..\src\common\object.cpp
$(CXX) -q -c -P -o$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\object.cpp
@@ -10977,6 +10990,9 @@ $(OBJS)\baselib_module.obj: ..\..\src\common\module.cpp
$(OBJS)\baselib_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) -q -c -P -o$@ $(BASELIB_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\baselib_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) -q -c -P -o$@ $(BASELIB_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\baselib_object.obj: ..\..\src\common\object.cpp
$(CXX) -q -c -P -o$@ $(BASELIB_CXXFLAGS) ..\..\src\common\object.cpp

View File

@@ -355,6 +355,7 @@ MONODLL_OBJECTS = \
$(OBJS)\monodll_mimecmn.o \
$(OBJS)\monodll_module.o \
$(OBJS)\monodll_mstream.o \
$(OBJS)\monodll_numformatter.o \
$(OBJS)\monodll_object.o \
$(OBJS)\monodll_platinfo.o \
$(OBJS)\monodll_powercmn.o \
@@ -503,6 +504,7 @@ MONOLIB_OBJECTS = \
$(OBJS)\monolib_mimecmn.o \
$(OBJS)\monolib_module.o \
$(OBJS)\monolib_mstream.o \
$(OBJS)\monolib_numformatter.o \
$(OBJS)\monolib_object.o \
$(OBJS)\monolib_platinfo.o \
$(OBJS)\monolib_powercmn.o \
@@ -649,6 +651,7 @@ BASEDLL_OBJECTS = \
$(OBJS)\basedll_mimecmn.o \
$(OBJS)\basedll_module.o \
$(OBJS)\basedll_mstream.o \
$(OBJS)\basedll_numformatter.o \
$(OBJS)\basedll_object.o \
$(OBJS)\basedll_platinfo.o \
$(OBJS)\basedll_powercmn.o \
@@ -779,6 +782,7 @@ BASELIB_OBJECTS = \
$(OBJS)\baselib_mimecmn.o \
$(OBJS)\baselib_module.o \
$(OBJS)\baselib_mstream.o \
$(OBJS)\baselib_numformatter.o \
$(OBJS)\baselib_object.o \
$(OBJS)\baselib_platinfo.o \
$(OBJS)\baselib_powercmn.o \
@@ -6150,6 +6154,9 @@ $(OBJS)\monodll_module.o: ../../src/common/module.cpp
$(OBJS)\monodll_mstream.o: ../../src/common/mstream.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_numformatter.o: ../../src/common/numformatter.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_object.o: ../../src/common/object.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -8472,6 +8479,9 @@ $(OBJS)\monolib_module.o: ../../src/common/module.cpp
$(OBJS)\monolib_mstream.o: ../../src/common/mstream.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_numformatter.o: ../../src/common/numformatter.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_object.o: ../../src/common/object.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -10794,6 +10804,9 @@ $(OBJS)\basedll_module.o: ../../src/common/module.cpp
$(OBJS)\basedll_mstream.o: ../../src/common/mstream.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\basedll_numformatter.o: ../../src/common/numformatter.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\basedll_object.o: ../../src/common/object.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11127,6 +11140,9 @@ $(OBJS)\baselib_module.o: ../../src/common/module.cpp
$(OBJS)\baselib_mstream.o: ../../src/common/mstream.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\baselib_numformatter.o: ../../src/common/numformatter.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\baselib_object.o: ../../src/common/object.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<

View File

@@ -373,6 +373,7 @@ MONODLL_OBJECTS = \
$(OBJS)\monodll_mimecmn.obj \
$(OBJS)\monodll_module.obj \
$(OBJS)\monodll_mstream.obj \
$(OBJS)\monodll_numformatter.obj \
$(OBJS)\monodll_object.obj \
$(OBJS)\monodll_platinfo.obj \
$(OBJS)\monodll_powercmn.obj \
@@ -527,6 +528,7 @@ MONOLIB_OBJECTS = \
$(OBJS)\monolib_mimecmn.obj \
$(OBJS)\monolib_module.obj \
$(OBJS)\monolib_mstream.obj \
$(OBJS)\monolib_numformatter.obj \
$(OBJS)\monolib_object.obj \
$(OBJS)\monolib_platinfo.obj \
$(OBJS)\monolib_powercmn.obj \
@@ -677,6 +679,7 @@ BASEDLL_OBJECTS = \
$(OBJS)\basedll_mimecmn.obj \
$(OBJS)\basedll_module.obj \
$(OBJS)\basedll_mstream.obj \
$(OBJS)\basedll_numformatter.obj \
$(OBJS)\basedll_object.obj \
$(OBJS)\basedll_platinfo.obj \
$(OBJS)\basedll_powercmn.obj \
@@ -813,6 +816,7 @@ BASELIB_OBJECTS = \
$(OBJS)\baselib_mimecmn.obj \
$(OBJS)\baselib_module.obj \
$(OBJS)\baselib_mstream.obj \
$(OBJS)\baselib_numformatter.obj \
$(OBJS)\baselib_object.obj \
$(OBJS)\baselib_platinfo.obj \
$(OBJS)\baselib_powercmn.obj \
@@ -6580,6 +6584,9 @@ $(OBJS)\monodll_module.obj: ..\..\src\common\module.cpp
$(OBJS)\monodll_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\monodll_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\monodll_object.obj: ..\..\src\common\object.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\object.cpp
@@ -8902,6 +8909,9 @@ $(OBJS)\monolib_module.obj: ..\..\src\common\module.cpp
$(OBJS)\monolib_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\monolib_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\monolib_object.obj: ..\..\src\common\object.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\object.cpp
@@ -11224,6 +11234,9 @@ $(OBJS)\basedll_module.obj: ..\..\src\common\module.cpp
$(OBJS)\basedll_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\basedll_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\basedll_object.obj: ..\..\src\common\object.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\object.cpp
@@ -11557,6 +11570,9 @@ $(OBJS)\baselib_module.obj: ..\..\src\common\module.cpp
$(OBJS)\baselib_mstream.obj: ..\..\src\common\mstream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\mstream.cpp
$(OBJS)\baselib_numformatter.obj: ..\..\src\common\numformatter.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\numformatter.cpp
$(OBJS)\baselib_object.obj: ..\..\src\common\object.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\object.cpp

View File

@@ -3755,6 +3755,7 @@ MONODLL_OBJECTS = &
$(OBJS)\monodll_mimecmn.obj &
$(OBJS)\monodll_module.obj &
$(OBJS)\monodll_mstream.obj &
$(OBJS)\monodll_numformatter.obj &
$(OBJS)\monodll_object.obj &
$(OBJS)\monodll_platinfo.obj &
$(OBJS)\monodll_powercmn.obj &
@@ -3901,6 +3902,7 @@ MONOLIB_OBJECTS = &
$(OBJS)\monolib_mimecmn.obj &
$(OBJS)\monolib_module.obj &
$(OBJS)\monolib_mstream.obj &
$(OBJS)\monolib_numformatter.obj &
$(OBJS)\monolib_object.obj &
$(OBJS)\monolib_platinfo.obj &
$(OBJS)\monolib_powercmn.obj &
@@ -4045,6 +4047,7 @@ BASEDLL_OBJECTS = &
$(OBJS)\basedll_mimecmn.obj &
$(OBJS)\basedll_module.obj &
$(OBJS)\basedll_mstream.obj &
$(OBJS)\basedll_numformatter.obj &
$(OBJS)\basedll_object.obj &
$(OBJS)\basedll_platinfo.obj &
$(OBJS)\basedll_powercmn.obj &
@@ -4174,6 +4177,7 @@ BASELIB_OBJECTS = &
$(OBJS)\baselib_mimecmn.obj &
$(OBJS)\baselib_module.obj &
$(OBJS)\baselib_mstream.obj &
$(OBJS)\baselib_numformatter.obj &
$(OBJS)\baselib_object.obj &
$(OBJS)\baselib_platinfo.obj &
$(OBJS)\baselib_powercmn.obj &
@@ -6409,6 +6413,9 @@ $(OBJS)\monodll_module.obj : .AUTODEPEND ..\..\src\common\module.cpp
$(OBJS)\monodll_mstream.obj : .AUTODEPEND ..\..\src\common\mstream.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(OBJS)\monodll_numformatter.obj : .AUTODEPEND ..\..\src\common\numformatter.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(OBJS)\monodll_object.obj : .AUTODEPEND ..\..\src\common\object.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -8731,6 +8738,9 @@ $(OBJS)\monolib_module.obj : .AUTODEPEND ..\..\src\common\module.cpp
$(OBJS)\monolib_mstream.obj : .AUTODEPEND ..\..\src\common\mstream.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(OBJS)\monolib_numformatter.obj : .AUTODEPEND ..\..\src\common\numformatter.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(OBJS)\monolib_object.obj : .AUTODEPEND ..\..\src\common\object.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -11053,6 +11063,9 @@ $(OBJS)\basedll_module.obj : .AUTODEPEND ..\..\src\common\module.cpp
$(OBJS)\basedll_mstream.obj : .AUTODEPEND ..\..\src\common\mstream.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASEDLL_CXXFLAGS) $<
$(OBJS)\basedll_numformatter.obj : .AUTODEPEND ..\..\src\common\numformatter.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASEDLL_CXXFLAGS) $<
$(OBJS)\basedll_object.obj : .AUTODEPEND ..\..\src\common\object.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASEDLL_CXXFLAGS) $<
@@ -11386,6 +11399,9 @@ $(OBJS)\baselib_module.obj : .AUTODEPEND ..\..\src\common\module.cpp
$(OBJS)\baselib_mstream.obj : .AUTODEPEND ..\..\src\common\mstream.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASELIB_CXXFLAGS) $<
$(OBJS)\baselib_numformatter.obj : .AUTODEPEND ..\..\src\common\numformatter.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASELIB_CXXFLAGS) $<
$(OBJS)\baselib_object.obj : .AUTODEPEND ..\..\src\common\object.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(BASELIB_CXXFLAGS) $<

View File

@@ -451,6 +451,10 @@ SOURCE=..\..\src\common\mstream.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\common\numformatter.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\common\object.cpp
# End Source File
# Begin Source File
@@ -1415,6 +1419,10 @@ SOURCE=..\..\include\wx\mstream.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\numformatter.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\object.h
# End Source File
# Begin Source File
@@ -1659,6 +1667,10 @@ SOURCE=..\..\include\wx\xti.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\xti2.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\xtictor.h
# End Source File
# Begin Source File

View File

@@ -6561,6 +6561,10 @@ SOURCE=..\..\include\wx\radiobut.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\range.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\rawbmp.h
# End Source File
# Begin Source File

View File

@@ -778,6 +778,9 @@
RelativePath="..\..\src\common\mstream.cpp">
</File>
<File
RelativePath="..\..\src\common\numformatter.cpp">
</File>
<File
RelativePath="..\..\src\common\object.cpp">
</File>
<File
@@ -1494,6 +1497,9 @@
RelativePath="..\..\include\wx\mstream.h">
</File>
<File
RelativePath="..\..\include\wx\numformatter.h">
</File>
<File
RelativePath="..\..\include\wx\object.h">
</File>
<File
@@ -1677,6 +1683,9 @@
RelativePath="..\..\include\wx\xti.h">
</File>
<File
RelativePath="..\..\include\wx\xti2.h">
</File>
<File
RelativePath="..\..\include\wx\xtictor.h">
</File>
<File

View File

@@ -5516,6 +5516,9 @@
RelativePath="..\..\include\wx\radiobut.h">
</File>
<File
RelativePath="..\..\include\wx\range.h">
</File>
<File
RelativePath="..\..\include\wx\rawbmp.h">
</File>
<File

View File

@@ -1071,6 +1071,10 @@
>
</File>
<File
RelativePath="..\..\src\common\numformatter.cpp"
>
</File>
<File
RelativePath="..\..\src\common\object.cpp"
>
</File>
@@ -2010,6 +2014,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\numformatter.h"
>
</File>
<File
RelativePath="..\..\include\wx\object.h"
>
</File>
@@ -2254,6 +2262,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\xti2.h"
>
</File>
<File
RelativePath="..\..\include\wx\xtictor.h"
>
</File>

View File

@@ -7372,6 +7372,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\range.h"
>
</File>
<File
RelativePath="..\..\include\wx\rawbmp.h"
>
</File>

View File

@@ -1067,6 +1067,10 @@
>
</File>
<File
RelativePath="..\..\src\common\numformatter.cpp"
>
</File>
<File
RelativePath="..\..\src\common\object.cpp"
>
</File>
@@ -2006,6 +2010,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\numformatter.h"
>
</File>
<File
RelativePath="..\..\include\wx\object.h"
>
</File>
@@ -2250,6 +2258,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\xti2.h"
>
</File>
<File
RelativePath="..\..\include\wx\xtictor.h"
>
</File>

View File

@@ -7368,6 +7368,10 @@
>
</File>
<File
RelativePath="..\..\include\wx\range.h"
>
</File>
<File
RelativePath="..\..\include\wx\rawbmp.h"
>
</File>