"XToThemedString" uses theme metrics. We don't want DateTime
(used by XmlFile) to depend on THEME, so use localized strings. We may *always* want LocalizedString. One reason we may not is if we start using the DynamicThemeMetric paradigm more. That evaluates expressions when they're used, which allows metrics to change dynamically. However, we may really not want to do that for localized strings, since it would complicate translation, so we may want to restrict localized strings to pre-evaluation anyway.
This commit is contained in:
@@ -2,10 +2,8 @@
|
|||||||
#include "DateTime.h"
|
#include "DateTime.h"
|
||||||
#include "RageUtil.h"
|
#include "RageUtil.h"
|
||||||
#include "EnumHelper.h"
|
#include "EnumHelper.h"
|
||||||
#if !defined(SMPACKAGE)
|
|
||||||
#include "ThemeMetric.h"
|
|
||||||
#endif
|
|
||||||
#include "LuaFunctions.h"
|
#include "LuaFunctions.h"
|
||||||
|
#include "LocalizedString.h"
|
||||||
|
|
||||||
DateTime::DateTime()
|
DateTime::DateTime()
|
||||||
{
|
{
|
||||||
@@ -196,10 +194,8 @@ static const CString MonthNames[] =
|
|||||||
"November",
|
"November",
|
||||||
"December",
|
"December",
|
||||||
};
|
};
|
||||||
XToString( Month, MONTHS_IN_YEAR );
|
XToString( Month, NUM_Month );
|
||||||
#if !defined(SMPACKAGE)
|
XToLocalizedString( Month );
|
||||||
XToThemedString( Month, MONTHS_IN_YEAR );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CString LastWeekToString( int iLastWeekIndex )
|
CString LastWeekToString( int iLastWeekIndex )
|
||||||
{
|
{
|
||||||
@@ -308,9 +304,7 @@ tm GetDayInYearAndYear( int iDayInYearIndex, int iYear )
|
|||||||
}
|
}
|
||||||
|
|
||||||
LuaFunction( MonthToString, MonthToString( (Month)IArg(1) ) );
|
LuaFunction( MonthToString, MonthToString( (Month)IArg(1) ) );
|
||||||
#if !defined(SMPACKAGE)
|
LuaFunction( MonthToLocalizedString, MonthToLocalizedString( (Month)IArg(1) ) );
|
||||||
LuaFunction( MonthToThemedString, MonthToThemedString( (Month)IArg(1) ) );
|
|
||||||
#endif
|
|
||||||
LuaFunction( MonthOfYear, GetLocalTime().tm_mon );
|
LuaFunction( MonthOfYear, GetLocalTime().tm_mon );
|
||||||
LuaFunction( DayOfMonth, GetLocalTime().tm_mday );
|
LuaFunction( DayOfMonth, GetLocalTime().tm_mday );
|
||||||
LuaFunction( Hour, GetLocalTime().tm_hour );
|
LuaFunction( Hour, GetLocalTime().tm_hour );
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const int NUM_LAST_WEEKS = 52;
|
|||||||
const int DAYS_IN_YEAR = 366; // maximum (leap years)
|
const int DAYS_IN_YEAR = 366; // maximum (leap years)
|
||||||
const int HOURS_IN_DAY = 24;
|
const int HOURS_IN_DAY = 24;
|
||||||
const int DAYS_IN_WEEK = 7;
|
const int DAYS_IN_WEEK = 7;
|
||||||
enum Month { MONTHS_IN_YEAR = 12 };
|
enum Month { NUM_Month = 12 };
|
||||||
|
|
||||||
CString DayInYearToString( int iDayInYearIndex );
|
CString DayInYearToString( int iDayInYearIndex );
|
||||||
CString LastDayToString( int iLastDayIndex );
|
CString LastDayToString( int iLastDayIndex );
|
||||||
@@ -18,7 +18,7 @@ CString DayOfWeekToThemedString( int iDayOfWeekIndex );
|
|||||||
CString HourInDayToString( int iHourIndex );
|
CString HourInDayToString( int iHourIndex );
|
||||||
CString HourInDayToThemedString( int iHourIndex );
|
CString HourInDayToThemedString( int iHourIndex );
|
||||||
const CString &MonthToString( Month month );
|
const CString &MonthToString( Month month );
|
||||||
const CString &MonthToThemedString( Month month );
|
const CString &MonthToLocalizedString( Month month );
|
||||||
CString LastWeekToString( int iLastWeekIndex );
|
CString LastWeekToString( int iLastWeekIndex );
|
||||||
CString LastWeekToThemedString( int iLastWeekIndex );
|
CString LastWeekToThemedString( int iLastWeekIndex );
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,17 @@ static const CString EMPTY_STRING;
|
|||||||
return g_##X##Name[x]; \
|
return g_##X##Name[x]; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define XToLocalizedString(X) \
|
||||||
|
const CString &X##ToLocalizedString( X x ) \
|
||||||
|
{ \
|
||||||
|
static auto_ptr<LocalizedString> g_##X##Name[NUM_##X]; \
|
||||||
|
if( g_##X##Name[0].get() == NULL ) { \
|
||||||
|
for( unsigned i = 0; i < NUM_##X; ++i ) \
|
||||||
|
g_##X##Name[i].reset( new LocalizedString(#X, X##ToString((X)i)) ); \
|
||||||
|
} \
|
||||||
|
return g_##X##Name[x]->GetValue(); \
|
||||||
|
}
|
||||||
|
|
||||||
#define StringToX(X) \
|
#define StringToX(X) \
|
||||||
X StringTo##X( const CString& s ) \
|
X StringTo##X( const CString& s ) \
|
||||||
{ \
|
{ \
|
||||||
|
|||||||
Reference in New Issue
Block a user