ThemeManager::GetClassFallback

This commit is contained in:
Glenn Maynard
2006-09-22 06:41:27 +00:00
parent d0c97aa6ed
commit 59ad3f8222
2 changed files with 17 additions and 13 deletions
+15 -13
View File
@@ -700,10 +700,9 @@ RString ThemeManager::GetPathToAndFallback( ElementCategory category, const RStr
return RString();
// search fallback name (if any)
RString sFallback;
if( !GetMetricRawRecursive( g_pLoadedThemeData->iniMetrics, sClassName, "Fallback", sFallback) )
sClassName = GetClassFallback( sClassName );
if( sClassName.empty() )
return RString();
sClassName = sFallback;
}
RageException::Throw( "Infinite recursion looking up theme element \"%s\"",
@@ -819,6 +818,16 @@ void ThemeManager::ReloadMetrics()
}
RString ThemeManager::GetClassFallback( const RString &sClassName )
{
// always look in iniMetrics for "Fallback"
RString sFallback;
if( !GetMetricRawRecursive(g_pLoadedThemeData->iniMetrics,sClassName,"Fallback",sFallback) )
return RString();
return sFallback;
}
bool ThemeManager::GetMetricRawRecursive( const IniFile &ini, const RString &sClassName_, const RString &sValueName, RString &sOut )
{
ASSERT( sValueName != "" );
@@ -835,12 +844,9 @@ bool ThemeManager::GetMetricRawRecursive( const IniFile &ini, const RString &sCl
if( !sValueName.compare("Fallback") )
return false;
RString sFallback;
// always look in iniMetrics for "Fallback"
if( !GetMetricRawRecursive(g_pLoadedThemeData->iniMetrics,sClassName,"Fallback",sFallback) )
sClassName = GetClassFallback( sClassName );
if( sClassName.empty() )
return false;
sClassName = sFallback;
}
RageException::Throw( "Infinite recursion looking up theme metric \"%s::%s\".", sClassName.c_str(), sValueName.c_str() );
@@ -1154,11 +1160,7 @@ void ThemeManager::GetMetricsThatBeginWith( const RString &sClassName_, const RS
}
// put the fallback (if any) in sClassName
RString sFallback;
if( GetMetricRawRecursive( g_pLoadedThemeData->iniMetrics, sClassName, "Fallback", sFallback ) )
sClassName = sFallback;
else
sClassName = "";
sClassName = GetClassFallback( sClassName );
}
}
+2
View File
@@ -98,6 +98,8 @@ public:
void GetMetricsThatBeginWith( const RString &sClassName, const RString &sValueName, set<RString> &vsValueNamesOut );
RString GetClassFallback( const RString &sClassName );
static RString GetBlankGraphicPath();
//