interval: Validate more fundamental types
authorEmmanuele Bassi <ebassi@linux.intel.com>
Mon, 18 Jun 2012 16:52:37 +0000 (17:52 +0100)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Mon, 18 Jun 2012 17:04:54 +0000 (18:04 +0100)
64bit integers and floating point values should be validated as well.

clutter/clutter-interval.c

index 3a0f303..8bace27 100644 (file)
@@ -135,6 +135,21 @@ clutter_interval_real_validate (ClutterInterval *interval,
       }
       break;
 
+    case G_TYPE_INT64:
+      {
+        GParamSpecInt64 *pspec_int = G_PARAM_SPEC_INT64 (pspec);
+        gint64 a, b;
+
+        a = b = 0;
+        clutter_interval_get_interval (interval, &a, &b);
+        if ((a >= pspec_int->minimum && a <= pspec_int->maximum) &&
+            (b >= pspec_int->minimum && b <= pspec_int->maximum))
+          return TRUE;
+        else
+          return FALSE;
+      }
+      break;
+
     case G_TYPE_UINT:
       {
         GParamSpecUInt *pspec_uint = G_PARAM_SPEC_UINT (pspec);
@@ -150,6 +165,36 @@ clutter_interval_real_validate (ClutterInterval *interval,
       }
       break;
 
+    case G_TYPE_UINT64:
+      {
+        GParamSpecUInt64 *pspec_int = G_PARAM_SPEC_UINT64 (pspec);
+        guint64 a, b;
+
+        a = b = 0;
+        clutter_interval_get_interval (interval, &a, &b);
+        if ((a >= pspec_int->minimum && a <= pspec_int->maximum) &&
+            (b >= pspec_int->minimum && b <= pspec_int->maximum))
+          return TRUE;
+        else
+          return FALSE;
+      }
+      break;
+
+    case G_TYPE_CHAR:
+      {
+        GParamSpecChar *pspec_char = G_PARAM_SPEC_CHAR (pspec);
+        guchar a, b;
+
+        a = b = 0;
+        clutter_interval_get_interval (interval, &a, &b);
+        if ((a >= pspec_char->minimum && a <= pspec_char->maximum) &&
+            (b >= pspec_char->minimum && b <= pspec_char->maximum))
+          return TRUE;
+        else
+          return FALSE;
+      }
+      break;
+
     case G_TYPE_UCHAR:
       {
         GParamSpecUChar *pspec_uchar = G_PARAM_SPEC_UCHAR (pspec);
@@ -165,6 +210,36 @@ clutter_interval_real_validate (ClutterInterval *interval,
       }
       break;
 
+    case G_TYPE_FLOAT:
+      {
+        GParamSpecFloat *pspec_flt = G_PARAM_SPEC_FLOAT (pspec);
+        float a, b;
+
+        a = b = 0.f;
+        clutter_interval_get_interval (interval, &a, &b);
+        if ((a >= pspec_flt->minimum && a <= pspec_flt->maximum) &&
+            (b >= pspec_flt->minimum && b <= pspec_flt->maximum))
+          return TRUE;
+        else
+          return FALSE;
+      }
+      break;
+
+    case G_TYPE_DOUBLE:
+      {
+        GParamSpecDouble *pspec_flt = G_PARAM_SPEC_DOUBLE (pspec);
+        double a, b;
+
+        a = b = 0;
+        clutter_interval_get_interval (interval, &a, &b);
+        if ((a >= pspec_flt->minimum && a <= pspec_flt->maximum) &&
+            (b >= pspec_flt->minimum && b <= pspec_flt->maximum))
+          return TRUE;
+        else
+          return FALSE;
+      }
+      break;
+
     case G_TYPE_BOOLEAN:
       return TRUE;