1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from
// from gir-files (https://github.com/gtk-rs/gir-files.git)
// DO NOT EDIT
#![allow(deprecated)]
use crate::Swipeable;
use glib::{prelude::*, translate::*};
use std::fmt;
glib::wrapper! {
/// An object for syncing swipeable widgets.
///
/// The [`SwipeGroup`][crate::SwipeGroup] object can be used to sync multiple swipeable widgets
/// that implement the [`Swipeable`][crate::Swipeable] interface, such as [`Carousel`][crate::Carousel], so
/// that animating one of them also animates all the other widgets in the group.
///
/// This can be useful for syncing widgets between a window's titlebar and
/// content area.
///
/// ## HdySwipeGroup as GtkBuildable
///
/// [`SwipeGroup`][crate::SwipeGroup] can be created in an UI definition. The list of swipeable
/// widgets is specified with a <swipeables> element containing multiple
/// <swipeable> elements with their ”name” attribute specifying the id of
/// the widgets.
///
/// ```xml
/// <object class="HdySwipeGroup">
/// <swipeables>
/// <swipeable name="carousel1"/>
/// <swipeable name="carousel2"/>
/// </swipeables>
/// </object>
/// ```
///
/// [`SwipeGroup`][crate::SwipeGroup] has been deprecated, [`Window`][crate::Window] and
/// [`ApplicationWindow`][crate::ApplicationWindow] allow using a single leaflet for both content and
/// header bar, without the need to sync them.
///
/// # Implements
///
/// [`trait@glib::ObjectExt`], [`trait@gtk::prelude::BuildableExt`]
#[doc(alias = "HdySwipeGroup")]
pub struct SwipeGroup(Object<ffi::HdySwipeGroup, ffi::HdySwipeGroupClass>) @implements gtk::Buildable;
match fn {
type_ => || ffi::hdy_swipe_group_get_type(),
}
}
impl SwipeGroup {
/// Creates a new [`SwipeGroup`][crate::SwipeGroup].
///
/// # Deprecated since 1.4
///
///
/// # Returns
///
/// the newly created [`SwipeGroup`][crate::SwipeGroup]
#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
#[allow(deprecated)]
#[doc(alias = "hdy_swipe_group_new")]
pub fn new() -> SwipeGroup {
assert_initialized_main_thread!();
unsafe { from_glib_full(ffi::hdy_swipe_group_new()) }
}
/// Adds a swipeable to @self.
///
/// When the widget is destroyed or no longer referenced elsewhere, it will be
/// removed from the swipe group.
///
/// # Deprecated since 1.4
///
/// ## `swipeable`
/// the [`Swipeable`][crate::Swipeable] to add
#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
#[allow(deprecated)]
#[doc(alias = "hdy_swipe_group_add_swipeable")]
pub fn add_swipeable(&self, swipeable: &impl IsA<Swipeable>) {
unsafe {
ffi::hdy_swipe_group_add_swipeable(
self.to_glib_none().0,
swipeable.as_ref().to_glib_none().0,
);
}
}
/// Gets the list of swipeables associated with @self.
///
/// # Deprecated since 1.4
///
///
/// # Returns
///
/// a list of swipeables
#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
#[allow(deprecated)]
#[doc(alias = "hdy_swipe_group_get_swipeables")]
#[doc(alias = "get_swipeables")]
pub fn swipeables(&self) -> Vec<Swipeable> {
unsafe {
FromGlibPtrContainer::from_glib_none(ffi::hdy_swipe_group_get_swipeables(
self.to_glib_none().0,
))
}
}
/// Removes a widget from a [`SwipeGroup`][crate::SwipeGroup].
///
/// # Deprecated since 1.4
///
/// ## `swipeable`
/// the [`Swipeable`][crate::Swipeable] to remove
#[cfg_attr(feature = "v1_4", deprecated = "Since 1.4")]
#[allow(deprecated)]
#[doc(alias = "hdy_swipe_group_remove_swipeable")]
pub fn remove_swipeable(&self, swipeable: &impl IsA<Swipeable>) {
unsafe {
ffi::hdy_swipe_group_remove_swipeable(
self.to_glib_none().0,
swipeable.as_ref().to_glib_none().0,
);
}
}
}
impl Default for SwipeGroup {
fn default() -> Self {
Self::new()
}
}
impl fmt::Display for SwipeGroup {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("SwipeGroup")
}
}