// // WriteEnumeration // public void WriteEnumeration(EnumerationFacet facet) { if (!Config.GenerateFacetBinding(facet)) { return; } WriteClassStart(facet, "enumeration"); WriteFields(facet.Fields); WriteClassEnd(facet); }
// // WriteFacetAsEnumeration // public void WriteFacetAsEnumeration(EnumerationFacet enumeration) { string objCEnumType = ObjCTypeNameFromManagedTypeName(enumeration.UnderlyingType); string objCType = ObjCTypeNameFromManagedTypeName(enumeration.Type); // output the enums as a C typedef enum. if (OutputFileType == OutputType.Interface) { WriteLine($"typedef NS_ENUM({objCEnumType}, enum{objCType}) {{"); PushTabIndent(); foreach (FieldFacet field in enumeration.Fields) { string objCFieldName = ObjCIdentifierFromManagedIdentifier(field.Name); WriteLine($"{objCType}_{objCFieldName} = {field.ConstantValue},"); } PopIndent(); WriteLine("};"); } }
// // WriteEnumeration // public void WriteEnumeration(EnumerationFacet enumeration) { string objCEnumType = ObjCTypeNameFromManagedTypeName(enumeration.UnderlyingType); string objCType = ObjCTypeNameFromManagedTypeName(enumeration.Type); // output the enums as a typedef. // note that we could also generate a class based definition. // it remains to be seen whether this is necessary. if (OutputFileType == OutputType.Interface) { if (!ImplementEnumerationsAsClasses) { WriteModuleBanner(enumeration, "enumeration"); #line default #line hidden #line 466 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write("typedef NS_ENUM("); #line default #line hidden #line 467 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(this.ToStringHelper.ToStringWithCulture(objCEnumType)); #line default #line hidden #line 467 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(", "); #line default #line hidden #line 467 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(this.ToStringHelper.ToStringWithCulture(objCType)); #line default #line hidden #line 467 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(") {\r\n"); #line default #line hidden #line 468 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" foreach (FieldFacet field in enumeration.Fields) { string objCFieldName = ObjCIdentifierFromManagedIdentifier(field.Name); #line default #line hidden #line 472 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write("\t"); #line default #line hidden #line 473 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(this.ToStringHelper.ToStringWithCulture(objCType)); #line default #line hidden #line 473 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write("_"); #line default #line hidden #line 473 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(this.ToStringHelper.ToStringWithCulture(objCFieldName)); #line default #line hidden #line 473 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(" = "); #line default #line hidden #line 473 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(this.ToStringHelper.ToStringWithCulture(field.ConstantValue)); #line default #line hidden #line 473 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write(",\r\n"); #line default #line hidden #line 474 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" } #line default #line hidden #line 476 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" this.Write("};\r\n"); #line default #line hidden #line 478 "C:\Users\jonathan\Documents\Thesaurus\Development\Dubrovnik\dotNET\Dubrovnik.Tools\Dubrovnik.Tools\Net2ObjC.tt" WriteModuleFooter(); } else { throw new Exception("Enumerations as classes not implemented"); } } }