11 #include "interfaces/info/InfoBool.h" 23 class CSkinVariableString;
44 void Load(
const std::string &file);
53 void Resolve(TiXmlElement *node, std::map<INFO::InfoPtr, bool>* includeConditions = NULL);
65 enum ResolveParamsResult
69 SINGLE_UNDEFINED_PARAM_RESOLVED
79 bool Load_Internal(
const std::string &file);
81 bool HasLoaded(
const std::string &file)
const;
83 void LoadDefaults(
const TiXmlElement *node);
84 void LoadIncludes(
const TiXmlElement *node);
85 void LoadVariables(
const TiXmlElement *node);
86 void LoadConstants(
const TiXmlElement *node);
87 void LoadExpressions(
const TiXmlElement *node);
92 void FlattenExpressions();
100 void FlattenExpression(std::string &expression,
const std::vector<std::string> &resolved);
105 void FlattenSkinVariableConditions();
107 void SetDefaults(TiXmlElement *node);
108 void ResolveIncludes(TiXmlElement *node, std::map<INFO::InfoPtr, bool>* xmlIncludeConditions = NULL);
109 void ResolveConstants(TiXmlElement *node);
110 void ResolveExpressions(TiXmlElement *node);
112 typedef std::map<std::string, std::string> Params;
113 static void InsertNested(TiXmlElement* controls, TiXmlElement* include, TiXmlElement* node);
114 static bool GetParameters(
const TiXmlElement *include,
const char *valueAttribute, Params& params);
115 static void ResolveParametersForNode(TiXmlElement *node,
const Params& params);
116 static ResolveParamsResult ResolveParameters(
const std::string& strInput, std::string& strOutput,
const Params& params);
118 std::string ResolveConstant(
const std::string &constant)
const;
119 std::string ResolveExpressions(
const std::string &expression)
const;
121 std::vector<std::string> m_files;
122 std::map<std::string, std::pair<TiXmlElement, Params>> m_includes;
123 std::map<std::string, TiXmlElement> m_defaults;
124 std::map<std::string, TiXmlElement> m_skinvariables;
125 std::map<std::string, std::string> m_constants;
126 std::map<std::string, std::string> m_expressions;
128 std::set<std::string> m_constantAttributes;
129 std::set<std::string> m_constantNodes;
131 std::set<std::string> m_expressionAttributes;
132 std::set<std::string> m_expressionNodes;
Definition: ContextMenuItem.h:23
Definition: SkinVariable.h:29
Definition: GUIIncludes.h:26