["ARRAY", "Dali.Property.Array", "", "Dali.Property.Array temp = new Dali.Property.Array();"],
["MAP", "Dali.Property.Map", "", "Dali.Property.Map temp = new Dali.Property.Map();"],
]
+
+# Some csharp classes are renamed ( e.g. C++ Control is called View in C#)
+$renameMap = [
+ ["Control", "View"]
+ ]
+
$daliSwigPath = String.new;
+def getCSharpName( cppClassName )
+
+ entry = $renameMap.select{ |a| a.first == cppClassName }
+ if( entry.empty?)
+ return cppClassName
+ end
+ return entry[0][1]
+end
+
# use the table above to get information for a specific type
def getCSharpType( type )
entry = $typeTable.select{ |a| a.first == type }
- if( entry == nil )
+ if( entry.empty? )
return nil
end
return entry[0]
# open the CSharp file autogenerated by SWIG
swigFiles = $daliSwigPath + "/automatic/csharp/"
- fileName =(swigFiles+daliClass.name) + ".cs"
+ # some C++ classes are renamed for C#
+ className = getCSharpName( daliClass.name )
+
+ fileName =(swigFiles + className ) + ".cs"
+
# it's possible some classes in dali-core aren't being wrapped by swig, so if the swig generated file
# doesn't exist just return
file.write("\n}\n\n}"); # re-insert the closing brackets we over-wrote
end
- puts("Injected #{daliClass.properties.length} C# Properties into #{daliClass.name}.cs".blueBackground)
+ puts("Injected #{daliClass.properties.length} C# Properties from #{daliClass.name} into #{className}.cs".blueBackground)
end
swigFiles = $daliSwigPath + "/automatic/csharp/"
# Add all the child properties to Control
- fileName = (swigFiles+"Control") + ".cs"
+ fileName = (swigFiles+"View") + ".cs"
if( ! File.exist?(fileName) )
return
file.write("\n}\n\n}"); # re-insert the closing brackets we over-wrote
end
- puts("Injected #{$childPropertyCount} C# Child Properties into #{"Control"}.cs".blueBackground)
+ puts("Injected #{$childPropertyCount} C# Child Properties into #{"View"}.cs".blueBackground)
end
#puts ( daliClass.name )
+
hasChildProperties = false
for property in daliClass.properties
propertyArg = propertyInfo[2] # e.g. ref or out
tempDeclaration = propertyInfo[3] # e.g. bool temp;
- propertyName = "#{daliClass.name}.Property.#{property.enum}"
+ csharpClassName = getCSharpName(daliClass.name);
+
+
+ propertyName = "#{csharpClassName}.Property.#{property.enum}"
if property.childProperty
- propertyName = "#{daliClass.name}.ChildProperty.#{property.enum}"
+ propertyName = "#{csharpClassName}.ChildProperty.#{property.enum}"
hasChildProperties = true
end
end
# write normal properties to the class's own csharp file
writePropertiesToCSharpFile( daliClass )
- # write child properties to Control.cs
+ # write child properties to View.cs ( on Control has child properties)
if (hasChildProperties)
writeChildPropertiesToCSharpFile( daliClass )
end