Add wxUILocale with minimal functionality

Use it in the sample to show what (little) it can do right now.
This commit is contained in:
Vadim Zeitlin
2021-08-13 23:29:42 +02:00
parent b12961f992
commit b9cbe6770f
22 changed files with 1178 additions and 72 deletions

View File

@@ -582,6 +582,7 @@ ALL_BASE_HEADERS = \
wx/secretstore.h \
wx/lzmastream.h \
wx/localedefs.h \
wx/uilocale.h \
$(BASE_PLATFORM_HDR) \
wx/fs_inet.h \
wx/protocol/file.h \
@@ -768,6 +769,7 @@ ALL_PORTS_BASE_HEADERS = \
wx/secretstore.h \
wx/lzmastream.h \
wx/localedefs.h \
wx/uilocale.h \
wx/unix/app.h \
wx/unix/apptbase.h \
wx/unix/apptrait.h \
@@ -907,6 +909,7 @@ ALL_BASE_SOURCES = \
src/generic/fswatcherg.cpp \
src/common/secretstore.cpp \
src/common/lzmastream.cpp \
src/common/uilocale.cpp \
src/common/fdiodispatcher.cpp \
src/common/selectdispatcher.cpp \
src/unix/appunix.cpp \
@@ -926,6 +929,7 @@ ALL_BASE_SOURCES = \
src/unix/fswatcher_inotify.cpp \
src/unix/stdpaths.cpp \
src/unix/secretstore.cpp \
src/unix/uilocale.cpp \
src/msw/basemsw.cpp \
src/msw/crashrpt.cpp \
src/msw/debughlp.cpp \
@@ -946,6 +950,7 @@ ALL_BASE_SOURCES = \
src/msw/utilsexc.cpp \
src/msw/fswatcher.cpp \
src/msw/secretstore.cpp \
src/msw/uilocale.cpp \
$(BASE_OSX_SRC) \
src/common/event.cpp \
src/common/fs_mem.cpp \
@@ -1095,6 +1100,7 @@ MONODLL_OBJECTS = \
monodll_fswatcherg.o \
monodll_common_secretstore.o \
monodll_lzmastream.o \
monodll_common_uilocale.o \
$(__BASE_PLATFORM_SRC_OBJECTS) \
monodll_event.o \
monodll_fs_mem.o \
@@ -1237,6 +1243,7 @@ MONOLIB_OBJECTS = \
monolib_fswatcherg.o \
monolib_common_secretstore.o \
monolib_lzmastream.o \
monolib_common_uilocale.o \
$(__BASE_PLATFORM_SRC_OBJECTS_1) \
monolib_event.o \
monolib_fs_mem.o \
@@ -1367,6 +1374,7 @@ BASEDLL_OBJECTS = \
basedll_fswatcherg.o \
basedll_common_secretstore.o \
basedll_lzmastream.o \
basedll_common_uilocale.o \
$(__BASE_PLATFORM_SRC_OBJECTS_2) \
basedll_event.o \
basedll_fs_mem.o \
@@ -1479,6 +1487,7 @@ BASELIB_OBJECTS = \
baselib_fswatcherg.o \
baselib_common_secretstore.o \
baselib_lzmastream.o \
baselib_common_uilocale.o \
$(__BASE_PLATFORM_SRC_OBJECTS_3) \
baselib_event.o \
baselib_fs_mem.o \
@@ -2359,6 +2368,7 @@ COND_TOOLKIT_OSX_COCOA_BASE_OSX_SRC = \
src/osx/core/strconv_cf.cpp \
src/osx/cocoa/utils_base.mm \
src/osx/core/secretstore.cpp \
src/osx/core/uilocale.cpp \
src/common/fdiodispatcher.cpp \
src/common/selectdispatcher.cpp \
src/unix/appunix.cpp \
@@ -2384,6 +2394,7 @@ COND_TOOLKIT_OSX_IPHONE_BASE_OSX_SRC = \
src/osx/core/strconv_cf.cpp \
src/osx/cocoa/utils_base.mm \
src/osx/core/secretstore.cpp \
src/osx/core/uilocale.cpp \
src/common/fdiodispatcher.cpp \
src/common/selectdispatcher.cpp \
src/unix/appunix.cpp \
@@ -2423,7 +2434,8 @@ COND_TOOLKIT_COCOA_BASE_OSX_SRC = \
src/osx/core/evtloop_cf.cpp \
src/osx/core/strconv_cf.cpp \
src/osx/cocoa/utils_base.mm \
src/osx/core/secretstore.cpp
src/osx/core/secretstore.cpp \
src/osx/core/uilocale.cpp
@COND_TOOLKIT_COCOA@BASE_OSX_SRC = $(COND_TOOLKIT_COCOA_BASE_OSX_SRC)
COND_TOOLKIT_GTK_BASE_OSX_SRC = \
src/common/fdiodispatcher.cpp \
@@ -2446,7 +2458,8 @@ COND_TOOLKIT_GTK_BASE_OSX_SRC = \
src/osx/core/evtloop_cf.cpp \
src/osx/core/strconv_cf.cpp \
src/osx/cocoa/utils_base.mm \
src/osx/core/secretstore.cpp
src/osx/core/secretstore.cpp \
src/osx/core/uilocale.cpp
@COND_TOOLKIT_GTK@BASE_OSX_SRC = $(COND_TOOLKIT_GTK_BASE_OSX_SRC)
COND_TOOLKIT_X11_BASE_OSX_SRC = \
src/common/fdiodispatcher.cpp \
@@ -2469,7 +2482,8 @@ COND_TOOLKIT_X11_BASE_OSX_SRC = \
src/osx/core/evtloop_cf.cpp \
src/osx/core/strconv_cf.cpp \
src/osx/cocoa/utils_base.mm \
src/osx/core/secretstore.cpp
src/osx/core/secretstore.cpp \
src/osx/core/uilocale.cpp
@COND_TOOLKIT_X11@BASE_OSX_SRC = $(COND_TOOLKIT_X11_BASE_OSX_SRC)
COND_TOOLKIT_MOTIF_BASE_OSX_SRC = \
src/common/fdiodispatcher.cpp \
@@ -2492,7 +2506,8 @@ COND_TOOLKIT_MOTIF_BASE_OSX_SRC = \
src/osx/core/evtloop_cf.cpp \
src/osx/core/strconv_cf.cpp \
src/osx/cocoa/utils_base.mm \
src/osx/core/secretstore.cpp
src/osx/core/secretstore.cpp \
src/osx/core/uilocale.cpp
@COND_TOOLKIT_MOTIF@BASE_OSX_SRC = $(COND_TOOLKIT_MOTIF_BASE_OSX_SRC)
COND_TOOLKIT__BASE_OSX_SRC = \
src/common/fdiodispatcher.cpp \
@@ -2515,7 +2530,8 @@ COND_TOOLKIT__BASE_OSX_SRC = \
src/osx/core/evtloop_cf.cpp \
src/osx/core/strconv_cf.cpp \
src/osx/cocoa/utils_base.mm \
src/osx/core/secretstore.cpp
src/osx/core/secretstore.cpp \
src/osx/core/uilocale.cpp
@COND_TOOLKIT_@BASE_OSX_SRC = $(COND_TOOLKIT__BASE_OSX_SRC)
COND_TOOLKIT_OSX_COCOA_BASE_OSX_HDR = \
wx/osx/core/cfdataref.h \
@@ -4261,6 +4277,7 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS = \
monodll_strconv_cf.o \
monodll_utils_base.o \
monodll_core_secretstore.o \
monodll_core_uilocale.o \
monodll_fdiodispatcher.o \
monodll_selectdispatcher.o \
monodll_appunix.o \
@@ -4298,7 +4315,8 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS = \
monodll_unix_mimetype.o \
monodll_fswatcher_inotify.o \
monodll_unix_stdpaths.o \
monodll_unix_secretstore.o
monodll_unix_secretstore.o \
monodll_unix_uilocale.o
@COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS)
COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
monodll_basemsw.o \
@@ -4320,7 +4338,8 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \
monodll_msw_utils.o \
monodll_utilsexc.o \
monodll_fswatcher.o \
monodll_msw_secretstore.o
monodll_msw_secretstore.o \
monodll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS \
@COND_PLATFORM_WIN32_1@ = monodll_msw_main.o monodll_volume.o
@@ -6254,6 +6273,7 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
monolib_strconv_cf.o \
monolib_utils_base.o \
monolib_core_secretstore.o \
monolib_core_uilocale.o \
monolib_fdiodispatcher.o \
monolib_selectdispatcher.o \
monolib_appunix.o \
@@ -6291,7 +6311,8 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
monolib_unix_mimetype.o \
monolib_fswatcher_inotify.o \
monolib_unix_stdpaths.o \
monolib_unix_secretstore.o
monolib_unix_secretstore.o \
monolib_unix_uilocale.o
@COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_1)
COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
monolib_basemsw.o \
@@ -6313,7 +6334,8 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \
monolib_msw_utils.o \
monolib_utilsexc.o \
monolib_fswatcher.o \
monolib_msw_secretstore.o
monolib_msw_secretstore.o \
monolib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_1 \
@COND_PLATFORM_WIN32_1@ = monolib_msw_main.o monolib_volume.o
@@ -8299,6 +8321,7 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
basedll_strconv_cf.o \
basedll_utils_base.o \
basedll_core_secretstore.o \
basedll_core_uilocale.o \
basedll_fdiodispatcher.o \
basedll_selectdispatcher.o \
basedll_appunix.o \
@@ -8336,7 +8359,8 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
basedll_unix_mimetype.o \
basedll_fswatcher_inotify.o \
basedll_unix_stdpaths.o \
basedll_unix_secretstore.o
basedll_unix_secretstore.o \
basedll_unix_uilocale.o
@COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_2)
COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
basedll_basemsw.o \
@@ -8358,7 +8382,8 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2 = \
basedll_msw_utils.o \
basedll_utilsexc.o \
basedll_fswatcher.o \
basedll_msw_secretstore.o
basedll_msw_secretstore.o \
basedll_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_2)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_2 \
@COND_PLATFORM_WIN32_1@ = basedll_main.o basedll_volume.o
@@ -8382,6 +8407,7 @@ COND_PLATFORM_MACOSX_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
baselib_strconv_cf.o \
baselib_utils_base.o \
baselib_core_secretstore.o \
baselib_core_uilocale.o \
baselib_fdiodispatcher.o \
baselib_selectdispatcher.o \
baselib_appunix.o \
@@ -8419,7 +8445,8 @@ COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
baselib_unix_mimetype.o \
baselib_fswatcher_inotify.o \
baselib_unix_stdpaths.o \
baselib_unix_secretstore.o
baselib_unix_secretstore.o \
baselib_unix_uilocale.o
@COND_PLATFORM_UNIX_1@__BASE_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_UNIX_1___BASE_PLATFORM_SRC_OBJECTS_3)
COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
baselib_basemsw.o \
@@ -8441,7 +8468,8 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3 = \
baselib_msw_utils.o \
baselib_utilsexc.o \
baselib_fswatcher.o \
baselib_msw_secretstore.o
baselib_msw_secretstore.o \
baselib_msw_uilocale.o
@COND_PLATFORM_WIN32_1@__BASE_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_3)
@COND_PLATFORM_WIN32_1@__BASE_AND_GUI_PLATFORM_SRC_OBJECTS_3 \
@COND_PLATFORM_WIN32_1@ = baselib_main.o baselib_volume.o
@@ -15997,6 +16025,9 @@ monodll_common_secretstore.o: $(srcdir)/src/common/secretstore.cpp $(MONODLL_ODE
monodll_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/lzmastream.cpp
monodll_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
monodll_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
@@ -16009,6 +16040,9 @@ monodll_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(MONODLL_ODEP)
monodll_unix_secretstore.o: $(srcdir)/src/unix/secretstore.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/secretstore.cpp
monodll_unix_uilocale.o: $(srcdir)/src/unix/uilocale.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/uilocale.cpp
monodll_basemsw.o: $(srcdir)/src/msw/basemsw.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/basemsw.cpp
@@ -16069,6 +16103,9 @@ monodll_fswatcher.o: $(srcdir)/src/msw/fswatcher.cpp $(MONODLL_ODEP)
monodll_msw_secretstore.o: $(srcdir)/src/msw/secretstore.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/secretstore.cpp
monodll_msw_uilocale.o: $(srcdir)/src/msw/uilocale.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/uilocale.cpp
monodll_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/mimetype.cpp
@@ -16087,6 +16124,9 @@ monodll_utils_base.o: $(srcdir)/src/osx/cocoa/utils_base.mm $(MONODLL_ODEP)
monodll_core_secretstore.o: $(srcdir)/src/osx/core/secretstore.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/secretstore.cpp
monodll_core_uilocale.o: $(srcdir)/src/osx/core/uilocale.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/core/uilocale.cpp
monodll_fswatcher_fsevents.o: $(srcdir)/src/osx/fswatcher_fsevents.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/osx/fswatcher_fsevents.cpp
@@ -21274,6 +21314,9 @@ monolib_common_secretstore.o: $(srcdir)/src/common/secretstore.cpp $(MONOLIB_ODE
monolib_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/lzmastream.cpp
monolib_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
monolib_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
@@ -21286,6 +21329,9 @@ monolib_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(MONOLIB_ODEP)
monolib_unix_secretstore.o: $(srcdir)/src/unix/secretstore.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/secretstore.cpp
monolib_unix_uilocale.o: $(srcdir)/src/unix/uilocale.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/uilocale.cpp
monolib_basemsw.o: $(srcdir)/src/msw/basemsw.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/basemsw.cpp
@@ -21346,6 +21392,9 @@ monolib_fswatcher.o: $(srcdir)/src/msw/fswatcher.cpp $(MONOLIB_ODEP)
monolib_msw_secretstore.o: $(srcdir)/src/msw/secretstore.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/secretstore.cpp
monolib_msw_uilocale.o: $(srcdir)/src/msw/uilocale.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/uilocale.cpp
monolib_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/mimetype.cpp
@@ -21364,6 +21413,9 @@ monolib_utils_base.o: $(srcdir)/src/osx/cocoa/utils_base.mm $(MONOLIB_ODEP)
monolib_core_secretstore.o: $(srcdir)/src/osx/core/secretstore.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/secretstore.cpp
monolib_core_uilocale.o: $(srcdir)/src/osx/core/uilocale.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/core/uilocale.cpp
monolib_fswatcher_fsevents.o: $(srcdir)/src/osx/fswatcher_fsevents.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/osx/fswatcher_fsevents.cpp
@@ -26551,6 +26603,9 @@ basedll_common_secretstore.o: $(srcdir)/src/common/secretstore.cpp $(BASEDLL_ODE
basedll_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/lzmastream.cpp
basedll_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
basedll_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
@@ -26563,6 +26618,9 @@ basedll_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(BASEDLL_ODEP)
basedll_unix_secretstore.o: $(srcdir)/src/unix/secretstore.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/secretstore.cpp
basedll_unix_uilocale.o: $(srcdir)/src/unix/uilocale.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/unix/uilocale.cpp
basedll_basemsw.o: $(srcdir)/src/msw/basemsw.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/msw/basemsw.cpp
@@ -26623,6 +26681,9 @@ basedll_fswatcher.o: $(srcdir)/src/msw/fswatcher.cpp $(BASEDLL_ODEP)
basedll_msw_secretstore.o: $(srcdir)/src/msw/secretstore.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/msw/secretstore.cpp
basedll_msw_uilocale.o: $(srcdir)/src/msw/uilocale.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/msw/uilocale.cpp
basedll_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/mimetype.cpp
@@ -26641,6 +26702,9 @@ basedll_utils_base.o: $(srcdir)/src/osx/cocoa/utils_base.mm $(BASEDLL_ODEP)
basedll_core_secretstore.o: $(srcdir)/src/osx/core/secretstore.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/secretstore.cpp
basedll_core_uilocale.o: $(srcdir)/src/osx/core/uilocale.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/core/uilocale.cpp
basedll_fswatcher_fsevents.o: $(srcdir)/src/osx/fswatcher_fsevents.cpp $(BASEDLL_ODEP)
$(CXXC) -c -o $@ $(BASEDLL_CXXFLAGS) $(srcdir)/src/osx/fswatcher_fsevents.cpp
@@ -27025,6 +27089,9 @@ baselib_common_secretstore.o: $(srcdir)/src/common/secretstore.cpp $(BASELIB_ODE
baselib_lzmastream.o: $(srcdir)/src/common/lzmastream.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/lzmastream.cpp
baselib_common_uilocale.o: $(srcdir)/src/common/uilocale.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/common/uilocale.cpp
baselib_unix_mimetype.o: $(srcdir)/src/unix/mimetype.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/mimetype.cpp
@@ -27037,6 +27104,9 @@ baselib_unix_stdpaths.o: $(srcdir)/src/unix/stdpaths.cpp $(BASELIB_ODEP)
baselib_unix_secretstore.o: $(srcdir)/src/unix/secretstore.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/secretstore.cpp
baselib_unix_uilocale.o: $(srcdir)/src/unix/uilocale.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/unix/uilocale.cpp
baselib_basemsw.o: $(srcdir)/src/msw/basemsw.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/msw/basemsw.cpp
@@ -27097,6 +27167,9 @@ baselib_fswatcher.o: $(srcdir)/src/msw/fswatcher.cpp $(BASELIB_ODEP)
baselib_msw_secretstore.o: $(srcdir)/src/msw/secretstore.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/msw/secretstore.cpp
baselib_msw_uilocale.o: $(srcdir)/src/msw/uilocale.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/msw/uilocale.cpp
baselib_core_mimetype.o: $(srcdir)/src/osx/core/mimetype.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/mimetype.cpp
@@ -27115,6 +27188,9 @@ baselib_utils_base.o: $(srcdir)/src/osx/cocoa/utils_base.mm $(BASELIB_ODEP)
baselib_core_secretstore.o: $(srcdir)/src/osx/core/secretstore.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/secretstore.cpp
baselib_core_uilocale.o: $(srcdir)/src/osx/core/uilocale.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/core/uilocale.cpp
baselib_fswatcher_fsevents.o: $(srcdir)/src/osx/fswatcher_fsevents.cpp $(BASELIB_ODEP)
$(CXXC) -c -o $@ $(BASELIB_CXXFLAGS) $(srcdir)/src/osx/fswatcher_fsevents.cpp

View File

@@ -115,6 +115,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/unix/fswatcher_inotify.cpp
src/unix/stdpaths.cpp
src/unix/secretstore.cpp
src/unix/uilocale.cpp
</set>
<set var="BASE_UNIX_HDR" hints="files">
$(BASE_UNIX_AND_DARWIN_NOTWXMAC_HDR)
@@ -146,6 +147,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/msw/utilsexc.cpp
src/msw/fswatcher.cpp
src/msw/secretstore.cpp
src/msw/uilocale.cpp
</set>
<set var="BASE_AND_GUI_WIN32_SRC" hints="files">
src/msw/main.cpp
@@ -187,6 +189,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/osx/core/strconv_cf.cpp
src/osx/cocoa/utils_base.mm
src/osx/core/secretstore.cpp
src/osx/core/uilocale.cpp
</set>
<set var="BASE_COREFOUNDATION_HDR" hints="files">
wx/osx/core/cfdataref.h
@@ -561,6 +564,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/generic/fswatcherg.cpp
src/common/secretstore.cpp
src/common/lzmastream.cpp
src/common/uilocale.cpp
</set>
<set var="BASE_AND_GUI_CMN_SRC" hints="files">
src/common/event.cpp
@@ -736,6 +740,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/secretstore.h
wx/lzmastream.h
wx/localedefs.h
wx/uilocale.h
</set>

View File

@@ -47,6 +47,7 @@ set(BASE_UNIX_SRC
src/unix/fswatcher_inotify.cpp
src/unix/secretstore.cpp
src/unix/stdpaths.cpp
src/unix/uilocale.cpp
)
set(BASE_UNIX_HDR
@@ -76,6 +77,7 @@ set(BASE_WIN32_SRC
src/msw/utils.cpp
src/msw/utilsexc.cpp
src/msw/fswatcher.cpp
src/msw/uilocale.cpp
)
set(BASE_AND_GUI_WIN32_SRC
@@ -114,6 +116,7 @@ set(BASE_COREFOUNDATION_SRC
src/osx/core/secretstore.cpp
src/osx/core/strconv_cf.cpp
src/osx/cocoa/utils_base.mm
src/osx/core/uilocale.cpp
)
set(BASE_COREFOUNDATION_HDR
@@ -475,6 +478,7 @@ set(BASE_CMN_SRC
src/common/fswatchercmn.cpp
src/generic/fswatcherg.cpp
src/common/lzmastream.cpp
src/common/uilocale.cpp
)
set(BASE_AND_GUI_CMN_SRC
@@ -652,6 +656,7 @@ set(BASE_CMN_HDR
wx/generic/fswatcher.h
wx/lzmastream.h
wx/localedefs.h
wx/uilocale.h
)
set(NET_UNIX_SRC

View File

@@ -71,6 +71,7 @@ BASE_UNIX_SRC =
src/unix/fswatcher_inotify.cpp
src/unix/secretstore.cpp
src/unix/stdpaths.cpp
src/unix/uilocale.cpp
BASE_UNIX_HDR =
$(BASE_UNIX_AND_DARWIN_NOTWXMAC_HDR)
@@ -98,6 +99,7 @@ BASE_WIN32_SRC =
src/msw/stdpaths.cpp
src/msw/thread.cpp
src/msw/timer.cpp
src/msw/uilocale.cpp
src/msw/utils.cpp
src/msw/utilsexc.cpp
src/msw/fswatcher.cpp
@@ -139,6 +141,7 @@ BASE_COREFOUNDATION_SRC =
src/osx/core/evtloop_cf.cpp
src/osx/core/secretstore.cpp
src/osx/core/strconv_cf.cpp
src/osx/core/uilocale.cpp
src/osx/cocoa/utils_base.mm
BASE_COREFOUNDATION_HDR =
@@ -481,6 +484,7 @@ BASE_CMN_SRC =
src/common/tokenzr.cpp
src/common/translation.cpp
src/common/txtstrm.cpp
src/common/uilocale.cpp
src/common/unichar.cpp
src/common/uri.cpp
src/common/ustring.cpp
@@ -633,6 +637,7 @@ BASE_CMN_HDR =
wx/txtstrm.h
wx/typeinfo.h
wx/types.h
wx/uilocale.h
wx/unichar.h
wx/uri.h
wx/ustring.h

View File

@@ -477,6 +477,7 @@ MONODLL_OBJECTS = \
$(OBJS)\monodll_fswatcherg.o \
$(OBJS)\monodll_common_secretstore.o \
$(OBJS)\monodll_lzmastream.o \
$(OBJS)\monodll_common_uilocale.o \
$(OBJS)\monodll_basemsw.o \
$(OBJS)\monodll_crashrpt.o \
$(OBJS)\monodll_debughlp.o \
@@ -497,6 +498,7 @@ MONODLL_OBJECTS = \
$(OBJS)\monodll_utilsexc.o \
$(OBJS)\monodll_fswatcher.o \
$(OBJS)\monodll_msw_secretstore.o \
$(OBJS)\monodll_msw_uilocale.o \
$(OBJS)\monodll_event.o \
$(OBJS)\monodll_fs_mem.o \
$(OBJS)\monodll_msgout.o \
@@ -633,6 +635,7 @@ MONOLIB_OBJECTS = \
$(OBJS)\monolib_fswatcherg.o \
$(OBJS)\monolib_common_secretstore.o \
$(OBJS)\monolib_lzmastream.o \
$(OBJS)\monolib_common_uilocale.o \
$(OBJS)\monolib_basemsw.o \
$(OBJS)\monolib_crashrpt.o \
$(OBJS)\monolib_debughlp.o \
@@ -653,6 +656,7 @@ MONOLIB_OBJECTS = \
$(OBJS)\monolib_utilsexc.o \
$(OBJS)\monolib_fswatcher.o \
$(OBJS)\monolib_msw_secretstore.o \
$(OBJS)\monolib_msw_uilocale.o \
$(OBJS)\monolib_event.o \
$(OBJS)\monolib_fs_mem.o \
$(OBJS)\monolib_msgout.o \
@@ -783,6 +787,7 @@ BASEDLL_OBJECTS = \
$(OBJS)\basedll_fswatcherg.o \
$(OBJS)\basedll_common_secretstore.o \
$(OBJS)\basedll_lzmastream.o \
$(OBJS)\basedll_common_uilocale.o \
$(OBJS)\basedll_basemsw.o \
$(OBJS)\basedll_crashrpt.o \
$(OBJS)\basedll_debughlp.o \
@@ -803,6 +808,7 @@ BASEDLL_OBJECTS = \
$(OBJS)\basedll_utilsexc.o \
$(OBJS)\basedll_fswatcher.o \
$(OBJS)\basedll_msw_secretstore.o \
$(OBJS)\basedll_msw_uilocale.o \
$(OBJS)\basedll_event.o \
$(OBJS)\basedll_fs_mem.o \
$(OBJS)\basedll_msgout.o \
@@ -914,6 +920,7 @@ BASELIB_OBJECTS = \
$(OBJS)\baselib_fswatcherg.o \
$(OBJS)\baselib_common_secretstore.o \
$(OBJS)\baselib_lzmastream.o \
$(OBJS)\baselib_common_uilocale.o \
$(OBJS)\baselib_basemsw.o \
$(OBJS)\baselib_crashrpt.o \
$(OBJS)\baselib_debughlp.o \
@@ -934,6 +941,7 @@ BASELIB_OBJECTS = \
$(OBJS)\baselib_utilsexc.o \
$(OBJS)\baselib_fswatcher.o \
$(OBJS)\baselib_msw_secretstore.o \
$(OBJS)\baselib_msw_uilocale.o \
$(OBJS)\baselib_event.o \
$(OBJS)\baselib_fs_mem.o \
$(OBJS)\baselib_msgout.o \
@@ -7144,6 +7152,9 @@ $(OBJS)\monodll_common_secretstore.o: ../../src/common/secretstore.cpp
$(OBJS)\monodll_lzmastream.o: ../../src/common/lzmastream.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_common_uilocale.o: ../../src/common/uilocale.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_basemsw.o: ../../src/msw/basemsw.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -7204,6 +7215,9 @@ $(OBJS)\monodll_fswatcher.o: ../../src/msw/fswatcher.cpp
$(OBJS)\monodll_msw_secretstore.o: ../../src/msw/secretstore.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_msw_uilocale.o: ../../src/msw/uilocale.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_event.o: ../../src/common/event.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -9712,6 +9726,9 @@ $(OBJS)\monolib_common_secretstore.o: ../../src/common/secretstore.cpp
$(OBJS)\monolib_lzmastream.o: ../../src/common/lzmastream.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_common_uilocale.o: ../../src/common/uilocale.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_basemsw.o: ../../src/msw/basemsw.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -9772,6 +9789,9 @@ $(OBJS)\monolib_fswatcher.o: ../../src/msw/fswatcher.cpp
$(OBJS)\monolib_msw_secretstore.o: ../../src/msw/secretstore.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_msw_uilocale.o: ../../src/msw/uilocale.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_event.o: ../../src/common/event.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -12280,6 +12300,9 @@ $(OBJS)\basedll_common_secretstore.o: ../../src/common/secretstore.cpp
$(OBJS)\basedll_lzmastream.o: ../../src/common/lzmastream.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\basedll_common_uilocale.o: ../../src/common/uilocale.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\basedll_basemsw.o: ../../src/msw/basemsw.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -12340,6 +12363,9 @@ $(OBJS)\basedll_fswatcher.o: ../../src/msw/fswatcher.cpp
$(OBJS)\basedll_msw_secretstore.o: ../../src/msw/secretstore.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\basedll_msw_uilocale.o: ../../src/msw/uilocale.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\basedll_event.o: ../../src/common/event.cpp
$(CXX) -c -o $@ $(BASEDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -12625,6 +12651,9 @@ $(OBJS)\baselib_common_secretstore.o: ../../src/common/secretstore.cpp
$(OBJS)\baselib_lzmastream.o: ../../src/common/lzmastream.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\baselib_common_uilocale.o: ../../src/common/uilocale.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\baselib_basemsw.o: ../../src/msw/basemsw.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -12685,6 +12714,9 @@ $(OBJS)\baselib_fswatcher.o: ../../src/msw/fswatcher.cpp
$(OBJS)\baselib_msw_secretstore.o: ../../src/msw/secretstore.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\baselib_msw_uilocale.o: ../../src/msw/uilocale.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\baselib_event.o: ../../src/common/event.cpp
$(CXX) -c -o $@ $(BASELIB_CXXFLAGS) $(CPPDEPS) $<

View File

@@ -510,6 +510,7 @@ MONODLL_OBJECTS = \
$(OBJS)\monodll_fswatcherg.obj \
$(OBJS)\monodll_common_secretstore.obj \
$(OBJS)\monodll_lzmastream.obj \
$(OBJS)\monodll_common_uilocale.obj \
$(OBJS)\monodll_basemsw.obj \
$(OBJS)\monodll_crashrpt.obj \
$(OBJS)\monodll_debughlp.obj \
@@ -530,6 +531,7 @@ MONODLL_OBJECTS = \
$(OBJS)\monodll_utilsexc.obj \
$(OBJS)\monodll_fswatcher.obj \
$(OBJS)\monodll_msw_secretstore.obj \
$(OBJS)\monodll_msw_uilocale.obj \
$(OBJS)\monodll_event.obj \
$(OBJS)\monodll_fs_mem.obj \
$(OBJS)\monodll_msgout.obj \
@@ -675,6 +677,7 @@ MONOLIB_OBJECTS = \
$(OBJS)\monolib_fswatcherg.obj \
$(OBJS)\monolib_common_secretstore.obj \
$(OBJS)\monolib_lzmastream.obj \
$(OBJS)\monolib_common_uilocale.obj \
$(OBJS)\monolib_basemsw.obj \
$(OBJS)\monolib_crashrpt.obj \
$(OBJS)\monolib_debughlp.obj \
@@ -695,6 +698,7 @@ MONOLIB_OBJECTS = \
$(OBJS)\monolib_utilsexc.obj \
$(OBJS)\monolib_fswatcher.obj \
$(OBJS)\monolib_msw_secretstore.obj \
$(OBJS)\monolib_msw_uilocale.obj \
$(OBJS)\monolib_event.obj \
$(OBJS)\monolib_fs_mem.obj \
$(OBJS)\monolib_msgout.obj \
@@ -834,6 +838,7 @@ BASEDLL_OBJECTS = \
$(OBJS)\basedll_fswatcherg.obj \
$(OBJS)\basedll_common_secretstore.obj \
$(OBJS)\basedll_lzmastream.obj \
$(OBJS)\basedll_common_uilocale.obj \
$(OBJS)\basedll_basemsw.obj \
$(OBJS)\basedll_crashrpt.obj \
$(OBJS)\basedll_debughlp.obj \
@@ -854,6 +859,7 @@ BASEDLL_OBJECTS = \
$(OBJS)\basedll_utilsexc.obj \
$(OBJS)\basedll_fswatcher.obj \
$(OBJS)\basedll_msw_secretstore.obj \
$(OBJS)\basedll_msw_uilocale.obj \
$(OBJS)\basedll_event.obj \
$(OBJS)\basedll_fs_mem.obj \
$(OBJS)\basedll_msgout.obj \
@@ -977,6 +983,7 @@ BASELIB_OBJECTS = \
$(OBJS)\baselib_fswatcherg.obj \
$(OBJS)\baselib_common_secretstore.obj \
$(OBJS)\baselib_lzmastream.obj \
$(OBJS)\baselib_common_uilocale.obj \
$(OBJS)\baselib_basemsw.obj \
$(OBJS)\baselib_crashrpt.obj \
$(OBJS)\baselib_debughlp.obj \
@@ -997,6 +1004,7 @@ BASELIB_OBJECTS = \
$(OBJS)\baselib_utilsexc.obj \
$(OBJS)\baselib_fswatcher.obj \
$(OBJS)\baselib_msw_secretstore.obj \
$(OBJS)\baselib_msw_uilocale.obj \
$(OBJS)\baselib_event.obj \
$(OBJS)\baselib_fs_mem.obj \
$(OBJS)\baselib_msgout.obj \
@@ -7575,6 +7583,9 @@ $(OBJS)\monodll_common_secretstore.obj: ..\..\src\common\secretstore.cpp
$(OBJS)\monodll_lzmastream.obj: ..\..\src\common\lzmastream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\lzmastream.cpp
$(OBJS)\monodll_common_uilocale.obj: ..\..\src\common\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\uilocale.cpp
$(OBJS)\monodll_basemsw.obj: ..\..\src\msw\basemsw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\basemsw.cpp
@@ -7635,6 +7646,9 @@ $(OBJS)\monodll_fswatcher.obj: ..\..\src\msw\fswatcher.cpp
$(OBJS)\monodll_msw_secretstore.obj: ..\..\src\msw\secretstore.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\secretstore.cpp
$(OBJS)\monodll_msw_uilocale.obj: ..\..\src\msw\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\uilocale.cpp
$(OBJS)\monodll_event.obj: ..\..\src\common\event.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\event.cpp
@@ -10143,6 +10157,9 @@ $(OBJS)\monolib_common_secretstore.obj: ..\..\src\common\secretstore.cpp
$(OBJS)\monolib_lzmastream.obj: ..\..\src\common\lzmastream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\lzmastream.cpp
$(OBJS)\monolib_common_uilocale.obj: ..\..\src\common\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\uilocale.cpp
$(OBJS)\monolib_basemsw.obj: ..\..\src\msw\basemsw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\basemsw.cpp
@@ -10203,6 +10220,9 @@ $(OBJS)\monolib_fswatcher.obj: ..\..\src\msw\fswatcher.cpp
$(OBJS)\monolib_msw_secretstore.obj: ..\..\src\msw\secretstore.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\secretstore.cpp
$(OBJS)\monolib_msw_uilocale.obj: ..\..\src\msw\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\uilocale.cpp
$(OBJS)\monolib_event.obj: ..\..\src\common\event.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\event.cpp
@@ -12711,6 +12731,9 @@ $(OBJS)\basedll_common_secretstore.obj: ..\..\src\common\secretstore.cpp
$(OBJS)\basedll_lzmastream.obj: ..\..\src\common\lzmastream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\lzmastream.cpp
$(OBJS)\basedll_common_uilocale.obj: ..\..\src\common\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\uilocale.cpp
$(OBJS)\basedll_basemsw.obj: ..\..\src\msw\basemsw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\msw\basemsw.cpp
@@ -12771,6 +12794,9 @@ $(OBJS)\basedll_fswatcher.obj: ..\..\src\msw\fswatcher.cpp
$(OBJS)\basedll_msw_secretstore.obj: ..\..\src\msw\secretstore.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\msw\secretstore.cpp
$(OBJS)\basedll_msw_uilocale.obj: ..\..\src\msw\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\msw\uilocale.cpp
$(OBJS)\basedll_event.obj: ..\..\src\common\event.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASEDLL_CXXFLAGS) ..\..\src\common\event.cpp
@@ -13056,6 +13082,9 @@ $(OBJS)\baselib_common_secretstore.obj: ..\..\src\common\secretstore.cpp
$(OBJS)\baselib_lzmastream.obj: ..\..\src\common\lzmastream.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\lzmastream.cpp
$(OBJS)\baselib_common_uilocale.obj: ..\..\src\common\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\uilocale.cpp
$(OBJS)\baselib_basemsw.obj: ..\..\src\msw\basemsw.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\msw\basemsw.cpp
@@ -13116,6 +13145,9 @@ $(OBJS)\baselib_fswatcher.obj: ..\..\src\msw\fswatcher.cpp
$(OBJS)\baselib_msw_secretstore.obj: ..\..\src\msw\secretstore.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\msw\secretstore.cpp
$(OBJS)\baselib_msw_uilocale.obj: ..\..\src\msw\uilocale.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\msw\uilocale.cpp
$(OBJS)\baselib_event.obj: ..\..\src\common\event.cpp
$(CXX) /c /nologo /TP /Fo$@ $(BASELIB_CXXFLAGS) ..\..\src\common\event.cpp

View File

@@ -605,6 +605,26 @@
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)common_%(Filename).obj</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\common\lzmastream.cpp" />
<ClCompile Include="..\..\src\msw\uilocale.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)msw_%(Filename).obj</ObjectFileName>
</ClCompile>
<ClCompile Include="..\..\src\common\uilocale.cpp">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Release|Win32'">$(IntDir)common_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Debug|Win32'">$(IntDir)common_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)common_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)common_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Release|x64'">$(IntDir)common_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='DLL Debug|x64'">$(IntDir)common_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)common_%(Filename).obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)common_%(Filename).obj</ObjectFileName>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\msw\version.rc">
@@ -824,6 +844,7 @@
<ClInclude Include="..\..\include\wx\evtloopsrc.h" />
<ClInclude Include="..\..\include\wx\lzmastream.h" />
<ClInclude Include="..\..\include\wx\localedefs.h" />
<ClInclude Include="..\..\include\wx\uilocale.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@@ -261,6 +261,9 @@
<ClCompile Include="..\..\src\common\txtstrm.cpp">
<Filter>Common Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common\uilocale.cpp">
<Filter>Common Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common\unichar.cpp">
<Filter>Common Sources</Filter>
</ClCompile>
@@ -360,6 +363,9 @@
<ClCompile Include="..\..\src\msw\timer.cpp">
<Filter>MSW Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\msw\uilocale.cpp">
<Filter>MSW Sources</Filter>
</ClCompile>
<ClCompile Include="..\..\src\msw\utils.cpp">
<Filter>MSW Sources</Filter>
</ClCompile>
@@ -862,6 +868,9 @@
<ClInclude Include="..\..\include\wx\types.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\uilocale.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\unichar.h">
<Filter>Common Headers</Filter>
</ClInclude>

View File

@@ -1249,6 +1249,74 @@
RelativePath="..\..\src\common\txtstrm.cpp"
>
</File>
<File
RelativePath="..\..\src\common\uilocale.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\common\unichar.cpp"
>
@@ -1446,6 +1514,74 @@
RelativePath="..\..\src\msw\timer.cpp"
>
</File>
<File
RelativePath="..\..\src\msw\uilocale.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\msw\utils.cpp"
>
@@ -2347,6 +2483,10 @@
RelativePath="..\..\include\wx\types.h"
>
</File>
<File
RelativePath="..\..\include\wx\uilocale.h"
>
</File>
<File
RelativePath="..\..\include\wx\unichar.h"
>

View File

@@ -1245,6 +1245,74 @@
RelativePath="..\..\src\common\txtstrm.cpp"
>
</File>
<File
RelativePath="..\..\src\common\uilocale.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll_x64\base\common_uilocale.obj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\common\unichar.cpp"
>
@@ -1442,6 +1510,74 @@
RelativePath="..\..\src\msw\timer.cpp"
>
</File>
<File
RelativePath="..\..\src\msw\uilocale.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswud_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswu_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswuddll_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
<FileConfiguration
Name="DLL Release|x64"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="vc_mswudll_x64\base\msw_uilocale.obj"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\msw\utils.cpp"
>
@@ -2343,6 +2479,10 @@
RelativePath="..\..\include\wx\types.h"
>
</File>
<File
RelativePath="..\..\include\wx\uilocale.h"
>
</File>
<File
RelativePath="..\..\include\wx\unichar.h"
>

View File

@@ -90,6 +90,8 @@ enum wxLocaleInitFlags
#endif
};
// NOTE: This class is deprecated, use wxUILocale and wxTranslations instead.
class WXDLLIMPEXP_BASE wxLocale
{
public:

View File

@@ -0,0 +1,43 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/private/uilocale.h
// Purpose: wxUILocaleImpl class declaration
// Author: Vadim Zeitlin
// Created: 2021-08-01
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PRIVATE_UILOCALE_H_
#define _WX_PRIVATE_UILOCALE_H_
#include "wx/localedefs.h"
#include "wx/string.h"
// ----------------------------------------------------------------------------
// wxUILocaleImpl provides the implementation of public wxUILocale functions
// ----------------------------------------------------------------------------
class wxUILocaleImpl
{
public:
// This function is implemented in platform-specific code and returns the
// object used by default, i.e. if wxUILocale::UseDefault() is not called.
// This object corresponds to the traditional "C" locale.
//
// It should never return NULL.
static wxUILocaleImpl* CreateStdC();
// Similarly, this one returns the object corresponding to the default user
// locale settings which is used if wxUILocale::UseDefault() was called.
//
// It may return NULL in case of failure.
static wxUILocaleImpl* CreateUserDefault();
// Functions corresponding to wxUILocale ones.
virtual wxString GetName() const = 0;
virtual wxString GetInfo(wxLocaleInfo index, wxLocaleCategory cat) const = 0;
virtual ~wxUILocaleImpl() { }
};
#endif // _WX_PRIVATE_UILOCALE_H_

66
include/wx/uilocale.h Normal file
View File

@@ -0,0 +1,66 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/uilocale.h
// Purpose: wxUILocale class declaration.
// Author: Vadim Zeitlin
// Created: 2021-07-31
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_UILOCALE_H_
#define _WX_UILOCALE_H_
#include "wx/defs.h"
#if wxUSE_INTL
#include "wx/localedefs.h"
#include "wx/string.h"
class wxUILocaleImpl;
// ----------------------------------------------------------------------------
// wxUILocale allows to use the default UI locale and get information about it
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_BASE wxUILocale
{
public:
// Configure the UI to use the default user locale.
static bool UseDefault();
// Get the object corresponding to the currently used locale.
static const wxUILocale& GetCurrent();
// Get the platform-dependent name of the current locale.
wxString GetName() const;
// Query the locale for the specified information.
wxString GetInfo(wxLocaleInfo index,
wxLocaleCategory cat = wxLOCALE_CAT_DEFAULT) const;
// Note that this class is not supposed to be used polymorphically, hence
// its dtor is not virtual.
~wxUILocale();
private:
// Ctor is private, use static accessor to get objects of this class.
wxUILocale() : m_impl(NULL) { }
// Used by UseDefault().
//
// Note that this object takes ownership of the provided pointer and will
// delete it in dtor.
void SetImpl(wxUILocaleImpl* impl);
static wxUILocale ms_current;
wxUILocaleImpl* m_impl;
wxDECLARE_NO_COPY_CLASS(wxUILocale);
};
#endif // wxUSE_INTL
#endif // _WX_UILOCALE_H_

View File

@@ -69,7 +69,7 @@ struct wxLanguageInfo
/**
The category of locale settings.
@see wxLocale::GetInfo()
@see wxLocale::GetInfo(), wxUILocale::GetInfo()
*/
enum wxLocaleCategory
{
@@ -108,6 +108,8 @@ enum wxLocaleCategory
All of these values are used with @c wxLOCALE_CAT_DATE in wxLocale::GetInfo() or,
more typically, with @c wxLOCALE_CAT_DEFAULT as they only apply to a single category.
@see wxUILocale::GetInfo()
*/
enum wxLocaleInfo
{
@@ -172,6 +174,13 @@ enum wxLocaleInfo
wxLocale class encapsulates all language-dependent settings and is a
generalization of the C locale concept.
@note While this class can still be used in wxMSW and wxGTK ports, it
doesn't work in wxOSX where it is impossible to change the application
UI locale after launching it. Worse, since macOS 11 (Big Sur), using
wxLocale can break application display due to bugs in C locale support
in macOS itself. Because of this, it is recommended to use wxUILocale
instead of this class for the applications targeting macOS.
In wxWidgets this class manages current locale. It also initializes and
activates wxTranslations object that manages message catalogs.
@@ -441,6 +450,9 @@ public:
/**
Get the values of a locale datum in the OS locale.
This function shouldn't be used in the new code, use
wxUILocale::GetInfo() instead.
This function is similar to GetInfo() and, in fact, identical to it
under non-MSW systems. Under MSW it differs from it when no locale had
been explicitly set: GetInfo() returns the values corresponding to the

106
interface/wx/uilocale.h Normal file
View File

@@ -0,0 +1,106 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/uilocale.h
// Purpose: Interface of wxUILocale
// Author: Vadim Zeitlin
// Created: 2021-08-01
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
/**
Query and modify locale used for the UI by the current platform.
UI locale determines all culture-dependent conventions used in the user
interface, including numbers, currencies and dates formatting. It also
determines the language used by the native dialogs, such as wxFileDialog,
where different labels use the language corresponding to the current UI
locale.
The UI locale is, in general, different from C locale set by the standard
@c setlocale() function and affecting C standard library functions such as
@c printf(), @c scanf(), @c strftime() and many others. Unfortunately, the
relationship between C and UI locales is not the same depending on the
platform: with wxGTK they must be the same, but under macOS C locale must
not be changed, as doing this exposes bugs in the system. Because of this,
applications can't generally count on C locale being set to any particular
value and it is best to avoid using it, including implicitly via the
standard C functions, in portable code. Instead, consider using
wxNumberFormatter for parsing and formatting numbers according to the
current UI locale or wxString::FromCDouble() and wxString::ToCDouble()
functions for doing it always using period as decimal separator.
Localized applications should call wxUILocale::UseDefault() on startup to
explicitly indicate that they opt-in using the current UI locale, even if
this results in changing the global C locale, as is the case in wxGTK. Note
that some platforms (MSW and macOS) will use default user locale for their
standard dialogs even if this function is not called, but it is still
necessary to call it to use the correct number and date formats and to
avoid mixing messages in the user language with default formats not
corresponding to it.
Please also note that under macOS to really use the user locale, it must be
listed as a supported language in the application @c Info.plist file under
@c CFBundleLocalizations key.
Unlike wxLocale class, this class doesn't affect the translations used by
the application, see wxTranslations for doing this.
@library{wxbase}
@since 3.1.6
*/
class wxUILocale
{
public:
/**
Configure the UI to use the default user locale.
Localized applications should call this functions as early as possible
during the program startup, e.g. in the very beginning of the
overridden wxApp::OnInit().
Note that under most Unix systems (but not macOS) this function changes
the C locale to the locale specified by the environment variables and
so affects the results of calling C functions such as @c sprintf() etc
which can use comma, rather than period, as decimal separator. The
wxString::ToCDouble() and wxString::FromCDouble() functions can be used
for parsing and formatting floating point numbers using period as
decimal separator independently of the current locale.
@return @true on success or @false if the default locale couldn't be set
*/
static bool UseDefault();
/**
Get the object corresponding to the currently used locale.
If UseDefault() had been called, this object corresponds to the default
user locale. Otherwise it corresponds to a generic locale similar to
"C" locale, i.e. always uses period as decimal separator and m/d/y date
format.
*/
static const wxUILocale& GetCurrent();
/**
Get the platform-dependent name of the current locale.
This name can be used in diagnostic messages.
*/
wxString GetName() const;
/**
Query the locale for the specified information.
This function returns the value of the locale-specific option specified
by the given @a index.
@param index
One of the elements of wxLocaleInfo enum.
@param cat
The category to use with the given index or wxLOCALE_CAT_DEFAULT if
the index can only apply to a single category.
@return
The option value or empty string if the function failed.
*/
wxString GetInfo(wxLocaleInfo index,
wxLocaleCategory cat = wxLOCALE_CAT_DEFAULT) const;
};

View File

@@ -37,6 +37,7 @@
#include "wx/platinfo.h"
#include "wx/spinctrl.h"
#include "wx/translation.h"
#include "wx/uilocale.h"
#ifndef wxHAS_IMAGES_IN_RESOURCES
#include "../sample.xpm"
@@ -73,15 +74,13 @@ protected:
Locale_Set,
Locale_Skip
} m_setLocale;
wxLocale m_locale; // locale we'll be using
};
// Define a new frame type
class MyFrame: public wxFrame
{
public:
MyFrame(wxLocale& m_locale);
MyFrame();
public:
void OnTestLocaleAvail(wxCommandEvent& event);
@@ -228,9 +227,7 @@ bool MyApp::OnInit()
if ( m_setLocale == Locale_Set )
{
// don't use wxLOCALE_LOAD_DEFAULT flag so that Init() doesn't return
// false just because it failed to load wxstd catalog
if ( !m_locale.Init(wxLANGUAGE_DEFAULT, wxLOCALE_DONT_LOAD_DEFAULT) )
if ( !wxUILocale::UseDefault() )
{
wxLogWarning("Failed to initialize the default system locale.");
}
@@ -272,7 +269,7 @@ bool MyApp::OnInit()
}
// Create the main frame window
MyFrame *frame = new MyFrame(m_locale);
MyFrame *frame = new MyFrame();
// Show the frame
frame->Show(true);
@@ -285,7 +282,7 @@ bool MyApp::OnInit()
// ----------------------------------------------------------------------------
// main frame constructor
MyFrame::MyFrame(wxLocale& locale)
MyFrame::MyFrame()
: wxFrame(NULL,
wxID_ANY,
_("International wxWidgets App"))
@@ -352,14 +349,18 @@ MyFrame::MyFrame(wxLocale& locale)
wxSizer* const topSizer = new wxBoxSizer(wxVERTICAL);
wxString localeInfo;
wxString locale = locale.GetLocale();
wxString sysname = locale.GetSysName();
wxString canname = locale.GetCanonicalName();
localeInfo.Printf("Current locale: %s (system name: %s, canonical name: %s)",
locale, sysname, canname );
topSizer->Add(new wxStaticText(panel, wxID_ANY, localeInfo),
// create controls showing the locale being used
topSizer->Add(new wxStaticText
(
panel,
wxID_ANY,
wxString::Format
(
_("Current UI locale: %s; C locale: %s"),
wxUILocale::GetCurrent().GetName(),
setlocale(LC_ALL, NULL)
)
),
wxSizerFlags().Center().Border());
// create some controls affected by the locale

View File

@@ -1601,6 +1601,10 @@ wxString wxTranslateFromUnicodeFormat(const wxString& fmt)
#if defined(__WINDOWS__)
// This function is also used by wxUILocaleImpl, so don't make it private.
extern wxString
wxGetInfoFromLCID(LCID lcid, wxLocaleInfo index, wxLocaleCategory cat);
namespace
{
@@ -1624,10 +1628,38 @@ LCTYPE GetLCTYPEFormatFromLocalInfo(wxLocaleInfo index)
return 0;
}
// This private function additionally checks consistency of the decimal
// separator settings between MSW and CRT.
wxString
GetInfoFromLCID(LCID lcid,
wxLocaleInfo index,
wxLocaleCategory cat = wxLOCALE_CAT_DEFAULT)
GetInfoFromLCID(LCID lcid, wxLocaleInfo index, wxLocaleCategory cat)
{
const wxString str = wxGetInfoFromLCID(lcid, index, cat);
if ( !str.empty() && index == wxLOCALE_DECIMAL_POINT )
{
// As we get our decimal point separator from Win32 and not the
// CRT there is a possibility of mismatch between them and this
// can easily happen if the user code called setlocale()
// instead of using wxLocale to change the locale. And this can
// result in very strange bugs elsewhere in the code as the
// assumptions that formatted strings do use the decimal
// separator actually fail, so check for it here.
wxASSERT_MSG
(
wxString::Format("%.3f", 1.23).find(str) != wxString::npos,
"Decimal separator mismatch -- did you use setlocale()?"
"If so, use wxLocale to change the locale instead."
);
}
return str;
}
} // anonymous namespace
// This function is also used by wxUILocaleImpl, so don't make it private.
wxString
wxGetInfoFromLCID(LCID lcid, wxLocaleInfo index, wxLocaleCategory cat)
{
wxString str;
@@ -1650,20 +1682,6 @@ GetInfoFromLCID(LCID lcid,
WXSIZEOF(buf)) )
{
str = buf;
// As we get our decimal point separator from Win32 and not the
// CRT there is a possibility of mismatch between them and this
// can easily happen if the user code called setlocale()
// instead of using wxLocale to change the locale. And this can
// result in very strange bugs elsewhere in the code as the
// assumptions that formatted strings do use the decimal
// separator actually fail, so check for it here.
wxASSERT_MSG
(
wxString::Format("%.3f", 1.23).find(str) != wxString::npos,
"Decimal separator mismatch -- did you use setlocale()?"
"If so, use wxLocale to change the locale instead."
);
}
break;
@@ -1686,12 +1704,12 @@ GetInfoFromLCID(LCID lcid,
// alternate representation here)
{
const wxString
datefmt = GetInfoFromLCID(lcid, wxLOCALE_SHORT_DATE_FMT);
datefmt = wxGetInfoFromLCID(lcid, wxLOCALE_SHORT_DATE_FMT, cat);
if ( datefmt.empty() )
break;
const wxString
timefmt = GetInfoFromLCID(lcid, wxLOCALE_TIME_FMT);
timefmt = wxGetInfoFromLCID(lcid, wxLOCALE_TIME_FMT, cat);
if ( timefmt.empty() )
break;
@@ -1706,8 +1724,6 @@ GetInfoFromLCID(LCID lcid,
return str;
}
} // anonymous namespace
/* static */
wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)
{
@@ -1766,34 +1782,19 @@ wxString wxLocale::GetOSInfo(wxLocaleInfo index, wxLocaleCategory cat)
#elif defined(__WXOSX__)
/* static */
wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
// This function is also used by wxUILocaleImpl, so don't make it private.
extern wxString
wxGetInfoFromCFLocale(CFLocaleRef cfloc, wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
{
CFLocaleRef userLocaleRefRaw;
if ( wxGetLocale() )
{
userLocaleRefRaw = CFLocaleCreate
(
kCFAllocatorDefault,
wxCFStringRef(wxGetLocale()->GetCanonicalName())
);
}
else // no current locale, use the default one
{
userLocaleRefRaw = CFLocaleCopyCurrent();
}
wxCFRef<CFLocaleRef> userLocaleRef(userLocaleRefRaw);
CFStringRef cfstr = 0;
switch ( index )
{
case wxLOCALE_THOUSANDS_SEP:
cfstr = (CFStringRef) CFLocaleGetValue(userLocaleRef, kCFLocaleGroupingSeparator);
cfstr = (CFStringRef) CFLocaleGetValue(cfloc, kCFLocaleGroupingSeparator);
break;
case wxLOCALE_DECIMAL_POINT:
cfstr = (CFStringRef) CFLocaleGetValue(userLocaleRef, kCFLocaleDecimalSeparator);
cfstr = (CFStringRef) CFLocaleGetValue(cfloc, kCFLocaleDecimalSeparator);
break;
case wxLOCALE_SHORT_DATE_FMT:
@@ -1823,7 +1824,7 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
return wxString();
}
wxCFRef<CFDateFormatterRef> dateFormatter( CFDateFormatterCreate
(NULL, userLocaleRef, dateStyle, timeStyle));
(NULL, cfloc, dateStyle, timeStyle));
wxCFStringRef cfs = wxCFRetain( CFDateFormatterGetFormat(dateFormatter ));
wxString format = wxTranslateFromUnicodeFormat(cfs.AsString());
// we always want full years
@@ -1840,6 +1841,28 @@ wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory WXUNUSED(cat))
return str.AsString();
}
/* static */
wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat)
{
CFLocaleRef userLocaleRefRaw;
if ( wxGetLocale() )
{
userLocaleRefRaw = CFLocaleCreate
(
kCFAllocatorDefault,
wxCFStringRef(wxGetLocale()->GetCanonicalName())
);
}
else // no current locale, use the default one
{
userLocaleRefRaw = CFLocaleCopyCurrent();
}
wxCFRef<CFLocaleRef> userLocaleRef(userLocaleRefRaw);
return wxGetInfoFromCFLocale(userLocaleRef, index, cat);
}
#else // !__WINDOWS__ && !__WXOSX__, assume generic POSIX
namespace

90
src/common/uilocale.cpp Normal file
View File

@@ -0,0 +1,90 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/common/uilocale.cpp
// Purpose: wxUILocale implementation
// Author: Vadim Zeitlin
// Created: 2021-07-31
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_INTL
#include "wx/uilocale.h"
#include "wx/private/uilocale.h"
// ----------------------------------------------------------------------------
// global variables
// ----------------------------------------------------------------------------
// This static global variable doesn't need to be protected from concurrent
// access as it's only supposed to be used from the UI thread.
/* static */
wxUILocale wxUILocale::ms_current;
// ============================================================================
// implementation
// ============================================================================
/* static */
bool wxUILocale::UseDefault()
{
// We don't attempt to optimize this function by checking whether
// ms_current is already set to the user default locale, as we're
// supposed to be called just once during the program lifetime anyhow.
wxUILocaleImpl* const impl = wxUILocaleImpl::CreateUserDefault();
if ( !impl )
return false;
ms_current.SetImpl(impl);
return true;
}
/* static */
const wxUILocale& wxUILocale::GetCurrent()
{
// We initialize it on demand.
if ( !ms_current.m_impl )
{
ms_current.SetImpl(wxUILocaleImpl::CreateStdC());
}
return ms_current;
}
void wxUILocale::SetImpl(wxUILocaleImpl* impl)
{
delete m_impl;
m_impl = impl;
}
wxString wxUILocale::GetName() const
{
return m_impl->GetName();
}
wxString wxUILocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) const
{
return m_impl->GetInfo(index, cat);
}
wxUILocale::~wxUILocale()
{
delete m_impl;
}
#endif // wxUSE_INTL

101
src/msw/uilocale.cpp Normal file
View File

@@ -0,0 +1,101 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/msw/uilocale.cpp
// Purpose: wxUILocale implementation for MSW
// Author: Vadim Zeitlin
// Created: 2021-07-31
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_INTL
#include "wx/private/uilocale.h"
#include "wx/dynlib.h"
#include "wx/msw/private.h"
#ifndef LOCALE_SNAME
#define LOCALE_SNAME 0x5c
#endif
// This function is defined in src/common/intl.cpp, just declare it here for
// now before refactoring the code.
wxString wxGetInfoFromLCID(LCID lcid, wxLocaleInfo index, wxLocaleCategory cat);
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxUILocale implementation for MSW
// ----------------------------------------------------------------------------
// TODO-XP: Replace this with an implementation using GetLocaleInfoEx() when we
// don't support XP any longer.
class wxUILocaleImplLCID : public wxUILocaleImpl
{
public:
explicit wxUILocaleImplLCID(LCID lcid)
: m_lcid(lcid)
{
}
wxString GetName() const wxOVERRIDE
{
wxChar buf[256];
buf[0] = wxT('\0');
// Try using newer constant available since Vista which produces names
// more similar to the other platforms.
if ( wxGetWinVersion() >= wxWinVersion_Vista )
{
::GetLocaleInfo(m_lcid, LOCALE_SNAME, buf, WXSIZEOF(buf));
}
else // TODO-XP: Drop this branch.
{
// This name constant is available under all systems, including
// pre-Vista ones.
::GetLocaleInfo(m_lcid, LOCALE_SENGLANGUAGE, buf, WXSIZEOF(buf));
}
return buf;
}
wxString GetInfo(wxLocaleInfo index, wxLocaleCategory cat) const wxOVERRIDE
{
return wxGetInfoFromLCID(m_lcid, index, cat);
}
private:
const LCID m_lcid;
wxDECLARE_NO_COPY_CLASS(wxUILocaleImplLCID);
};
/* static */
wxUILocaleImpl* wxUILocaleImpl::CreateStdC()
{
// There is no LCID for "C" locale, but US English is basically the same.
LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
return new wxUILocaleImplLCID(lcid);
}
/* static */
wxUILocaleImpl* wxUILocaleImpl::CreateUserDefault()
{
return new wxUILocaleImplLCID(LOCALE_USER_DEFAULT);
}
#endif // wxUSE_INTL

92
src/osx/core/uilocale.cpp Normal file
View File

@@ -0,0 +1,92 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/osx/core/uilocale.cpp
// Purpose: wxUILocale implementation for macOS
// Author: Vadim Zeitlin
// Created: 2021-08-01
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_INTL
#include "wx/private/uilocale.h"
#include "wx/osx/core/cfref.h"
#include "wx/osx/core/cfstring.h"
#include <CoreFoundation/CFLocale.h>
#include <CoreFoundation/CFString.h>
extern wxString
wxGetInfoFromCFLocale(CFLocaleRef cfloc, wxLocaleInfo index, wxLocaleCategory cat);
namespace
{
// ----------------------------------------------------------------------------
// wxUILocale implementation using Core Foundation
// ----------------------------------------------------------------------------
class wxUILocaleImplCF : public wxUILocaleImpl
{
public:
explicit wxUILocaleImplCF(const wxCFRef<CFLocaleRef>& cfloc)
: m_cfloc(cfloc)
{
}
wxString GetName() const wxOVERRIDE;
wxString GetInfo(wxLocaleInfo index, wxLocaleCategory cat) const wxOVERRIDE;
private:
wxCFRef<CFLocaleRef> m_cfloc;
wxDECLARE_NO_COPY_CLASS(wxUILocaleImplCF);
};
} // anonymous namespace
// ============================================================================
// implementation
// ============================================================================
wxString
wxUILocaleImplCF::GetName() const
{
return wxCFStringRef::AsString(CFLocaleGetIdentifier(m_cfloc));
}
wxString
wxUILocaleImplCF::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) const
{
return wxGetInfoFromCFLocale(m_cfloc, index, cat);
}
/* static */
wxUILocaleImpl* wxUILocaleImpl::CreateStdC()
{
CFLocaleRef cfloc = CFLocaleCreate(kCFAllocatorDefault, wxCFStringRef("C"));
if ( !cfloc )
return NULL;
return new wxUILocaleImplCF(cfloc);
}
/* static */
wxUILocaleImpl* wxUILocaleImpl::CreateUserDefault()
{
return new wxUILocaleImplCF(CFLocaleCopyCurrent());
}
#endif // wxUSE_INTL

91
src/unix/uilocale.cpp Normal file
View File

@@ -0,0 +1,91 @@
///////////////////////////////////////////////////////////////////////////////
// Name: src/unix/uilocale.cpp
// Purpose: wxUILocale implementation for Unix systems
// Author: Vadim Zeitlin
// Created: 2021-08-01
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// for compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#if wxUSE_INTL
#include "wx/private/uilocale.h"
#include "wx/intl.h"
#include <locale.h>
namespace
{
// ----------------------------------------------------------------------------
// wxUILocale implementation using standard Unix/C functions
// ----------------------------------------------------------------------------
class wxUILocaleImplUnix : public wxUILocaleImpl
{
public:
// Locale argument may be NULL to not change it at all.
explicit wxUILocaleImplUnix(const char* locale);
wxString GetName() const wxOVERRIDE;
wxString GetInfo(wxLocaleInfo index, wxLocaleCategory cat) const wxOVERRIDE;
private:
wxDECLARE_NO_COPY_CLASS(wxUILocaleImplUnix);
};
} // anonymous namespace
// ============================================================================
// implementation
// ============================================================================
wxUILocaleImplUnix::wxUILocaleImplUnix(const char* locale)
{
if ( locale )
setlocale(LC_ALL, locale);
}
wxString
wxUILocaleImplUnix::GetName() const
{
return wxString::FromAscii(setlocale(LC_ALL, NULL));
}
wxString
wxUILocaleImplUnix::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) const
{
// Currently we rely on the user code not calling setlocale() itself, so
// that the current locale is still the same as was set in the ctor.
//
// If this assumption turns out to be wrong, we could use wxLocaleSetter to
// temporarily change the locale here (maybe only if setlocale(NULL) result
// differs from the expected one).
return wxLocale::GetInfo(index, cat);
}
/* static */
wxUILocaleImpl* wxUILocaleImpl::CreateStdC()
{
return new wxUILocaleImplUnix(NULL);
}
/* static */
wxUILocaleImpl* wxUILocaleImpl::CreateUserDefault()
{
return new wxUILocaleImplUnix("");
}
#endif // wxUSE_INTL

View File

@@ -18,6 +18,7 @@
#endif // WX_PRECOMP
#include "wx/intl.h"
#include "wx/uilocale.h"
#if wxUSE_INTL
@@ -239,4 +240,17 @@ TEST_CASE("wxLocale::Default", "[locale]")
#endif // wxUSE_UNICODE
// This test doesn't run by default as it only works in locales using decimal
// point as separator, which doesn't need to be the case.
TEST_CASE("wxUILocale::GetInfo", "[.][uilocale]")
{
REQUIRE( wxUILocale::UseDefault() );
const wxUILocale& loc = wxUILocale::GetCurrent();
WARN( "Using locale " << loc.GetName() );
CHECK( loc.GetInfo(wxLOCALE_DECIMAL_POINT) == "." );
}
#endif // wxUSE_INTL