Commit 0c0399d8 authored by Tristan Van Berkom's avatar Tristan Van Berkom
Browse files

* plugins/gtk+/gtk+.xml.in: Removed alot of virtually defined properties that were not available

	  in GTK+ 2.14, now they are available.

	* plugins/gtk+/glade-gtk.c, plugins/gtk+/glade-entry-editor.c: Enhanced the GtkEntry editor
	  to allow the user to chose between the "text" and the "buffers" exclusively.

	* plugins/gtk+/gtk+.xml.in: Fixed translation details pointed out by Johannes H. Jensen
	  in bug 607348.
parent 3be45d07
2010-03-10 Tristan Van Berkom <tvb@gnome.org>
* plugins/gtk+/gtk+.xml.in: Removed alot of virtually defined properties that were not available
in GTK+ 2.14, now they are available.
* plugins/gtk+/glade-gtk.c, plugins/gtk+/glade-entry-editor.c: Enhanced the GtkEntry editor
to allow the user to chose between the "text" and the "buffers" exclusively.
2010-03-10 Tristan Van Berkom <tvb@gnome.org>
* plugins/gtk+/glade-model-data.c: Fixed crasher when double freeing the data tree
in some idle handlers (idle handlers needed for advanced focus handling/keynav), fixes crash bug 608011.
Also make sure to create the adjustment with a 0 page size.
* plugins/gtk+/gtk+.xml.in: Fixed translation details pointed out by Johannes H. Jensen
in bug 607348.
2010-03-10 Javier Jardón <jjardon@gnome.org>
* plugins/gtk+/gtk+.xml.in: Deprecated GtkGammaCurve and GtkCurve
......
......@@ -86,6 +86,7 @@ glade_entry_editor_load (GladeEditable *editable,
{
GladeEntryEditor *entry_editor = GLADE_ENTRY_EDITOR (editable);
GladeImageEditMode icon_mode;
gboolean use_buffer = FALSE;
GList *l;
entry_editor->loading = TRUE;
......@@ -129,8 +130,14 @@ glade_entry_editor_load (GladeEditable *editable,
if (widget)
{
glade_widget_property_get (widget, "primary-icon-mode", &icon_mode);
glade_widget_property_get (widget, "use-entry-buffer", &use_buffer);
if (use_buffer)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (entry_editor->buffer_radio), TRUE);
else
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (entry_editor->text_radio), TRUE);
glade_widget_property_get (widget, "primary-icon-mode", &icon_mode);
switch (icon_mode)
{
case GLADE_IMAGE_MODE_STOCK:
......@@ -147,7 +154,6 @@ glade_entry_editor_load (GladeEditable *editable,
}
glade_widget_property_get (widget, "secondary-icon-mode", &icon_mode);
switch (icon_mode)
{
case GLADE_IMAGE_MODE_STOCK:
......@@ -206,6 +212,77 @@ glade_entry_editor_grab_focus (GtkWidget *widget)
}
static void
text_toggled (GtkWidget *widget,
GladeEntryEditor *entry_editor)
{
GladeProperty *property;
if (entry_editor->loading || !entry_editor->loaded_widget)
return;
if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (entry_editor->text_radio)))
return;
entry_editor->modifying = TRUE;
glade_command_push_group (_("Setting %s to use static text"), entry_editor->loaded_widget->name);
property = glade_widget_get_property (entry_editor->loaded_widget, "buffer");
glade_command_set_property (property, NULL);
property = glade_widget_get_property (entry_editor->loaded_widget, "use-entry-buffer");
glade_command_set_property (property, FALSE);
/* Text will only take effect after setting the property under the hood */
property = glade_widget_get_property (entry_editor->loaded_widget, "text");
glade_command_set_property (property, NULL);
/* Incase the NULL text didnt change */
glade_property_sync (property);
glade_command_pop_group ();
entry_editor->modifying = FALSE;
/* reload buttons and sensitivity and stuff... */
glade_editable_load (GLADE_EDITABLE (entry_editor),
entry_editor->loaded_widget);
}
static void
buffer_toggled (GtkWidget *widget,
GladeEntryEditor *entry_editor)
{
GladeProperty *property;
if (entry_editor->loading || !entry_editor->loaded_widget)
return;
if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (entry_editor->buffer_radio)))
return;
entry_editor->modifying = TRUE;
glade_command_push_group (_("Setting %s to use an external buffer"), entry_editor->loaded_widget->name);
/* Reset the text while still in static text mode */
property = glade_widget_get_property (entry_editor->loaded_widget, "text");
glade_command_set_property (property, NULL);
property = glade_widget_get_property (entry_editor->loaded_widget, "use-entry-buffer");
glade_command_set_property (property, TRUE);
glade_command_pop_group ();
entry_editor->modifying = FALSE;
/* reload buttons and sensitivity and stuff... */
glade_editable_load (GLADE_EDITABLE (entry_editor),
entry_editor->loaded_widget);
}
#define ICON_MODE_NAME(primary) ((primary) ? "primary-icon-mode" : "secondary-icon-mode")
#define PIXBUF_NAME(primary) ((primary) ? "primary-icon-pixbuf" : "secondary-icon-pixbuf")
#define ICON_NAME_NAME(primary) ((primary) ? "primary-icon-name" : "secondary-icon-name")
......@@ -438,6 +515,50 @@ glade_entry_editor_new (GladeWidgetAdaptor *adaptor,
/* Pack the parent on top... */
gtk_box_pack_start (GTK_BOX (entry_editor), GTK_WIDGET (embed), FALSE, FALSE, 0);
/* Text... */
str = g_strdup_printf ("<b>%s</b>", _("Text"));
label = gtk_label_new (str);
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
g_free (str);
frame = gtk_frame_new (NULL);
gtk_frame_set_label_widget (GTK_FRAME (frame), label);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
gtk_box_pack_start (GTK_BOX (entry_editor), frame, FALSE, FALSE, 8);
alignment = gtk_alignment_new (0.5F, 0.5F, 1.0F, 1.0F);
gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
gtk_container_add (GTK_CONTAINER (frame), alignment);
table = gtk_table_new (0, 0, FALSE);
gtk_container_add (GTK_CONTAINER (alignment), table);
group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
/* Text */
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "text", FALSE, TRUE);
hbox = gtk_hbox_new (FALSE, 0);
entry_editor->text_radio = gtk_radio_button_new (NULL);
gtk_box_pack_start (GTK_BOX (hbox), entry_editor->text_radio, FALSE, FALSE, 2);
gtk_box_pack_start (GTK_BOX (hbox), eprop->item_label, TRUE, TRUE, 2);
table_attach (table, hbox, 0, 0, group);
table_attach (table, GTK_WIDGET (eprop), 1, 0, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
/* Buffer */
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "buffer", FALSE, TRUE);
hbox = gtk_hbox_new (FALSE, 0);
entry_editor->buffer_radio = gtk_radio_button_new_from_widget
(GTK_RADIO_BUTTON (entry_editor->text_radio));
gtk_box_pack_start (GTK_BOX (hbox), entry_editor->buffer_radio, FALSE, FALSE, 2);
gtk_box_pack_start (GTK_BOX (hbox), eprop->item_label, TRUE, TRUE, 2);
table_attach (table, hbox, 0, 1, group);
table_attach (table, GTK_WIDGET (eprop), 1, 1, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
g_object_unref (group);
/* Progress... */
str = g_strdup_printf ("<b>%s</b>", _("Progress"));
label = gtk_label_new (str);
......@@ -522,6 +643,7 @@ glade_entry_editor_new (GladeWidgetAdaptor *adaptor,
table_attach (table, GTK_WIDGET (eprop), 1, 2, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
/* Other primary icon related properties */
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "primary-icon-activatable", FALSE, TRUE);
table_attach (table, eprop->item_label, 0, 3, group);
table_attach (table, GTK_WIDGET (eprop), 1, 3, group);
......@@ -532,6 +654,16 @@ glade_entry_editor_new (GladeWidgetAdaptor *adaptor,
table_attach (table, GTK_WIDGET (eprop), 1, 4, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "primary-icon-tooltip-text", FALSE, TRUE);
table_attach (table, eprop->item_label, 0, 5, group);
table_attach (table, GTK_WIDGET (eprop), 1, 5, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "primary-icon-tooltip-markup", FALSE, TRUE);
table_attach (table, eprop->item_label, 0, 6, group);
table_attach (table, GTK_WIDGET (eprop), 1, 6, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
g_object_unref (group);
/* Secondary icon... */
......@@ -585,6 +717,7 @@ glade_entry_editor_new (GladeWidgetAdaptor *adaptor,
table_attach (table, GTK_WIDGET (eprop), 1, 2, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
/* Other secondary icon related properties */
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "secondary-icon-activatable", FALSE, TRUE);
table_attach (table, eprop->item_label, 0, 3, group);
table_attach (table, GTK_WIDGET (eprop), 1, 3, group);
......@@ -595,12 +728,27 @@ glade_entry_editor_new (GladeWidgetAdaptor *adaptor,
table_attach (table, GTK_WIDGET (eprop), 1, 4, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "secondary-icon-tooltip-text", FALSE, TRUE);
table_attach (table, eprop->item_label, 0, 5, group);
table_attach (table, GTK_WIDGET (eprop), 1, 5, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
eprop = glade_widget_adaptor_create_eprop_by_name (adaptor, "secondary-icon-tooltip-markup", FALSE, TRUE);
table_attach (table, eprop->item_label, 0, 6, group);
table_attach (table, GTK_WIDGET (eprop), 1, 6, group);
entry_editor->properties = g_list_prepend (entry_editor->properties, eprop);
g_object_unref (group);
gtk_widget_show_all (GTK_WIDGET (entry_editor));
/* Connect radio button signals... */
g_signal_connect (G_OBJECT (entry_editor->text_radio), "toggled",
G_CALLBACK (text_toggled), entry_editor);
g_signal_connect (G_OBJECT (entry_editor->buffer_radio), "toggled",
G_CALLBACK (buffer_toggled), entry_editor);
g_signal_connect (G_OBJECT (entry_editor->primary_stock_radio), "toggled",
G_CALLBACK (primary_stock_toggled), entry_editor);
g_signal_connect (G_OBJECT (entry_editor->primary_icon_name_radio), "toggled",
......
......@@ -44,6 +44,9 @@ struct _GladeEntryEditor
GtkWidget *embed;
GtkWidget *text_radio;
GtkWidget *buffer_radio;
GtkWidget *primary_pixbuf_radio;
GtkWidget *primary_stock_radio;
GtkWidget *primary_icon_name_radio;
......
......@@ -4847,11 +4847,25 @@ glade_gtk_expander_write_child (GladeWidgetAdaptor *adaptor,
/* -------------------------------- GtkEntry -------------------------------- */
gboolean
glade_gtk_entry_depends (GladeWidgetAdaptor *adaptor,
GladeWidget *widget,
GladeWidget *another)
{
if (GTK_IS_ENTRY_BUFFER (another->object))
return TRUE;
return GWA_GET_CLASS (GTK_TYPE_WIDGET)->depends (adaptor, widget, another);
}
static void
glade_gtk_entry_changed (GtkEditable *editable, GladeWidget *gentry)
{
const gchar *text, *text_prop;
GladeProperty *prop;
GladeProperty *prop;
gboolean use_buffer;
if (glade_widget_superuser ())
return;
......@@ -4859,10 +4873,13 @@ glade_gtk_entry_changed (GtkEditable *editable, GladeWidget *gentry)
text = gtk_entry_get_text (GTK_ENTRY (editable));
glade_widget_property_get (gentry, "text", &text_prop);
glade_widget_property_get (gentry, "use-entry-buffer", &use_buffer);
if (strcmp (text, text_prop))
if (use_buffer == FALSE && g_strcmp0 (text, text_prop))
{
if ((prop = glade_widget_get_property (gentry, "text")))
glade_command_set_property (prop, text);
}
}
void
......@@ -4906,7 +4923,17 @@ glade_gtk_entry_set_property (GladeWidgetAdaptor *adaptor,
GladeWidget *gwidget = glade_widget_get_from_gobject (object);
GladeProperty *property = glade_widget_get_property (gwidget, id);
if (!strcmp (id, "primary-icon-mode"))
if (!strcmp (id, "use-entry-buffer"))
{
glade_widget_property_set_sensitive (gwidget, "text", FALSE, NOT_SELECTED_MSG);
glade_widget_property_set_sensitive (gwidget, "buffer", FALSE, NOT_SELECTED_MSG);
if (g_value_get_boolean (value))
glade_widget_property_set_sensitive (gwidget, "buffer", TRUE, NULL);
else
glade_widget_property_set_sensitive (gwidget, "text", TRUE, NULL);
}
else if (!strcmp (id, "primary-icon-mode"))
{
mode = g_value_get_int (value);
......@@ -4946,6 +4973,18 @@ glade_gtk_entry_set_property (GladeWidgetAdaptor *adaptor,
break;
}
}
else if (!strcmp (id, "text"))
{
g_signal_handlers_block_by_func (object, glade_gtk_entry_changed, gwidget);
if (g_value_get_string (value))
gtk_entry_set_text (GTK_ENTRY (object), g_value_get_string (value));
else
gtk_entry_set_text (GTK_ENTRY (object), "");
g_signal_handlers_unblock_by_func (object, glade_gtk_entry_changed, gwidget);
}
else if (property->klass->version_since_major <= gtk_major_version &&
property->klass->version_since_minor <= (gtk_minor_version + 1))
GWA_GET_CLASS (GTK_TYPE_WIDGET)->set_property (adaptor, object, id, value);
......@@ -4964,7 +5003,20 @@ glade_gtk_entry_read_widget (GladeWidgetAdaptor *adaptor,
/* First chain up and read in all the normal properties.. */
GWA_GET_CLASS (GTK_TYPE_WIDGET)->read_widget (adaptor, widget, node);
if (glade_widget_property_original_default (widget, "text") == FALSE)
{
property = glade_widget_get_property (widget, "text");
glade_widget_property_set (widget, "use-entry-buffer", FALSE);
}
else
{
property = glade_widget_get_property (widget, "buffer");
glade_widget_property_set (widget, "use-entry-buffer", TRUE);
}
glade_property_sync (property);
if (glade_widget_property_original_default (widget, "primary-icon-name") == FALSE)
{
property = glade_widget_get_property (widget, "primary-icon-name");
......@@ -8625,13 +8677,16 @@ glade_gtk_entry_buffer_changed (GtkTextBuffer *buffer,
GladeProperty *prop;
gchar *text = NULL;
if (glade_widget_superuser ())
return;
g_object_get (buffer, "text", &text, NULL);
if ((prop = glade_widget_get_property (gbuffy, "text")))
{
glade_property_get (prop, &text_prop);
if (text_prop == NULL || text == NULL || strcmp (text, text_prop))
if (text_prop == NULL || g_strcmp0 (text, text_prop))
glade_command_set_property (prop, text);
}
g_free (text);
......@@ -8652,6 +8707,33 @@ glade_gtk_entry_buffer_post_create (GladeWidgetAdaptor *adaptor,
}
void
glade_gtk_entry_buffer_set_property (GladeWidgetAdaptor *adaptor,
GObject *object,
const gchar *id,
const GValue *value)
{
GladeWidget *gwidget = glade_widget_get_from_gobject (object);
GladeProperty *property = glade_widget_get_property (gwidget, id);
if (!strcmp (id, "text"))
{
g_signal_handlers_block_by_func (object, glade_gtk_entry_buffer_changed, gwidget);
if (g_value_get_string (value))
gtk_entry_buffer_set_text (GTK_ENTRY_BUFFER (object), g_value_get_string (value), -1);
else
gtk_entry_buffer_set_text (GTK_ENTRY_BUFFER (object), "", -1);
g_signal_handlers_unblock_by_func (object, glade_gtk_entry_buffer_changed, gwidget);
}
else if (property->klass->version_since_major <= gtk_major_version &&
property->klass->version_since_minor <= (gtk_minor_version + 1))
GWA_GET_CLASS (G_TYPE_OBJECT)->set_property (adaptor, object, id, value);
}
/* ----------------------------- GtkTextBuffer ------------------------------ */
static void
......
......@@ -458,32 +458,13 @@ embedded in another object</_tooltip>
<property id="accel-path" since="2.14"/>
<property id="right-justified" since="2.14"/>
<property id="width-chars" since="2.14"/>
<property id="label" _name="Label" translatable="True" gtkbuilder-since="2.16">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
<_tooltip>The text of the menu item</_tooltip>
</property>
<property id="use-underline" _name="Use Underline" gtkbuilder-since="2.16">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
<_tooltip>If set, an underline in the text indicates the next character should be used for the mnemonic accelerator key</_tooltip>
</property>
<property id="label" _name="Label" translatable="True" gtkbuilder-since="2.16"/>
<property id="use-underline" _name="Use Underline" gtkbuilder-since="2.16"/>
<!-- GtkActivatable -->
<property id="related-action" _name="Related Action" custom-layout="True" since="2.16">
<parameter-spec>
<type>GParamObject</type>
<value-type>GtkAction</value-type>
</parameter-spec>
</property>
<property id="related-action" _name="Related Action" custom-layout="True" since="2.16"/>
<property id="use-action-appearance" _name="Use Action Appearance"
custom-layout="True" needs-sync="True" default="False" since="2.16">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
custom-layout="True" needs-sync="True" default="False" since="2.16"/>
<!-- Atk click property -->
<property id="atk-click" _name="Click" ignore="True" atk-property="True" save="False">
......@@ -508,11 +489,7 @@ embedded in another object</_tooltip>
<remove-child-function>glade_gtk_image_menu_item_remove_child</remove-child-function>
<create-editable-function>glade_gtk_image_menu_item_create_editable</create-editable-function>
<properties>
<property id="use-stock" default="True" visible="False" save-always="True" gtkbuilder-since="2.16">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
<property id="use-stock" default="True" visible="False" save-always="True" gtkbuilder-since="2.16"/>
<property id="stock" stock="True" _name="Stock Item" save="False" custom-layout="True">
<parameter-spec>
<type>GParamString</type>
......@@ -523,13 +500,7 @@ embedded in another object</_tooltip>
<property id="label" save="False" custom-layout="True"/>
<property id="use-underline" custom-layout="True"/>
<property id="image" libglade-unsupported="True" parentless-widget="True" visible="False"/>
<property id="accel-group" _name="Accel Group" custom-layout="True" since="2.16" libglade-unsupported="True">
<parameter-spec>
<type>GParamObject</type>
<value-type>GtkAccelGroup</value-type>
</parameter-spec>
<_tooltip>An accel group for accelerators from stock items</_tooltip>
</property>
<property id="accel-group" _name="Accel Group" custom-layout="True" since="2.16" libglade-unsupported="True"/>
<!--
This property is added by glade2 gnome support and makes reference to
GNOMEUIINFO_MENU_* macros. The read-widget-funcion maps these properties to
......@@ -648,20 +619,11 @@ embedded in another object</_tooltip>
<properties>
<!-- GtkActivatable -->
<property id="related-action" _name="Related Action" custom-layout="True" since="2.16">
<parameter-spec>
<type>GParamObject</type>
<value-type>GtkAction</value-type>
</parameter-spec>
</property>
<property id="use-action-appearance" _name="Use Action Appearance" custom-layout="True" default="False" since="2.16">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
<property id="related-action" _name="Related Action" custom-layout="True" since="2.16"/>
<property id="use-action-appearance" _name="Use Action Appearance" custom-layout="True"
default="False" since="2.16"/>
</properties>
</glade-widget-class>
<glade-widget-class name="GtkSeparatorToolItem" generic-name="separatortoolitem" _title="Separator Tool Item"/>
......@@ -829,6 +791,7 @@ embedded in another object</_tooltip>
<create-editable-function>glade_gtk_entry_create_editable</create-editable-function>
<set-property-function>glade_gtk_entry_set_property</set-property-function>
<read-widget-function>glade_gtk_entry_read_widget</read-widget-function>
<depends-function>glade_gtk_entry_depends</depends-function>
<signals>
<signal id="icon-press" since="2.16"/>
......@@ -837,107 +800,46 @@ embedded in another object</_tooltip>
</signals>
<properties>
<property id="text" translatable="True"/>
<property id="text" translatable="True" custom-layout="True"/>
<property id="buffer" libglade-unsupported="True" create-type="GtkEntryBuffer" since="2.18" custom-layout="True"/>
<property id="inner-border" since="2.10"/>
<property id="truncate-multiline" since="2.10"/>
<property id="shadow-type" since="2.12"/>
<property id="editing-canceled" disabled="True" since="2.20"/>
<property id="buffer" libglade-unsupported="True" create-type="GtkEntryBuffer" since="2.18"/>
<property id="primary-icon-gicon" disabled="True"/>
<property id="secondary-icon-gicon" disabled="True"/>
<property id="primary-icon-stock" _name="Primary Stock Icon" since="2.16" custom-layout="True" stock-icon="True">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
</property>
<property id="secondary-icon-stock" _name="Secondary Stock Icon" since="2.16" custom-layout="True" stock-icon="True">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
</property>
<property id="primary-icon-pixbuf" _name="Primary Icon Pixbuf" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamObject</type>
<value-type>GdkPixbuf</value-type>
</parameter-spec>
</property>
<property id="secondary-icon-pixbuf" _name="Secondary Icon Pixbuf" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamObject</type>
<value-type>GdkPixbuf</value-type>
</parameter-spec>
</property>
<property id="primary-icon-name" _name="Primary Icon Name" since="2.16" custom-layout="True" themed-icon="True">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
</property>
<property id="secondary-icon-name" _name="Secondary Icon Name" since="2.16" custom-layout="True" themed-icon="True">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
</property>
<property id="primary-icon-activatable" _name="Primary Icon Activatable" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
<property id="secondary-icon-activatable" _name="Secondary Icon Activatable" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
<property id="primary-icon-sensitive" _name="Primary Icon Sensitive" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
<property id="secondary-icon-sensitive" _name="Secondary Icon Sensitive" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
<property id="progress-fraction" _name="Progress Fraction" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamDouble</type>
</parameter-spec>
</property>
<property id="progress-pulse-step" _name="Progress Pulse Step" since="2.16" custom-layout="True">
<parameter-spec>
<type>GParamDouble</type>
</parameter-spec>
</property>
<property id="primary-icon-stock" _name="Primary Stock Icon" since="2.16" custom-layout="True" stock-icon="True"/>
<property id="secondary-icon-stock" _name="Secondary Stock Icon" since="2.16" custom-layout="True" stock-icon="True"/>
<property id="primary-icon-pixbuf" _name="Primary Icon Pixbuf" since="2.16" custom-layout="True"/>
<property id="secondary-icon-pixbuf" _name="Secondary Icon Pixbuf" since="2.16" custom-layout="True"/>
<property id="primary-icon-name" _name="Primary Icon Name" since="2.16" custom-layout="True" themed-icon="True"/>
<property id="secondary-icon-name" _name="Secondary Icon Name" since="2.16" custom-layout="True" themed-icon="True"/>
<property id="primary-icon-activatable" _name="Primary Icon Activatable" since="2.16" custom-layout="True"/>
<property id="secondary-icon-activatable" _name="Secondary Icon Activatable" since="2.16" custom-layout="True"/>
<property id="primary-icon-sensitive" _name="Primary Icon Sensitive" since="2.16" custom-layout="True"/>
<property id="secondary-icon-sensitive" _name="Secondary Icon Sensitive" since="2.16" custom-layout="True"/>
<property id="progress-fraction" _name="Progress Fraction" since="2.16" custom-layout="True"/>
<property id="progress-pulse-step" _name="Progress Pulse Step" since="2.16" custom-layout="True"/>
<property id="invisible-char-set" _name="Invisible Char Set" since="2.16"/>
<property id="primary-icon-tooltip-text" translatable="True" _name="Primary Icon Tooltip Text"
custom-layout="True" since="2.16"/>
<property id="secondary-icon-tooltip-text" translatable="True" _name="Secondary Icon Tooltip Text"
custom-layout="True" since="2.16"/>
<property id="primary-icon-tooltip-markup" translatable="True" _name="Primary Icon Tooltip Markup"
custom-layout="True" since="2.16"/>
<property id="secondary-icon-tooltip-markup" translatable="True" _name="Secondary Icon Tooltip Markup"
custom-layout="True" since="2.16"/>
<property id="invisible-char-set" _name="Invisible Char Set" since="2.16">
<property id="im-module" disabled="True"/>
<!-- Virtual edit mode properties -->
<property id="use-entry-buffer" visible="False" save="False" default="False">
<parameter-spec>
<type>GParamBoolean</type>
</parameter-spec>
</property>
<property id="primary-icon-tooltip-text" _name="Primary Icon Tooltip Text" since="2.16">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
</property>
<property id="secondary-icon-tooltip-text" _name="Secondary Icon Tooltip Text" since="2.16">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
</property>
<property id="primary-icon-tooltip-markup" _name="Primary Icon Tooltip Markup" since="2.16">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>
</property>
<property id="secondary-icon-tooltip-markup" _name="Secondary Icon Tooltip Markup" since="2.16">
<parameter-spec>
<type>GParamString</type>
</parameter-spec>