Tiré de GTK+ Reference Manual

GtkAccelLabel

GtkAccelLabel — Label qui affiche un accélérateur clavier à la droite du texte.

Synopsis

#include <gtk/gtk.h>


GtkAccelLabel;
GtkWidget* gtk_accel_label_new (const gchar *string);
void gtk_accel_label_set_accel_closure (GtkAccelLabel *accel_label,
GClosure *accel_closure);
GtkWidget* gtk_accel_label_get_accel_widget (GtkAccelLabel *accel_label);
void gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,
GtkWidget *accel_widget);
guint gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label);
gboolean gtk_accel_label_refetch (GtkAccelLabel *accel_label);

Hiérarchie de l'Objet

  GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkMisc
+----GtkLabel
+----GtkAccelLabel

Interfaces Implémentés

GtkAccelLabel implements AtkImplementorIface.

Propriétés

  "accel-closure"            GClosure              : Lire / Ecrire
"accel-widget" GtkWidget : Lire / Ecrire

Description

Le widget  GtkAccelLabel est une sous-classe de  GtkLabel qui affiche en plus un accélérateur clavier à droite du texte, par exemple 'Ctl+S'. Il est utilisé communément dans les menus pour donner les raccourcis clavier des commandes.

Les accélérateurs clavier à afficher ne sont pas définis explicitement. Le GtkAccelLabelaffiche les accélérateurs qui ont été ajoutés à un widget particulier. On définit ce widget  en appelant la fonction gtk_accel_label_set_accel_widget().

Par exemple, un widget  GtkMenuItem peut avoir un accélérateur pour émettre le signal "activate" quand la combinaison  de touches 'Ctl+S' est utilisée. Un GtkAccelLabel est créé et ajouté au  GtkMenuItem, et  gtk_accel_label_set_accel_widget() est appelée avec le  GtkMenuItem en second argument. Le GtkAccelLabel affichera alors 'Ctl+S' après son label.

Notez que la création d'un  GtkMenuItem avec gtk_menu_item_new_with_label() (ou une des fonctions similaires pour  GtkCheckMenuItem et GtkRadioMenuItem) ajoute automatiquement un  GtkAccelLabel au GtkMenuItem et appelle  gtk_accel_label_set_accel_widget() pour le configurer à votre place.

Un GtkAccelLabel affichera seulement des accélérateurs avec GTK_ACCEL_VISIBLE défini (voir GtkAccelFlags). Un  GtkAccelLabel peut afficher des accélérateurs multiples et même des noms de signaux bien qu'il soit presque toujours utilisé pour afficher l'accélérateur clavier.

Exemple 1. Création d'un item de menu simple avec un accélérateur clavier.

  GtkWidget *save_item;
GtkAccelGroup *accel_group;

/* Créer un GtkAccelGroup et l'ajouter à la fenêtre. */
accel_group = gtk_accel_group_new ();
gtk_window_add_accel_group (GTK_WINDOW (window), accel_group);

/* Créer l'item du menu en utilisant le fonction adaptée. */
save_item = gtk_menu_item_new_with_label ("Save");
gtk_widget_show (save_item);
gtk_container_add (GTK_CONTAINER (menu), save_item);

/* Maintenant, ajouter l'accélérateur à GtkMenuItem. Notez que puisque nous avons appelé
 gtk_menu_item_new_with_label() pour créer le GtkMenuItem
GtkAccelLabel est automatiquement configuré pour afficher l'accélérateur de
 GtkMenuItem. Nous avons simplement besoin de nous assurer que nous utilisons ici GTK_ACCEL_VISIBLE. */
gtk_widget_add_accelerator (save_item, "activate", accel_group,
GDK_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);

Détails

GtkAccelLabel


typedef struct _GtkAccelLabel GtkAccelLabel;

La structure  GtkAccelLabel contient seulement des données privées et on doit y accéder en utilisant la fonction présentée ci-dessous.

gtk_accel_label_new ()


GtkWidget*          gtk_accel_label_new                 (const gchar *string);

Crée un nouveau GtkAccelLabel.

string : La chaine du label. Doit être non-NULL.
Retourne : un nouveau  GtkAccelLabel.

gtk_accel_label_set_accel_closure ()


void                gtk_accel_label_set_accel_closure   (GtkAccelLabel *accel_label,
GClosure *accel_closure);

Définit la clôture contrôlée par le label accélérateur. La clôture doit être connectée à une groupe d'accélérateurs; voir gtk_accel_group_connect().

accel_label : un GtkAccelLabel
accel_closure : clôture  contrôlée pour des changements d'accélérateur. 

gtk_accel_label_get_accel_widget ()


GtkWidget*          gtk_accel_label_get_accel_widget    (GtkAccelLabel *accel_label);

Cherche le widget contrôlé par le label accélérateur. Voir gtk_accel_label_set_accel_widget().

accel_label : un GtkAccelLabel
Retourne : objet contrôlé par le label accélérateur, ou  NULL.

gtk_accel_label_set_accel_widget ()


void                gtk_accel_label_set_accel_widget    (GtkAccelLabel *accel_label,
GtkWidget *accel_widget);

Définit le widget a contrôler avec le label accélérateur.

accel_label : un GtkAccelLabel
accel_widget : Widget à contrôler avec le label accélérateur

gtk_accel_label_get_accel_width ()


guint               gtk_accel_label_get_accel_width     (GtkAccelLabel *accel_label);

Retourne la largeur nécessaire pour afficher le ou les accélérateur(s) clavier. Elle est utilisée par les menus pour alligner tous les widgets  GtkMenuItem et elle  ne devrait pas être nécessaire pour  l'application.
accel_label : un GtkAccelLabel.
Retourne : la largeur nécessaire pour afficher les accélérateurs clavier.

gtk_accel_label_refetch ()


gboolean            gtk_accel_label_refetch             (GtkAccelLabel *accel_label);

Recréé la chaîne représentant les accélérateurs clavier. Cela n'est pas nécessaire puisque la chaîne est automatiquement mise à jour si des accélérateurs sont ajoutés ou retirés du widget associé.

accel_label : un GtkAccelLabel.
Retourne : retourne toujours  FALSE.

Détails des Propriétés

La propriété "accel-closure


  "accel-closure"            GClosure              : Lire / Ecrire

La clôture contrôlée pour des changement d'accélérateur.


La propriété "accel-widget"


  "accel-widget"             GtkWidget             : Lire / Ecrire

Widget contrôlé pour des changement d'accélérateur.

Voir Aussi

Accélérateurs clavier 

installation et utilisation des raccourcis clavier

GtkItemFactory

une façon aisée de créer un m enu.