[POS-commit] r280 - libglade
Johan Dahlin
jdahlin at async.com.br
Thu Mar 31 20:16:54 BRT 2005
Author: jdahlin
Date: 2005-03-31 20:16:53 -0300 (Thu, 31 Mar 2005)
New Revision: 280
Modified:
libglade/glade-gtk.c
Log:
Add support for accelerators, add back a fake noop property for it too. God, so many hacks
Modified: libglade/glade-gtk.c
===================================================================
--- libglade/glade-gtk.c 2005-03-31 22:40:49 UTC (rev 279)
+++ libglade/glade-gtk.c 2005-03-31 23:16:53 UTC (rev 280)
@@ -37,6 +37,12 @@
#define FLOAT(s) (g_strtod ((s), NULL))
static void
+noop(GladeXML *xml, GObject *obj,
+ const gchar *prop_name, const gchar *prop_value)
+{
+}
+
+static void
set_visible(GladeXML *xml, GObject *obj,
const gchar *prop_name, const gchar *prop_value)
{
@@ -450,8 +456,9 @@
action_group_build_children(GladeXML *self, GObject *obj,
GladeObjectInfo *info)
{
- gint i;
-
+ gint i, j;
+ gchar *accelerator = NULL;
+
if (info->n_children == 0)
return;
@@ -461,8 +468,19 @@
GladeObjectInfo *childinfo = info->children[i].child;
child = glade_xml_build_object(self, childinfo);
- /* TODO: accelerator and callback */
- gtk_action_group_add_action(GTK_ACTION_GROUP(obj), GTK_ACTION(child));
+
+ for (j = 0; j < childinfo->n_properties; j++)
+ if (!strcmp (childinfo->properties[j].name, "accelerator"))
+ accelerator = childinfo->properties[j].value;
+
+ if (accelerator)
+ gtk_action_group_add_action_with_accel(GTK_ACTION_GROUP(obj),
+ GTK_ACTION(child),
+ accelerator);
+ else
+ gtk_action_group_add_action(GTK_ACTION_GROUP(obj),
+ GTK_ACTION(child));
+ accelerator = NULL;
}
g_object_unref(obj);
}
@@ -934,7 +952,7 @@
glade_register_custom_prop (GTK_TYPE_WIDGET, "has_default", set_has_default);
glade_register_custom_prop (GTK_TYPE_WIDGET, "has_focus", set_has_focus);
glade_register_custom_prop (GTK_TYPE_WIDGET, "sizegroup", set_sizegroup);
-
+ glade_register_custom_prop (GTK_TYPE_ACTION, "accelerator", noop);
glade_register_custom_prop (GTK_TYPE_BUTTON, "response_id", button_set_response_id);
glade_register_custom_prop (GTK_TYPE_CALENDAR, "display_options", calendar_set_display_options);
glade_register_custom_prop (GTK_TYPE_COMBO_BOX, "items", combo_box_set_items);
More information about the POS-commit
mailing list