Commit af9d59aa authored by Matthias Clasen's avatar Matthias Clasen

Allow inspection of construct-only object properties

The 'Properties' button here is not really modifying the property
in any way, so it doesn't make sense to disable it just because
the object can only be set at construction.

This lets us poke at e.g. the cell area of an icon view.
parent f90365d4
......@@ -909,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)
......@@ -936,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;
}
......@@ -1004,18 +1013,9 @@ 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);
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);
/* set initial value */
g_object_notify (object, spec->name);
}
++i;
}
......@@ -1087,18 +1087,9 @@ 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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment