Struct libbismuth::builders::HuggerBuilder
source · pub struct HuggerBuilder { /* private fields */ }
Expand description
A builder-pattern type to construct Hugger
objects.
Implementations§
source§impl HuggerBuilder
impl HuggerBuilder
sourcepub fn allow_none(self, allow_none: bool) -> Self
pub fn allow_none(self, allow_none: bool) -> Self
Whether to allow squeezing beyond the last child’s minimum size.
If set to TRUE
, the hugger can shrink to the point where no child can
be shown. This is functionally equivalent to appending a widget with 0×0
minimum size.
sourcepub fn homogeneous(self, homogeneous: bool) -> Self
pub fn homogeneous(self, homogeneous: bool) -> Self
Whether all children have the same size for the opposite orientation.
For example, if a hugger is horizontal and is homogeneous, it will request the same height for all its children. If it isn’t, the hugger may change size when a different child becomes visible.
sourcepub fn interpolate_size(self, interpolate_size: bool) -> Self
pub fn interpolate_size(self, interpolate_size: bool) -> Self
Whether the hugger interpolates its size when changing the visible child.
If TRUE
, the hugger will interpolate its size between the one of the
previous visible child and the one of the new visible child, according to
the set transition duration and the orientation, e.g. if the hugger is
horizontal, it will interpolate the its height.
sourcepub fn switch_threshold_policy(
self,
switch_threshold_policy: FoldThresholdPolicy,
) -> Self
pub fn switch_threshold_policy( self, switch_threshold_policy: FoldThresholdPolicy, ) -> Self
The switch threshold policy.
Determines when the hugger will switch children.
If set to BIS_FOLD_THRESHOLD_POLICY_MINIMUM
, it will only switch when the
visible child cannot fit anymore. With BIS_FOLD_THRESHOLD_POLICY_NATURAL
,
it will switch as soon as the visible child doesn’t get their natural size.
This can be useful if you have a long ellipsizing label and want to let it ellipsize instead of immediately switching.
sourcepub fn transition_duration(self, transition_duration: u32) -> Self
pub fn transition_duration(self, transition_duration: u32) -> Self
The transition animation duration, in milliseconds.
sourcepub fn transition_type(self, transition_type: HuggerTransitionType) -> Self
pub fn transition_type(self, transition_type: HuggerTransitionType) -> Self
The type of animation used for transitions between children.
sourcepub fn xalign(self, xalign: f32) -> Self
pub fn xalign(self, xalign: f32) -> Self
The horizontal alignment, from 0 (start) to 1 (end).
This affects the children allocation during transitions, when they exceed the size of the hugger.
For example, 0.5 means the child will be centered, 0 means it will keep the start side aligned and overflow the end side, and 1 means the opposite.
sourcepub fn yalign(self, yalign: f32) -> Self
pub fn yalign(self, yalign: f32) -> Self
The vertical alignment, from 0 (top) to 1 (bottom).
This affects the children allocation during transitions, when they exceed the size of the hugger.
For example, 0.5 means the child will be centered, 0 means it will keep the top side aligned and overflow the bottom side, and 1 means the opposite.
sourcepub fn can_focus(self, can_focus: bool) -> Self
pub fn can_focus(self, can_focus: bool) -> Self
Whether the widget or any of its descendents can accept the input focus.
This property is meant to be set by widget implementations, typically in their instance init function.
sourcepub fn can_target(self, can_target: bool) -> Self
pub fn can_target(self, can_target: bool) -> Self
Whether the widget can receive pointer events.
sourcepub fn css_classes(self, css_classes: impl Into<StrV>) -> Self
pub fn css_classes(self, css_classes: impl Into<StrV>) -> Self
A list of css classes applied to this widget.
sourcepub fn css_name(self, css_name: impl Into<GString>) -> Self
pub fn css_name(self, css_name: impl Into<GString>) -> Self
The name of this widget in the CSS tree.
This property is meant to be set by widget implementations, typically in their instance init function.
sourcepub fn focus_on_click(self, focus_on_click: bool) -> Self
pub fn focus_on_click(self, focus_on_click: bool) -> Self
Whether the widget should grab focus when it is clicked with the mouse.
This property is only relevant for widgets that can take focus.
sourcepub fn focusable(self, focusable: bool) -> Self
pub fn focusable(self, focusable: bool) -> Self
Whether this widget itself will accept the input focus.
sourcepub fn has_tooltip(self, has_tooltip: bool) -> Self
pub fn has_tooltip(self, has_tooltip: bool) -> Self
Enables or disables the emission of the ::query-tooltip signal on @widget.
A value of true
indicates that @widget can have a tooltip, in this case
the widget will be queried using [query-tooltip
][struct@crate::gtk::Widget#query-tooltip] to
determine whether it will provide a tooltip or not.
sourcepub fn height_request(self, height_request: i32) -> Self
pub fn height_request(self, height_request: i32) -> Self
Override for height request of the widget.
If this is -1, the natural request will be used.
sourcepub fn hexpand_set(self, hexpand_set: bool) -> Self
pub fn hexpand_set(self, hexpand_set: bool) -> Self
Whether to use the hexpand
property.
sourcepub fn layout_manager(self, layout_manager: &impl IsA<LayoutManager>) -> Self
pub fn layout_manager(self, layout_manager: &impl IsA<LayoutManager>) -> Self
The [gtk::LayoutManager
][crate::gtk::LayoutManager] instance to use to compute the preferred size
of the widget, and allocate its children.
This property is meant to be set by widget implementations, typically in their instance init function.
sourcepub fn margin_bottom(self, margin_bottom: i32) -> Self
pub fn margin_bottom(self, margin_bottom: i32) -> Self
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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
sourcepub fn margin_end(self, margin_end: i32) -> Self
pub fn margin_end(self, margin_end: i32) -> Self
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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
sourcepub fn margin_start(self, margin_start: i32) -> Self
pub fn margin_start(self, margin_start: i32) -> Self
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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
sourcepub fn margin_top(self, margin_top: i32) -> Self
pub fn margin_top(self, margin_top: i32) -> Self
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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::set_size_request()] for example.
sourcepub fn receives_default(self, receives_default: bool) -> Self
pub fn receives_default(self, receives_default: bool) -> Self
Whether the widget will receive the default action when it is focused.
sourcepub fn tooltip_markup(self, tooltip_markup: impl Into<GString>) -> Self
pub fn tooltip_markup(self, tooltip_markup: impl Into<GString>) -> Self
Sets the text of tooltip to be the given string, which is marked up with Pango markup.
Also see Gtk::Tooltip::set_markup()
.
This is a convenience property which will take care of getting the
tooltip shown if the given string is not None
:
[has-tooltip
][struct@crate::gtk::Widget#has-tooltip] will automatically be set to true
and there will be taken care of [query-tooltip
][struct@crate::gtk::Widget#query-tooltip] in
the default signal handler.
Note that if both [tooltip-text
][struct@crate::gtk::Widget#tooltip-text] and
[tooltip-markup
][struct@crate::gtk::Widget#tooltip-markup] are set, the last one wins.
sourcepub fn tooltip_text(self, tooltip_text: impl Into<GString>) -> Self
pub fn tooltip_text(self, tooltip_text: impl Into<GString>) -> Self
Sets the text of tooltip to be the given string.
Also see Gtk::Tooltip::set_text()
.
This is a convenience property which will take care of getting the
tooltip shown if the given string is not None
:
[has-tooltip
][struct@crate::gtk::Widget#has-tooltip] will automatically be set to true
and there will be taken care of [query-tooltip
][struct@crate::gtk::Widget#query-tooltip] in
the default signal handler.
Note that if both [tooltip-text
][struct@crate::gtk::Widget#tooltip-text] and
[tooltip-markup
][struct@crate::gtk::Widget#tooltip-markup] are set, the last one wins.
sourcepub fn vexpand_set(self, vexpand_set: bool) -> Self
pub fn vexpand_set(self, vexpand_set: bool) -> Self
Whether to use the vexpand
property.
sourcepub fn width_request(self, width_request: i32) -> Self
pub fn width_request(self, width_request: i32) -> Self
Override for width request of the widget.
If this is -1, the natural request will be used.