#[repr(transparent)]pub struct ListBox { /* private fields */ }
Expand description
ListBox
is a vertical list.
A ListBox
only contains ListBoxRow
children. These rows can
by dynamically sorted and filtered, and headers can be added dynamically
depending on the row content. It also allows keyboard and mouse navigation
and selection like a typical list.
Using ListBox
is often an alternative to TreeView
, especially
when the list contents has a more complicated layout than what is allowed
by a CellRenderer
, or when the contents is interactive (i.e. has a
button in it).
Although a ListBox
must have only ListBoxRow
children, you can
add any kind of widget to it via prepend()
,
append()
and insert()
and a
ListBoxRow
widget will automatically be inserted between the list
and the widget.
GtkListBoxRows
can be marked as activatable or selectable. If a row is
activatable, row-activated
will be emitted for it when
the user tries to activate it. If it is selectable, the row will be marked
as selected when the user tries to select it.
GtkListBox as GtkBuildable
The ListBox
implementation of the Buildable
interface supports
setting a child as the placeholder by specifying “placeholder” as the “type”
attribute of a <child>
element. See set_placeholder()
for info.
CSS nodes
⚠️ The following code is in plain ⚠️
list[.separators][.rich-list][.navigation-sidebar]
╰── row[.activatable]
ListBox
uses a single CSS node named list. It may carry the .separators
style class, when the show-separators
property is set.
Each ListBoxRow
uses a single CSS node named row. The row nodes get the
.activatable style class added when appropriate.
The main list node may also carry style classes to select the style of list presentation: .rich-list, .navigation-sidebar or .data-table.
Accessibility
ListBox
uses the AccessibleRole::List
role and ListBoxRow
uses
the AccessibleRole::ListItem
role.
Properties
accept-unpaired-release
Whether to accept unpaired release events.
Readable | Writeable
activate-on-single-click
Determines whether children can be activated with a single click, or require a double-click.
Readable | Writeable
selection-mode
The selection mode used by the list box.
Readable | Writeable
show-separators
Whether to show separators between rows.
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-row
Action
move-cursor
Action
row-activated
Emitted when a row has been activated by the user.
row-selected
Emitted when a new row is selected, or (with a None
@row)
when the selection is cleared.
When the @box_ is using SelectionMode::Multiple
, this signal will not
give you the full picture of selection changes, and you should use
the selected-rows-changed
signal instead.
select-all
Emitted to select all children of the box, if the selection mode permits it.
This is a keybinding signal.
The default binding for this signal is Ctrl-a.
Action
selected-rows-changed
Emitted when the set of selected rows changes.
toggle-cursor-row
Action
unselect-all
Emitted to unselect all children of the box, if the selection mode permits it.
This is a keybinding signal.
The default binding 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
, WidgetExtManual
, AccessibleExtManual
Implementations§
source§impl ListBox
impl ListBox
sourcepub fn builder() -> ListBoxBuilder
pub fn builder() -> ListBoxBuilder
Creates a new builder-pattern struct instance to construct ListBox
objects.
This method returns an instance of ListBoxBuilder
which can be used to create ListBox
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 ListBox
. 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
or None
in case you also passed None
as @model
sourcepub fn drag_highlight_row(&self, row: &impl IsA<ListBoxRow>)
pub fn drag_highlight_row(&self, row: &impl IsA<ListBoxRow>)
Add a drag highlight to a row.
This is a helper function for implementing DnD onto a ListBox
.
The passed in @row will be highlighted by setting the
StateFlags::DROP_ACTIVE
state and any previously highlighted
row will be unhighlighted.
The row will also be unhighlighted when the widget gets a drag leave event.
row
sourcepub fn drag_unhighlight_row(&self)
pub fn drag_unhighlight_row(&self)
If a row has previously been highlighted via gtk_list_box_drag_highlight_row(), it will have the highlight removed.
sourcepub fn activates_on_single_click(&self) -> bool
pub fn activates_on_single_click(&self) -> bool
sourcepub fn adjustment(&self) -> Option<Adjustment>
pub fn adjustment(&self) -> Option<Adjustment>
sourcepub fn row_at_index(&self, index_: i32) -> Option<ListBoxRow>
pub fn row_at_index(&self, index_: i32) -> Option<ListBoxRow>
sourcepub fn row_at_y(&self, y: i32) -> Option<ListBoxRow>
pub fn row_at_y(&self, y: i32) -> Option<ListBoxRow>
sourcepub fn selected_row(&self) -> Option<ListBoxRow>
pub fn selected_row(&self) -> Option<ListBoxRow>
Gets the selected row, or None
if no rows are selected.
Note that the box may allow multiple selection, in which
case you should use selected_foreach()
to
find all selected rows.
Returns
the selected row
sourcepub fn selected_rows(&self) -> Vec<ListBoxRow>
pub fn selected_rows(&self) -> Vec<ListBoxRow>
sourcepub fn selection_mode(&self) -> SelectionMode
pub fn selection_mode(&self) -> SelectionMode
sourcepub fn shows_separators(&self) -> bool
pub fn shows_separators(&self) -> bool
sourcepub fn insert(&self, child: &impl IsA<Widget>, position: i32)
pub fn insert(&self, child: &impl IsA<Widget>, position: i32)
Insert the @child into the @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 items in the @self, then the @child will be appended to the end.
child
the Widget
to add
position
the position to insert @child in
sourcepub fn invalidate_filter(&self)
pub fn invalidate_filter(&self)
Update the filtering for all rows.
Call this when 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 string and the entry with the search string has changed.
sourcepub fn invalidate_headers(&self)
pub fn invalidate_headers(&self)
Update the separators for all rows.
Call this when result of the header function on the @self is changed due to an external factor.
sourcepub fn invalidate_sort(&self)
pub fn invalidate_sort(&self)
Update the sorting for all rows.
Call this when result of the sort function on the @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_row(&self, row: Option<&impl IsA<ListBoxRow>>)
pub fn select_row(&self, row: Option<&impl IsA<ListBoxRow>>)
sourcepub fn selected_foreach<P: FnMut(&ListBox, &ListBoxRow)>(&self, func: P)
pub fn selected_foreach<P: FnMut(&ListBox, &ListBoxRow)>(&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_adjustment(&self, adjustment: Option<&impl IsA<Adjustment>>)
pub fn set_adjustment(&self, adjustment: Option<&impl IsA<Adjustment>>)
Sets the adjustment (if any) that the widget uses to for vertical scrolling.
For instance, this is used to get the page size for PageUp/Down key handling.
In the normal case when the @self is packed inside
a ScrolledWindow
the adjustment from that will
be picked up automatically, so there is no need
to manually do that.
adjustment
the adjustment
sourcepub fn set_filter_func<P: Fn(&ListBoxRow) -> bool + 'static>(
&self,
filter_func: P
)
pub fn set_filter_func<P: Fn(&ListBoxRow) -> bool + 'static>( &self, filter_func: P )
By setting a filter function on the @self one can decide dynamically which of the rows to show.
For instance, to implement a search function on a list that filters the original list to only show the matching rows.
The @filter_func will be called for each row after the call, and
it will continue to be called each time a row changes (via
ListBoxRowExt::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 rows to show
sourcepub fn set_header_func<P: Fn(&ListBoxRow, Option<&ListBoxRow>) + 'static>(
&self,
update_header: P
)
pub fn set_header_func<P: Fn(&ListBoxRow, Option<&ListBoxRow>) + 'static>( &self, update_header: P )
Sets a header function.
By setting a header function on the @self one can dynamically add headers in front of rows, depending on the contents of the row and its position in the list.
For instance, one could use it to add headers in front of the first item of a new kind, in a list sorted by the kind.
The @update_header can look at the current header widget using
ListBoxRowExt::header()
and either update the state of the widget
as needed, or set a new one using ListBoxRowExt::set_header()
. If no
header is needed, set the header to None
.
Note that you may get many calls @update_header to this for a particular row when e.g. changing things that don’t affect the header. In this case it is important for performance to not blindly replace an existing header with an identical one.
The @update_header function will be called for each row after the call,
and it will continue to be called each time a row changes (via
ListBoxRowExt::changed()
) and when the row before changes (either
by ListBoxRowExt::changed()
on the previous row, or when the previous
row becomes a different row). It is also called for all rows when
invalidate_headers()
is called.
update_header
callback that lets you add row headers
sourcepub fn set_placeholder(&self, placeholder: Option<&impl IsA<Widget>>)
pub fn set_placeholder(&self, placeholder: Option<&impl IsA<Widget>>)
Sets the placeholder widget that is shown in the list when it doesn’t display any visible children.
placeholder
a Widget
sourcepub fn set_selection_mode(&self, mode: SelectionMode)
pub fn set_selection_mode(&self, mode: SelectionMode)
sourcepub fn set_show_separators(&self, show_separators: bool)
pub fn set_show_separators(&self, show_separators: bool)
Sets whether the list box should show separators between rows.
show_separators
true
to show separators
sourcepub fn unselect_all(&self)
pub fn unselect_all(&self)
Unselect all children of @self, if the selection mode allows it.
sourcepub fn unselect_row(&self, row: &impl IsA<ListBoxRow>)
pub fn unselect_row(&self, row: &impl IsA<ListBoxRow>)
sourcepub fn accepts_unpaired_release(&self) -> bool
pub fn accepts_unpaired_release(&self) -> bool
Whether to accept unpaired release events.
sourcepub fn set_accept_unpaired_release(&self, accept_unpaired_release: bool)
pub fn set_accept_unpaired_release(&self, accept_unpaired_release: bool)
Whether to accept unpaired release events.
pub fn connect_activate_cursor_row<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn emit_activate_cursor_row(&self)
pub fn connect_move_cursor<F: Fn(&Self, MovementStep, i32, bool, bool) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn emit_move_cursor( &self, object: MovementStep, p0: i32, p1: bool, p2: bool )
sourcepub fn connect_row_activated<F: Fn(&Self, &ListBoxRow) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_row_activated<F: Fn(&Self, &ListBoxRow) + 'static>( &self, f: F ) -> SignalHandlerId
sourcepub fn connect_row_selected<F: Fn(&Self, Option<&ListBoxRow>) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_row_selected<F: Fn(&Self, Option<&ListBoxRow>) + 'static>( &self, f: F ) -> SignalHandlerId
Emitted when a new row is selected, or (with a None
@row)
when the selection is cleared.
When the @box_ is using SelectionMode::Multiple
, this signal will not
give you the full picture of selection changes, and you should use
the selected-rows-changed
signal instead.
row
the selected row
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 binding for this signal is Ctrl-a.
pub fn emit_select_all(&self)
sourcepub fn connect_selected_rows_changed<F: Fn(&Self) + 'static>(
&self,
f: F
) -> SignalHandlerId
pub fn connect_selected_rows_changed<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
Emitted when the set of selected rows changes.
pub fn connect_toggle_cursor_row<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn emit_toggle_cursor_row(&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 binding 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_selection_mode_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
pub fn connect_show_separators_notify<F: Fn(&Self) + 'static>( &self, f: F ) -> SignalHandlerId
source§impl ListBox
impl ListBox
pub fn unbind_model(&self)
pub fn unset_filter_func(&self)
pub fn unset_header_func(&self)
sourcepub fn set_sort_func<P: Fn(&ListBoxRow, &ListBoxRow) -> Ordering + 'static>(
&self,
sort_func: P
)
pub fn set_sort_func<P: Fn(&ListBoxRow, &ListBoxRow) -> Ordering + 'static>( &self, sort_func: P )
Sets a sort function.
By setting a sort function on the @self one can dynamically reorder the rows of the list, based on the contents of the rows.
The @sort_func will be called for each row after the call, and will
continue to be called each time a row changes (via
ListBoxRowExt::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
pub fn unset_sort_func(&self)
Trait Implementations§
source§impl HasParamSpec for ListBox
impl HasParamSpec for ListBox
source§impl Ord for ListBox
impl Ord for ListBox
source§impl<OT: ObjectType> PartialEq<OT> for ListBox
impl<OT: ObjectType> PartialEq<OT> for ListBox
source§impl<OT: ObjectType> PartialOrd<OT> for ListBox
impl<OT: ObjectType> PartialOrd<OT> for ListBox
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 ListBox
impl StaticType for ListBox
source§fn static_type() -> Type
fn static_type() -> Type
Self
.impl Eq for ListBox
impl IsA<Accessible> for ListBox
impl IsA<Buildable> for ListBox
impl IsA<ConstraintTarget> for ListBox
impl IsA<Widget> for ListBox
Auto Trait Implementations§
impl RefUnwindSafe for ListBox
impl !Send for ListBox
impl !Sync for ListBox
impl Unpin for ListBox
impl UnwindSafe for ListBox
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