]> Pileus Git - ~andy/gtk/blobdiff - tests/prop-editor.c
wayland: Consolidate device and devicemanager implementation
[~andy/gtk] / tests / prop-editor.c
index b6b39783d1adde69d8493effa4981600761dd669..41c61f8af9117206b53c3678d7e9e68ccff8c0c5 100644 (file)
@@ -28,7 +28,7 @@ typedef struct
 {
   gpointer instance;
   GObject *alive_object;
-  guint id;
+  gulong id;
 } DisconnectData;
 
 static void
@@ -102,7 +102,7 @@ typedef struct
 {
   GObject *obj;
   GParamSpec *spec;
-  gint modified_id;
+  gulong modified_id;
 } ObjectProperty;
 
 static void
@@ -159,10 +159,10 @@ int_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
       gtk_container_child_set (GTK_CONTAINER (parent), 
-                              widget, p->spec->name, (int) adj->value, NULL);
+                              widget, p->spec->name, (int) gtk_adjustment_get_value (adj), NULL);
     }
   else
-    g_object_set (p->obj, p->spec->name, (int) adj->value, NULL);
+    g_object_set (p->obj, p->spec->name, (int) gtk_adjustment_get_value (adj), NULL);
 }
 
 static void
@@ -190,7 +190,7 @@ int_changed (GObject *object, GParamSpec *pspec, gpointer data)
 
   get_property_value (object, pspec, &val);
 
-  if (g_value_get_int (&val) != (int)adj->value)
+  if (g_value_get_int (&val) != (int)gtk_adjustment_get_value (adj))
     {
       block_controller (G_OBJECT (adj));
       gtk_adjustment_set_value (adj, g_value_get_int (&val));
@@ -211,10 +211,10 @@ uint_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
       gtk_container_child_set (GTK_CONTAINER (parent), 
-                              widget, p->spec->name, (guint) adj->value, NULL);
+                              widget, p->spec->name, (guint) gtk_adjustment_get_value (adj), NULL);
     }
   else
-    g_object_set (p->obj, p->spec->name, (guint) adj->value, NULL);
+    g_object_set (p->obj, p->spec->name, (guint) gtk_adjustment_get_value (adj), NULL);
 }
 
 static void
@@ -226,7 +226,7 @@ uint_changed (GObject *object, GParamSpec *pspec, gpointer data)
   g_value_init (&val, G_TYPE_UINT);
   get_property_value (object, pspec, &val);
 
-  if (g_value_get_uint (&val) != (guint)adj->value)
+  if (g_value_get_uint (&val) != (guint)gtk_adjustment_get_value (adj))
     {
       block_controller (G_OBJECT (adj));
       gtk_adjustment_set_value (adj, g_value_get_uint (&val));
@@ -247,10 +247,10 @@ float_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
       gtk_container_child_set (GTK_CONTAINER (parent), 
-                              widget, p->spec->name, (float) adj->value, NULL);
+                              widget, p->spec->name, (float) gtk_adjustment_get_value (adj), NULL);
     }
   else
-    g_object_set (p->obj, p->spec->name, (float) adj->value, NULL);
+    g_object_set (p->obj, p->spec->name, (float) gtk_adjustment_get_value (adj), NULL);
 }
 
 static void
@@ -262,7 +262,7 @@ float_changed (GObject *object, GParamSpec *pspec, gpointer data)
   g_value_init (&val, G_TYPE_FLOAT);
   get_property_value (object, pspec, &val);
 
-  if (g_value_get_float (&val) != (float) adj->value)
+  if (g_value_get_float (&val) != (float) gtk_adjustment_get_value (adj))
     {
       block_controller (G_OBJECT (adj));
       gtk_adjustment_set_value (adj, g_value_get_float (&val));
@@ -283,10 +283,10 @@ double_modified (GtkAdjustment *adj, gpointer data)
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
       gtk_container_child_set (GTK_CONTAINER (parent), 
-                              widget, p->spec->name, (double) adj->value, NULL);
+                              widget, p->spec->name, (double) gtk_adjustment_get_value (adj), NULL);
     }
   else
-    g_object_set (p->obj, p->spec->name, (double) adj->value, NULL);
+    g_object_set (p->obj, p->spec->name, (double) gtk_adjustment_get_value (adj), NULL);
 }
 
 static void
@@ -298,7 +298,7 @@ double_changed (GObject *object, GParamSpec *pspec, gpointer data)
   g_value_init (&val, G_TYPE_DOUBLE);
   get_property_value (object, pspec, &val);
 
-  if (g_value_get_double (&val) != adj->value)
+  if (g_value_get_double (&val) != gtk_adjustment_get_value (adj))
     {
       block_controller (G_OBJECT (adj));
       gtk_adjustment_set_value (adj, g_value_get_double (&val));
@@ -364,31 +364,34 @@ bool_modified (GtkToggleButton *tb, gpointer data)
       GtkWidget *widget = GTK_WIDGET (p->obj);
       GtkWidget *parent = gtk_widget_get_parent (widget);
 
-      gtk_container_child_set (GTK_CONTAINER (parent), 
-                              widget, p->spec->name, (int) tb->active, NULL);
+      gtk_container_child_set (GTK_CONTAINER (parent), widget,
+                               p->spec->name, (int) gtk_toggle_button_get_active (tb),
+                               NULL);
     }
   else
-    g_object_set (p->obj, p->spec->name, (int) tb->active, NULL);
+    g_object_set (p->obj, p->spec->name, (int) gtk_toggle_button_get_active (tb), NULL);
 }
 
 static void
 bool_changed (GObject *object, GParamSpec *pspec, gpointer data)
 {
   GtkToggleButton *tb = GTK_TOGGLE_BUTTON (data);
+  GtkWidget *child;
   GValue val = { 0, };  
   
   g_value_init (&val, G_TYPE_BOOLEAN);
   get_property_value (object, pspec, &val);
 
-  if (g_value_get_boolean (&val) != tb->active)
+  if (g_value_get_boolean (&val) != gtk_toggle_button_get_active (tb))
     {
       block_controller (G_OBJECT (tb));
       gtk_toggle_button_set_active (tb, g_value_get_boolean (&val));
       unblock_controller (G_OBJECT (tb));
     }
 
-  gtk_label_set_text (GTK_LABEL (GTK_BIN (tb)->child), g_value_get_boolean (&val) ?
-                      "TRUE" : "FALSE");
+  child = gtk_bin_get_child (GTK_BIN (tb));
+  gtk_label_set_text (GTK_LABEL (child),
+                      g_value_get_boolean (&val) ? "TRUE" : "FALSE");
   
   g_value_unset (&val);
 }
@@ -713,14 +716,13 @@ property_widget (GObject    *object,
 
   if (type == G_TYPE_PARAM_INT)
     {
-      adj = GTK_ADJUSTMENT (gtk_adjustment_new (G_PARAM_SPEC_INT (spec)->default_value,
-                                               G_PARAM_SPEC_INT (spec)->minimum,
-                                               G_PARAM_SPEC_INT (spec)->maximum,
-                                               1,
-                                               MAX ((G_PARAM_SPEC_INT (spec)->maximum -
-                                                     G_PARAM_SPEC_INT (spec)->minimum) / 10, 1),
-                                               0.0));
-      
+      adj = gtk_adjustment_new (G_PARAM_SPEC_INT (spec)->default_value,
+                                G_PARAM_SPEC_INT (spec)->minimum,
+                                G_PARAM_SPEC_INT (spec)->maximum,
+                                1,
+                                MAX ((G_PARAM_SPEC_INT (spec)->maximum - G_PARAM_SPEC_INT (spec)->minimum) / 10, 1),
+                                0.0);
+
       prop_edit = gtk_spin_button_new (adj, 1.0, 0);
       
       g_object_connect_property (object, spec, 
@@ -733,15 +735,13 @@ property_widget (GObject    *object,
     }
   else if (type == G_TYPE_PARAM_UINT)
     {
-      adj = GTK_ADJUSTMENT (
-                           gtk_adjustment_new (G_PARAM_SPEC_UINT (spec)->default_value,
-                                               G_PARAM_SPEC_UINT (spec)->minimum,
-                                               G_PARAM_SPEC_UINT (spec)->maximum,
-                                               1,
-                                               MAX ((G_PARAM_SPEC_UINT (spec)->maximum -
-                                                     G_PARAM_SPEC_UINT (spec)->minimum) / 10, 1),
-                                               0.0));
-      
+      adj = gtk_adjustment_new (G_PARAM_SPEC_UINT (spec)->default_value,
+                                G_PARAM_SPEC_UINT (spec)->minimum,
+                                G_PARAM_SPEC_UINT (spec)->maximum,
+                                1,
+                                MAX ((G_PARAM_SPEC_UINT (spec)->maximum - G_PARAM_SPEC_UINT (spec)->minimum) / 10, 1),
+                                0.0);
+
       prop_edit = gtk_spin_button_new (adj, 1.0, 0);
       
       g_object_connect_property (object, spec, 
@@ -754,15 +754,13 @@ property_widget (GObject    *object,
     }
   else if (type == G_TYPE_PARAM_FLOAT)
     {
+      adj = gtk_adjustment_new (G_PARAM_SPEC_FLOAT (spec)->default_value,
+                                G_PARAM_SPEC_FLOAT (spec)->minimum,
+                                G_PARAM_SPEC_FLOAT (spec)->maximum,
+                                0.1,
+                                MAX ((G_PARAM_SPEC_FLOAT (spec)->maximum - G_PARAM_SPEC_FLOAT (spec)->minimum) / 10, 0.1),
+                                0.0);
 
-      adj = GTK_ADJUSTMENT (gtk_adjustment_new (G_PARAM_SPEC_FLOAT (spec)->default_value,
-                                               G_PARAM_SPEC_FLOAT (spec)->minimum,
-                                               G_PARAM_SPEC_FLOAT (spec)->maximum,
-                                               0.1,
-                                               MAX ((G_PARAM_SPEC_FLOAT (spec)->maximum -
-                                                     G_PARAM_SPEC_FLOAT (spec)->minimum) / 10, 0.1),
-                                               0.0));
-      
       prop_edit = gtk_spin_button_new (adj, 0.1, 2);
       
       g_object_connect_property (object, spec, 
@@ -775,14 +773,13 @@ property_widget (GObject    *object,
     }
   else if (type == G_TYPE_PARAM_DOUBLE)
     {
-      adj = GTK_ADJUSTMENT (gtk_adjustment_new (G_PARAM_SPEC_DOUBLE (spec)->default_value,
-                                               G_PARAM_SPEC_DOUBLE (spec)->minimum,
-                                               G_PARAM_SPEC_DOUBLE (spec)->maximum,
-                                               0.1,
-                                               MAX ((G_PARAM_SPEC_DOUBLE (spec)->maximum -
-                                                     G_PARAM_SPEC_DOUBLE (spec)->minimum) / 10, 0.1),
-                                               0.0));
-      
+      adj = gtk_adjustment_new (G_PARAM_SPEC_DOUBLE (spec)->default_value,
+                                G_PARAM_SPEC_DOUBLE (spec)->minimum,
+                                G_PARAM_SPEC_DOUBLE (spec)->maximum,
+                                0.1,
+                                MAX ((G_PARAM_SPEC_DOUBLE (spec)->maximum - G_PARAM_SPEC_DOUBLE (spec)->minimum) / 10, 0.1),
+                                0.0);
+
       prop_edit = gtk_spin_button_new (adj, 0.1, 2);
       
       g_object_connect_property (object, spec, 
@@ -823,15 +820,15 @@ property_widget (GObject    *object,
        GEnumClass *eclass;
        gint j;
        
-       prop_edit = gtk_combo_box_new_text ();
+       prop_edit = gtk_combo_box_text_new ();
        
        eclass = G_ENUM_CLASS (g_type_class_ref (spec->value_type));
        
        j = 0;
        while (j < eclass->n_values)
          {
-           gtk_combo_box_append_text (GTK_COMBO_BOX (prop_edit),
-                                      eclass->values[j].value_name);
+           gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (prop_edit),
+                                           eclass->values[j].value_name);
            ++j;
          }
        
@@ -852,7 +849,7 @@ property_widget (GObject    *object,
        GFlagsClass *fclass;
        gint j;
        
-       prop_edit = gtk_vbox_new (FALSE, 0);
+       prop_edit = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
        
        fclass = G_FLAGS_CLASS (g_type_class_ref (spec->value_type));
        
@@ -901,7 +898,7 @@ property_widget (GObject    *object,
     {
       GtkWidget *label, *button;
 
-      prop_edit = gtk_hbox_new (FALSE, 5);
+      prop_edit = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
 
       label = gtk_label_new ("");
       button = gtk_button_new_with_label ("Properties");
@@ -912,10 +909,13 @@ property_widget (GObject    *object,
 
       gtk_container_add (GTK_CONTAINER (prop_edit), label);
       gtk_container_add (GTK_CONTAINER (prop_edit), button);
-      
+
       g_object_connect_property (object, spec,
                                 G_CALLBACK (object_changed),
                                 prop_edit, G_OBJECT (label));
+
+      /* The Properties button is not really modifying, anyway */
+      can_modify = TRUE;
     }
   else if (type == G_TYPE_PARAM_BOXED &&
            G_PARAM_SPEC_VALUE_TYPE (spec) == GDK_TYPE_COLOR)
@@ -939,6 +939,12 @@ property_widget (GObject    *object,
       gtk_misc_set_alignment (GTK_MISC (prop_edit), 0.0, 0.5);
     }
   
+  if (!can_modify)
+    gtk_widget_set_sensitive (prop_edit, FALSE);
+
+  if (g_param_spec_get_blurb (spec))
+    gtk_widget_set_tooltip_text (prop_edit, g_param_spec_get_blurb (spec));
+
   return prop_edit;
 }
 
@@ -1007,23 +1013,14 @@ properties_from_type (GObject *object,
       prop_edit = property_widget (object, spec, can_modify);
       gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
 
-      if (prop_edit)
-        {
-          if (!can_modify)
-            gtk_widget_set_sensitive (prop_edit, FALSE);
+      /* set initial value */
+      g_object_notify (object, spec->name);
 
-         if (g_param_spec_get_blurb (spec))
-           gtk_widget_set_tooltip_text (prop_edit, g_param_spec_get_blurb (spec));
-
-          /* set initial value */
-          g_object_notify (object, spec->name);
-        }
-      
       ++i;
     }
 
 
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
@@ -1090,22 +1087,13 @@ child_properties_from_object (GObject *object)
       prop_edit = property_widget (object, spec, can_modify);
       gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
 
-      if (prop_edit)
-        {
-          if (!can_modify)
-            gtk_widget_set_sensitive (prop_edit, FALSE);
-
-         if (g_param_spec_get_blurb (spec))
-           gtk_widget_set_tooltip_text (prop_edit, g_param_spec_get_blurb (spec));
+      /* set initial value */
+      gtk_widget_child_notify (GTK_WIDGET (object), spec->name);
 
-          /* set initial value */
-          gtk_widget_child_notify (GTK_WIDGET (object), spec->name);
-        }
-      
       ++i;
     }
 
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
@@ -1151,7 +1139,7 @@ children_from_object (GObject *object)
       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
       gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, i, i + 1);
 
-      prop_edit = gtk_hbox_new (FALSE, 5);
+      prop_edit = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
 
       str = object_label (object, NULL);
       label = gtk_label_new (str);
@@ -1167,7 +1155,7 @@ children_from_object (GObject *object)
       gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
     }
 
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
@@ -1206,7 +1194,7 @@ cells_from_object (GObject *object)
       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
       gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, i, i + 1);
 
-      prop_edit = gtk_hbox_new (FALSE, 5);
+      prop_edit = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
 
       str = object_label (object, NULL);
       label = gtk_label_new (str);
@@ -1222,7 +1210,7 @@ cells_from_object (GObject *object)
       gtk_table_attach_defaults (GTK_TABLE (table), prop_edit, 1, 2, i, i + 1);
     }
 
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
 
   sw = gtk_scrolled_window_new (NULL, NULL);