Extract wxLOCALE_XXX constants into their own header

No real changes, just make it possible to use these constants without
including the entire wx/intl.h.

Note that the existing headers including wx/intl.h need to keep
including it, unfortunately, as not doing it any longer would break
compilation of any code including them which relies on _() or
wxGetTranslation() being defined after including e.g. wx/dc.h. This was,
of course, never guaranteed, but in practice it worked for a very long
time, so don't break it now.

This commit is best viewed with --color-moved git option.
This commit is contained in:
Vadim Zeitlin
2021-08-13 19:09:13 +02:00
parent afe04f7c4a
commit b6d4eda4ad
10 changed files with 95 additions and 56 deletions

View File

@@ -581,6 +581,7 @@ ALL_BASE_HEADERS = \
wx/generic/fswatcher.h \ wx/generic/fswatcher.h \
wx/secretstore.h \ wx/secretstore.h \
wx/lzmastream.h \ wx/lzmastream.h \
wx/localedefs.h \
$(BASE_PLATFORM_HDR) \ $(BASE_PLATFORM_HDR) \
wx/fs_inet.h \ wx/fs_inet.h \
wx/protocol/file.h \ wx/protocol/file.h \
@@ -766,6 +767,7 @@ ALL_PORTS_BASE_HEADERS = \
wx/generic/fswatcher.h \ wx/generic/fswatcher.h \
wx/secretstore.h \ wx/secretstore.h \
wx/lzmastream.h \ wx/lzmastream.h \
wx/localedefs.h \
wx/unix/app.h \ wx/unix/app.h \
wx/unix/apptbase.h \ wx/unix/apptbase.h \
wx/unix/apptrait.h \ wx/unix/apptrait.h \

View File

@@ -735,6 +735,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/generic/fswatcher.h wx/generic/fswatcher.h
wx/secretstore.h wx/secretstore.h
wx/lzmastream.h wx/lzmastream.h
wx/localedefs.h
</set> </set>

View File

@@ -651,6 +651,7 @@ set(BASE_CMN_HDR
wx/fswatcher.h wx/fswatcher.h
wx/generic/fswatcher.h wx/generic/fswatcher.h
wx/lzmastream.h wx/lzmastream.h
wx/localedefs.h
) )
set(NET_UNIX_SRC set(NET_UNIX_SRC

View File

@@ -574,6 +574,7 @@ BASE_CMN_HDR =
wx/link.h wx/link.h
wx/list.h wx/list.h
wx/listimpl.cpp wx/listimpl.cpp
wx/localedefs.h
wx/log.h wx/log.h
wx/longlong.h wx/longlong.h
wx/lzmastream.h wx/lzmastream.h

View File

@@ -823,6 +823,7 @@
<ClInclude Include="..\..\include\wx\secretstore.h" /> <ClInclude Include="..\..\include\wx\secretstore.h" />
<ClInclude Include="..\..\include\wx\evtloopsrc.h" /> <ClInclude Include="..\..\include\wx\evtloopsrc.h" />
<ClInclude Include="..\..\include\wx\lzmastream.h" /> <ClInclude Include="..\..\include\wx\lzmastream.h" />
<ClInclude Include="..\..\include\wx\localedefs.h" />
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View File

@@ -598,6 +598,9 @@
<ClInclude Include="..\..\include\wx\listimpl.cpp"> <ClInclude Include="..\..\include\wx\listimpl.cpp">
<Filter>Common Headers</Filter> <Filter>Common Headers</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\include\wx\localedefs.h">
<Filter>Common Headers</Filter>
</ClInclude>
<ClInclude Include="..\..\include\wx\log.h"> <ClInclude Include="..\..\include\wx\log.h">
<Filter>Common Headers</Filter> <Filter>Common Headers</Filter>
</ClInclude> </ClInclude>

View File

@@ -2103,6 +2103,10 @@
RelativePath="..\..\include\wx\list.h" RelativePath="..\..\include\wx\list.h"
> >
</File> </File>
<File
RelativePath="..\..\include\wx\localedefs.h"
>
</File>
<File <File
RelativePath="..\..\include\wx\log.h" RelativePath="..\..\include\wx\log.h"
> >

View File

@@ -2099,6 +2099,10 @@
RelativePath="..\..\include\wx\list.h" RelativePath="..\..\include\wx\list.h"
> >
</File> </File>
<File
RelativePath="..\..\include\wx\localedefs.h"
>
</File>
<File <File
RelativePath="..\..\include\wx\log.h" RelativePath="..\..\include\wx\log.h"
> >

View File

@@ -13,19 +13,10 @@
#define _WX_INTL_H_ #define _WX_INTL_H_
#include "wx/defs.h" #include "wx/defs.h"
#include "wx/localedefs.h"
#include "wx/string.h" #include "wx/string.h"
#include "wx/translation.h" #include "wx/translation.h"
// Make wxLayoutDirection enum available without need for wxUSE_INTL so wxWindow, wxApp
// and other classes are not distrubed by wxUSE_INTL
enum wxLayoutDirection
{
wxLayout_Default,
wxLayout_LeftToRight,
wxLayout_RightToLeft
};
#if wxUSE_INTL #if wxUSE_INTL
#include "wx/fontenc.h" #include "wx/fontenc.h"
@@ -84,52 +75,6 @@ struct WXDLLIMPEXP_BASE wxLanguageInfo
const char* TrySetLocale() const; const char* TrySetLocale() const;
}; };
// ----------------------------------------------------------------------------
// wxLocaleCategory: the category of locale settings
// ----------------------------------------------------------------------------
enum wxLocaleCategory
{
// (any) numbers
wxLOCALE_CAT_NUMBER,
// date/time
wxLOCALE_CAT_DATE,
// monetary value
wxLOCALE_CAT_MONEY,
// default category for wxLocaleInfo values which only apply to a single
// category (e.g. wxLOCALE_SHORT_DATE_FMT)
wxLOCALE_CAT_DEFAULT,
wxLOCALE_CAT_MAX
};
// ----------------------------------------------------------------------------
// wxLocaleInfo: the items understood by wxLocale::GetInfo()
// ----------------------------------------------------------------------------
enum wxLocaleInfo
{
// the thousands separator (for wxLOCALE_CAT_NUMBER or MONEY)
wxLOCALE_THOUSANDS_SEP,
// the character used as decimal point (for wxLOCALE_CAT_NUMBER or MONEY)
wxLOCALE_DECIMAL_POINT,
// the stftime()-formats used for short/long date and time representations
// (under some platforms short and long date formats are the same)
//
// NB: these elements should appear in this order, code in GetInfo() relies
// on it
wxLOCALE_SHORT_DATE_FMT,
wxLOCALE_LONG_DATE_FMT,
wxLOCALE_DATE_TIME_FMT,
wxLOCALE_TIME_FMT
};
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxLocale: encapsulates all language dependent settings, including current // wxLocale: encapsulates all language dependent settings, including current
// message catalogs, date, time and currency formats (TODO) &c // message catalogs, date, time and currency formats (TODO) &c

77
include/wx/localedefs.h Normal file
View File

@@ -0,0 +1,77 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/localedefs.h
// Purpose: Definitions of common locale-related constants
// Author: Vadim Zeitlin
// Created: 2021-07-31 (extracted from wx/intl.h)
// Copyright: (c) 2021 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_LOCALEDEFS_H_
#define _WX_LOCALEDEFS_H_
// ----------------------------------------------------------------------------
// wxLayoutDirection: used by wxWindow, wxDC etc
// ----------------------------------------------------------------------------
// Note that this one must be available even when wxUSE_INTL == 0 as it's used
// outside of locale code too.
enum wxLayoutDirection
{
wxLayout_Default,
wxLayout_LeftToRight,
wxLayout_RightToLeft
};
#if wxUSE_INTL
// ----------------------------------------------------------------------------
// wxLocaleCategory: the category of locale settings
// ----------------------------------------------------------------------------
enum wxLocaleCategory
{
// (any) numbers
wxLOCALE_CAT_NUMBER,
// date/time
wxLOCALE_CAT_DATE,
// monetary value
wxLOCALE_CAT_MONEY,
// default category for wxLocaleInfo values which only apply to a single
// category (e.g. wxLOCALE_SHORT_DATE_FMT)
wxLOCALE_CAT_DEFAULT,
wxLOCALE_CAT_MAX
};
// ----------------------------------------------------------------------------
// wxLocaleInfo: the items understood by wxLocale::GetInfo()
// ----------------------------------------------------------------------------
enum wxLocaleInfo
{
// the thousands separator (for wxLOCALE_CAT_NUMBER or MONEY)
wxLOCALE_THOUSANDS_SEP,
// the character used as decimal point (for wxLOCALE_CAT_NUMBER or MONEY)
wxLOCALE_DECIMAL_POINT,
// the stftime()-formats used for short/long date and time representations
// (under some platforms short and long date formats are the same)
//
// NB: these elements should appear in this order, code in GetInfo() relies
// on it
wxLOCALE_SHORT_DATE_FMT,
wxLOCALE_LONG_DATE_FMT,
wxLOCALE_DATE_TIME_FMT,
wxLOCALE_TIME_FMT
};
#endif // wxUSE_INTL
#endif // _WX_LOCALEDEFS_H_