GtkLabel

GtkLabel

Synopsis

#include <gtk/gtk.h>

                    GtkLabel;
GtkWidget*          gtk_label_new                       (const gchar *str);
void                gtk_label_set_text                  (GtkLabel *label,
                                                         const gchar *str);
void                gtk_label_set_attributes            (GtkLabel *label,
                                                         PangoAttrList *attrs);
void                gtk_label_set_markup                (GtkLabel *label,
                                                         const gchar *str);
void                gtk_label_set_markup_with_mnemonic  (GtkLabel *label,
                                                         const gchar *str);
void                gtk_label_set_pattern               (GtkLabel *label,
                                                         const gchar *pattern);
void                gtk_label_set_justify               (GtkLabel *label,
                                                         GtkJustification jtype);
void                gtk_label_set_ellipsize             (GtkLabel *label,
                                                         PangoEllipsizeMode mode);
void                gtk_label_set_width_chars           (GtkLabel *label,
                                                         gint n_chars);
void                gtk_label_set_max_width_chars       (GtkLabel *label,
                                                         gint n_chars);
void                gtk_label_set_line_wrap             (GtkLabel *label,
                                                         gboolean wrap);
void                gtk_label_set_line_wrap_mode        (GtkLabel *label,
                                                         PangoWrapMode wrap_mode);
void                gtk_label_get_layout_offsets        (GtkLabel *label,
                                                         gint *x,
                                                         gint *y);
guint               gtk_label_get_mnemonic_keyval       (GtkLabel *label);
gboolean            gtk_label_get_selectable            (GtkLabel *label);
const gchar*        gtk_label_get_text                  (GtkLabel *label);
GtkWidget*          gtk_label_new_with_mnemonic         (const gchar *str);
void                gtk_label_select_region             (GtkLabel *label,
                                                         gint start_offset,
                                                         gint end_offset);
void                gtk_label_set_mnemonic_widget       (GtkLabel *label,
                                                         GtkWidget *widget);
void                gtk_label_set_selectable            (GtkLabel *label,
                                                         gboolean setting);
void                gtk_label_set_text_with_mnemonic    (GtkLabel *label,
                                                         const gchar *str);
PangoAttrList *     gtk_label_get_attributes            (GtkLabel *label);
GtkJustification    gtk_label_get_justify               (GtkLabel *label);
PangoEllipsizeMode  gtk_label_get_ellipsize             (GtkLabel *label);
gint                gtk_label_get_width_chars           (GtkLabel *label);
gint                gtk_label_get_max_width_chars       (GtkLabel *label);
const gchar *       gtk_label_get_label                 (GtkLabel *label);
PangoLayout *       gtk_label_get_layout                (GtkLabel *label);
gboolean            gtk_label_get_line_wrap             (GtkLabel *label);
PangoWrapMode       gtk_label_get_line_wrap_mode        (GtkLabel *label);
GtkWidget *         gtk_label_get_mnemonic_widget       (GtkLabel *label);
gboolean            gtk_label_get_selection_bounds      (GtkLabel *label,
                                                         gint *start,
                                                         gint *end);
gboolean            gtk_label_get_use_markup            (GtkLabel *label);
gboolean            gtk_label_get_use_underline         (GtkLabel *label);
gboolean            gtk_label_get_single_line_mode      (GtkLabel *label);
gdouble             gtk_label_get_angle                 (GtkLabel *label);
void                gtk_label_set_label                 (GtkLabel *label,
                                                         const gchar *str);
void                gtk_label_set_use_markup            (GtkLabel *label,
                                                         gboolean setting);
void                gtk_label_set_use_underline         (GtkLabel *label,
                                                         gboolean setting);
void                gtk_label_set_single_line_mode      (GtkLabel *label,
                                                         gboolean single_line_mode);
void                gtk_label_set_angle                 (GtkLabel *label,
                                                         gdouble angle);
const gchar *       gtk_label_get_current_uri           (GtkLabel *label);
void                gtk_label_set_track_visited_links   (GtkLabel *label,
                                                         gboolean track_links);
gboolean            gtk_label_get_track_visited_links   (GtkLabel *label);

Description

Details

GtkLabel

typedef struct {
  GtkMisc misc;
} GtkLabel;


gtk_label_new ()

GtkWidget*          gtk_label_new                       (const gchar *str);

Creates a new label with the given text inside it. You can pass NULL to get an empty label widget.

str :

The text of the label

Returns :

the new GtkLabel

gtk_label_set_text ()

void                gtk_label_set_text                  (GtkLabel *label,
                                                         const gchar *str);

Sets the text within the GtkLabel widget. It overwrites any text that was there before.

This will also clear any previously set mnemonic accelerators.

label :

a GtkLabel

str :

The text you want to set

gtk_label_set_attributes ()

void                gtk_label_set_attributes            (GtkLabel *label,
                                                         PangoAttrList *attrs);

Sets a PangoAttrList; the attributes in the list are applied to the label text.

Note

The attributes set with this function will be applied and merged with any other attributes previously effected by way of the "use-underline" or "use-markup" properties. While it is not recommended to mix markup strings with manually set attributes, if you must; know that the attributes will be applied to the label after the markup string is parsed.

label :

a GtkLabel

attrs :

a PangoAttrList

gtk_label_set_markup ()

void                gtk_label_set_markup                (GtkLabel *label,
                                                         const gchar *str);

Parses str which is marked up with the Pango text markup language, setting the label's text and attribute list based on the parse results. If the str is external data, you may need to escape it with g_markup_escape_text() or g_markup_printf_escaped():

1
2
3
4
5
char *markup;

markup = g_markup_printf_escaped ("<span style=\"italic\">%s</span>", str);
gtk_label_set_markup (GTK_LABEL (label), markup);
g_free (markup);

label :

a GtkLabel

str :

a markup string (see Pango markup format)

gtk_label_set_markup_with_mnemonic ()

void                gtk_label_set_markup_with_mnemonic  (GtkLabel *label,
                                                         const gchar *str);

Parses str which is marked up with the Pango text markup language, setting the label's text and attribute list based on the parse results. If characters in str are preceded by an underscore, they are underlined indicating that they represent a keyboard accelerator called a mnemonic.

The mnemonic key can be used to activate another widget, chosen automatically, or explicitly using gtk_label_set_mnemonic_widget().

label :

a GtkLabel

str :

a markup string (see Pango markup format)

gtk_label_set_pattern ()

void                gtk_label_set_pattern               (GtkLabel *label,
                                                         const gchar *pattern);

label :

pattern :


gtk_label_set_justify ()

void                gtk_label_set_justify               (GtkLabel *label,
                                                         GtkJustification jtype);

Sets the alignment of the lines in the text of the label relative to each other. GTK_JUSTIFY_LEFT is the default value when the widget is first created with gtk_label_new(). If you instead want to set the alignment of the label as a whole, use gtk_misc_set_alignment() instead. gtk_label_set_justify() has no effect on labels containing only a single line.

label :

a GtkLabel

jtype :

a GtkJustification

gtk_label_set_ellipsize ()

void                gtk_label_set_ellipsize             (GtkLabel *label,
                                                         PangoEllipsizeMode mode);

Sets the mode used to ellipsize (add an ellipsis: "...") to the text if there is not enough space to render the entire string.

label :

a GtkLabel

mode :

a PangoEllipsizeMode

Since 2.6


gtk_label_set_width_chars ()

void                gtk_label_set_width_chars           (GtkLabel *label,
                                                         gint n_chars);

Sets the desired width in characters of label to n_chars.

label :

a GtkLabel

n_chars :

the new desired width, in characters.

Since 2.6


gtk_label_set_max_width_chars ()

void                gtk_label_set_max_width_chars       (GtkLabel *label,
                                                         gint n_chars);

Sets the desired maximum width in characters of label to n_chars.

label :

a GtkLabel

n_chars :

the new desired maximum width, in characters.

Since 2.6


gtk_label_set_line_wrap ()

void                gtk_label_set_line_wrap             (GtkLabel *label,
                                                         gboolean wrap);

Toggles line wrapping within the GtkLabel widget. TRUE makes it break lines if text exceeds the widget's size. FALSE lets the text get cut off by the edge of the widget if it exceeds the widget size.

Note that setting line wrapping to TRUE does not make the label wrap at its parent container's width, because GTK+ widgets conceptually can't make their requisition depend on the parent container's size. For a label that wraps at a specific position, set the label's width using gtk_widget_set_size_request().

label :

a GtkLabel

wrap :

the setting

gtk_label_set_line_wrap_mode ()

void                gtk_label_set_line_wrap_mode        (GtkLabel *label,
                                                         PangoWrapMode wrap_mode);

If line wrapping is on (see gtk_label_set_line_wrap()) this controls how the line wrapping is done. The default is PANGO_WRAP_WORD which means wrap on word boundaries.

label :

a GtkLabel

wrap_mode :

the line wrapping mode

Since 2.10


gtk_label_get_layout_offsets ()

void                gtk_label_get_layout_offsets        (GtkLabel *label,
                                                         gint *x,
                                                         gint *y);

Obtains the coordinates where the label will draw the PangoLayout representing the text in the label; useful to convert mouse events into coordinates inside the PangoLayout, e.g. to take some action if some part of the label is clicked. Of course you will need to create a GtkEventBox to receive the events, and pack the label inside it, since labels are a GTK_NO_WINDOW widget. Remember when using the PangoLayout functions you need to convert to and from pixels using PANGO_PIXELS() or PANGO_SCALE.

label :

a GtkLabel

x :

location to store X offset of layout, or NULL. [out][allow-none]

y :

location to store Y offset of layout, or NULL. [out][allow-none]

gtk_label_get_mnemonic_keyval ()

guint               gtk_label_get_mnemonic_keyval       (GtkLabel *label);

If the label has been set so that it has an mnemonic key this function returns the keyval used for the mnemonic accelerator. If there is no mnemonic set up it returns GDK_VoidSymbol.

label :

a GtkLabel

Returns :

GDK keyval usable for accelerators, or GDK_VoidSymbol

gtk_label_get_selectable ()

gboolean            gtk_label_get_selectable            (GtkLabel *label);

Gets the value set by gtk_label_set_selectable().

label :

a GtkLabel

Returns :

TRUE if the user can copy text from the label

gtk_label_get_text ()

const gchar*        gtk_label_get_text                  (GtkLabel *label);

Fetches the text from a label widget, as displayed on the screen. This does not include any embedded underlines indicating mnemonics or Pango markup. (See gtk_label_get_label())

label :

a GtkLabel

Returns :

the text in the label widget. This is the internal string used by the label, and must not be modified.

gtk_label_new_with_mnemonic ()

GtkWidget*          gtk_label_new_with_mnemonic         (const gchar *str);

Creates a new GtkLabel, containing the text in str.

If characters in str are preceded by an underscore, they are underlined. If you need a literal underscore character in a label, use '__' (two underscores). The first underlined character represents a keyboard accelerator called a mnemonic. The mnemonic key can be used to activate another widget, chosen automatically, or explicitly using gtk_label_set_mnemonic_widget().

If gtk_label_set_mnemonic_widget() is not called, then the first activatable ancestor of the GtkLabel will be chosen as the mnemonic widget. For instance, if the label is inside a button or menu item, the button or menu item will automatically become the mnemonic widget and be activated by the mnemonic.

str :

The text of the label, with an underscore in front of the mnemonic character

Returns :

the new GtkLabel

gtk_label_select_region ()

void                gtk_label_select_region             (GtkLabel *label,
                                                         gint start_offset,
                                                         gint end_offset);

Selects a range of characters in the label, if the label is selectable. See gtk_label_set_selectable(). If the label is not selectable, this function has no effect. If start_offset or end_offset are -1, then the end of the label will be substituted.

label :

a GtkLabel

start_offset :

start offset (in characters not bytes)

end_offset :

end offset (in characters not bytes)

gtk_label_set_mnemonic_widget ()

void                gtk_label_set_mnemonic_widget       (GtkLabel *label,
                                                         GtkWidget *widget);

If the label has been set so that it has an mnemonic key (using i.e. gtk_label_set_markup_with_mnemonic(), gtk_label_set_text_with_mnemonic(), gtk_label_new_with_mnemonic() or the "use_underline" property) the label can be associated with a widget that is the target of the mnemonic. When the label is inside a widget (like a GtkButton or a GtkNotebook tab) it is automatically associated with the correct widget, but sometimes (i.e. when the target is a GtkEntry next to the label) you need to set it explicitly using this function.

The target widget will be accelerated by emitting the GtkWidget::mnemonic-activate signal on it. The default handler for this signal will activate the widget if there are no mnemonic collisions and toggle focus between the colliding widgets otherwise.

label :

a GtkLabel

widget :

the target GtkWidget. [allow-none]

gtk_label_set_selectable ()

void                gtk_label_set_selectable            (GtkLabel *label,
                                                         gboolean setting);

Selectable labels allow the user to select text from the label, for copy-and-paste.

label :

a GtkLabel

setting :

TRUE to allow selecting text in the label

gtk_label_set_text_with_mnemonic ()

void                gtk_label_set_text_with_mnemonic    (GtkLabel *label,
                                                         const gchar *str);

Sets the label's text from the string str. If characters in str are preceded by an underscore, they are underlined indicating that they represent a keyboard accelerator called a mnemonic. The mnemonic key can be used to activate another widget, chosen automatically, or explicitly using gtk_label_set_mnemonic_widget().

label :

a GtkLabel

str :

a string

gtk_label_get_attributes ()

PangoAttrList *     gtk_label_get_attributes            (GtkLabel *label);

Gets the attribute list that was set on the label using gtk_label_set_attributes(), if any. This function does not reflect attributes that come from the labels markup (see gtk_label_set_markup()). If you want to get the effective attributes for the label, use pango_layout_get_attribute (gtk_label_get_layout (label)).

label :

a GtkLabel

Returns :

the attribute list, or NULL if none was set. [transfer none]

gtk_label_get_justify ()

GtkJustification    gtk_label_get_justify               (GtkLabel *label);

Returns the justification of the label. See gtk_label_set_justify().

label :

a GtkLabel

Returns :

GtkJustification

gtk_label_get_ellipsize ()

PangoEllipsizeMode  gtk_label_get_ellipsize             (GtkLabel *label);

Returns the ellipsizing position of the label. See gtk_label_set_ellipsize().

label :

a GtkLabel

Returns :

PangoEllipsizeMode

Since 2.6


gtk_label_get_width_chars ()

gint                gtk_label_get_width_chars           (GtkLabel *label);

Retrieves the desired width of label, in characters. See gtk_label_set_width_chars().

label :

a GtkLabel

Returns :

the width of the label in characters.

Since 2.6


gtk_label_get_max_width_chars ()

gint                gtk_label_get_max_width_chars       (GtkLabel *label);

Retrieves the desired maximum width of label, in characters. See gtk_label_set_width_chars().

label :

a GtkLabel

Returns :

the maximum width of the label in characters.

Since 2.6


gtk_label_get_label ()

const gchar *       gtk_label_get_label                 (GtkLabel *label);

Fetches the text from a label widget including any embedded underlines indicating mnemonics and Pango markup. (See gtk_label_get_text()).

label :

a GtkLabel

Returns :

the text of the label widget. This string is owned by the widget and must not be modified or freed.

gtk_label_get_layout ()

PangoLayout *       gtk_label_get_layout                (GtkLabel *label);

Gets the PangoLayout used to display the label. The layout is useful to e.g. convert text positions to pixel positions, in combination with gtk_label_get_layout_offsets(). The returned layout is owned by the label so need not be freed by the caller. The label is free to recreate its layout at any time, so it should be considered read-only.

label :

a GtkLabel

Returns :

the PangoLayout for this label. [transfer none]

gtk_label_get_line_wrap ()

gboolean            gtk_label_get_line_wrap             (GtkLabel *label);

Returns whether lines in the label are automatically wrapped. See gtk_label_set_line_wrap().

label :

a GtkLabel

Returns :

TRUE if the lines of the label are automatically wrapped.

gtk_label_get_line_wrap_mode ()

PangoWrapMode       gtk_label_get_line_wrap_mode        (GtkLabel *label);

Returns line wrap mode used by the label. See gtk_label_set_line_wrap_mode().

label :

a GtkLabel

Returns :

TRUE if the lines of the label are automatically wrapped.

Since 2.10


gtk_label_get_mnemonic_widget ()

GtkWidget *         gtk_label_get_mnemonic_widget       (GtkLabel *label);

Retrieves the target of the mnemonic (keyboard shortcut) of this label. See gtk_label_set_mnemonic_widget().

label :

a GtkLabel

Returns :

the target of the label's mnemonic, or NULL if none has been set and the default algorithm will be used. [transfer none]

gtk_label_get_selection_bounds ()

gboolean            gtk_label_get_selection_bounds      (GtkLabel *label,
                                                         gint *start,
                                                         gint *end);

Gets the selected range of characters in the label, returning TRUE if there's a selection.

label :

a GtkLabel

start :

return location for start of selection, as a character offset. [out]

end :

return location for end of selection, as a character offset. [out]

Returns :

TRUE if selection is non-empty

gtk_label_get_use_markup ()

gboolean            gtk_label_get_use_markup            (GtkLabel *label);

Returns whether the label's text is interpreted as marked up with the Pango text markup language. See gtk_label_set_use_markup().

label :

a GtkLabel

Returns :

TRUE if the label's text will be parsed for markup.

gtk_label_get_use_underline ()

gboolean            gtk_label_get_use_underline         (GtkLabel *label);

Returns whether an embedded underline in the label indicates a mnemonic. See gtk_label_set_use_underline().

label :

a GtkLabel

Returns :

TRUE whether an embedded underline in the label indicates the mnemonic accelerator keys.

gtk_label_get_single_line_mode ()

gboolean            gtk_label_get_single_line_mode      (GtkLabel *label);

Returns whether the label is in single line mode.

label :

a GtkLabel

Returns :

TRUE when the label is in single line mode.

Since 2.6


gtk_label_get_angle ()

gdouble             gtk_label_get_angle                 (GtkLabel *label);

Gets the angle of rotation for the label. See gtk_label_set_angle().

label :

a GtkLabel

Returns :

the angle of rotation for the label

Since 2.6


gtk_label_set_label ()

void                gtk_label_set_label                 (GtkLabel *label,
                                                         const gchar *str);

Sets the text of the label. The label is interpreted as including embedded underlines and/or Pango markup depending on the values of the "use-underline"" and "use-markup" properties.

label :

a GtkLabel

str :

the new text to set for the label

gtk_label_set_use_markup ()

void                gtk_label_set_use_markup            (GtkLabel *label,
                                                         gboolean setting);

Sets whether the text of the label contains markup in Pango's text markup language. See gtk_label_set_markup().

label :

a GtkLabel

setting :

TRUE if the label's text should be parsed for markup.

gtk_label_set_use_underline ()

void                gtk_label_set_use_underline         (GtkLabel *label,
                                                         gboolean setting);

If true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.

label :

a GtkLabel

setting :

TRUE if underlines in the text indicate mnemonics

gtk_label_set_single_line_mode ()

void                gtk_label_set_single_line_mode      (GtkLabel *label,
                                                         gboolean single_line_mode);

Sets whether the label is in single line mode.

label :

a GtkLabel

single_line_mode :

TRUE if the label should be in single line mode

Since 2.6


gtk_label_set_angle ()

void                gtk_label_set_angle                 (GtkLabel *label,
                                                         gdouble angle);

Sets the angle of rotation for the label. An angle of 90 reads from from bottom to top, an angle of 270, from top to bottom. The angle setting for the label is ignored if the label is selectable, wrapped, or ellipsized.

label :

a GtkLabel

angle :

the angle that the baseline of the label makes with the horizontal, in degrees, measured counterclockwise

Since 2.6


gtk_label_get_current_uri ()

const gchar *       gtk_label_get_current_uri           (GtkLabel *label);

Returns the URI for the currently active link in the label. The active link is the one under the mouse pointer or, in a selectable label, the link in which the text cursor is currently positioned.

This function is intended for use in a "activate-link" handler or for use in a "query-tooltip" handler.

label :

a GtkLabel

Returns :

the currently active URI. The string is owned by GTK+ and must not be freed or modified.

Since 2.18


gtk_label_set_track_visited_links ()

void                gtk_label_set_track_visited_links   (GtkLabel *label,
                                                         gboolean track_links);

Sets whether the label should keep track of clicked links (and use a different color for them).

label :

a GtkLabel

track_links :

TRUE to track visited links

Since 2.18


gtk_label_get_track_visited_links ()

gboolean            gtk_label_get_track_visited_links   (GtkLabel *label);

Returns whether the label is currently keeping track of clicked links.

label :

a GtkLabel

Returns :

TRUE if clicked links are remembered

Since 2.18