Groupes Accelerateurs

Groupes Accelerateurs — Groupes des accélérateurs de clavier pour l'ensemble d'un GtkWindow

Synopsis


#include <gtk/gtk.h>
GtkAccelGroup;
GtkAccelGroup* gtk_accel_group_new (void);
#define gtk_accel_group_ref
#define gtk_accel_group_unref
void gtk_accel_group_connect (GtkAccelGroup *accel_group,
guint accel_key,
 GdkModifierType accel_mods,
 GtkAccelFlags accel_flags,
 GClosure *closure);
void gtk_accel_group_connect_by_path (GtkAccelGroup *accel_group,
const gchar *accel_path,
 GClosure *closure);
gboolean (*GtkAccelGroupActivate) (GtkAccelGroup *accel_group,
 GObject *acceleratable,
 guint keyval,
 GdkModifierType modifier);
gboolean (*GtkAccelGroupFindFunc) (GtkAccelKey *key,
 GClosure *closure,
 gpointer data);
gboolean gtk_accel_group_disconnect (GtkAccelGroup *accel_group,
 GClosure *closure);
gboolean gtk_accel_group_disconnect_key (GtkAccelGroup *accel_group,
 guint accel_key,
 GdkModifierType accel_mods);
GtkAccelGroupEntry* gtk_accel_group_query (GtkAccelGroup *accel_group,
 guint accel_key,
 GdkModifierType accel_mods,
 guint *n_entries);
gboolean gtk_accel_group_activate (GtkAccelGroup *accel_group,
 GQuark accel_quark,
 GObject *acceleratable,
 guint accel_key,
 GdkModifierType accel_mods);
void gtk_accel_group_lock (GtkAccelGroup *accel_group);
void gtk_accel_group_unlock (GtkAccelGroup *accel_group);
GtkAccelGroup* gtk_accel_group_from_accel_closure (GClosure *closure);
gboolean gtk_accel_groups_activate (GObject *object,
 guint accel_key,
 GdkModifierType accel_mods);
GSList* gtk_accel_groups_from_object (GObject *object);
GtkAccelKey* gtk_accel_group_find (GtkAccelGroup *accel_group,
 GtkAccelGroupFindFunc find_func,
 gpointer data);
GtkAccelKey;
gboolean gtk_accelerator_valid (guint keyval,
 GdkModifierType modifiers);
void gtk_accelerator_parse (const gchar *accelerator,
 guint *accelerator_key,
 GdkModifierType *accelerator_mods);
gchar* gtk_accelerator_name (guint accelerator_key,
 GdkModifierType accelerator_mods);
gchar* gtk_accelerator_get_label (guint accelerator_key,
 GdkModifierType accelerator_mods);
void gtk_accelerator_set_default_mod_mask
(GdkModifierType default_mod_mask);
guint gtk_accelerator_get_default_mod_mask
(void);

Hiérarchie des objets

GObject
+----GtkAccelGroup

Signaux

"accel-activate"		 	: a des détails
"accel-changed" : exécute en premier / a des détails

Description

Un GtkAccelGroup représente un groupe d'accélérateurs clavier, typiquement attachés à un  GtkWindow  de niveau supérieur (avec gtk_window_add_accel_group()). Normalement vous n'aurz pas à créer un  GtkAccelGroup directement; à la place, pendant l'utilisation GtkItemFactory, GTK+ définit automatiquement les accélérateurs pour vos menus dans automatically sets up the accelerators for your menus dans l'ensemble des items de  GtkAccelGroup.

Notez que ces  accelerateurs  sont différents des mnemonics. Les accélérateurs sont des raccourcis pour activer un item de menu; ils apparaissent à côté de l'item du menu auquel ils correspondent. Par exemple "Ctrl+Q" devrait apparaître à côté de l'item "Quitter" du menu. Les mnemonics sont des raccourcis pour les éléments  du GUI  comme  une entrée texte ou des boutons; ils apparaissent comme des caractères soulignés. Voir gtk_label_new_with_mnemonic(). Les items de menu peuvent être  des accélérateurs et des mnémonics, bien sûr.

Détails

GtkAccelGroup


typedef struct _GtkAccelGroup GtkAccelGroup;

Un objet représentant et maintenant un groupe d'accélérateurs.

gtk_accel_group_new ()


GtkAccelGroup* 			gtk_accel_group_new 			(void);

Crée un nouveau GtkAccelGroup.

Retourne : un nouvel objet GtkAccelGroup 

gtk_accel_group_ref


#define gtk_accel_group_ref g_object_ref

Attention

gtk_accel_group_ref est déprécié et ne doit plus être utilisé dans du code nouvellement écrit. Son équivalent est  g_object_ref().

Retourne : Le groupe acclérateur qui a été passé 

gtk_accel_group_unref


#define gtk_accel_group_unref g_object_unref

Attention

est déprécié et ne doit plus être utilisé dans du code nouvellement écrit. Son équivalent est  g_object_unref().

gtk_accel_group_connect ()


void 			gtk_accel_group_connect 			(GtkAccelGroup *accel_group,
 guint accel_key,
 GdkModifierType accel_mods,
 GtkAccelFlags accel_flags,
 GClosure *closure);

Installe un accélérateur dan ce groupe. Quand accel_group est activé en réponse à l'appel de  gtk_accel_groups_activate(), closure est appelé si  accel_key et accel_mods de gtk_accel_groups_activate() réalisent ce genre de connexion.

La signature utilise pour la fermeture (closure) est celle de GtkAccelGroupActivate.

Notez que, en raison des détails de l'exécution, une seule fermeture seulement peut être connextée à un groupe accélérateur.

accel_group : Le groupe accélérateur dans lequel l'accélérateur sera installé.
accel_key : Valeur de touche de l'accélérateur
accel_mods : Combinaison de modificateur de l'accélérateur.
accel_flags : Un flag  masque pour configurer l'accélérateur.
closure : Fermeture closure à exécuter  sur l'activation de l'accélérateur.

gtk_accel_group_connect_by_path ()


void gtk_accel_group_connect_by_path (GtkAccelGroup *accel_group,
const gchar *accel_path,
GClosure *closure);

Installe un accélérateyr dans ce groupe, en utilisant un chemin d'accès pour rechercher la touche et les modificateurs  (voir gtk_accel_map_add_entry()). Quand accel_group  est activé en réponse à l'appel de  gtk_accel_groups_activate(), closure  (fermeture) est appelé si la accel_key et  accel_mods de gtk_accel_groups_activate() combine la touche et les modificateurs  pour le chemin d'accès.

La signature utilisée pour  closure est celle de  GtkAccelGroupActivate.

accel_group : Le groupe accélérateur dans lequel l'accélérateur sera installé.
accel_path : chemin d'accès utilisé pour déterminer la touche et les modificateurs.
closure : Fermeture closure à exécuter  sur l'activation de l'accélérateur.

GtkAccelGroupActivate ()


gboolean 		(*GtkAccelGroupActivate) 		(GtkAccelGroup *accel_group,
 GObject *acceleratable,
 guint keyval,
 GdkModifierType modifier);

accel_group :
acceleratable :
keyval :
modifier :
Retourne :

GtkAccelGroupFindFunc ()


gboolean 			(*GtkAccelGroupFindFunc) 			(GtkAccelKey *key,
 GClosure *closure,
 gpointer data);

key :
closure :
data :
Retourne :

Depuis 2.2


gtk_accel_group_disconnect ()


gboolean 			gtk_accel_group_disconnect 			(GtkAccelGroup *accel_group,
GClosure *closure);

Supprime un accélérateur installé avec gtk_accel_group_connect().

accel_group : Le groupe accélérateur où supprimer un accélérateur
closure : La fermeture à supprimer de ce groupe accélérateur
Retourne : TRUE  si la ferleture est trouvée et est déconnectée

gtk_accel_group_disconnect_key ()


gboolean 		gtk_accel_group_disconnect_key 			(GtkAccelGroup *accel_group,
 guint accel_key,
 GdkModifierType accel_mods);

Supprimer un accélérateur préalablement installé par gtk_accel_group_connect().

accel_group : Le groupe accélérateur où supprimer un accélérateur
accel_key : Valeur de touche de l'accélérateur
accel_mods : combinaison de modificateur de l'accélérateur
Retourne : TRUE  si il y a un accélérateur qui sera supprimé, FALSE autrement

gtk_accel_group_query ()


GtkAccelGroupEntry* 		gtk_accel_group_query 		(GtkAccelGroup *accel_group,
 guint accel_key,
 GdkModifierType accel_mods,
 guint *n_entries);

Cherche un groupe accélérateur pour toutes les entrées combinant accel_key et  accel_mods.

accel_group : Le groupe accélérateur cherché
accel_key : Valeur de touche de l'accélérateur
accel_mods : combinaison de modifieur de l'accélérateur
n_entries : Localisation pour retourner le nombre d'entrées trouvé , ou  NULL
Retourne : un tableau d'éléments n_entries de GtkAccelGroupEntry , ou NULL. Le tableau appartient à GTK+ et ne doit pas être libéré.

gtk_accel_group_activate ()


gboolean 			gtk_accel_group_activate 		(GtkAccelGroup *accel_group,
 GQuark accel_quark,
 GObject *acceleratable,
 guint accel_key,
 GdkModifierType accel_mods);

accel_group :
accel_quark :
acceleratable :
accel_key :
accel_mods :
Retourne :

gtk_accel_group_lock ()


void		 gtk_accel_group_lock 			(GtkAccelGroup *accel_group);

Verrouille le groupe accélérateur donné.

Le verrouillage du groupe accélérateur empêche que les accélérateurs qu'il contient soient modifiés pendant le temps d'exécution. référez à gtk_accel_map_change_entry() au sujet des changement d'accélérateur pendant le temps d'exécution.

Si vous appelez plusieurs fois la fonction,  accel_group  reste verrouillé tant que  gtk_accel_group_unlock() soit appelé un nombre équivalent de fois.

accel_group : un GtkAccelGroup

gtk_accel_group_unlock ()


void 		gtk_accel_group_unlock 			(GtkAccelGroup *accel_group);

Annule le dernier appel de  gtk_accel_group_lock() sur le groupe accel_group.

accel_group : Un GtkAccelGroup

gtk_accel_group_from_accel_closure ()


GtkAccelGroup* 		gtk_accel_group_from_accel_closure 		(GClosure *closure);

Trouve le groupe  GtkAccelGroup  avec lequel closure  est connexté ; voir gtk_accel_group_connect().

closure : Un  GClosure
Retournes : Le GtkAccelGroup avec lequel closure est connecté, ou NULL.

gtk_accel_groups_activate ()


gboolean 		gtk_accel_groups_activate 		(GObject *object,
 guint accel_key,
 GdkModifierType accel_mods);

Trouve le premier accélérateur dans tous les  GtkAccelGroup  attachés à  object  qui combine  accel_key et accel_mods, et  active cet accélérateur. Si un accélérateur a été activé et que  la touche est manipulée,  TRUE est retourné.

object : le GObject, habituellement un GtkWindow, pour lequel l'accélérateur est activé
accel_key : Valeur de touche de l'accélérateur pour l'événement de touche.
accel_mods : Masque d'état du clavier d'un événement de touche.
Returns : TRUE si l'accélérateur est manipulé , FALSE autrement

gtk_accel_groups_from_object ()


GSList* 		gtk_accel_groups_from_object 		(GObject *object);

Obtient la liste de tous les groupes accélérateurs qui sont attachés à  object.

object : Un GObject, habituellement GtkWindow
Retourne : La liste de tous les groupes accelérateur qui sont attachés à object

gtk_accel_group_find ()


GtkAccelKey* 		gtk_accel_group_find 		(GtkAccelGroup *accel_group,
 GtkAccelGroupFindFunc find_func,
 gpointer data);

Trouve la première entrée dans le groupe accélérateur pour lequel find_func retourne TRUE et returne ses GtkAccelKey.

accel_group : Un GtkAccelGroup
find_func : Une fonction pour filtrer les entrées de accel_group 
data : Données  à passer à  find_func
Retourne : La touche de la première entrée passant find_func. La touche est appartient  à  GTK+ et ne doit pas être libérée.

GtkAccelKey


typedef struct {
guint accel_key;
GdkModifierType accel_mods;
guint accel_flags : 16;
} GtkAccelKey;


gtk_accelerator_valid ()


gboolean 		gtk_accelerator_valid 			(guint keyval,
 GdkModifierType modifiers);

Détermine si une valeur de touche donnée et un masque de modificateur constituent un accélérateur de clavier valide. Par exemple, le valeur de touche  GDK_a  avec GDK_CONTROL_MASK  est valide - c'est un accélérateur  "Ctrl+a". Mais, vous pouvez, à la place, utiliser la valeur de touche  GDK_Control_L  comme un accélérateur.

keyval : Une valeur de touche GDK
modifiers : masque de modificateur
Retourne : TRUE si l'accélérateur est valide

gtk_accelerator_parse ()


void 			gtk_accelerator_parse 			(const gchar *accelerator,
 guint *accelerator_key,
 GdkModifierType *accelerator_mods);

Analyse une chaîne représentant un accélérateur. Le format ressemble à  "<Control>a" ou "<Shift><Alt>F1" ou "<Release>z" (la dernière forme sert aux touches de sortie). L'analyseur est assez libéral et permet les minuscules, les majuscules et aussi les abréviations telles que  "<Ctl>" et "<Ctrl>".

Si l'analyse échoue, accelerator_key et accelerator_mods  seront définis à  0 (zéro).

accelerator : Chaîne représentant un accélérateur
accelerator_key : Localisation de retour pour la valeur de touche de l'accélérateur
accelerator_mods : Localisation de retour pour le masque du modificateur de l'accélérateur.

gtk_accelerator_name ()


gchar*			 gtk_accelerator_name 			(guint accelerator_key,
 GdkModifierType accelerator_mods);

Convertit un valeur de touche d'un accélérateur et le masque du modificateur en une chaîne analysable par gtk_accelerator_parse(). Par exemple, si vous lui passé GDK_q et GDK_CONTROL_MASK, cette fonction retounera <Control>q".

Si vous avez besoin d'afficher des accélérateur dans l'interface utilisateur, voir  gtk_accelerator_get_label().

accelerator_key : Valeur de touche de l'accélérateur
accelerator_mods : Masque de modificateur d'accélérateur
Retourne : Une nouvelle allocation de nom d'accélérateur.

gtk_accelerator_get_label ()


gchar* gtk_accelerator_get_label (guint accelerator_key,
GdkModifierType accelerator_mods);

Convertit un valeur de touche d'accélérateur et un masque de modificateur en une chaîne qui peut être utilisée pour représenter l'accélérateur à l'utilisateur.

accelerator_key : Valeur de touche de l'accélérateur
accelerator_mods : Masque de modificateur d'accélérateur
Retourne : Une nouvelle allocation de chaîne représentant l'accélérateur.

Depuis 2.6


gtk_accelerator_set_default_mod_mask ()


void 		  gtk_accelerator_set_default_mod_mask         	(GdkModifierType default_mod_mask);

Définit les modificateurs qui seront considérés significatifs pour les accélérateurs de clavier. Le masque de modificateur par défaut est  GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK | GDK_SUPER_MASK | GDK_HYPER_MASK | GDK_META_MASK, c'est , Control, Shift, Alt, Super, Hyper et Meta. Les autres modificateurs sont ignorés par  GtkAccelGroup. Au final,vous devez inclure les trois modificateurs  Control, Shift et Alt dans n'importe quelle valeur que vous passez à cette fonction.

Le masque de modificateur par défaut doit être modifié au début des appliactions, avant d'utiliser n'importe quel groupe accélérateur.

default_mod_mask : Masque de modificateur d'accélérateur.

gtk_accelerator_get_default_mod_mask ()


guint 			gtk_accelerator_get_default_mod_mask 			(void);

Obtient la valeur définit par  gtk_accelerator_set_default_mod_mask().

Retourne : Le masque de modificatuer par défaut de l'accélérateur

Détails des Signaux

The "accel-activate" signal


gboolean 		user_function 		(GtkAccelGroup *accel_group,
 GObject *acceleratable,
 guint keyval,
 GdkModifierType modifier,
 gpointer user_data) : Has Details

Le signal "accel-activate" est un détail d'exécution de  GtkAccelGroup  et n'est pas appelé à être utilisé par les applications.

accel_group : Le GtkAccelGroup qui reçoit le sigal
acceleratable : L'objet sur lequel l'accélérateur a été activé.
keyval : Valeur de touche de l'accélérateur
modifier : Combinaison de modificateur de l'accélarateur
user_data : Donnée utilisateur définie quand le handler (manipulateur) du signal est connecté.
Retourne : TRUE  si l'accélérateur a été activé.

The "accel-changed" signal


void 			user_function			(GtkAccelGroup *accel_group,
 guint keyval,
 GdkModifierType modifier,
 GClosure *accel_closure,
 gpointer user_data) : Exécute en premier / a des détails

Le signal "accem-changed" est imité quand un GtkAccelGroupEntry est ajouté ou supprimé d'un groupe accélérateur.

Des Widgets comme GtkAccelLabelqui affichent un accélérateur associé doivent être connectés à ce signal, et reconstruisent leur représentation visuelle si  accel_closure leur appartient.

accel_group : le GtkAccelGroup  qui reçoit le signal
keyval : Valeur de touche de l'accélérateur
modifier : Combinaison de modificateur pour l'accélérateur
accel_closure : le GClosure de l'accélérateur
user_data : Donnée utilisateur définie quand le handler du signal a été connecté.

Voir Aussi

gtk_window_add_accel_group(), gtk_accel_map_change_entry(), gtk_item_factory_new(), gtk_label_new_with_mnemonic()