示例#1
0
		private void TranslateEnums(XmlSpecData spec, DotNetApiData api, Options options)
		{			
			foreach (var specEnum in spec.Enums.Where(x => options.EnumFilter(x)))
			{
				var enumData = new DotNetEnumData()
				{
					OriginalName = specEnum.Name,
					Name = this.InflectEnumName(specEnum.Name, options),
					Value = specEnum.Value,
                    Type = specEnum.Value.Length <= 6 ? "uint" : "ulong"
				};

                if (enumData.Value.StartsWith("-"))
                    enumData.Value = string.Format("unchecked((uint){0})", enumData.Value);

				api.Enums.Add(enumData);
			}
		}
示例#2
0
        private void TranslateEnumGroups(XmlSpecData spec, DotNetApiData api, Options options)
        {
            foreach (var specEnumGroup in spec.EnumGroups.Where(x => options.EnumGroupFilter(x.Name)))
            {
                var enumGroupData = new DotNetEnumGroupData()
                {
                    Name = specEnumGroup.Name,
                };

                foreach (var enumName in specEnumGroup.Enums.Distinct())
                {
                    var xmlEnumData = spec.Enums.SingleOrDefault(x => x.Name == enumName);

                    if (xmlEnumData == null || !options.EnumFilter(xmlEnumData))
                        continue;

                    var enumData = api.Enums.SingleOrDefault(x => x.OriginalName == enumName);

                    if (enumData == null)
                        continue;

                    enumGroupData.Enums.Add(enumData);

                    if (spec.Enums.Single(x => x.Name == enumName).Type == "bitmask")
                        enumGroupData.IsFlags = true;
                }

                api.EnumGroups.Add(enumGroupData);
            }
        }