summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gtkext/easygtk.c102
-rw-r--r--src/gui/editor.c49
2 files changed, 112 insertions, 39 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,
diff --git a/src/gui/editor.c b/src/gui/editor.c
index b856971..5e8717a 100644
--- a/src/gui/editor.c
+++ b/src/gui/editor.c
@@ -76,6 +76,9 @@ static void on_destroy_editor(GtkWidget *, GObject *);
/* Réagit à un changement de focus pour l'éditeur. */
static gboolean on_focus_out(GtkWidget *, GdkEventFocus *, GObject *);
+/* Encadre certains raccourcis actionnés sur un menu. */
+static gboolean track_espace_on_main_submenu(GtkWidget *, GdkEventKey *, GtkWidget *);
+
/* Permet la disparition de la barre de menus avec le clavier. */
static void track_root_menubars(GtkContainer *, bool);
@@ -500,34 +503,50 @@ static gboolean on_focus_out(GtkWidget *widget, GdkEventFocus *event, GObject *r
/******************************************************************************
* *
-* Paramètres : menubar = barre de menu principale à traiter. *
-* set = indique si la surveillance est à activer ou non. *
+* 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 : Permet la disparition de la barre de menus avec le clavier. *
+* Description : Encadre certains raccourcis actionnés sur un menu. *
* *
-* Retour : - *
+* Retour : FALSE afin de poursuivre la propagation de l'événement. *
* *
* Remarques : - *
* *
******************************************************************************/
-static void track_root_menubars(GtkContainer *menubar, bool set)
+static gboolean track_espace_on_main_submenu(GtkWidget *menu, GdkEventKey *event, GtkWidget *item)
{
- gboolean track_espace_on_main_submenu(GtkWidget *menu, GdkEventKey *event, GtkWidget *item)
+ GtkWidget *mbar; /* Barre de menus principale */
+
+ if (event->keyval == GDK_KEY_Escape)
{
- GtkWidget *mbar; /* Barre de menus principale */
+ mbar = gtk_widget_get_parent(item);
+ track_root_menubars(GTK_CONTAINER(mbar), false);
+ gtk_widget_hide(mbar);
+ }
- if (event->keyval == GDK_KEY_Escape)
- {
- mbar = gtk_widget_get_parent(item);
- track_root_menubars(GTK_CONTAINER(mbar), false);
- gtk_widget_hide(mbar);
- }
+ return FALSE;
+
+}
- return FALSE;
- }
+/******************************************************************************
+* *
+* Paramètres : menubar = barre de menu principale à traiter. *
+* set = indique si la surveillance est à activer ou non. *
+* *
+* Description : Permet la disparition de la barre de menus avec le clavier. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void track_root_menubars(GtkContainer *menubar, bool set)
+{
void browse_all_main_items(GtkWidget *item, bool *track)
{
GtkWidget *menu; /* Menu à traiter */