00001 #ifndef _MERCURYTHEME_H
00002 #define _MERCURYTHEME_H
00003
00004 #include "MercuryINI.h"
00005
00007
00010 class MercuryTheme
00011 {
00012 public:
00014 bool Load( const MString & sThemeName );
00015
00017 inline bool GetMetricS( const MString & sKey, const MString & sValue, MString & sData ) { return Metrics.GetValue( sKey, sValue, sData ); }
00018
00020 MString GetName() { return m_sName; }
00021 private:
00022 MercuryINI Metrics;
00023 MString m_sName;
00024 };
00025
00026
00030 class MercuryThemeManager
00031 {
00032 public:
00033 ~MercuryThemeManager() { SAFE_DELETE( m_vThemes ); }
00035 void ReloadAllThemes( );
00036
00038 bool GetMetric( const MString & sKey, const MString & sValue, MString & sData, int ttl = 100 );
00039
00041 MString GetMetricS( const MString & sKey, const MString & sValue, const MString & Default = "" );
00043 int GetMetricI( const MString & sKey, const MString & sValue, int Default = 0 );
00045 float GetMetricF( const MString & sKey, const MString & sValue, float Default = 0 );
00047 bool GetMetricB( const MString & sKey, const MString & sValue, bool Default = false );
00048
00050 bool GetPathToFile( const MString & File, MString & Path );
00051
00053 MString GetPathToFile( const MString &Name );
00055 MString GetPathToGraphic( const MString &Name );
00057 MString GetPathToModel( const MString &Name );
00058
00059 private:
00060 MVector < MercuryTheme > *m_vThemes;
00061 };
00062
00063 extern MercuryThemeManager THEME;
00064
00066 #define GET_GRAPHIC_BY_NAME( x ) THEME.GetPathToGraphic( THEME.GetMetricS( GetName(), x ) )
00067 #define GET_MODEL_BY_NAME( x ) THEME.GetPathToModel( THEME.GetMetricS( GetName(), x ) )
00068 #define GET_FILE_BY_NAME( x ) THEME.GetPathToFile( THEME.GetMetricS( GetName(), x ) )
00069
00070 #endif
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099