Beispiel #1
0
        //
        // WriteEnumeration
        //
        public void WriteEnumeration(EnumerationFacet facet)
        {
            if (!Config.GenerateFacetBinding(facet))
            {
                return;
            }

            WriteClassStart(facet, "enumeration");
            WriteFields(facet.Fields);
            WriteClassEnd(facet);
        }
Beispiel #2
0
        //
        // 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("};");
            }
        }
Beispiel #3
0
//
// 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");
		}
    } 

}