pub struct LabelBuilder { /* private fields */ }
Expand description

A builder-pattern type to construct Label objects.

Implementations

Create a new LabelBuilder.

Build the Label.

The angle that the baseline of the label makes with the horizontal, in degrees, measured counterclockwise. An angle of 90 reads from from bottom to top, an angle of 270, from top to bottom. Ignored if the label is selectable.

The preferred place to ellipsize the string, if the label does not have enough room to display the entire string, specified as a pango::EllipsizeMode.

Note that setting this property to a value other than pango::EllipsizeMode::None has the side-effect that the label requests only enough space to display the ellipsis “…”. In particular, this means that ellipsizing labels do not work well in notebook tabs, unless the Notebook tab-expand child property is set to true. Other ways to set a label’s width are WidgetExt::set_size_request() and LabelExt::set_width_chars().

The contents of the label.

If the string contains [Pango XML markup][PangoMarkupFormat], you will have to set the property::Label::use-markup property to true in order for the label to display the markup attributes. See also LabelExt::set_markup() for a convenience function that sets both this property and the property::Label::use-markup property at the same time.

If the string contains underlines acting as mnemonics, you will have to set the property::Label::use-underline property to true in order for the label to display them.

The number of lines to which an ellipsized, wrapping label should be limited. This property has no effect if the label is not wrapping or ellipsized. Set this property to -1 if you don’t want to limit the number of lines.

The desired maximum width of the label, in characters. If this property is set to -1, the width will be calculated automatically.

See the section on [text layout][label-text-layout] for details of how property::Label::width-chars and property::Label::max-width-chars determine the width of ellipsized and wrapped labels.

Whether the label is in single line mode. In single line mode, the height of the label does not depend on the actual text, it is always set to ascent + descent of the font. This can be an advantage in situations where resizing the label because of text changes would be distracting, e.g. in a statusbar.

Set this property to true to make the label track which links have been visited. It will then apply the StateFlags::VISITED when rendering this link, in addition to StateFlags::LINK.

The desired width of the label, in characters. If this property is set to -1, the width will be calculated automatically.

See the section on [text layout][label-text-layout] for details of how property::Label::width-chars and property::Label::max-width-chars determine the width of ellipsized and wrapped labels.

If line wrapping is on (see the property::Label::wrap property) this controls how the line wrapping is done. The default is pango::WrapMode::Word, which means wrap on word boundaries.

The xalign property determines the horizontal aligment of the label text inside the labels size allocation. Compare this to property::Widget::halign, which determines how the labels size allocation is positioned in the space available for the label.

The yalign property determines the vertical aligment of the label text inside the labels size allocation. Compare this to property::Widget::valign, which determines how the labels size allocation is positioned in the space available for the label.

Whether to expand in both directions. Setting this sets both property::Widget::hexpand and property::Widget::vexpand

Available on crate feature v3_20 only.

Whether the widget should grab focus when it is clicked with the mouse.

This property is only relevant for widgets that can take focus.

Before 3.20, several widgets (GtkButton, GtkFileChooserButton, GtkComboBox) implemented this property individually.

How to distribute horizontal space if widget gets extra space, see Align

Enables or disables the emission of signal::Widget::query-tooltip on widget. A value of true indicates that widget can have a tooltip, in this case the widget will be queried using signal::Widget::query-tooltip to determine whether it will provide a tooltip or not.

Note that setting this property to true for the first time will change the event masks of the GdkWindows of this widget to include leave-notify and motion-notify events. This cannot and will not be undone when the property is set to false again.

Whether to expand horizontally. See WidgetExt::set_hexpand().

Whether to use the property::Widget::hexpand property. See WidgetExt::is_hexpand_set().

Sets all four sides’ margin at once. If read, returns max margin on any side.

Margin on bottom side of widget.

This property adds margin outside of the widget’s normal size request, the margin will be added in addition to the size from WidgetExt::set_size_request() for example.

Margin on end of widget, horizontally. This property supports left-to-right and right-to-left text directions.

This property adds margin outside of the widget’s normal size request, the margin will be added in addition to the size from WidgetExt::set_size_request() for example.

Margin on start of widget, horizontally. This property supports left-to-right and right-to-left text directions.

This property adds margin outside of the widget’s normal size request, the margin will be added in addition to the size from WidgetExt::set_size_request() for example.

Margin on top side of widget.

This property adds margin outside of the widget’s normal size request, the margin will be added in addition to the size from WidgetExt::set_size_request() for example.

The requested opacity of the widget. See WidgetExt::set_opacity() for more details about window opacity.

Before 3.8 this was only available in GtkWindow

Sets the text of tooltip to be the given string, which is marked up with the [Pango text markup language][PangoMarkupFormat]. Also see Tooltip::set_markup().

This is a convenience property which will take care of getting the tooltip shown if the given string is not None: property::Widget::has-tooltip will automatically be set to true and there will be taken care of signal::Widget::query-tooltip in the default signal handler.

Note that if both property::Widget::tooltip-text and property::Widget::tooltip-markup are set, the last one wins.

Sets the text of tooltip to be the given string.

Also see Tooltip::set_text().

This is a convenience property which will take care of getting the tooltip shown if the given string is not None: property::Widget::has-tooltip will automatically be set to true and there will be taken care of signal::Widget::query-tooltip in the default signal handler.

Note that if both property::Widget::tooltip-text and property::Widget::tooltip-markup are set, the last one wins.

How to distribute vertical space if widget gets extra space, see Align

Whether to expand vertically. See WidgetExt::set_vexpand().

Whether to use the property::Widget::vexpand property. See WidgetExt::is_vexpand_set().

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.