ecere/com/dataTypes: Fixed OnGetDataFromString()
authorJerome St-Louis <jerome@ecere.com>
Sat, 18 Apr 2015 06:30:10 +0000 (02:30 -0400)
committerJerome St-Louis <jerome@ecere.com>
Wed, 9 Dec 2015 22:54:50 +0000 (17:54 -0500)
- Fixed 'float' member property
- This was not working on Linux and was preventing from setting font size

ecere/src/com/dataTypes.ec

index 0e2ebb3..e28f27e 100644 (file)
@@ -1094,7 +1094,25 @@ static bool OnGetDataFromString(Class _class, void ** data, const char * string)
                   if(memberType.type == noHeadClass || memberType.type == normalClass || memberType.type == structClass)
                      ((void (*)(void *, void *))(void *)((Property)thisMember).Set)(data, value.p);
                   else
-                     ((void (*)(void *, int))(void *)((Property)thisMember).Set)(data, value.i);
+                  {
+                     // TODO: Complete and improve this type of stuff throughout
+                     if(!strcmp(memberType.dataTypeString, "float"))
+                     {
+                        ((void (*)(void *, float))(void *)((Property)thisMember).Set)(data, value.f);
+                     }
+                     else if(!strcmp(memberType.dataTypeString, "double"))
+                     {
+                        ((void (*)(void *, double))(void *)((Property)thisMember).Set)(data, value.d);
+                     }
+                     else if(!strcmp(memberType.dataTypeString, "int64"))
+                     {
+                        ((void (*)(void *, int64))(void *)((Property)thisMember).Set)(data, value.i64);
+                     }
+                     else
+                     {
+                        ((void (*)(void *, int))(void *)((Property)thisMember).Set)(data, value.i);
+                     }
+                  }
                }
             }
          }