diff options
Diffstat (limited to 'src/gtkext')
-rw-r--r-- | src/gtkext/easygtk.c | 102 |
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, |