Skip to main content

libadwaita/auto/
spinner_paintable.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::{
8    prelude::*,
9    signal::{SignalHandlerId, connect_raw},
10    translate::*,
11};
12use std::boxed::Box as Box_;
13
14#[cfg(feature = "gtk_v4_6")]
15#[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_6")))]
16glib::wrapper! {
17    #[doc(alias = "AdwSpinnerPaintable")]
18    pub struct SpinnerPaintable(Object<ffi::AdwSpinnerPaintable, ffi::AdwSpinnerPaintableClass>) @implements gdk::Paintable, gtk::SymbolicPaintable;
19
20    match fn {
21        type_ => || ffi::adw_spinner_paintable_get_type(),
22    }
23}
24
25#[cfg(not(feature = "gtk_v4_6"))]
26glib::wrapper! {
27    #[doc(alias = "AdwSpinnerPaintable")]
28    pub struct SpinnerPaintable(Object<ffi::AdwSpinnerPaintable, ffi::AdwSpinnerPaintableClass>) @implements gdk::Paintable;
29
30    match fn {
31        type_ => || ffi::adw_spinner_paintable_get_type(),
32    }
33}
34
35impl SpinnerPaintable {
36    #[doc(alias = "adw_spinner_paintable_new")]
37    pub fn new(widget: Option<&impl IsA<gtk::Widget>>) -> SpinnerPaintable {
38        assert_initialized_main_thread!();
39        unsafe {
40            from_glib_full(ffi::adw_spinner_paintable_new(
41                widget.map(|p| p.as_ref()).to_glib_none().0,
42            ))
43        }
44    }
45
46    #[doc(alias = "adw_spinner_paintable_get_widget")]
47    #[doc(alias = "get_widget")]
48    pub fn widget(&self) -> Option<gtk::Widget> {
49        unsafe { from_glib_none(ffi::adw_spinner_paintable_get_widget(self.to_glib_none().0)) }
50    }
51
52    #[doc(alias = "adw_spinner_paintable_set_widget")]
53    #[doc(alias = "widget")]
54    pub fn set_widget(&self, widget: Option<&impl IsA<gtk::Widget>>) {
55        unsafe {
56            ffi::adw_spinner_paintable_set_widget(
57                self.to_glib_none().0,
58                widget.map(|p| p.as_ref()).to_glib_none().0,
59            );
60        }
61    }
62
63    #[cfg(feature = "v1_6")]
64    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
65    #[doc(alias = "widget")]
66    pub fn connect_widget_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
67        unsafe extern "C" fn notify_widget_trampoline<F: Fn(&SpinnerPaintable) + 'static>(
68            this: *mut ffi::AdwSpinnerPaintable,
69            _param_spec: glib::ffi::gpointer,
70            f: glib::ffi::gpointer,
71        ) {
72            unsafe {
73                let f: &F = &*(f as *const F);
74                f(&from_glib_borrow(this))
75            }
76        }
77        unsafe {
78            let f: Box_<F> = Box_::new(f);
79            connect_raw(
80                self.as_ptr() as *mut _,
81                c"notify::widget".as_ptr(),
82                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
83                    notify_widget_trampoline::<F> as *const (),
84                )),
85                Box_::into_raw(f),
86            )
87        }
88    }
89}