public Enum(Namespace parentNamespace, XmlBindings.Enum xmlData, Overrides.XmlBindings.Enum overrides, Dictionary <string, QualifiableType> typeDictionary, OutputDataTypes outputDataTypes) { m_stylizedName = Formatter.Prefix + Formatter.StylizeNameFromUnderscoreSeparators(xmlData.Name); if (parentNamespace != null) { m_rawName = parentNamespace.ApiName + "_" + xmlData.Name; typeDictionary[parentNamespace.RawName + "::" + xmlData.Name] = this; } else { // // Namespace of NULL indicates the global namespace. // These types aren't D2D types, and their full native name is // exactly what's in the name field (no need to prepend anything). // m_rawName = xmlData.Name; typeDictionary[xmlData.Name] = this; } m_isFlags = xmlData.IsFlags; m_enumValues = new List <EnumValue>(); foreach (XmlBindings.EnumValue valueXml in xmlData.EnumValues) { Overrides.XmlBindings.EnumValue overridesEnumValue = null; if (overrides != null) { overridesEnumValue = overrides.Values.Find(x => x.Name == valueXml.Name); } m_enumValues.Add(new EnumValue(valueXml, m_rawName, overridesEnumValue)); } bool shouldProject = false; if (overrides != null) { shouldProject = overrides.ShouldProject; if (overrides.ProjectedNameOverride != null) { m_stylizedName = Formatter.Prefix + overrides.ProjectedNameOverride; } } // One of the XML files has a mistake where it doesn't properly order its enums. if (m_isFlags) { m_enumValues.Sort(new EnumValueComparer()); } // Enums in the global namespace are defined as aliases only. By convention, only enums in a namespace are output. if (parentNamespace != null && shouldProject) { outputDataTypes.AddEnum(this); } }
public EnumValue(XmlBindings.EnumValue xmlData, Overrides.XmlBindings.EnumValue overrides) { m_nativeName = xmlData.Name; m_stylizedName = Formatter.StylizeNameFromUnderscoreSeparators(xmlData.Name); m_shouldProject = true; if (overrides != null) { if (overrides.ProjectedNameOverride != null) { m_stylizedName = overrides.ProjectedNameOverride; } m_shouldProject = overrides.ShouldProject; } m_valueExpression = GetValueExpression(xmlData); }
public EnumValue(XmlBindings.EnumValue xmlData, string containingEnumName, Overrides.XmlBindings.EnumValue overrides) { m_rawNameComponent = xmlData.Name; m_nativeName = containingEnumName + "_" + m_rawNameComponent; m_stylizedName = Formatter.StylizeNameFromUnderscoreSeparators(xmlData.Name); m_shouldProject = true; m_valueExpression = GetValueExpression(xmlData); if (overrides != null) { if (overrides.ProjectedNameOverride != null) { m_stylizedName = overrides.ProjectedNameOverride; } if (overrides.ProjectedValueOverride != null) { m_valueExpression = overrides.ProjectedValueOverride; } m_shouldProject = overrides.ShouldProject; } }