summaryrefslogtreecommitdiff
path: root/plugins/gtk+/glade-accels.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2010-12-30 20:19:58 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-12-30 20:19:58 +0900
commitbc939d5ff620e650ad4ff19b7b8387b44478d36e (patch)
tree23812a0e3385f86d208277e676e209ed280a4b01 /plugins/gtk+/glade-accels.c
parent7608035b9a6b312b6f7de084427ac9ddea18f09e (diff)
downloadglade-bc939d5ff620e650ad4ff19b7b8387b44478d36e.tar.gz
* ALL SOURCE FILES: Removed 8-space indentation, reformatted all code with:
indent \ --braces-after-if-line \ --case-brace-indentation0 \ --case-indentation2 \ --braces-after-struct-decl-line \ --line-length80 --no-tabs \ --dont-line-up-parentheses \ --continuation-indentation4 \ --continue-at-parentheses \ --honour-newlines --tab-size8 --indent-level2 -nbbo
Diffstat (limited to 'plugins/gtk+/glade-accels.c')
-rw-r--r--plugins/gtk+/glade-accels.c1339
1 files changed, 677 insertions, 662 deletions
diff --git a/plugins/gtk+/glade-accels.c b/plugins/gtk+/glade-accels.c
index 3b529628..bd32252a 100644
--- a/plugins/gtk+/glade-accels.c
+++ b/plugins/gtk+/glade-accels.c
@@ -1,4 +1,3 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright (C) 2008 Tristan Van Berkom
*
@@ -32,81 +31,81 @@
#define GLADE_RESPONSE_CLEAR 42
GList *
-glade_accel_list_copy (GList *accels)
+glade_accel_list_copy (GList * accels)
{
- GList *ret = NULL, *list;
- GladeAccelInfo *info, *dup_info;
+ GList *ret = NULL, *list;
+ GladeAccelInfo *info, *dup_info;
- for (list = accels; list; list = list->next)
- {
- info = list->data;
+ for (list = accels; list; list = list->next)
+ {
+ info = list->data;
- dup_info = g_new0 (GladeAccelInfo, 1);
- dup_info->signal = g_strdup (info->signal);
- dup_info->key = info->key;
- dup_info->modifiers = info->modifiers;
+ dup_info = g_new0 (GladeAccelInfo, 1);
+ dup_info->signal = g_strdup (info->signal);
+ dup_info->key = info->key;
+ dup_info->modifiers = info->modifiers;
- ret = g_list_prepend (ret, dup_info);
- }
+ ret = g_list_prepend (ret, dup_info);
+ }
- return g_list_reverse (ret);
+ return g_list_reverse (ret);
}
void
-glade_accel_list_free (GList *accels)
+glade_accel_list_free (GList * accels)
{
- GList *list;
- GladeAccelInfo *info;
+ GList *list;
+ GladeAccelInfo *info;
- for (list = accels; list; list = list->next)
- {
- info = list->data;
+ for (list = accels; list; list = list->next)
+ {
+ info = list->data;
- g_free (info->signal);
- g_free (info);
- }
- g_list_free (accels);
+ g_free (info->signal);
+ g_free (info);
+ }
+ g_list_free (accels);
}
GType
glade_accel_glist_get_type (void)
{
- static GType type_id = 0;
-
- if (!type_id)
- type_id = g_boxed_type_register_static
- ("GladeAccelGList",
- (GBoxedCopyFunc) glade_accel_list_copy,
- (GBoxedFreeFunc) glade_accel_list_free);
- return type_id;
+ static GType type_id = 0;
+
+ if (!type_id)
+ type_id = g_boxed_type_register_static
+ ("GladeAccelGList",
+ (GBoxedCopyFunc) glade_accel_list_copy,
+ (GBoxedFreeFunc) glade_accel_list_free);
+ return type_id;
}
/* This is not used to save in the glade file... and its a one-way conversion.
* its only usefull to show the values in the UI.
*/
gchar *
-glade_accels_make_string (GList *accels)
+glade_accels_make_string (GList * accels)
{
- GladeAccelInfo *info;
- GString *string;
- GList *list;
- gchar *accel_text;
+ GladeAccelInfo *info;
+ GString *string;
+ GList *list;
+ gchar *accel_text;
- string = g_string_new ("");
+ string = g_string_new ("");
- for (list = accels; list; list = list->next)
- {
- info = list->data;
+ for (list = accels; list; list = list->next)
+ {
+ info = list->data;
- accel_text = gtk_accelerator_name (info->key, info->modifiers);
- g_string_append (string, accel_text);
- g_free (accel_text);
+ accel_text = gtk_accelerator_name (info->key, info->modifiers);
+ g_string_append (string, accel_text);
+ g_free (accel_text);
- if (list->next)
- g_string_append (string, ", ");
- }
+ if (list->next)
+ g_string_append (string, ", ");
+ }
- return g_string_free (string, FALSE);
+ return g_string_free (string, FALSE);
}
@@ -114,31 +113,34 @@ glade_accels_make_string (GList *accels)
* GladeEditorProperty stuff here
**************************************************************/
-enum {
- ACCEL_COLUMN_SIGNAL = 0,
- ACCEL_COLUMN_REAL_SIGNAL,
- ACCEL_COLUMN_TEXT,
- ACCEL_COLUMN_WEIGHT,
- ACCEL_COLUMN_STYLE,
- ACCEL_COLUMN_FOREGROUND,
- ACCEL_COLUMN_VISIBLE,
- ACCEL_COLUMN_KEY_ENTERED,
- ACCEL_COLUMN_KEYCODE,
- ACCEL_COLUMN_MODIFIERS,
- ACCEL_NUM_COLUMNS
+enum
+{
+ ACCEL_COLUMN_SIGNAL = 0,
+ ACCEL_COLUMN_REAL_SIGNAL,
+ ACCEL_COLUMN_TEXT,
+ ACCEL_COLUMN_WEIGHT,
+ ACCEL_COLUMN_STYLE,
+ ACCEL_COLUMN_FOREGROUND,
+ ACCEL_COLUMN_VISIBLE,
+ ACCEL_COLUMN_KEY_ENTERED,
+ ACCEL_COLUMN_KEYCODE,
+ ACCEL_COLUMN_MODIFIERS,
+ ACCEL_NUM_COLUMNS
};
-typedef struct {
- GladeEditorProperty parent_instance;
-
- GtkWidget *entry;
- GList *parent_iters;
- GtkTreeModel *model;
+typedef struct
+{
+ GladeEditorProperty parent_instance;
+
+ GtkWidget *entry;
+ GList *parent_iters;
+ GtkTreeModel *model;
} GladeEPropAccel;
-typedef struct {
- GtkTreeIter *iter;
- gchar *name; /* <-- dont free */
+typedef struct
+{
+ GtkTreeIter *iter;
+ gchar *name; /* <-- dont free */
} GladeEpropIterTab;
GLADE_MAKE_EPROP (GladeEPropAccel, glade_eprop_accel)
@@ -147,703 +149,716 @@ GLADE_MAKE_EPROP (GladeEPropAccel, glade_eprop_accel)
#define GLADE_IS_EPROP_ACCEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GLADE_TYPE_EPROP_ACCEL))
#define GLADE_IS_EPROP_ACCEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GLADE_TYPE_EPROP_ACCEL))
#define GLADE_EPROP_ACCEL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GLADE_EPROP_ACCEL, GladeEPropAccelClass))
-
-static void
-glade_eprop_accel_finalize (GObject *object)
+ static void glade_eprop_accel_finalize (GObject * object)
{
- /* Chain up */
- GObjectClass *parent_class = g_type_class_peek_parent (G_OBJECT_GET_CLASS (object));
+ /* Chain up */
+ GObjectClass *parent_class =
+ g_type_class_peek_parent (G_OBJECT_GET_CLASS (object));
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
-glade_eprop_accel_load (GladeEditorProperty *eprop,
- GladeProperty *property)
+glade_eprop_accel_load (GladeEditorProperty * eprop, GladeProperty * property)
{
- GladeEditorPropertyClass *parent_class =
- g_type_class_peek_parent (GLADE_EDITOR_PROPERTY_GET_CLASS (eprop));
- GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
- gchar *accels;
-
- /* Chain up first */
- parent_class->load (eprop, property);
-
- if (property == NULL) return;
-
- if ((accels =
- glade_accels_make_string (g_value_get_boxed (property->value))) != NULL)
- {
- gtk_entry_set_text (GTK_ENTRY (eprop_accel->entry), accels);
- g_free (accels);
- }
- else
- gtk_entry_set_text (GTK_ENTRY (eprop_accel->entry), "");
+ GladeEditorPropertyClass *parent_class =
+ g_type_class_peek_parent (GLADE_EDITOR_PROPERTY_GET_CLASS (eprop));
+ GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
+ gchar *accels;
+
+ /* Chain up first */
+ parent_class->load (eprop, property);
+
+ if (property == NULL)
+ return;
+
+ if ((accels =
+ glade_accels_make_string (g_value_get_boxed (property->value))) != NULL)
+ {
+ gtk_entry_set_text (GTK_ENTRY (eprop_accel->entry), accels);
+ g_free (accels);
+ }
+ else
+ gtk_entry_set_text (GTK_ENTRY (eprop_accel->entry), "");
}
static gint
-eprop_find_iter (GladeEpropIterTab *iter_tab,
- gchar *name)
+eprop_find_iter (GladeEpropIterTab * iter_tab, gchar * name)
{
- return strcmp (iter_tab->name, name);
+ return strcmp (iter_tab->name, name);
}
static void
-iter_tab_free (GladeEpropIterTab *iter_tab)
+iter_tab_free (GladeEpropIterTab * iter_tab)
{
- gtk_tree_iter_free (iter_tab->iter);
- g_free (iter_tab);
+ gtk_tree_iter_free (iter_tab->iter);
+ g_free (iter_tab);
}
static void
-glade_eprop_accel_populate_view (GladeEditorProperty *eprop,
- GtkTreeView *view)
+glade_eprop_accel_populate_view (GladeEditorProperty * eprop,
+ GtkTreeView * view)
{
- GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
- GladeSignalClass *sclass;
- GladeWidgetAdaptor *adaptor = glade_widget_adaptor_from_pclass (eprop->klass);
- GtkTreeStore *model = (GtkTreeStore *)gtk_tree_view_get_model (view);
- GtkTreeIter iter;
- GladeEpropIterTab *parent_tab;
- GladeAccelInfo *info;
- GList *list, *l, *found, *accelerators;
- gchar *name, *accel_text;
-
- accelerators = g_value_get_boxed (eprop->property->value);
-
- /* First make parent iters...
- */
- for (list = adaptor->signals; list; list = list->next)
- {
- sclass = list->data;
-
- /* Special case for GtkAction accelerators */
- if (adaptor->type == GTK_TYPE_ACTION ||
- g_type_is_a (adaptor->type, GTK_TYPE_ACTION))
- {
- if (g_strcmp0 (sclass->type, "GtkAction") != 0 ||
- g_strcmp0 (sclass->name, "activate") != 0)
- continue;
- }
- /* Only action signals have accelerators. */
- else if ((sclass->query.signal_flags & G_SIGNAL_ACTION) == 0)
- continue;
-
- if (g_list_find_custom (eprop_accel->parent_iters,
- sclass->type,
- (GCompareFunc)eprop_find_iter) == NULL)
- {
- gtk_tree_store_append (model, &iter, NULL);
- gtk_tree_store_set (model, &iter,
- ACCEL_COLUMN_SIGNAL, sclass->type,
- ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_BOLD,
- ACCEL_COLUMN_VISIBLE, FALSE,
- -1);
-
- parent_tab = g_new0 (GladeEpropIterTab, 1);
- parent_tab->name = sclass->type;
- parent_tab->iter = gtk_tree_iter_copy (&iter);
-
- eprop_accel->parent_iters =
- g_list_prepend (eprop_accel->parent_iters,
- parent_tab);
- }
- }
-
- /* Now we populate...
- */
- for (list = adaptor->signals; list; list = list->next)
- {
- sclass = list->data;
-
- /* Special case for GtkAction accelerators */
- if (adaptor->type == GTK_TYPE_ACTION ||
- g_type_is_a (adaptor->type, GTK_TYPE_ACTION))
- {
- if (g_strcmp0 (sclass->type, "GtkAction") != 0 ||
- g_strcmp0 (sclass->name, "activate") != 0)
- continue;
- }
- /* Only action signals have accelerators. */
- else if ((sclass->query.signal_flags & G_SIGNAL_ACTION) == 0)
- continue;
-
- if ((found = g_list_find_custom (eprop_accel->parent_iters,
- sclass->type,
- (GCompareFunc)eprop_find_iter)) != NULL)
- {
- parent_tab = found->data;
- name = g_strdup_printf (" %s", sclass->name);
-
- /* Populate from accelerator list
- */
- for (l = accelerators; l; l = l->next)
- {
- info = l->data;
-
- if (strcmp (info->signal, sclass->name))
- continue;
-
- accel_text = gtk_accelerator_name (info->key, info->modifiers);
-
- gtk_tree_store_append (model, &iter, parent_tab->iter);
- gtk_tree_store_set
- (model, &iter,
- ACCEL_COLUMN_SIGNAL, name,
- ACCEL_COLUMN_REAL_SIGNAL, sclass->name,
- ACCEL_COLUMN_TEXT, accel_text,
- ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
- ACCEL_COLUMN_STYLE, PANGO_STYLE_NORMAL,
- ACCEL_COLUMN_FOREGROUND, "Black",
- ACCEL_COLUMN_VISIBLE, TRUE,
- ACCEL_COLUMN_KEYCODE, info->key,
- ACCEL_COLUMN_MODIFIERS, info->modifiers,
- ACCEL_COLUMN_KEY_ENTERED, TRUE,
- -1);
-
- g_free (accel_text);
- }
-
- /* Special case for GtkAction accelerators */
- if ((adaptor->type == GTK_TYPE_ACTION ||
- g_type_is_a (adaptor->type, GTK_TYPE_ACTION)) &&
- g_list_length (accelerators) > 0)
- continue;
-
- /* Append a new empty slot at the end */
- gtk_tree_store_append (model, &iter, parent_tab->iter);
- gtk_tree_store_set
- (model, &iter,
- ACCEL_COLUMN_SIGNAL, name,
- ACCEL_COLUMN_REAL_SIGNAL, sclass->name,
- ACCEL_COLUMN_TEXT, _("<choose a key>"),
- ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
- ACCEL_COLUMN_STYLE, PANGO_STYLE_ITALIC,
- ACCEL_COLUMN_FOREGROUND, "Grey",
- ACCEL_COLUMN_VISIBLE, TRUE,
- ACCEL_COLUMN_KEYCODE, 0,
- ACCEL_COLUMN_MODIFIERS, 0,
- ACCEL_COLUMN_KEY_ENTERED, FALSE,
- -1);
-
- g_free (name);
- }
- }
+ GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
+ GladeSignalClass *sclass;
+ GladeWidgetAdaptor *adaptor = glade_widget_adaptor_from_pclass (eprop->klass);
+ GtkTreeStore *model = (GtkTreeStore *) gtk_tree_view_get_model (view);
+ GtkTreeIter iter;
+ GladeEpropIterTab *parent_tab;
+ GladeAccelInfo *info;
+ GList *list, *l, *found, *accelerators;
+ gchar *name, *accel_text;
+
+ accelerators = g_value_get_boxed (eprop->property->value);
+
+ /* First make parent iters...
+ */
+ for (list = adaptor->signals; list; list = list->next)
+ {
+ sclass = list->data;
+
+ /* Special case for GtkAction accelerators */
+ if (adaptor->type == GTK_TYPE_ACTION ||
+ g_type_is_a (adaptor->type, GTK_TYPE_ACTION))
+ {
+ if (g_strcmp0 (sclass->type, "GtkAction") != 0 ||
+ g_strcmp0 (sclass->name, "activate") != 0)
+ continue;
+ }
+ /* Only action signals have accelerators. */
+ else if ((sclass->query.signal_flags & G_SIGNAL_ACTION) == 0)
+ continue;
+
+ if (g_list_find_custom (eprop_accel->parent_iters,
+ sclass->type,
+ (GCompareFunc) eprop_find_iter) == NULL)
+ {
+ gtk_tree_store_append (model, &iter, NULL);
+ gtk_tree_store_set (model, &iter,
+ ACCEL_COLUMN_SIGNAL, sclass->type,
+ ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_BOLD,
+ ACCEL_COLUMN_VISIBLE, FALSE, -1);
+
+ parent_tab = g_new0 (GladeEpropIterTab, 1);
+ parent_tab->name = sclass->type;
+ parent_tab->iter = gtk_tree_iter_copy (&iter);
+
+ eprop_accel->parent_iters =
+ g_list_prepend (eprop_accel->parent_iters, parent_tab);
+ }
+ }
+
+ /* Now we populate...
+ */
+ for (list = adaptor->signals; list; list = list->next)
+ {
+ sclass = list->data;
+
+ /* Special case for GtkAction accelerators */
+ if (adaptor->type == GTK_TYPE_ACTION ||
+ g_type_is_a (adaptor->type, GTK_TYPE_ACTION))
+ {
+ if (g_strcmp0 (sclass->type, "GtkAction") != 0 ||
+ g_strcmp0 (sclass->name, "activate") != 0)
+ continue;
+ }
+ /* Only action signals have accelerators. */
+ else if ((sclass->query.signal_flags & G_SIGNAL_ACTION) == 0)
+ continue;
+
+ if ((found = g_list_find_custom (eprop_accel->parent_iters,
+ sclass->type,
+ (GCompareFunc) eprop_find_iter)) != NULL)
+ {
+ parent_tab = found->data;
+ name = g_strdup_printf (" %s", sclass->name);
+
+ /* Populate from accelerator list
+ */
+ for (l = accelerators; l; l = l->next)
+ {
+ info = l->data;
+
+ if (strcmp (info->signal, sclass->name))
+ continue;
+
+ accel_text = gtk_accelerator_name (info->key, info->modifiers);
+
+ gtk_tree_store_append (model, &iter, parent_tab->iter);
+ gtk_tree_store_set
+ (model, &iter,
+ ACCEL_COLUMN_SIGNAL, name,
+ ACCEL_COLUMN_REAL_SIGNAL, sclass->name,
+ ACCEL_COLUMN_TEXT, accel_text,
+ ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
+ ACCEL_COLUMN_STYLE, PANGO_STYLE_NORMAL,
+ ACCEL_COLUMN_FOREGROUND, "Black",
+ ACCEL_COLUMN_VISIBLE, TRUE,
+ ACCEL_COLUMN_KEYCODE, info->key,
+ ACCEL_COLUMN_MODIFIERS, info->modifiers,
+ ACCEL_COLUMN_KEY_ENTERED, TRUE, -1);
+
+ g_free (accel_text);
+ }
+
+ /* Special case for GtkAction accelerators */
+ if ((adaptor->type == GTK_TYPE_ACTION ||
+ g_type_is_a (adaptor->type, GTK_TYPE_ACTION)) &&
+ g_list_length (accelerators) > 0)
+ continue;
+
+ /* Append a new empty slot at the end */
+ gtk_tree_store_append (model, &iter, parent_tab->iter);
+ gtk_tree_store_set
+ (model, &iter,
+ ACCEL_COLUMN_SIGNAL, name,
+ ACCEL_COLUMN_REAL_SIGNAL, sclass->name,
+ ACCEL_COLUMN_TEXT, _("<choose a key>"),
+ ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
+ ACCEL_COLUMN_STYLE, PANGO_STYLE_ITALIC,
+ ACCEL_COLUMN_FOREGROUND, "Grey",
+ ACCEL_COLUMN_VISIBLE, TRUE,
+ ACCEL_COLUMN_KEYCODE, 0,
+ ACCEL_COLUMN_MODIFIERS, 0, ACCEL_COLUMN_KEY_ENTERED, FALSE, -1);
+
+ g_free (name);
+ }
+ }
}
void
-accel_edited (GtkCellRendererAccel *accel,
- gchar *path_string,
- guint accel_key,
- GdkModifierType accel_mods,
- guint hardware_keycode,
- GladeEPropAccel *eprop_accel)
+accel_edited (GtkCellRendererAccel * accel,
+ gchar * path_string,
+ guint accel_key,
+ GdkModifierType accel_mods,
+ guint hardware_keycode, GladeEPropAccel * eprop_accel)
{
- gboolean key_was_set;
- GtkTreeIter iter, parent_iter, new_iter;
- gchar *accel_text;
- GladeWidgetAdaptor *adaptor =
- glade_widget_adaptor_from_pclass (GLADE_EDITOR_PROPERTY (eprop_accel)->klass);
- gboolean is_action;
-
- if (!gtk_tree_model_get_iter_from_string (eprop_accel->model,
- &iter, path_string))
- return;
-
- is_action = (adaptor->type == GTK_TYPE_ACTION ||
- g_type_is_a (adaptor->type, GTK_TYPE_ACTION));
-
- gtk_tree_model_get (eprop_accel->model, &iter,
- ACCEL_COLUMN_KEY_ENTERED, &key_was_set,
- -1);
-
- accel_text = gtk_accelerator_name (accel_key, accel_mods);
-
- gtk_tree_store_set
- (GTK_TREE_STORE (eprop_accel->model), &iter,
- ACCEL_COLUMN_KEY_ENTERED, TRUE,
- ACCEL_COLUMN_STYLE, PANGO_STYLE_NORMAL,
- ACCEL_COLUMN_FOREGROUND, "Black",
- ACCEL_COLUMN_TEXT, accel_text,
- ACCEL_COLUMN_KEYCODE, accel_key,
- ACCEL_COLUMN_MODIFIERS, accel_mods,
- -1);
-
- g_free (accel_text);
-
- /* Append a new one if needed
- */
- if (is_action == FALSE && key_was_set == FALSE &&
- gtk_tree_model_iter_parent (eprop_accel->model,
- &parent_iter, &iter))
- {
- gchar *signal, *real_signal;
-
- gtk_tree_model_get (eprop_accel->model, &iter,
- ACCEL_COLUMN_SIGNAL, &signal,
- ACCEL_COLUMN_REAL_SIGNAL, &real_signal,
- -1);
-
- /* Append a new empty slot at the end */
- gtk_tree_store_insert_after (GTK_TREE_STORE (eprop_accel->model),
- &new_iter, &parent_iter, &iter);
- gtk_tree_store_set (GTK_TREE_STORE (eprop_accel->model), &new_iter,
- ACCEL_COLUMN_SIGNAL, signal,
- ACCEL_COLUMN_REAL_SIGNAL, real_signal,
- ACCEL_COLUMN_TEXT, _("<choose a key>"),
- ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
- ACCEL_COLUMN_STYLE, PANGO_STYLE_ITALIC,
- ACCEL_COLUMN_FOREGROUND, "Grey",
- ACCEL_COLUMN_VISIBLE, TRUE,
- ACCEL_COLUMN_KEYCODE, 0,
- ACCEL_COLUMN_MODIFIERS, 0,
- ACCEL_COLUMN_KEY_ENTERED, FALSE,
- -1);
- g_free (signal);
- g_free (real_signal);
- }
+ gboolean key_was_set;
+ GtkTreeIter iter, parent_iter, new_iter;
+ gchar *accel_text;
+ GladeWidgetAdaptor *adaptor =
+ glade_widget_adaptor_from_pclass (GLADE_EDITOR_PROPERTY (eprop_accel)->
+ klass);
+ gboolean is_action;
+
+ if (!gtk_tree_model_get_iter_from_string (eprop_accel->model,
+ &iter, path_string))
+ return;
+
+ is_action = (adaptor->type == GTK_TYPE_ACTION ||
+ g_type_is_a (adaptor->type, GTK_TYPE_ACTION));
+
+ gtk_tree_model_get (eprop_accel->model, &iter,
+ ACCEL_COLUMN_KEY_ENTERED, &key_was_set, -1);
+
+ accel_text = gtk_accelerator_name (accel_key, accel_mods);
+
+ gtk_tree_store_set
+ (GTK_TREE_STORE (eprop_accel->model), &iter,
+ ACCEL_COLUMN_KEY_ENTERED, TRUE,
+ ACCEL_COLUMN_STYLE, PANGO_STYLE_NORMAL,
+ ACCEL_COLUMN_FOREGROUND, "Black",
+ ACCEL_COLUMN_TEXT, accel_text,
+ ACCEL_COLUMN_KEYCODE, accel_key, ACCEL_COLUMN_MODIFIERS, accel_mods, -1);
+
+ g_free (accel_text);
+
+ /* Append a new one if needed
+ */
+ if (is_action == FALSE && key_was_set == FALSE &&
+ gtk_tree_model_iter_parent (eprop_accel->model, &parent_iter, &iter))
+ {
+ gchar *signal, *real_signal;
+
+ gtk_tree_model_get (eprop_accel->model, &iter,
+ ACCEL_COLUMN_SIGNAL, &signal,
+ ACCEL_COLUMN_REAL_SIGNAL, &real_signal, -1);
+
+ /* Append a new empty slot at the end */
+ gtk_tree_store_insert_after (GTK_TREE_STORE (eprop_accel->model),
+ &new_iter, &parent_iter, &iter);
+ gtk_tree_store_set (GTK_TREE_STORE (eprop_accel->model), &new_iter,
+ ACCEL_COLUMN_SIGNAL, signal,
+ ACCEL_COLUMN_REAL_SIGNAL, real_signal,
+ ACCEL_COLUMN_TEXT, _("<choose a key>"),
+ ACCEL_COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
+ ACCEL_COLUMN_STYLE, PANGO_STYLE_ITALIC,
+ ACCEL_COLUMN_FOREGROUND, "Grey",
+ ACCEL_COLUMN_VISIBLE, TRUE,
+ ACCEL_COLUMN_KEYCODE, 0,
+ ACCEL_COLUMN_MODIFIERS, 0,
+ ACCEL_COLUMN_KEY_ENTERED, FALSE, -1);
+ g_free (signal);
+ g_free (real_signal);
+ }
}
void
-accel_cleared (GtkCellRendererAccel *accel,
- gchar *path_string,
- GladeEPropAccel *eprop_accel)
+accel_cleared (GtkCellRendererAccel * accel,
+ gchar * path_string, GladeEPropAccel * eprop_accel)
{
- GtkTreeIter iter;
+ GtkTreeIter iter;
+
+ if (!gtk_tree_model_get_iter_from_string (eprop_accel->model,
+ &iter, path_string))
+ return;
- if (!gtk_tree_model_get_iter_from_string (eprop_accel->model,
- &iter, path_string))
- return;
-
- gtk_tree_store_remove (GTK_TREE_STORE (eprop_accel->model), &iter);
+ gtk_tree_store_remove (GTK_TREE_STORE (eprop_accel->model), &iter);
}
static GtkWidget *
-glade_eprop_accel_view (GladeEditorProperty *eprop)
+glade_eprop_accel_view (GladeEditorProperty * eprop)
{
- GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
- GtkWidget *view_widget;
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
-
- eprop_accel->model = (GtkTreeModel *)gtk_tree_store_new
- (ACCEL_NUM_COLUMNS,
- G_TYPE_STRING, /* The GSignal name formatted for display */
- G_TYPE_STRING, /* The GSignal name */
- G_TYPE_STRING, /* The text to show in the accelerator cell */
- G_TYPE_INT, /* PangoWeight attribute for bold headers */
- G_TYPE_INT, /* PangoStyle attribute for italic grey unset items */
- G_TYPE_STRING, /* Foreground colour for italic grey unset items */
- G_TYPE_BOOLEAN, /* Visible attribute to hide items for header entries */
- G_TYPE_BOOLEAN, /* Whether the key has been entered for this row */
- G_TYPE_UINT, /* Hardware keycode */
- G_TYPE_INT); /* GdkModifierType */
-
- view_widget = gtk_tree_view_new_with_model (eprop_accel->model);
- gtk_tree_view_set_show_expanders (GTK_TREE_VIEW (view_widget), FALSE);
- gtk_tree_view_set_enable_search (GTK_TREE_VIEW (view_widget), FALSE);
-
- /********************* signal name column *********************/
- renderer = gtk_cell_renderer_text_new ();
- g_object_set (G_OBJECT (renderer),
- "editable", FALSE, NULL);
-
- column = gtk_tree_view_column_new_with_attributes
- (_("Signal"), renderer,
- "text", ACCEL_COLUMN_SIGNAL,
- "weight", ACCEL_COLUMN_WEIGHT,
- NULL);
-
-
- gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (view_widget), column);
-
- /********************* accel editor column *********************/
- renderer = gtk_cell_renderer_accel_new ();
- g_object_set (G_OBJECT (renderer),
- "editable", TRUE,
- NULL);
-
- g_signal_connect (renderer, "accel-edited",
- G_CALLBACK (accel_edited), eprop);
- g_signal_connect (renderer, "accel-cleared",
- G_CALLBACK (accel_cleared), eprop);
-
- column = gtk_tree_view_column_new_with_attributes
- (_("Accelerator Key"), renderer,
- "text", ACCEL_COLUMN_TEXT,
- "foreground", ACCEL_COLUMN_FOREGROUND,
- "style", ACCEL_COLUMN_STYLE,
- "visible", ACCEL_COLUMN_VISIBLE,
- NULL);
-
- gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE);
- gtk_tree_view_append_column (GTK_TREE_VIEW (view_widget), column);
-
- return view_widget;
+ GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
+ GtkWidget *view_widget;
+ GtkCellRenderer *renderer;
+ GtkTreeViewColumn *column;
+
+ eprop_accel->model = (GtkTreeModel *) gtk_tree_store_new (ACCEL_NUM_COLUMNS, G_TYPE_STRING, /* The GSignal name formatted for display */
+ G_TYPE_STRING, /* The GSignal name */
+ G_TYPE_STRING, /* The text to show in the accelerator cell */
+ G_TYPE_INT, /* PangoWeight attribute for bold headers */
+ G_TYPE_INT, /* PangoStyle attribute for italic grey unset items */
+ G_TYPE_STRING, /* Foreground colour for italic grey unset items */
+ G_TYPE_BOOLEAN, /* Visible attribute to hide items for header entries */
+ G_TYPE_BOOLEAN, /* Whether the key has been entered for this row */
+ G_TYPE_UINT, /* Hardware keycode */
+ G_TYPE_INT); /* GdkModifierType */
+
+ view_widget = gtk_tree_view_new_with_model (eprop_accel->model);
+ gtk_tree_view_set_show_expanders (GTK_TREE_VIEW (view_widget), FALSE);
+ gtk_tree_view_set_enable_search (GTK_TREE_VIEW (view_widget), FALSE);
+
+ /********************* signal name column *********************/
+ renderer = gtk_cell_renderer_text_new ();
+ g_object_set (G_OBJECT (renderer), "editable", FALSE, NULL);
+
+ column = gtk_tree_view_column_new_with_attributes
+ (_("Signal"), renderer,
+ "text", ACCEL_COLUMN_SIGNAL, "weight", ACCEL_COLUMN_WEIGHT, NULL);
+
+
+ gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (view_widget), column);
+
+ /********************* accel editor column *********************/
+ renderer = gtk_cell_renderer_accel_new ();
+ g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL);
+
+ g_signal_connect (renderer, "accel-edited", G_CALLBACK (accel_edited), eprop);
+ g_signal_connect (renderer, "accel-cleared",
+ G_CALLBACK (accel_cleared), eprop);
+
+ column = gtk_tree_view_column_new_with_attributes
+ (_("Accelerator Key"), renderer,
+ "text", ACCEL_COLUMN_TEXT,
+ "foreground", ACCEL_COLUMN_FOREGROUND,
+ "style", ACCEL_COLUMN_STYLE, "visible", ACCEL_COLUMN_VISIBLE, NULL);
+
+ gtk_tree_view_column_set_expand (GTK_TREE_VIEW_COLUMN (column), TRUE);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (view_widget), column);
+
+ return view_widget;
}
static gboolean
-glade_eprop_accel_accum_accelerators (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GList **ret)
+glade_eprop_accel_accum_accelerators (GtkTreeModel * model,
+ GtkTreePath * path,
+ GtkTreeIter * iter, GList ** ret)
{
- GladeAccelInfo *info;
- gchar *signal;
- GdkModifierType accel_mods;
- guint accel_key;
- gboolean entered = FALSE;
-
- gtk_tree_model_get (model, iter, ACCEL_COLUMN_KEY_ENTERED, &entered, -1);
- if (!entered) return FALSE;
-
- gtk_tree_model_get (model, iter,
- ACCEL_COLUMN_REAL_SIGNAL, &signal,
- ACCEL_COLUMN_KEYCODE, &accel_key,
- ACCEL_COLUMN_MODIFIERS, &accel_mods,
- -1);
-
- info = g_new0 (GladeAccelInfo, 1);
- info->signal = signal;
- info->key = accel_key;
- info->modifiers = accel_mods;
-
- *ret = g_list_prepend (*ret, info);
-
- return FALSE;
+ GladeAccelInfo *info;
+ gchar *signal;
+ GdkModifierType accel_mods;
+ guint accel_key;
+ gboolean entered = FALSE;
+
+ gtk_tree_model_get (model, iter, ACCEL_COLUMN_KEY_ENTERED, &entered, -1);
+ if (!entered)
+ return FALSE;
+
+ gtk_tree_model_get (model, iter,
+ ACCEL_COLUMN_REAL_SIGNAL, &signal,
+ ACCEL_COLUMN_KEYCODE, &accel_key,
+ ACCEL_COLUMN_MODIFIERS, &accel_mods, -1);
+
+ info = g_new0 (GladeAccelInfo, 1);
+ info->signal = signal;
+ info->key = accel_key;
+ info->modifiers = accel_mods;
+
+ *ret = g_list_prepend (*ret, info);
+
+ return FALSE;
}
static void
-glade_eprop_accel_show_dialog (GtkWidget *dialog_button,
- GladeEditorProperty *eprop)
+glade_eprop_accel_show_dialog (GtkWidget * dialog_button,
+ GladeEditorProperty * eprop)
{
- GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
- GtkWidget *dialog, *parent, *vbox, *sw, *tree_view;
- GladeProject *project;
- GValue value = { 0, };
- GList *accelerators = NULL;
- gint res;
-
- project = glade_widget_get_project (eprop->property->widget);
- parent = gtk_widget_get_toplevel (GTK_WIDGET (eprop));
-
- dialog = gtk_dialog_new_with_buttons (_("Choose accelerator keys..."),
- GTK_WINDOW (parent),
- GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CLEAR, GLADE_RESPONSE_CLEAR,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK,
- NULL);
-
- vbox = gtk_vbox_new (FALSE, 6);
- gtk_widget_show (vbox);
-
- gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
-
- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
- vbox, TRUE, TRUE, 0);
-
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_show (sw);
- gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
- gtk_widget_set_size_request (sw, 400, 200);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN);
-
- tree_view = glade_eprop_accel_view (eprop);
- glade_eprop_accel_populate_view (eprop, GTK_TREE_VIEW (tree_view));
-
- gtk_tree_view_expand_all (GTK_TREE_VIEW (tree_view));
-
- gtk_widget_show (tree_view);
- gtk_container_add (GTK_CONTAINER (sw), tree_view);
-
- /* Run the dialog */
- res = gtk_dialog_run (GTK_DIALOG (dialog));
- if (res == GTK_RESPONSE_OK)
- {
- gtk_tree_model_foreach
- (gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)),
- (GtkTreeModelForeachFunc)
- glade_eprop_accel_accum_accelerators, &accelerators);
-
- g_value_init (&value, GLADE_TYPE_ACCEL_GLIST);
- g_value_take_boxed (&value, accelerators);
-
- glade_editor_property_commit (eprop, &value);
- g_value_unset (&value);
- }
- else if (res == GLADE_RESPONSE_CLEAR)
- {
- g_value_init (&value, GLADE_TYPE_ACCEL_GLIST);
- g_value_set_boxed (&value, NULL);
-
- glade_editor_property_commit (eprop, &value);
-
- g_value_unset (&value);
- }
-
- /* Clean up ...
- */
- gtk_widget_destroy (dialog);
-
- g_object_unref (G_OBJECT (eprop_accel->model));
- eprop_accel->model = NULL;
-
- if (eprop_accel->parent_iters)
- {
- g_list_foreach (eprop_accel->parent_iters, (GFunc)iter_tab_free, NULL);
- g_list_free (eprop_accel->parent_iters);
- eprop_accel->parent_iters = NULL;
- }
+ GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
+ GtkWidget *dialog, *parent, *vbox, *sw, *tree_view;
+ GladeProject *project;
+ GValue value = { 0, };
+ GList *accelerators = NULL;
+ gint res;
+
+ project = glade_widget_get_project (eprop->property->widget);
+ parent = gtk_widget_get_toplevel (GTK_WIDGET (eprop));
+
+ dialog = gtk_dialog_new_with_buttons (_("Choose accelerator keys..."),
+ GTK_WINDOW (parent),
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_CLEAR, GLADE_RESPONSE_CLEAR,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+
+ vbox = gtk_vbox_new (FALSE, 6);
+ gtk_widget_show (vbox);
+
+ gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
+
+ gtk_box_pack_start (GTK_BOX
+ (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), vbox,
+ TRUE, TRUE, 0);
+
+ sw = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_show (sw);
+ gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0);
+ gtk_widget_set_size_request (sw, 400, 200);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN);
+
+ tree_view = glade_eprop_accel_view (eprop);
+ glade_eprop_accel_populate_view (eprop, GTK_TREE_VIEW (tree_view));
+
+ gtk_tree_view_expand_all (GTK_TREE_VIEW (tree_view));
+
+ gtk_widget_show (tree_view);
+ gtk_container_add (GTK_CONTAINER (sw), tree_view);
+
+ /* Run the dialog */
+ res = gtk_dialog_run (GTK_DIALOG (dialog));
+ if (res == GTK_RESPONSE_OK)
+ {
+ gtk_tree_model_foreach
+ (gtk_tree_view_get_model (GTK_TREE_VIEW (tree_view)),
+ (GtkTreeModelForeachFunc)
+ glade_eprop_accel_accum_accelerators, &accelerators);
+
+ g_value_init (&value, GLADE_TYPE_ACCEL_GLIST);
+ g_value_take_boxed (&value, accelerators);
+
+ glade_editor_property_commit (eprop, &value);
+ g_value_unset (&value);
+ }
+ else if (res == GLADE_RESPONSE_CLEAR)
+ {
+ g_value_init (&value, GLADE_TYPE_ACCEL_GLIST);
+ g_value_set_boxed (&value, NULL);
+
+ glade_editor_property_commit (eprop, &value);
+
+ g_value_unset (&value);
+ }
+
+ /* Clean up ...
+ */
+ gtk_widget_destroy (dialog);
+
+ g_object_unref (G_OBJECT (eprop_accel->model));
+ eprop_accel->model = NULL;
+
+ if (eprop_accel->parent_iters)
+ {
+ g_list_foreach (eprop_accel->parent_iters, (GFunc) iter_tab_free, NULL);
+ g_list_free (eprop_accel->parent_iters);
+ eprop_accel->parent_iters = NULL;
+ }
}
static GtkWidget *
-glade_eprop_accel_create_input (GladeEditorProperty *eprop)
+glade_eprop_accel_create_input (GladeEditorProperty * eprop)
{
- GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
- GtkWidget *hbox;
- GtkWidget *button;
+ GladeEPropAccel *eprop_accel = GLADE_EPROP_ACCEL (eprop);
+ GtkWidget *hbox;
+ GtkWidget *button;
- hbox = gtk_hbox_new (FALSE, 0);
- eprop_accel->entry = gtk_entry_new ();
- gtk_editable_set_editable (GTK_EDITABLE (eprop_accel->entry), FALSE);
- gtk_widget_show (eprop_accel->entry);
- gtk_box_pack_start (GTK_BOX (hbox), eprop_accel->entry, TRUE, TRUE, 0);
+ hbox = gtk_hbox_new (FALSE, 0);
+ eprop_accel->entry = gtk_entry_new ();
+ gtk_editable_set_editable (GTK_EDITABLE (eprop_accel->entry), FALSE);
+ gtk_widget_show (eprop_accel->entry);
+ gtk_box_pack_start (GTK_BOX (hbox), eprop_accel->entry, TRUE, TRUE, 0);
- button = gtk_button_new_with_label ("...");
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
+ button = gtk_button_new_with_label ("...");
+ gtk_widget_show (button);
+ gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (glade_eprop_accel_show_dialog),
- eprop);
+ g_signal_connect (G_OBJECT (button), "clicked",
+ G_CALLBACK (glade_eprop_accel_show_dialog), eprop);
- return hbox;
+ return hbox;
}
static GdkModifierType
-glade_gtk_parse_modifiers (const gchar *string)
+glade_gtk_parse_modifiers (const gchar * string)
{
- const gchar *pos = string;
- GdkModifierType modifiers = 0;
-
- while (pos && pos[0])
- {
- if (!strncmp(pos, "GDK_", 4)) {
- pos += 4;
- if (!strncmp(pos, "SHIFT_MASK", 10)) {
- modifiers |= GDK_SHIFT_MASK;
- pos += 10;
- } else if (!strncmp(pos, "LOCK_MASK", 9)) {
- modifiers |= GDK_LOCK_MASK;
- pos += 9;
- } else if (!strncmp(pos, "CONTROL_MASK", 12)) {
- modifiers |= GDK_CONTROL_MASK;
- pos += 12;
- } else if (!strncmp(pos, "MOD", 3) &&
- !strncmp(pos+4, "_MASK", 5)) {
- switch (pos[3]) {
- case '1':
- modifiers |= GDK_MOD1_MASK; break;
- case '2':
- modifiers |= GDK_MOD2_MASK; break;
- case '3':
- modifiers |= GDK_MOD3_MASK; break;
- case '4':
- modifiers |= GDK_MOD4_MASK; break;
- case '5':
- modifiers |= GDK_MOD5_MASK; break;
- }
- pos += 9;
- } else if (!strncmp(pos, "BUTTON", 6) &&
- !strncmp(pos+7, "_MASK", 5)) {
- switch (pos[6]) {
- case '1':
- modifiers |= GDK_BUTTON1_MASK; break;
- case '2':
- modifiers |= GDK_BUTTON2_MASK; break;
- case '3':
- modifiers |= GDK_BUTTON3_MASK; break;
- case '4':
- modifiers |= GDK_BUTTON4_MASK; break;
- case '5':
- modifiers |= GDK_BUTTON5_MASK; break;
- }
- pos += 12;
- } else if (!strncmp(pos, "RELEASE_MASK", 12)) {
- modifiers |= GDK_RELEASE_MASK;
- pos += 12;
- } else
- pos++;
- } else
- pos++;
- }
- return modifiers;
+ const gchar *pos = string;
+ GdkModifierType modifiers = 0;
+
+ while (pos && pos[0])
+ {
+ if (!strncmp (pos, "GDK_", 4))
+ {
+ pos += 4;
+ if (!strncmp (pos, "SHIFT_MASK", 10))
+ {
+ modifiers |= GDK_SHIFT_MASK;
+ pos += 10;
+ }
+ else if (!strncmp (pos, "LOCK_MASK", 9))
+ {
+ modifiers |= GDK_LOCK_MASK;
+ pos += 9;
+ }
+ else if (!strncmp (pos, "CONTROL_MASK", 12))
+ {
+ modifiers |= GDK_CONTROL_MASK;
+ pos += 12;
+ }
+ else if (!strncmp (pos, "MOD", 3) && !strncmp (pos + 4, "_MASK", 5))
+ {
+ switch (pos[3])
+ {
+ case '1':
+ modifiers |= GDK_MOD1_MASK;
+ break;
+ case '2':
+ modifiers |= GDK_MOD2_MASK;
+ break;
+ case '3':
+ modifiers |= GDK_MOD3_MASK;
+ break;
+ case '4':
+ modifiers |= GDK_MOD4_MASK;
+ break;
+ case '5':
+ modifiers |= GDK_MOD5_MASK;
+ break;
+ }
+ pos += 9;
+ }
+ else if (!strncmp (pos, "BUTTON", 6) &&
+ !strncmp (pos + 7, "_MASK", 5))
+ {
+ switch (pos[6])
+ {
+ case '1':
+ modifiers |= GDK_BUTTON1_MASK;
+ break;
+ case '2':
+ modifiers |= GDK_BUTTON2_MASK;
+ break;
+ case '3':
+ modifiers |= GDK_BUTTON3_MASK;
+ break;
+ case '4':
+ modifiers |= GDK_BUTTON4_MASK;
+ break;
+ case '5':
+ modifiers |= GDK_BUTTON5_MASK;
+ break;
+ }
+ pos += 12;
+ }
+ else if (!strncmp (pos, "RELEASE_MASK", 12))
+ {
+ modifiers |= GDK_RELEASE_MASK;
+ pos += 12;
+ }
+ else
+ pos++;
+ }
+ else
+ pos++;
+ }
+ return modifiers;
}
static gchar *
glade_gtk_modifier_string_from_bits (GdkModifierType modifiers)
{
- GString *string = g_string_new ("");
+ GString *string = g_string_new ("");
- if (modifiers & GDK_SHIFT_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_SHIFT_MASK");
+ if (modifiers & GDK_SHIFT_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_SHIFT_MASK");
}
- if (modifiers & GDK_LOCK_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_LOCK_MASK");
+ if (modifiers & GDK_LOCK_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_LOCK_MASK");
}
- if (modifiers & GDK_CONTROL_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_CONTROL_MASK");
+ if (modifiers & GDK_CONTROL_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_CONTROL_MASK");
}
- if (modifiers & GDK_MOD1_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_MOD1_MASK");
+ if (modifiers & GDK_MOD1_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_MOD1_MASK");
}
- if (modifiers & GDK_MOD2_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_MOD2_MASK");
+ if (modifiers & GDK_MOD2_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_MOD2_MASK");
}
- if (modifiers & GDK_MOD3_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_MOD3_MASK");
+ if (modifiers & GDK_MOD3_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_MOD3_MASK");
}
- if (modifiers & GDK_MOD4_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_MOD4_MASK");
+ if (modifiers & GDK_MOD4_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_MOD4_MASK");
}
- if (modifiers & GDK_MOD5_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_MOD5_MASK");
+ if (modifiers & GDK_MOD5_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_MOD5_MASK");
}
- if (modifiers & GDK_BUTTON1_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_BUTTON1_MASK");
+ if (modifiers & GDK_BUTTON1_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_BUTTON1_MASK");
}
- if (modifiers & GDK_BUTTON2_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_BUTTON2_MASK");
+ if (modifiers & GDK_BUTTON2_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_BUTTON2_MASK");
}
- if (modifiers & GDK_BUTTON3_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_BUTTON3_MASK");
+ if (modifiers & GDK_BUTTON3_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_BUTTON3_MASK");
}
- if (modifiers & GDK_BUTTON4_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_BUTTON4_MASK");
+ if (modifiers & GDK_BUTTON4_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_BUTTON4_MASK");
}
- if (modifiers & GDK_BUTTON5_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_BUTTON5_MASK");
+ if (modifiers & GDK_BUTTON5_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_BUTTON5_MASK");
}
- if (modifiers & GDK_RELEASE_MASK) {
- if (string->len > 0)
- g_string_append (string, " | ");
- g_string_append (string, "GDK_RELEASE_MASK");
+ if (modifiers & GDK_RELEASE_MASK)
+ {
+ if (string->len > 0)
+ g_string_append (string, " | ");
+ g_string_append (string, "GDK_RELEASE_MASK");
}
- if (string->len > 0)
- return g_string_free (string, FALSE);
+ if (string->len > 0)
+ return g_string_free (string, FALSE);
- g_string_free (string, TRUE);
- return NULL;
+ g_string_free (string, TRUE);
+ return NULL;
}
GladeAccelInfo *
-glade_accel_read (GladeXmlNode *node,
- gboolean require_signal)
+glade_accel_read (GladeXmlNode * node, gboolean require_signal)
{
- GladeAccelInfo *ainfo;
- gchar *key, *modifiers, *signal;
-
- g_return_val_if_fail (node != NULL, NULL);
-
- if (!glade_xml_node_verify (node, GLADE_TAG_ACCEL))
- return NULL;
-
- /* Get from xml... */
- key = glade_xml_get_property_string_required
- (node, GLADE_TAG_ACCEL_KEY, NULL);
- if (require_signal)
- signal = glade_xml_get_property_string_required (node, GLADE_TAG_ACCEL_SIGNAL, NULL);
- else
- signal = glade_xml_get_property_string (node, GLADE_TAG_ACCEL_SIGNAL);
-
- modifiers = glade_xml_get_property_string (node, GLADE_TAG_ACCEL_MODIFIERS);
-
- /* translate to GladeAccelInfo... */
- ainfo = g_new0 (GladeAccelInfo, 1);
- ainfo->key = gdk_keyval_from_name(key);
- ainfo->signal = signal; /* take string ownership... */
- ainfo->modifiers = glade_gtk_parse_modifiers (modifiers);
-
- g_free (modifiers);
-
- return ainfo;
+ GladeAccelInfo *ainfo;
+ gchar *key, *modifiers, *signal;
+
+ g_return_val_if_fail (node != NULL, NULL);
+
+ if (!glade_xml_node_verify (node, GLADE_TAG_ACCEL))
+ return NULL;
+
+ /* Get from xml... */
+ key = glade_xml_get_property_string_required
+ (node, GLADE_TAG_ACCEL_KEY, NULL);
+ if (require_signal)
+ signal =
+ glade_xml_get_property_string_required (node, GLADE_TAG_ACCEL_SIGNAL,
+ NULL);
+ else
+ signal = glade_xml_get_property_string (node, GLADE_TAG_ACCEL_SIGNAL);
+
+ modifiers = glade_xml_get_property_string (node, GLADE_TAG_ACCEL_MODIFIERS);
+
+ /* translate to GladeAccelInfo... */
+ ainfo = g_new0 (GladeAccelInfo, 1);
+ ainfo->key = gdk_keyval_from_name (key);
+ ainfo->signal = signal; /* take string ownership... */
+ ainfo->modifiers = glade_gtk_parse_modifiers (modifiers);
+
+ g_free (modifiers);
+
+ return ainfo;
}
GladeXmlNode *
-glade_accel_write (GladeAccelInfo *accel,
- GladeXmlContext *context,
- gboolean write_signal)
+glade_accel_write (GladeAccelInfo * accel,
+ GladeXmlContext * context, gboolean write_signal)
{
- GladeXmlNode *accel_node;
- gchar *modifiers;
+ GladeXmlNode *accel_node;
+ gchar *modifiers;
- g_return_val_if_fail (accel != NULL, NULL);
- g_return_val_if_fail (context != NULL, NULL);
+ g_return_val_if_fail (accel != NULL, NULL);
+ g_return_val_if_fail (context != NULL, NULL);
- accel_node = glade_xml_node_new (context, GLADE_TAG_ACCEL);
- modifiers = glade_gtk_modifier_string_from_bits (accel->modifiers);
+ accel_node = glade_xml_node_new (context, GLADE_TAG_ACCEL);
+ modifiers = glade_gtk_modifier_string_from_bits (accel->modifiers);
- glade_xml_node_set_property_string (accel_node, GLADE_TAG_ACCEL_KEY,
- gdk_keyval_name(accel->key));
+ glade_xml_node_set_property_string (accel_node, GLADE_TAG_ACCEL_KEY,
+ gdk_keyval_name (accel->key));
- if (write_signal)
- glade_xml_node_set_property_string (accel_node, GLADE_TAG_ACCEL_SIGNAL,
- accel->signal);
- glade_xml_node_set_property_string (accel_node, GLADE_TAG_ACCEL_MODIFIERS,
- modifiers);
+ if (write_signal)
+ glade_xml_node_set_property_string (accel_node, GLADE_TAG_ACCEL_SIGNAL,
+ accel->signal);
+ glade_xml_node_set_property_string (accel_node, GLADE_TAG_ACCEL_MODIFIERS,
+ modifiers);
- g_free (modifiers);
+ g_free (modifiers);
- return accel_node;
+ return accel_node;
}
-