summaryrefslogtreecommitdiff
path: root/src/gtkext
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-07-26 17:19:09 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-07-26 17:19:09 (GMT)
commit359055e28bcd195fb03fd0deb1a30e5a04d5ce58 (patch)
treebcc7d15149aa359333f1496eae0c6b31e90cc818 /src/gtkext
parente62cb2f183a8ff70d54a20bd869944047700fe8a (diff)
Transformed the remaining nested functions dealing with menus.
Diffstat (limited to 'src/gtkext')
-rw-r--r--src/gtkext/easygtk.c102
1 files changed, 78 insertions, 24 deletions
diff --git a/src/gtkext/easygtk.c b/src/gtkext/easygtk.c
index 5d54771..4543934 100644
--- a/src/gtkext/easygtk.c
+++ b/src/gtkext/easygtk.c
@@ -34,6 +34,15 @@
/* Termine la construction d'un composant 'GtkButton'. */
static void _finish_button_with_img(GtkWidget *, GObject *, const char *, GtkWidget *, const char *);
+/* Encadre certains raccourcis actionnés sur un menu. */
+static gboolean handle_escape_on_menu(GtkWidget *, GdkEventKey *, GtkMenuItem *);
+
+/* Assure que le menu parent est sélectionné comme attendu. */
+static void show_parent_selection(GtkWidget *, GtkMenuItem *);
+
+/* Détermine si un élément de menu peut être actionné. */
+static gboolean enable_accel_all_the_time(GtkWidget *, guint, gpointer);
+
/******************************************************************************
@@ -819,11 +828,58 @@ GtkWidget *qck_create_combobox_with_entry(GObject *object, const char *name, GCa
/******************************************************************************
* *
+* Paramètres : menu = composant actif pour la réception des touches. *
+* event = informations liées à l'événement. *
+* item = menu parent à manipuler au besoin. *
+* *
+* Description : Encadre certains raccourcis actionnés sur un menu. *
+* *
+* Retour : FALSE afin de poursuivre la propagation de l'événement. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static gboolean handle_escape_on_menu(GtkWidget *menu, GdkEventKey *event, GtkMenuItem *item)
+{
+ if (event->keyval == GDK_KEY_Escape)
+ {
+ gtk_widget_hide(menu);
+ gtk_menu_item_deselect(item);
+ }
+
+ return FALSE;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : widget = support de menu principal. *
+* item = élément de menu accueillant un sous-menu. *
+* *
+* Description : Assure que le menu parent est sélectionné comme attendu. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void show_parent_selection(GtkWidget *widget, GtkMenuItem *item)
+{
+ gtk_menu_item_select(item);
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : item = élément de menu devant recevoir un sous-menu. *
* *
* Description : Met en place un support de menu 'GtkMenu'. *
* *
-* Retour : Rceptacle pour sous-éléments de menu. *
+* Retour : Réceptacle pour sous-éléments de menu. *
* *
* Remarques : - *
* *
@@ -839,25 +895,7 @@ GtkWidget *qck_create_menu(GtkMenuItem *item)
{
gtk_menu_item_set_submenu(item, result);
- gboolean handle_escape_on_menu(GtkWidget *menu, GdkEventKey *event, GtkMenuItem *item)
- {
- if (event->keyval == GDK_KEY_Escape)
- {
- gtk_widget_hide(menu);
- gtk_menu_item_deselect(item);
- }
-
- return FALSE;
-
- }
-
g_signal_connect(result, "key-press-event", G_CALLBACK(handle_escape_on_menu), item);
-
- void show_parent_selection(GtkWidget *widget, GtkMenuItem *item)
- {
- gtk_menu_item_select(item);
- }
-
g_signal_connect(result, "show", G_CALLBACK(show_parent_selection), item);
}
@@ -984,6 +1022,27 @@ GtkWidget *qck_create_radio_menu_item(GObject *object, const char *name, GSList
/******************************************************************************
* *
+* Paramètres : widget = composant graphique à analyser. *
+* signal_id = identifiant de signal. *
+* unused = adresse non utilisée ici. *
+* *
+* Description : Détermine si un élément de menu peut être actionné. *
+* *
+* Retour : TRUE si l'élément de menu est accessible. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static gboolean enable_accel_all_the_time(GtkWidget *widget, guint signal_id, gpointer unused)
+{
+ return gtk_widget_is_sensitive(widget);
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : item = élément d'un menu à mettre à jour. *
* accelerator = description sous forme de chaîne de caractères.*
* group = groupe d'appartenance du raccourci. *
@@ -1003,11 +1062,6 @@ void add_accelerator_to_menu_item(GtkWidget *item, const char *accelerator, GtkA
gtk_accelerator_parse(accelerator, &key, &mods);
- gboolean enable_accel_all_the_time(GtkWidget *widget, guint signal_id, gpointer unused)
- {
- return gtk_widget_is_sensitive(widget);
- }
-
g_signal_connect(item, "can-activate-accel", G_CALLBACK(enable_accel_all_the_time), NULL);
gtk_widget_add_accelerator(item, "activate", group,