Exclude ControlData from Properties in ruby script
[platform/core/uifw/dali-toolkit.git] / plugins / dali-swig / property-wrapper.rb
index 9d8394c..2701826 100755 (executable)
@@ -20,8 +20,8 @@ $typeTable =  [
         ["VECTOR4",     "Vector4",          "",     "Vector4 temp = new Vector4(0.0f,0.0f,0.0f,0.0f);"],
         ["MATRIX3",     "Matrix3",          "",     "Matrix3 temp = new Matrix3();"],
         ["MATRIX",      "Matrix",           "",     "Matrix temp = new Matrix();"  ],
-        ["RECTANGLE",   "RectInteger",      "",     "RectInteger temp = new RectInteger(0,0,0,0);"],
-        ["ROTATION",    "Quaternion",       "",    "Quaternion temp = new Quaternion();"],
+        ["RECTANGLE",   "Rectangle",        "",     "Rectangle temp = new Rectangle(0,0,0,0);"],
+        ["ROTATION",    "Rotation",       "",     "Rotation temp = new Rotation();"],
         ["STRING",      "string",           "out",  "string temp;"],
         ["ARRAY",       "Dali.Property.Array",   "",     "Dali.Property.Array temp = new Dali.Property.Array();"],
         ["MAP",         "Dali.Property.Map",     "",     "Dali.Property.Map temp = new Dali.Property.Map();"],
@@ -119,6 +119,14 @@ def extractToolkitPropertyInfo( propertyMacro )
     # Extract the property name, type
     property = $propertyStruct.new;
 
+    #First strip out any comments at the end of the macro, some have text like // deprecated
+    commentIndex = propertyMacro.index("//");
+
+    if( commentIndex )
+        propertyMacro = propertyMacro.slice(0..commentIndex-1)
+    end
+
+
     # Split the macro definition by comma and quotes, close bracket and delete any empty segments
     data = propertyMacro.split(/[\s,")]/).reject { |s| s.empty? }
 
@@ -177,6 +185,7 @@ def extractToolkitPropertyInfo( propertyMacro )
         property.type = data[4]
       end
 
+      # last item should be property enum, e.g. INPUT_POINT_SIZE
       property.enum = data[data.length-1]
 
     end
@@ -303,6 +312,13 @@ def writeCSharpData
                 next
             end
 
+            #exception case <<<
+            #Tooltip gives swig build error
+            if( property.name == "Tooltip" || property.name == "Color")
+                next
+            end
+            #exception case >>>
+
             $totalProperties+=1  #  keep track of total
 
             propertyType = propertyInfo[1]    # e.g. bool or int
@@ -319,9 +335,9 @@ def writeCSharpData
               hasChildProperties = true
             end
 
-            property.csharpGetter ="  public #{propertyType} #{property.name} \n"\
-                     "  { \n"\
-                     "    get \n" \
+            property.csharpGetter ="  public #{propertyType} #{property.name}\n"\
+                     "  {\n"\
+                     "    get\n" \
                      "    {\n"\
                      "      #{tempDeclaration}\n"\
                      "      GetProperty( #{propertyName}).Get( #{propertyArg} temp );\n"\
@@ -330,14 +346,31 @@ def writeCSharpData
 
             if property.writable
                   #text.SetProperty(TextLabel.Property.HORIZONTAL_ALIGNMENT, new Property.Value("CENTER"));
-                  property.csharpSetter = "    set \n" \
-                         "    { \n"\
+                  property.csharpSetter = "    set\n" \
+                         "    {\n"\
                          "      SetProperty( #{propertyName}, new Dali.Property.Value( value ) );\n" \
                          "    }\n"\
                          "  }\n"
             else
                    property.csharpSetter = "}"  # close the opening property declaration
             end
+
+            #exception case <<<
+            if( property.name == "Behavior" )
+                property.csharpGetter ="  public Layer.LayerBehavior #{property.name} \n"\
+                     "  { \n"\
+                     "    get \n" \
+                     "    {\n"\
+                     "      return GetBehavior();\n"\
+                     "    }\n"
+
+                property.csharpSetter = "    set \n" \
+                     "    { \n"\
+                     "      SetBehavior( value );\n" \
+                     "    }\n"\
+                     "  }\n"
+            end
+            #exception case >>>
         end
         # write normal properties to the class's own csharp file
         writePropertiesToCSharpFile( daliClass )
@@ -470,13 +503,16 @@ def writeDaliToolkitProperties
       #puts(className);
       #puts(fileName);
 
-        # Get the property information ( name, type, read/writeable)
+      # Get the property information ( name, type, read/writeable)
       propertyInfo = extractToolkitPropertyInfo( macro );
 
       # get or create a new DALi class item which stores the property information
       classItem  = getDaliClassItem( className )
 
-      classItem.properties.push( propertyInfo )
+      # exclusion of control-data-impl
+      if ( className != "ControlData" )
+        classItem.properties.push( propertyInfo )
+      end
 
     end