mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-26 05:31:07 +00:00
Move documentation to inline comments: GtkAccelLabel
https://bugzilla.gnome.org/show_bug.cgi?id=403485
This commit is contained in:
parent
239570abdd
commit
541448732d
@ -1,158 +0,0 @@
|
||||
<!-- ##### SECTION Title ##### -->
|
||||
GtkAccelLabel
|
||||
|
||||
<!-- ##### SECTION Short_Description ##### -->
|
||||
A label which displays an accelerator key on the right of the text
|
||||
|
||||
<!-- ##### SECTION Long_Description ##### -->
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
<para>
|
||||
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().
|
||||
</para>
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
|
||||
<example>
|
||||
<title>Creating a simple menu item with an accelerator key.</title>
|
||||
<programlisting>
|
||||
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);
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<!-- ##### SECTION See_Also ##### -->
|
||||
<para>
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term><link linkend="gtk-keyboard-accelerators">Keyboard Accelerators</link>
|
||||
</term>
|
||||
<listitem><para>installing and using keyboard short-cuts.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>#GtkItemFactory</term>
|
||||
<listitem><para>an easier way to create menus.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</para>
|
||||
|
||||
<!-- ##### SECTION Stability_Level ##### -->
|
||||
|
||||
|
||||
<!-- ##### STRUCT GtkAccelLabel ##### -->
|
||||
<para>
|
||||
The #GtkAccelLabel-struct struct contains private data only, and
|
||||
should be accessed using the functions below.
|
||||
</para>
|
||||
|
||||
|
||||
<!-- ##### ARG GtkAccelLabel:accel-closure ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GtkAccelLabel:accel-widget ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_label_new ##### -->
|
||||
<para>
|
||||
Creates a new #GtkAccelLabel.
|
||||
</para>
|
||||
|
||||
@string: the label string. Must be non-%NULL.
|
||||
@Returns: a new #GtkAccelLabel.
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_label_set_accel_closure ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_label:
|
||||
@accel_closure:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_label_get_accel_widget ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_label:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_label_set_accel_widget ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@accel_label:
|
||||
@accel_widget:
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_label_get_accel_width ##### -->
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
|
||||
@accel_label: a #GtkAccelLabel.
|
||||
@Returns: the width needed to display the accelerator key(s).
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gtk_accel_label_refetch ##### -->
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
|
||||
@accel_label: a #GtkAccelLabel.
|
||||
@Returns: always returns %FALSE.
|
||||
|
||||
|
@ -38,6 +38,61 @@
|
||||
#include "gtkalias.h"
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
|
||||
/**
|
||||
* SECTION:gtkaccellabel
|
||||
* @Short_description: A label which displays an accelerator key on the right of the text
|
||||
* @Title: GtkAccelLabel
|
||||
* @See_also: #GtkItemFactory, #GtkAccelGroup
|
||||
*
|
||||
* 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.
|
||||
* <example>
|
||||
* <title>Creating a simple menu item with an accelerator key.</title>
|
||||
* <programlisting>
|
||||
* 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);
|
||||
* </programlisting>
|
||||
* </example>
|
||||
*/
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_ACCEL_CLOSURE,
|
||||
@ -191,6 +246,14 @@ gtk_accel_label_init (GtkAccelLabel *accel_label)
|
||||
accel_label->accel_string = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_accel_label_new:
|
||||
* @string: the label string. Must be non-%NULL.
|
||||
*
|
||||
* Creates a new #GtkAccelLabel.
|
||||
*
|
||||
* Returns: a new #GtkAccelLabel.
|
||||
*/
|
||||
GtkWidget*
|
||||
gtk_accel_label_new (const gchar *string)
|
||||
{
|
||||
@ -233,8 +296,7 @@ gtk_accel_label_finalize (GObject *object)
|
||||
* Fetches the widget monitored by this accelerator label. See
|
||||
* gtk_accel_label_set_accel_widget().
|
||||
*
|
||||
* Return value: the object monitored by the accelerator label,
|
||||
* or %NULL.
|
||||
* Returns: the object monitored by the accelerator label, or %NULL.
|
||||
**/
|
||||
GtkWidget*
|
||||
gtk_accel_label_get_accel_widget (GtkAccelLabel *accel_label)
|
||||
@ -244,6 +306,16 @@ gtk_accel_label_get_accel_widget (GtkAccelLabel *accel_label)
|
||||
return accel_label->accel_widget;
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_accel_label_get_accel_width:
|
||||
* @accel_label: a #GtkAccelLabel.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Returns: the width needed to display the accelerator key(s).
|
||||
*/
|
||||
guint
|
||||
gtk_accel_label_get_accel_width (GtkAccelLabel *accel_label)
|
||||
{
|
||||
@ -749,6 +821,16 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass,
|
||||
return g_string_free (gstring, FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_accel_label_refetch:
|
||||
* @accel_label: a #GtkAccelLabel.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* Returns: always returns %FALSE.
|
||||
*/
|
||||
gboolean
|
||||
gtk_accel_label_refetch (GtkAccelLabel *accel_label)
|
||||
{
|
||||
|
@ -51,6 +51,12 @@ G_BEGIN_DECLS
|
||||
typedef struct _GtkAccelLabel GtkAccelLabel;
|
||||
typedef struct _GtkAccelLabelClass GtkAccelLabelClass;
|
||||
|
||||
/**
|
||||
* GtkAccelLabel:
|
||||
*
|
||||
* The #GtkAccelLabel-struct struct contains private data only, and
|
||||
* should be accessed using the functions below.
|
||||
*/
|
||||
struct _GtkAccelLabel
|
||||
{
|
||||
GtkLabel label;
|
||||
|
Loading…
Reference in New Issue
Block a user