GtkAccelLabel a label which displays an accelerator key on the right of the text. The #GtkAccelLabel widget is a subclass of #GtkLabel that also displays an accelerator key on the right of the label text, e.g. 'Ctl+S'. It is commonly used in menus to show the keyboard short-cuts for commands. The accelerator key to display is not set explicitly. Instead, the #GtkAccelLabel displays the accelerators which have been added to a particular widget. This widget is set by calling gtk_accel_label_set_accel_widget(). For example, a #GtkMenuItem widget may have an accelerator added to emit the "activate" signal when the 'Ctl+S' key combination is pressed. A #GtkAccelLabel is created and added to the #GtkMenuItem, and gtk_accel_label_set_accel_widget() is called with the #GtkMenuItem as the second argument. The #GtkAccelLabel will now display 'Ctl+S' after its label. Note that creating a #GtkMenuItem with gtk_menu_item_new_with_label() (or one of the similar functions for #GtkCheckMenuItem and #GtkRadioMenuItem) automatically adds a #GtkAccelLabel to the #GtkMenuItem and calls gtk_accel_label_set_accel_widget() to set it up for you. A #GtkAccelLabel will only display accelerators which have GTK_ACCEL_VISIBLE set (see #GtkAccelFlags). A #GtkAccelLabel can display multiple accelerators and even signal names, though it is almost always used to display just one accelerator key. Creating a simple menu item with an accelerator key. GtkWidget *save_item; GtkAccelGroup *accel_group; /* Create a #GtkAccelGroup and add it to the window. */ accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), accel_group); /* Create the menu item using the convenience function. */ save_item = gtk_menu_item_new_with_label ("Save"); gtk_widget_show (save_item); gtk_container_add (GTK_CONTAINER (menu), save_item); /* Now add the accelerator to the #GtkMenuItem. Note that since we called gtk_menu_item_new_with_label() to create the #GtkMenuItem the #GtkAccelLabel is automatically set up to display the #GtkMenuItem accelerators. We just need to make sure we use GTK_ACCEL_VISIBLE here. */ gtk_widget_add_accelerator (save_item, "activate", accel_group, GDK_s, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); Keyboard Accelerators installing and using keyboard short-cuts. #GtkItemFactory an easier way to create menus. The #GtkAccelLabel-struct struct contains private data only, and should be accessed using the functions below. Creates a new #GtkAccelLabel. @string: the label string. Must be non-NULL. @Returns: a new #GtkAccelLabel. @accel_label: @Returns: @accel_label: @accel_object: @accel_label: Sets the widget whose accelerators are to be shown. @accel_label: a #GtkAccelLabel. @accel_widget: the widget whose accelerators are to be displayed. Returns the width needed to display the accelerator key(s). This is used by menus to align all of the #GtkMenuItem widgets, and shouldn't be needed by applications. @accel_label: a #GtkAccelLabel. @Returns: Recreates the string representing the accelerator keys. This should not be needed since the string is automatically updated whenever accelerators are added or removed from the associated widget. @accel_label: a #GtkAccelLabel. @Returns: always returns FALSE.