pub struct NavigationView { /* private fields */ }
v1_4
only.Expand description
A page-based navigation container.
NavigationView
presents one child at a time, similar to
gtk::Stack
.
NavigationView
can only contain NavigationPage
children.
It maintains a navigation stack that can be controlled with
push()
and pop()
. The whole
navigation stack can also be replaced using replace()
.
NavigationView
allows to manage pages statically or dynamically.
Static pages can be added using the add()
method. The
NavigationView
will keep a reference to these pages, but they aren’t
accessible to the user until push()
is called (except
for the first page, which is pushed automatically). Use the
remove()
method to remove them. This is useful for
applications that have a small number of unique pages and just need
navigation between them.
Dynamic pages are automatically destroyed once they are popped off the
navigation stack. To add a page like this, push it using the
push()
method without calling
add()
first.
§Tags
Static pages, as well as any pages in the navigation stack, can be accessed
by their tag
. For example,
push_by_tag()
can be used to push a static page that’s
not in the navigation stack without having to keep a reference to it manually.
§Header Bar Integration
When used inside NavigationView
, HeaderBar
will automatically
display a back button that can be used to go back to the previous page when
possible. The button also has a context menu, allowing to pop multiple pages
at once, potentially across multiple navigation views.
Set show-back-button
to FALSE
to disable this behavior
in rare scenarios where it’s unwanted.
HeaderBar
will also display the title of the NavigationPage
it’s
placed into, so most applications shouldn’t need to customize it at all.
§Shortcuts and Gestures
NavigationView
supports the following shortcuts for going to the
previous page:
- Escape (unless
pop-on-escape
is set toFALSE
) - Alt+←
- Back mouse button
Additionally, it supports interactive gestures:
- One-finger swipe towards the right on touchscreens
- Scrolling towards the right on touchpads (usually two-finger swipe)
These gestures have transitions enabled regardless of the
animate-transitions
value.
Applications can also enable shortcuts for pushing another page onto the
navigation stack via connecting to the get-next-page
signal, in that case the following shortcuts are supported:
- Alt+→
- Forward mouse button
- Swipe/scrolling towards the left
For right-to-left locales, the gestures and shortcuts are reversed.
can-pop
can be used to disable them, along with the
header bar back buttons.
§Actions
NavigationView
defines actions for controlling the navigation stack.
actions for controlling the navigation stack:
-
navigation.push
takes a string parameter specifying the tag of the page to push, and is equivalent to callingpush_by_tag()
. -
navigation.pop
doesn’t take any parameters and pops the current page from the navigation stack, equivalent to callingpop()
.
§NavigationView
as gtk::Buildable
NavigationView
allows to add pages as children, equivalent to using the
add()
method.
Example of an NavigationView
UI definition:
<object class="AdwNavigationView">
<child>
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Page 1</property>
<property name="child">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar"/>
</child>
<property name="content">
<object class="GtkButton">
<property name="label" translatable="yes">Open Page 2</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action-name">navigation.push</property>
<property name="action-target">'page-2'</property>
<style>
<class name="pill"/>
</style>
</object>
</property>
</object>
</property>
</object>
</child>
<child>
<object class="AdwNavigationPage">
<property name="title" translatable="yes">Page 2</property>
<property name="tag">page-2</property>
<property name="child">
<object class="AdwToolbarView">
<child type="top">
<object class="AdwHeaderBar"/>
</child>
<property name="content">
<!-- ... -->
</property>
</object>
</property>
</object>
</child>
</object>
§CSS nodes
NavigationView
has a single CSS node with the name navigation-view
.
§Accessibility
NavigationView
uses the GTK_ACCESSIBLE_ROLE_GROUP
role.
§Properties
§animate-transitions
Whether to animate page transitions.
Gesture-based transitions are always animated.
Readable | Writeable
§hhomogeneous
Whether the view is horizontally homogeneous.
If the view is horizontally homogeneous, it allocates the same width for all pages.
If it’s not, the page may change width when a different page becomes visible.
Readable | Writeable
§navigation-stack
A list model that contains the pages in navigation stack.
The pages are sorted from root page to visible page.
This can be used to keep an up-to-date view.
Readable
§pop-on-escape
Whether pressing Escape pops the current page.
Applications using NavigationView
to implement a browser may want to
disable it.
Readable | Writeable
§vhomogeneous
Whether the view is vertically homogeneous.
If the view is vertically homogeneous, it allocates the same height for all pages.
If it’s not, the view may change height when a different page becomes visible.
Readable | Writeable
§visible-page
The currently visible page.
Readable
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 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.
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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::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
[WidgetExtManual::set_size_request()
][crate::gtk::prelude::WidgetExtManual::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 gtk::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 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
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 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
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 gtk::Accessible
implementation.
The accessible role cannot be changed once set.
Readable | Writeable
§Signals
§get-next-page
Emitted when a push shortcut or a gesture is triggered.
To support the push shortcuts and gestures, the application is expected to return the page to push in the handler.
This signal can be emitted multiple times for the gestures, for example when the gesture is cancelled by the user. As such, the application must not make any irreversible changes in the handler, such as removing the page from a forward stack.
Instead, it should be done in the pushed
handler.
§popped
Emitted after @page has been popped from the navigation stack.
When using NavigationView::pop_to_page()
or
NavigationView::pop_to_tag()
, this signal is emitted for each of the
popped pages.
§pushed
Emitted after a page has been pushed to the navigation stack.
§replaced
Emitted after the navigation stack has been replaced.
See NavigationView::replace()
.
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 [WidgetExtManual::keynav_failed()
][crate::gtk::prelude::WidgetExtManual::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.
The ::move-focus signal is a keybinding signal.
The default bindings for this signal are Tab to move forward, and Shift+Tab to move backward.
Action
§query-tooltip
Emitted when the widget’s 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 GdkSurface
.
This means that [WidgetExtManual::realize()
][crate::gtk::prelude::WidgetExtManual::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.
See [WidgetExtManual::state_flags()
][crate::gtk::prelude::WidgetExtManual::state_flags()].
§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 GdkSurface
associated with @widget is destroyed.
This means that [WidgetExtManual::unrealize()
][crate::gtk::prelude::WidgetExtManual::unrealize()] has been called
or the widget has been unmapped (that is, it is going to be hidden).
§Implements
gtk::prelude::WidgetExt
, [trait@glib::ObjectExt
], gtk::prelude::AccessibleExt
, gtk::prelude::BuildableExt
, gtk::prelude::ConstraintTargetExt
, SwipeableExt
GLib type: GObject with reference counted clone semantics.
Implementations§
sourcepub fn new() -> NavigationView
pub fn new() -> NavigationView
sourcepub fn builder() -> NavigationViewBuilder
pub fn builder() -> NavigationViewBuilder
Creates a new builder-pattern struct instance to construct NavigationView
objects.
This method returns an instance of NavigationViewBuilder
which can be used to create NavigationView
objects.
sourcepub fn add(&self, page: &impl IsA<NavigationPage>)
pub fn add(&self, page: &impl IsA<NavigationPage>)
sourcepub fn find_page(&self, tag: &str) -> Option<NavigationPage>
pub fn find_page(&self, tag: &str) -> Option<NavigationPage>
sourcepub fn is_animate_transitions(&self) -> bool
pub fn is_animate_transitions(&self) -> bool
sourcepub fn is_hhomogeneous(&self) -> bool
Available on crate feature v1_7
only.
pub fn is_hhomogeneous(&self) -> bool
v1_7
only.Returns a gio::ListModel
that contains the pages in navigation stack.
The pages are sorted from root page to visible page.
This can be used to keep an up-to-date view.
§Returns
a list model for the navigation stack
sourcepub fn is_pop_on_escape(&self) -> bool
pub fn is_pop_on_escape(&self) -> bool
Gets whether pressing Escape pops the current page on @self.
§Returns
whether to pop the current page
sourcepub fn previous_page(
&self,
page: &impl IsA<NavigationPage>,
) -> Option<NavigationPage>
pub fn previous_page( &self, page: &impl IsA<NavigationPage>, ) -> Option<NavigationPage>
sourcepub fn is_vhomogeneous(&self) -> bool
Available on crate feature v1_7
only.
pub fn is_vhomogeneous(&self) -> bool
v1_7
only.sourcepub fn visible_page(&self) -> Option<NavigationPage>
pub fn visible_page(&self) -> Option<NavigationPage>
sourcepub fn pop(&self) -> bool
pub fn pop(&self) -> bool
Pops the visible page from the navigation stack.
Does nothing if the navigation stack contains less than two pages.
If add()
hasn’t been called, the page is automatically
removed.
popped
will be emitted for the current visible page.
See pop_to_page()
and
pop_to_tag()
.
§Returns
TRUE
if a page has been popped
sourcepub fn pop_to_page(&self, page: &impl IsA<NavigationPage>) -> bool
pub fn pop_to_page(&self, page: &impl IsA<NavigationPage>) -> bool
Pops pages from the navigation stack until @page is visible.
@page must be in the navigation stack.
If add()
hasn’t been called for any of the popped pages,
they are automatically removed.
popped
will be be emitted for each of the popped
pages.
See pop()
and pop_to_tag()
.
§page
the page to pop to
§Returns
TRUE
if any pages have been popped
sourcepub fn pop_to_tag(&self, tag: &str) -> bool
pub fn pop_to_tag(&self, tag: &str) -> bool
Pops pages from the navigation stack until page with the tag @tag is visible.
The page must be in the navigation stack.
If add()
hasn’t been called for any of the popped pages,
they are automatically removed.
popped
will be emitted for each of the popped pages.
See pop_to_page()
and tag
.
§tag
a page tag
§Returns
TRUE
if any pages have been popped
sourcepub fn push(&self, page: &impl IsA<NavigationPage>)
pub fn push(&self, page: &impl IsA<NavigationPage>)
Pushes @page onto the navigation stack.
If add()
hasn’t been called, the page is automatically
removed once it’s popped.
pushed
will be emitted for @page.
See push_by_tag()
.
§page
the page to push
sourcepub fn push_by_tag(&self, tag: &str)
pub fn push_by_tag(&self, tag: &str)
sourcepub fn remove(&self, page: &impl IsA<NavigationPage>)
pub fn remove(&self, page: &impl IsA<NavigationPage>)
sourcepub fn replace(&self, pages: &[NavigationPage])
pub fn replace(&self, pages: &[NavigationPage])
Replaces the current navigation stack with @pages.
The last page becomes the visible page.
Replacing the navigation stack has no animation.
If add()
hasn’t been called for any pages that are no
longer in the navigation stack, they are automatically removed.
@n_pages can be 0, in that case no page will be visible after calling this method. This can be useful for removing all pages from @self.
The replaced
signal will be emitted.
See replace_with_tags()
.
§pages
the new navigation stack
Replaces the current navigation stack with pages with the tags @tags.
The last page becomes the visible page.
Replacing the navigation stack has no animation.
If add()
hasn’t been called for any pages that are no
longer in the navigation stack, they are automatically removed.
@n_tags can be 0, in that case no page will be visible after calling this method. This can be useful for removing all pages from @self.
The replaced
signal will be emitted.
§tags
tags of the pages in the navigation stack
sourcepub fn set_animate_transitions(&self, animate_transitions: bool)
pub fn set_animate_transitions(&self, animate_transitions: bool)
Sets whether @self should animate page transitions.
Gesture-based transitions are always animated.
§animate_transitions
whether to animate page transitions
sourcepub fn set_hhomogeneous(&self, hhomogeneous: bool)
Available on crate feature v1_7
only.
pub fn set_hhomogeneous(&self, hhomogeneous: bool)
v1_7
only.Sets @self to be horizontally homogeneous or not.
If the view is horizontally homogeneous, it allocates the same width for all pages.
If it’s not, the view may change width when a different page becomes visible.
§hhomogeneous
whether to make @self horizontally homogeneous
sourcepub fn set_pop_on_escape(&self, pop_on_escape: bool)
pub fn set_pop_on_escape(&self, pop_on_escape: bool)
Sets whether pressing Escape pops the current page on @self.
Applications using NavigationView
to implement a browser may want to
disable it.
§pop_on_escape
whether to pop the current page when pressing Escape
sourcepub fn set_vhomogeneous(&self, vhomogeneous: bool)
Available on crate feature v1_7
only.
pub fn set_vhomogeneous(&self, vhomogeneous: bool)
v1_7
only.Sets @self to be vertically homogeneous or not.
If the view is vertically homogeneous, it allocates the same height for all pages.
If it’s not, the view may change height when a different page becomes visible.
§vhomogeneous
whether to make @self vertically homogeneous
sourcepub fn connect_get_next_page<F: Fn(&Self) -> Option<NavigationPage> + 'static>(
&self,
f: F,
) -> SignalHandlerId
pub fn connect_get_next_page<F: Fn(&Self) -> Option<NavigationPage> + 'static>( &self, f: F, ) -> SignalHandlerId
Emitted when a push shortcut or a gesture is triggered.
To support the push shortcuts and gestures, the application is expected to return the page to push in the handler.
This signal can be emitted multiple times for the gestures, for example when the gesture is cancelled by the user. As such, the application must not make any irreversible changes in the handler, such as removing the page from a forward stack.
Instead, it should be done in the pushed
handler.
§Returns
the page to push
sourcepub fn connect_popped<F: Fn(&Self, &NavigationPage) + 'static>(
&self,
f: F,
) -> SignalHandlerId
pub fn connect_popped<F: Fn(&Self, &NavigationPage) + 'static>( &self, f: F, ) -> SignalHandlerId
Emitted after @page has been popped from the navigation stack.
See pop()
.
When using pop_to_page()
or
pop_to_tag()
, this signal is emitted for each of the
popped pages.
§page
the popped page
sourcepub fn connect_pushed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
pub fn connect_pushed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
Emitted after a page has been pushed to the navigation stack.
See push()
.
sourcepub fn connect_replaced<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
pub fn connect_replaced<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
Emitted after the navigation stack has been replaced.
See replace()
.
pub fn connect_animate_transitions_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
pub fn connect_hhomogeneous_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
v1_7
only.pub fn connect_pop_on_escape_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
pub fn connect_vhomogeneous_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
v1_7
only.pub fn connect_visible_page_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
Trait Implementations§
type ParamSpec = ParamSpecObject
source§type SetValue = NavigationView
type SetValue = NavigationView
type BuilderFn = fn(_: &str) -> ParamSpecObjectBuilder<'_, NavigationView>
fn param_spec_builder() -> Self::BuilderFn
source§fn cmp(&self, other: &Self) -> Ordering
fn cmp(&self, other: &Self) -> Ordering
Comparison for two GObjects.
Compares the memory addresses of the provided objects.
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§fn static_type() -> Type
fn static_type() -> Type
Self
.Auto Trait Implementations§
Blanket Implementations§
source§impl<O> AccessibleExt for Owhere
O: IsA<Accessible>,
impl<O> AccessibleExt for Owhere
O: IsA<Accessible>,
fn accessible_role(&self) -> AccessibleRole
fn reset_property(&self, property: AccessibleProperty)
fn reset_relation(&self, relation: AccessibleRelation)
fn reset_state(&self, state: AccessibleState)
fn set_accessible_role(&self, accessible_role: AccessibleRole)
fn connect_accessible_role_notify<F>(&self, f: F) -> SignalHandlerIdwhere
F: Fn(&Self) + 'static,
source§impl<O> AccessibleExtManual for Owhere
O: IsA<Accessible>,
impl<O> AccessibleExtManual for Owhere
O: IsA<Accessible>,
fn update_property(&self, properties: &[Property<'_>])
fn update_relation(&self, relations: &[Relation<'_>])
fn update_state(&self, states: &[State])
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<O> BuildableExt for O
impl<O> BuildableExt for O
fn buildable_id(&self) -> Option<GString>
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: MayDowncastTo<T>,
fn downcast<T>(self) -> Result<T, Self>where
T: ObjectType,
Self: MayDowncastTo<T>,
T
. Read moresource§fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: MayDowncastTo<T>,
fn downcast_ref<T>(&self) -> Option<&T>where
T: ObjectType,
Self: MayDowncastTo<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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§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>,
unsafe fn from_glib_none_as_vec(ptr: *const GList) -> Vec<T>
unsafe fn from_glib_container_as_vec(_: *const GList) -> Vec<T>
unsafe fn from_glib_full_as_vec(_: *const GList) -> Vec<T>
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>,
unsafe fn from_glib_none_as_vec(ptr: *const GPtrArray) -> Vec<T>
unsafe fn from_glib_container_as_vec(_: *const GPtrArray) -> Vec<T>
unsafe fn from_glib_full_as_vec(_: *const GPtrArray) -> Vec<T>
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>,
unsafe fn from_glib_none_as_vec(ptr: *const GSList) -> Vec<T>
unsafe fn from_glib_container_as_vec(_: *const GSList) -> Vec<T>
unsafe fn from_glib_full_as_vec(_: *const GSList) -> Vec<T>
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>,
unsafe fn from_glib_none_as_vec(ptr: *mut GList) -> Vec<T>
unsafe fn from_glib_container_as_vec(ptr: *mut GList) -> Vec<T>
unsafe fn from_glib_full_as_vec(ptr: *mut GList) -> Vec<T>
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>,
unsafe fn from_glib_none_as_vec(ptr: *mut GPtrArray) -> Vec<T>
unsafe fn from_glib_container_as_vec(ptr: *mut GPtrArray) -> Vec<T>
unsafe fn from_glib_full_as_vec(ptr: *mut GPtrArray) -> Vec<T>
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>,
unsafe fn from_glib_none_as_vec(ptr: *mut GSList) -> Vec<T>
unsafe fn from_glib_container_as_vec(ptr: *mut GSList) -> Vec<T>
unsafe fn from_glib_full_as_vec(ptr: *mut GSList) -> Vec<T>
source§impl<O> GObjectPropertyExpressionExt for O
impl<O> GObjectPropertyExpressionExt for O
source§fn property_expression(&self, property_name: &str) -> PropertyExpression
fn property_expression(&self, property_name: &str) -> PropertyExpression
source§fn property_expression_weak(&self, property_name: &str) -> PropertyExpression
fn property_expression_weak(&self, property_name: &str) -> PropertyExpression
source§fn this_expression(property_name: &str) -> PropertyExpression
fn this_expression(property_name: &str) -> PropertyExpression
this
object.source§impl<T> IntoClosureReturnValue for T
impl<T> IntoClosureReturnValue for T
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>)
fn parent_instance_init<T>(instance: &mut InitializingObject<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,
) -> SignalHandlerId
fn connect<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F,
) -> SignalHandlerId
fn connect_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
signal_id
on this object. Read moresource§fn connect_local<F>(
&self,
signal_name: &str,
after: bool,
callback: F,
) -> SignalHandlerId
fn connect_local<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
signal_name
on this object. Read moresource§fn connect_local_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F,
) -> SignalHandlerId
fn connect_local_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
signal_id
on this object. Read moresource§unsafe fn connect_unsafe<F>(
&self,
signal_name: &str,
after: bool,
callback: F,
) -> SignalHandlerId
unsafe fn connect_unsafe<F>( &self, signal_name: &str, after: bool, callback: F, ) -> SignalHandlerId
signal_name
on this object. Read moresource§unsafe fn connect_unsafe_id<F>(
&self,
signal_id: SignalId,
details: Option<Quark>,
after: bool,
callback: F,
) -> SignalHandlerId
unsafe fn connect_unsafe_id<F>( &self, signal_id: SignalId, details: Option<Quark>, after: bool, callback: F, ) -> SignalHandlerId
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) -> SignalHandlerId
fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
notify
signal of the object. Read moresource§fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
fn connect_notify_local<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId
notify
signal of the object. Read moresource§unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F,
) -> SignalHandlerId
unsafe fn connect_notify_unsafe<F>( &self, name: Option<&str>, f: F, ) -> SignalHandlerId
notify
signal of the object. Read more