#[repr(transparent)]pub struct FlowBox { /* private fields */ }
Expand description
A FlowBox
puts child widgets in reflowing grid.
For instance, with the horizontal orientation, the widgets will be arranged from left to right, starting a new row under the previous row when necessary. Reducing the width in this case will require more rows, so a larger height will be requested.
Likewise, with the vertical orientation, the widgets will be arranged from top to bottom, starting a new column to the right when necessary. Reducing the height will require more columns, so a larger width will be requested.
The size request of a FlowBox
alone may not be what you expect;
if you need to be able to shrink it along both axes and dynamically
reflow its children, you may have to wrap it in a ScrolledWindow
to enable that.
The children of a FlowBox
can be dynamically sorted and filtered.
Although a FlowBox
must have only FlowBoxChild
children, you
can add any kind of widget to it via insert()
, and a
FlowBoxChild
widget will automatically be inserted between the box
and the widget.
Also see ListBox
.
CSS nodes
flowbox
├── flowboxchild
│ ╰── <child>
├── flowboxchild
│ ╰── <child>
┊
╰── [rubberband]
FlowBox
uses a single CSS node with name flowbox. FlowBoxChild
uses a single CSS node with name flowboxchild. For rubberband selection,
a subnode with name rubberband is used.
Accessibility
FlowBox
uses the AccessibleRole::Grid
role, and FlowBoxChild
uses the AccessibleRole::GridCell
role.
Properties
accept-unpaired-release
Readable | Writeable
activate-on-single-click
Determines whether children can be activated with a single click, or require a double-click.
Readable | Writeable
column-spacing
The amount of horizontal space between two children.
Readable | Writeable
homogeneous
Determines whether all children should be allocated the same size.
Readable | Writeable
max-children-per-line
The maximum amount of children to request space for consecutively in the given orientation.
Readable | Writeable
min-children-per-line
The minimum number of children to allocate consecutively in the given orientation.
Setting the minimum children per line ensures that a reasonably small height will be requested for the overall minimum width of the box.
Readable | Writeable
row-spacing
The amount of vertical space between two children.
Readable | Writeable
selection-mode
The selection mode used by the flow box.
Readable | Writeable
Widget
can-focus
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.
Readable | Writeable
can-target
Whether the widget can receive pointer events.
Readable | Writeable
css-classes
A list of css classes applied to this widget.
Readable | Writeable
css-name
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.
Readable | Writeable | Construct Only
cursor
The cursor used by @widget.
Readable | Writeable
focus-on-click
Whether the widget should grab focus when it is clicked with the mouse.
This property is only relevant for widgets that can take focus.
Readable | Writeable
focusable
Whether this widget itself will accept the input focus.
Readable | Writeable
halign
How to distribute horizontal space if widget gets extra space.
Readable | Writeable
has-default
Whether the widget is the default widget.
Readable
has-focus
Whether the widget has the input focus.
Readable
has-tooltip
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
to
determine whether it will provide a tooltip or not.
Readable | Writeable
height-request
Override for height request of the widget.
If this is -1, the natural request will be used.
Readable | Writeable
hexpand
Whether to expand horizontally.
Readable | Writeable
hexpand-set
Whether to use the hexpand
property.
Readable | Writeable
layout-manager
The 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.
Readable | Writeable
margin-bottom
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.
Readable | Writeable
margin-end
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.
Readable | Writeable
margin-start
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.
Readable | Writeable
margin-top
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.
Readable | Writeable
name
The name of the widget.
Readable | Writeable
opacity
The requested opacity of the widget.
Readable | Writeable
overflow
How content outside the widget’s content area is treated.
This property is meant to be set by widget implementations, typically in their instance init function.
Readable | Writeable
parent
The parent widget of this widget.
Readable
receives-default
Whether the widget will receive the default action when it is focused.
Readable | Writeable
root
The Root
widget of the widget tree containing this widget.
This will be None
if the widget is not contained in a root widget.
Readable
scale-factor
The scale factor of the widget.
Readable
sensitive
Whether the widget responds to input.
Readable | Writeable
tooltip-markup
Sets the text of tooltip to be the given string, which is marked up with Pango markup.
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
:
has-tooltip
will automatically be set to true
and there will be taken care of query-tooltip
in
the default signal handler.
Note that if both tooltip-text
and
tooltip-markup
are set, the last one wins.
Readable | Writeable
tooltip-text
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
:
has-tooltip
will automatically be set to true
and there will be taken care of query-tooltip
in
the default signal handler.
Note that if both tooltip-text
and
tooltip-markup
are set, the last one wins.
Readable | Writeable
valign
How to distribute vertical space if widget gets extra space.
Readable | Writeable
vexpand
Whether to expand vertically.
Readable | Writeable
vexpand-set
Whether to use the vexpand
property.
Readable | Writeable
visible
Whether the widget is visible.
Readable | Writeable
width-request
Override for width request of the widget.
If this is -1, the natural request will be used.
Readable | Writeable
Accessible
accessible-role
The accessible role of the given Accessible
implementation.
The accessible role cannot be changed once set.
Readable | Writeable
Signals
activate-cursor-child
Emitted when the user activates the @box_.
This is a keybinding signal.
Action
child-activated
Emitted when a child has been activated by the user.
move-cursor
Emitted when the user initiates a cursor movement.
This is a keybinding signal. Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.
The default bindings for this signal come in two variants, the variant with the Shift modifier extends the selection, the variant without the Shift modifier does not. There are too many key combinations to list them all here.
- ←, →, ↑, ↓ move by individual children
- Home, End move to the ends of the box
- PgUp, PgDn move vertically by pages
Action
select-all
Emitted to select all children of the box, if the selection mode permits it.
This is a keybinding signal.
The default bindings for this signal is Ctrl-a.
Action
selected-children-changed
Emitted when the set of selected children changes.
Use FlowBox::selected_foreach()
or
FlowBox::selected_children()
to obtain the
selected children.
toggle-cursor-child
Emitted to toggle the selection of the child that has the focus.
This is a keybinding signal.
The default binding for this signal is Ctrl-Space.
Action
unselect-all
Emitted to unselect all children of the box, if the selection mode permits it.
This is a keybinding signal.
The default bindings for this signal is Ctrl-Shift-a.
Action
Widget
destroy
Signals that all holders of a reference to the widget should release the reference that they hold.
May result in finalization of the widget if all references are released.
This signal is not suitable for saving widget state.
direction-changed
Emitted when the text direction of a widget changes.
hide
Emitted when @widget is hidden.
keynav-failed
Emitted if keyboard navigation fails.
See WidgetExt::keynav_failed()
for details.
map
Emitted when @widget is going to be mapped.
A widget is mapped when the widget is visible (which is controlled with
visible
) and all its parents up to the toplevel widget
are also visible.
The ::map signal can be used to determine whether a widget will be drawn,
for instance it can resume an animation that was stopped during the
emission of unmap
.
mnemonic-activate
Emitted when a widget is activated via a mnemonic.
The default handler for this signal activates @widget if @group_cycling
is false
, or just makes @widget grab focus if @group_cycling is true
.
move-focus
Emitted when the focus is moved.
Action
query-tooltip
Emitted when the widgets tooltip is about to be shown.
This happens when the has-tooltip
property
is true
and the hover timeout has expired with the cursor hovering
“above” @widget; or emitted when @widget got focus in keyboard mode.
Using the given coordinates, the signal handler should determine
whether a tooltip should be shown for @widget. If this is the case
true
should be returned, false
otherwise. Note that if
@keyboard_mode is true
, the values of @x and @y are undefined and
should not be used.
The signal handler is free to manipulate @tooltip with the therefore destined function calls.
realize
Emitted when @widget is associated with a gdk::Surface
.
This means that WidgetExt::realize()
has been called
or the widget has been mapped (that is, it is going to be drawn).
show
Emitted when @widget is shown.
state-flags-changed
Emitted when the widget state changes.
unmap
Emitted when @widget is going to be unmapped.
A widget is unmapped when either it or any of its parents up to the toplevel widget have been set as hidden.
As ::unmap indicates that a widget will not be shown any longer, it can be used to, for example, stop an animation on the widget.
unrealize
Emitted when the gdk::Surface
associated with @widget is destroyed.
This means that WidgetExt::unrealize()
has been called
or the widget has been unmapped (that is, it is going to be hidden).
Implements
WidgetExt
, glib::ObjectExt
, AccessibleExt
, BuildableExt
, ConstraintTargetExt
, OrientableExt
, WidgetExtManual
, AccessibleExtManual
Implementations§
source§impl FlowBox
impl FlowBox
sourcepub fn builder() -> FlowBoxBuilder
pub fn builder() -> FlowBoxBuilder
Creates a new builder-pattern struct instance to construct FlowBox
objects.
This method returns an instance of FlowBoxBuilder
which can be used to create FlowBox
objects.
sourcepub fn bind_model<P: Fn(&Object) -> Widget + 'static>(
&self,
model: Option<&impl IsA<ListModel>>,
create_widget_func: P
)
pub fn bind_model<P: Fn(&Object) -> Widget + 'static>( &self, model: Option<&impl IsA<ListModel>>, create_widget_func: P )
Binds @model to @self.
If @self was already bound to a model, that previous binding is destroyed.
The contents of @self are cleared and then filled with widgets that
represent items from @model. @self is updated whenever @model changes.
If @model is None
, @self is left empty.
It is undefined to add or remove widgets directly (for example, with
insert()
) while @self is bound to a model.
Note that using a model is incompatible with the filtering and sorting
functionality in FlowBox
. When using a model, filtering and sorting
should be implemented by the model.
model
the GListModel
to be bound to @self
create_widget_func
a function that creates widgets for items
sourcepub fn activates_on_single_click(&self) -> bool
pub fn activates_on_single_click(&self) -> bool
sourcepub fn child_at_index(&self, idx: i32) -> Option<FlowBoxChild>
pub fn child_at_index(&self, idx: i32) -> Option<FlowBoxChild>
Gets the nth child in the @self.
idx
the position of the child
Returns
the child widget, which will
always be a FlowBoxChild
or None
in case no child widget
with the given index exists.
sourcepub fn child_at_pos(&self, x: i32, y: i32) -> Option<FlowBoxChild>
pub fn child_at_pos(&self, x: i32, y: i32) -> Option<FlowBoxChild>
Gets the child in the (@x, @y) position.
Both @x and @y are assumed to be relative to the origin of @self.
x
the x coordinate of the child
y
the y coordinate of the child
Returns
the child widget, which will
always be a FlowBoxChild
or None
in case no child widget
exists for the given x and y coordinates.
sourcepub fn column_spacing(&self) -> u32
pub fn column_spacing(&self) -> u32
sourcepub fn is_homogeneous(&self) -> bool
pub fn is_homogeneous(&self) -> bool
sourcepub fn max_children_per_line(&self) -> u32
pub fn max_children_per_line(&self) -> u32
sourcepub fn min_children_per_line(&self) -> u32
pub fn min_children_per_line(&self) -> u32
sourcepub fn row_spacing(&self) -> u32
pub fn row_spacing(&self) -> u32
sourcepub fn selected_children(&self) -> Vec<FlowBoxChild>
pub fn selected_children(&self) -> Vec<FlowBoxChild>
sourcepub fn selection_mode(&self) -> SelectionMode
pub fn selection_mode(&self) -> SelectionMode
sourcepub fn insert(&self, widget: &impl IsA<Widget>, position: i32)
pub fn insert(&self, widget: &impl IsA<Widget>, position: i32)
Inserts the @widget into @self at @position.
If a sort function is set, the widget will actually be inserted at the calculated position.
If @position is -1, or larger than the total number of children in the @self, then the @widget will be appended to the end.
widget
the Widget
to add
position
the position to insert @child in
sourcepub fn invalidate_filter(&self)
pub fn invalidate_filter(&self)
Updates the filtering for all children.
Call this function when the result of the filter function on the @self is changed due to an external factor. For instance, this would be used if the filter function just looked for a specific search term, and the entry with the string has changed.
sourcepub fn invalidate_sort(&self)
pub fn invalidate_sort(&self)
Updates the sorting for all children.
Call this when the result of the sort function on @self is changed due to an external factor.
sourcepub fn select_all(&self)
pub fn select_all(&self)
Select all children of @self, if the selection mode allows it.
sourcepub fn select_child(&self, child: &impl IsA<FlowBoxChild>)
pub fn select_child(&self, child: &impl IsA<FlowBoxChild>)
sourcepub fn selected_foreach<P: FnMut(&FlowBox, &FlowBoxChild)>(&self, func: P)
pub fn selected_foreach<P: FnMut(&FlowBox, &FlowBoxChild)>(&self, func: P)
Calls a function for each selected child.
Note that the selection cannot be modified from within this function.
func
the function to call for each selected child
sourcepub fn set_activate_on_single_click(&self, single: bool)
pub fn set_activate_on_single_click(&self, single: bool)
sourcepub fn set_column_spacing(&self, spacing: u32)
pub fn set_column_spacing(&self, spacing: u32)
sourcepub fn set_filter_func<P: Fn(&FlowBoxChild) -> bool + 'static>(
&self,
filter_func: P
)
pub fn set_filter_func<P: Fn(&FlowBoxChild) -> bool + 'static>( &self, filter_func: P )
By setting a filter function on the @self one can decide dynamically which of the children to show.
For instance, to implement a search function that only shows the children matching the search terms.
The @filter_func will be called for each child after the call, and
it will continue to be called each time a child changes (via
FlowBoxChildExt::changed()
) or when
invalidate_filter()
is called.
Note that using a filter function is incompatible with using a model
(see bind_model()
).
filter_func
callback that lets you filter which children to show
sourcepub fn set_hadjustment(&self, adjustment: &impl IsA<Adjustment>)
pub fn set_hadjustment(&self, adjustment: &impl IsA<Adjustment>)
Hooks up an adjustment to focus handling in @self.
The adjustment is also used for autoscrolling during
rubberband selection. See ScrolledWindow::hadjustment()
for a typical way of obtaining the adjustment, and
set_vadjustment()
for setting the vertical
adjustment.
The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the box.
adjustment
an adjustment which should be adjusted when the focus is moved among the descendents of @container
sourcepub fn set_homogeneous(&self, homogeneous: bool)
pub fn set_homogeneous(&self, homogeneous: bool)
Sets whether or not all children of @self are given equal space in the box.
homogeneous
true
to create equal allotments,
false
for variable allotments
sourcepub fn set_max_children_per_line(&self, n_children: u32)
pub fn set_max_children_per_line(&self, n_children: u32)
Sets the maximum number of children to request and allocate space for in @self’s orientation.
Setting the maximum number of children per line limits the overall natural size request to be no more than @n_children children long in the given orientation.
n_children
the maximum number of children per line
sourcepub fn set_min_children_per_line(&self, n_children: u32)
pub fn set_min_children_per_line(&self, n_children: u32)
Sets the minimum number of children to line up in @self’s orientation before flowing.
n_children
the minimum number of children per line
sourcepub fn set_row_spacing(&self, spacing: u32)
pub fn set_row_spacing(&self, spacing: u32)
sourcepub fn set_selection_mode(&self, mode: SelectionMode)
pub fn set_selection_mode(&self, mode: SelectionMode)
sourcepub fn set_vadjustment(&self, adjustment: &impl IsA<Adjustment>)
pub fn set_vadjustment(&self, adjustment: &impl IsA<Adjustment>)
Hooks up an adjustment to focus handling in @self.
The adjustment is also used for autoscrolling during
rubberband selection. See ScrolledWindow::vadjustment()
for a typical way of obtaining the adjustment, and
set_hadjustment()
for setting the horizontal
adjustment.
The adjustments have to be in pixel units and in the same coordinate system as the allocation for immediate children of the box.
adjustment
an adjustment which should be adjusted when the focus is moved among the descendents of @container
sourcepub fn unselect_all(&self)
pub fn unselect_all(&self)
Unselect all children of @self, if the selection mode allows it.
sourcepub fn unselect_child(&self, child: &impl IsA<FlowBoxChild>)
pub fn unselect_child(&self, child: &impl IsA<FlowBoxChild>)
pub fn accepts_unpaired_release(&self) -> bool
pub fn set_accept_unpaired_release(&self, accept_unpaired_release: bool)
sourcepub fn connect_activate_cursor_child<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_activate_cursor_child<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
Emitted when the user activates the @box_.
This is a keybinding signal.
pub fn emit_activate_cursor_child(&self)
sourcepub fn connect_child_activated<F: Fn(&Self, &FlowBoxChild) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_child_activated<F: Fn(&Self, &FlowBoxChild) + 'static>( &self, f: F ) -> SignalHandlerId
sourcepub fn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) -> bool + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) -> bool + 'static>( &self, f: F ) -> SignalHandlerId
Emitted when the user initiates a cursor movement.
This is a keybinding signal. Applications should not connect to it, but may emit it with g_signal_emit_by_name() if they need to control the cursor programmatically.
The default bindings for this signal come in two variants, the variant with the Shift modifier extends the selection, the variant without the Shift modifier does not. There are too many key combinations to list them all here.
- ←, →, ↑, ↓ move by individual children
- Home, End move to the ends of the box
- PgUp, PgDn move vertically by pages
step
the granularity of the move, as a MovementStep
count
the number of @step units to move
extend
whether to extend the selection
modify
whether to modify the selection
Returns
true
to stop other handlers from being invoked for the event.
false
to propagate the event further.
pub fn emit_move_cursor( &self, step: MovementStep, count: i32, extend: bool, modify: bool ) -> bool
sourcepub fn connect_select_all<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_select_all<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
Emitted to select all children of the box, if the selection mode permits it.
This is a keybinding signal.
The default bindings for this signal is Ctrl-a.
pub fn emit_select_all(&self)
sourcepub fn connect_selected_children_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_selected_children_changed<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
Emitted when the set of selected children changes.
Use selected_foreach()
or
selected_children()
to obtain the
selected children.
sourcepub fn connect_toggle_cursor_child<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_toggle_cursor_child<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
Emitted to toggle the selection of the child that has the focus.
This is a keybinding signal.
The default binding for this signal is Ctrl-Space.
pub fn emit_toggle_cursor_child(&self)
sourcepub fn connect_unselect_all<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_unselect_all<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
Emitted to unselect all children of the box, if the selection mode permits it.
This is a keybinding signal.
The default bindings for this signal is Ctrl-Shift-a.
pub fn emit_unselect_all(&self)
pub fn connect_accept_unpaired_release_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_activate_on_single_click_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_column_spacing_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_homogeneous_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_max_children_per_line_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_min_children_per_line_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_row_spacing_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_selection_mode_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
source§impl FlowBox
impl FlowBox
pub fn unbind_model(&self)
pub fn unset_filter_func(&self)
pub fn unset_sort_func(&self)
sourcepub fn set_sort_func<P: Fn(&FlowBoxChild, &FlowBoxChild) -> Ordering + 'static>(
&self,
sort_func: P
)
pub fn set_sort_func<P: Fn(&FlowBoxChild, &FlowBoxChild) -> Ordering + 'static>( &self, sort_func: P )
By setting a sort function on the @self, one can dynamically reorder the children of the box, based on the contents of the children.
The @sort_func will be called for each child after the call,
and will continue to be called each time a child changes (via
FlowBoxChildExt::changed()
) and when
invalidate_sort()
is called.
Note that using a sort function is incompatible with using a model
(see bind_model()
).
sort_func
the sort function
Trait Implementations§
source§impl HasParamSpec for FlowBox
impl HasParamSpec for FlowBox
source§impl Ord for FlowBox
impl Ord for FlowBox
source§impl<OT: ObjectType> PartialEq<OT> for FlowBox
impl<OT: ObjectType> PartialEq<OT> for FlowBox
source§impl<OT: ObjectType> PartialOrd<OT> for FlowBox
impl<OT: ObjectType> PartialOrd<OT> for FlowBox
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl StaticType for FlowBox
impl StaticType for FlowBox
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for FlowBox
impl IsA<Accessible> for FlowBox
impl IsA<Buildable> for FlowBox
impl IsA<ConstraintTarget> for FlowBox
impl IsA<Orientable> for FlowBox
impl IsA<Widget> for FlowBox
Auto Trait Implementations§
impl RefUnwindSafe for FlowBox
impl !Send for FlowBox
impl !Sync for FlowBox
impl Unpin for FlowBox
impl UnwindSafe for FlowBox
Blanket Implementations§
source§impl<O> AccessibleExtManual for Owhere
O: IsA<Accessible>,
impl<O> AccessibleExtManual for Owhere O: IsA<Accessible>,
source§fn update_property(&self, properties: &[Property<'_>])
fn update_property(&self, properties: &[Property<'_>])
source§fn update_relation(&self, relations: &[Relation<'_>])
fn update_relation(&self, relations: &[Relation<'_>])
source§fn update_state(&self, states: &[State])
fn update_state(&self, states: &[State])
source§impl<T> Cast for Twhere
T: ObjectType,
impl<T> Cast for Twhere T: ObjectType,
source§fn upcast<T>(self) -> Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast<T>(self) -> Twhere T: ObjectType, Self: IsA<T>,
T
. Read moresource§fn upcast_ref<T>(&self) -> &Twhere
T: ObjectType,
Self: IsA<T>,
fn upcast_ref<T>(&self) -> &Twhere T: ObjectType, Self: IsA<T>,
T
. Read moresource§fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast<T>(self) -> Result<T, Self>where T: ObjectType, Self: CanDowncast<T>,
T
. Read moresource§fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: CanDowncast<T>,
fn downcast_ref<T>(&self) -> Option<&T>where T: ObjectType, Self: CanDowncast<T>,
T
. Read moresource§fn dynamic_cast<T>(self) -> Result<T, Self>where
T: ObjectType,
fn dynamic_cast<T>(self) -> Result<T, Self>where T: ObjectType,
T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while upcast
will do many checks at compile-time already. downcast
will
perform the same checks at runtime as dynamic_cast
, but will also ensure some amount of
compile-time safety. Read moresource§fn dynamic_cast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
fn dynamic_cast_ref<T>(&self) -> Option<&T>where T: ObjectType,
T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read moresource§unsafe fn unsafe_cast<T>(self) -> Twhere
T: ObjectType,
unsafe fn unsafe_cast<T>(self) -> Twhere T: ObjectType,
T
unconditionally. Read moresource§unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere
T: ObjectType,
unsafe fn unsafe_cast_ref<T>(&self) -> &Twhere T: ObjectType,
&T
unconditionally. Read moresource§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *const GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GPtrArray> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere
T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
impl<T> FromGlibPtrArrayContainerAsVec<<T as GlibPtrDefault>::GlibType, *mut GSList> for Twhere T: GlibPtrDefault + FromGlibPtrNone<<T as GlibPtrDefault>::GlibType> + FromGlibPtrFull<<T as GlibPtrDefault>::GlibType>,
source§impl<T> IntoClosureReturnValue for Twhere
T: Into<Value>,
impl<T> IntoClosureReturnValue for Twhere T: Into<Value>,
fn into_closure_return_value(self) -> Option<Value>
source§impl<U> IsSubclassableExt for Uwhere
U: IsClass + ParentClassIs,
impl<U> IsSubclassableExt for Uwhere U: IsClass + ParentClassIs,
fn parent_class_init<T>(class: &mut Class<U>)where T: ObjectSubclass, <U as ParentClassIs>::Parent: IsSubclassable<T>,
fn parent_instance_init<T>(instance: &mut InitializingObject<T>)where T: ObjectSubclass, <U as ParentClassIs>::Parent: IsSubclassable<T>,
source§impl<T> ObjectExt for Twhere
T: ObjectType,
impl<T> ObjectExt for Twhere T: ObjectType,
source§fn is<U>(&self) -> boolwhere
U: StaticType,
fn is<U>(&self) -> boolwhere U: StaticType,
true
if the object is an instance of (can be cast to) T
.source§fn object_class(&self) -> &Class<Object>
fn object_class(&self) -> &Class<Object>
ObjectClass
of the object. Read moresource§fn class_of<U>(&self) -> Option<&Class<U>>where
U: IsClass,
fn class_of<U>(&self) -> Option<&Class<U>>where U: IsClass,
T
. Read moresource§fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where
U: IsInterface,
fn interface<U>(&self) -> Option<InterfaceRef<'_, U>>where U: IsInterface,
T
of the object. Read moresource§fn set_property_from_value(&self, property_name: &str, value: &Value)
fn set_property_from_value(&self, property_name: &str, value: &Value)
source§fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
fn set_properties(&self, property_values: &[(&str, &dyn ToValue)])
source§fn set_properties_from_value(&self, property_values: &[(&str, Value)])
fn set_properties_from_value(&self, property_values: &[(&str, Value)])
source§fn property<V>(&self, property_name: &str) -> Vwhere
V: for<'b> FromValue<'b> + 'static,
fn property<V>(&self, property_name: &str) -> Vwhere V: for<'b> FromValue<'b> + 'static,
property_name
of the object and cast it to the type V. Read moresource§fn property_value(&self, property_name: &str) -> Value
fn property_value(&self, property_name: &str) -> Value
property_name
of the object. Read moresource§fn property_type(&self, property_name: &str) -> Option<Type>
fn property_type(&self, property_name: &str) -> Option<Type>
property_name
of this object. Read moresource§fn find_property(&self, property_name: &str) -> Option<ParamSpec>
fn find_property(&self, property_name: &str) -> Option<ParamSpec>
ParamSpec
of the property property_name
of this object.source§fn list_properties(&self) -> PtrSlice<ParamSpec>
fn list_properties(&self) -> PtrSlice<ParamSpec>
ParamSpec
of the properties of this object.source§fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
fn freeze_notify(&self) -> PropertyNotificationFreezeGuard
source§unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where
QD: 'static,
unsafe fn set_qdata<QD>(&self, key: Quark, value: QD)where QD: 'static,
key
. Read moresource§unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn qdata<QD>(&self, key: Quark) -> Option<NonNull<QD>>where QD: 'static,
key
. Read moresource§unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where
QD: 'static,
unsafe fn steal_qdata<QD>(&self, key: Quark) -> Option<QD>where QD: 'static,
key
. Read moresource§unsafe fn set_data<QD>(&self, key: &str, value: QD)where
QD: 'static,
unsafe fn set_data<QD>(&self, key: &str, value: QD)where QD: 'static,
key
. Read moresource§unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where
QD: 'static,
unsafe fn data<QD>(&self, key: &str) -> Option<NonNull<QD>>where QD: 'static,
key
. Read moresource§unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where
QD: 'static,
unsafe fn steal_data<QD>(&self, key: &str) -> Option<QD>where QD: 'static,
key
. Read moresource§fn block_signal(&self, handler_id: &SignalHandlerId)
fn block_signal(&self, handler_id: &SignalHandlerId)
source§fn unblock_signal(&self, handler_id: &SignalHandlerId)
fn unblock_signal(&self, handler_id: &SignalHandlerId)
source§fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
fn stop_signal_emission(&self, signal_id: SignalId, detail: Option<Quark>)
source§fn stop_signal_emission_by_name(&self, signal_name: &str)
fn stop_signal_emission_by_name(&self, signal_name: &str)
source§fn connect<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_name
on this object. Read moresource§fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
signal_id
on this object. Read moresource§fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + 'static,
signal_name
on this object. Read moresource§fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value> + 'static,
fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value> + 'static,
signal_id
on this object. Read moresource§unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value>,
signal_name
on this object. Read moresource§unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F
) -> SignalHandlerIdwhere
F: Fn(&[Value]) -> Option<Value>,
unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F ) -> SignalHandlerIdwhere F: Fn(&[Value]) -> Option<Value>,
signal_id
on this object. Read moresource§fn connect_closure(
&self,
signal_name: &str,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure( &self, signal_name: &str, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_closure_id(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
closure: RustClosure
) -> SignalHandlerId
fn connect_closure_id( &self, signal_id: SignalId, details: Option<Quark>, after: bool, closure: RustClosure ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn watch_closure(&self, closure: &impl AsRef<Closure>)
fn watch_closure(&self, closure: &impl AsRef<Closure>)
closure
to the lifetime of the object. When
the object’s reference count drops to zero, the closure will be
invalidated. An invalidated closure will ignore any calls to
invoke_with_values
, or
invoke
when using Rust closures.source§fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit<R>(&self, signal_id: SignalId, args: &[&dyn ToValue]) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
fn emit_with_values(&self, signal_id: SignalId, args: &[Value]) -> Option<Value>
Self::emit
but takes Value
for the arguments.source§fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name<R>(&self, signal_name: &str, args: &[&dyn ToValue]) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_by_name_with_values(
&self,
signal_name: &str,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_values( &self, signal_name: &str, args: &[Value] ) -> Option<Value>
source§fn emit_by_name_with_details<R>(
&self,
signal_name: &str,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_by_name_with_details<R>( &self, signal_name: &str, details: Quark, args: &[&dyn ToValue] ) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_by_name_with_details_and_values(
&self,
signal_name: &str,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_by_name_with_details_and_values( &self, signal_name: &str, details: Quark, args: &[Value] ) -> Option<Value>
source§fn emit_with_details<R>(
&self,
signal_id: SignalId,
details: Quark,
args: &[&dyn ToValue]
) -> Rwhere
R: TryFromClosureReturnValue,
fn emit_with_details<R>( &self, signal_id: SignalId, details: Quark, args: &[&dyn ToValue] ) -> Rwhere R: TryFromClosureReturnValue,
source§fn emit_with_details_and_values(
&self,
signal_id: SignalId,
details: Quark,
args: &[Value]
) -> Option<Value>
fn emit_with_details_and_values( &self, signal_id: SignalId, details: Quark, args: &[Value] ) -> Option<Value>
source§fn disconnect(&self, handler_id: SignalHandlerId)
fn disconnect(&self, handler_id: SignalHandlerId)
source§fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec) + Send + Sync + 'static,
notify
signal of the object. Read moresource§fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec) + 'static,
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec) + 'static,
notify
signal of the object. Read moresource§unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerIdwhere
F: Fn(&T, &ParamSpec),
unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F ) -> SignalHandlerIdwhere F: Fn(&T, &ParamSpec),
notify
signal of the object. Read more