gtk4/auto/
cell_renderer_spinner.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// DO NOT EDIT
4#![allow(deprecated)]
5
6use crate::{ffi, CellRenderer, CellRendererMode, IconSize};
7use glib::{
8    prelude::*,
9    signal::{connect_raw, SignalHandlerId},
10    translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15    #[doc(alias = "GtkCellRendererSpinner")]
16    pub struct CellRendererSpinner(Object<ffi::GtkCellRendererSpinner>) @extends CellRenderer;
17
18    match fn {
19        type_ => || ffi::gtk_cell_renderer_spinner_get_type(),
20    }
21}
22
23impl CellRendererSpinner {
24    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
25    #[allow(deprecated)]
26    #[doc(alias = "gtk_cell_renderer_spinner_new")]
27    pub fn new() -> CellRendererSpinner {
28        assert_initialized_main_thread!();
29        unsafe { CellRenderer::from_glib_none(ffi::gtk_cell_renderer_spinner_new()).unsafe_cast() }
30    }
31
32    // rustdoc-stripper-ignore-next
33    /// Creates a new builder-pattern struct instance to construct [`CellRendererSpinner`] objects.
34    ///
35    /// This method returns an instance of [`CellRendererSpinnerBuilder`](crate::builders::CellRendererSpinnerBuilder) which can be used to create [`CellRendererSpinner`] objects.
36    pub fn builder() -> CellRendererSpinnerBuilder {
37        CellRendererSpinnerBuilder::new()
38    }
39
40    pub fn is_active(&self) -> bool {
41        ObjectExt::property(self, "active")
42    }
43
44    pub fn set_active(&self, active: bool) {
45        ObjectExt::set_property(self, "active", active)
46    }
47
48    pub fn pulse(&self) -> u32 {
49        ObjectExt::property(self, "pulse")
50    }
51
52    pub fn set_pulse(&self, pulse: u32) {
53        ObjectExt::set_property(self, "pulse", pulse)
54    }
55
56    pub fn size(&self) -> IconSize {
57        ObjectExt::property(self, "size")
58    }
59
60    pub fn set_size(&self, size: IconSize) {
61        ObjectExt::set_property(self, "size", size)
62    }
63
64    #[doc(alias = "active")]
65    pub fn connect_active_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
66        unsafe extern "C" fn notify_active_trampoline<F: Fn(&CellRendererSpinner) + 'static>(
67            this: *mut ffi::GtkCellRendererSpinner,
68            _param_spec: glib::ffi::gpointer,
69            f: glib::ffi::gpointer,
70        ) {
71            let f: &F = &*(f as *const F);
72            f(&from_glib_borrow(this))
73        }
74        unsafe {
75            let f: Box_<F> = Box_::new(f);
76            connect_raw(
77                self.as_ptr() as *mut _,
78                b"notify::active\0".as_ptr() as *const _,
79                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
80                    notify_active_trampoline::<F> as *const (),
81                )),
82                Box_::into_raw(f),
83            )
84        }
85    }
86
87    #[doc(alias = "pulse")]
88    pub fn connect_pulse_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
89        unsafe extern "C" fn notify_pulse_trampoline<F: Fn(&CellRendererSpinner) + 'static>(
90            this: *mut ffi::GtkCellRendererSpinner,
91            _param_spec: glib::ffi::gpointer,
92            f: glib::ffi::gpointer,
93        ) {
94            let f: &F = &*(f as *const F);
95            f(&from_glib_borrow(this))
96        }
97        unsafe {
98            let f: Box_<F> = Box_::new(f);
99            connect_raw(
100                self.as_ptr() as *mut _,
101                b"notify::pulse\0".as_ptr() as *const _,
102                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
103                    notify_pulse_trampoline::<F> as *const (),
104                )),
105                Box_::into_raw(f),
106            )
107        }
108    }
109
110    #[doc(alias = "size")]
111    pub fn connect_size_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
112        unsafe extern "C" fn notify_size_trampoline<F: Fn(&CellRendererSpinner) + 'static>(
113            this: *mut ffi::GtkCellRendererSpinner,
114            _param_spec: glib::ffi::gpointer,
115            f: glib::ffi::gpointer,
116        ) {
117            let f: &F = &*(f as *const F);
118            f(&from_glib_borrow(this))
119        }
120        unsafe {
121            let f: Box_<F> = Box_::new(f);
122            connect_raw(
123                self.as_ptr() as *mut _,
124                b"notify::size\0".as_ptr() as *const _,
125                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
126                    notify_size_trampoline::<F> as *const (),
127                )),
128                Box_::into_raw(f),
129            )
130        }
131    }
132}
133
134impl Default for CellRendererSpinner {
135    fn default() -> Self {
136        Self::new()
137    }
138}
139
140// rustdoc-stripper-ignore-next
141/// A [builder-pattern] type to construct [`CellRendererSpinner`] objects.
142///
143/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
144#[must_use = "The builder must be built to be used"]
145pub struct CellRendererSpinnerBuilder {
146    builder: glib::object::ObjectBuilder<'static, CellRendererSpinner>,
147}
148
149impl CellRendererSpinnerBuilder {
150    fn new() -> Self {
151        Self {
152            builder: glib::object::Object::builder(),
153        }
154    }
155
156    pub fn active(self, active: bool) -> Self {
157        Self {
158            builder: self.builder.property("active", active),
159        }
160    }
161
162    pub fn pulse(self, pulse: u32) -> Self {
163        Self {
164            builder: self.builder.property("pulse", pulse),
165        }
166    }
167
168    pub fn size(self, size: IconSize) -> Self {
169        Self {
170            builder: self.builder.property("size", size),
171        }
172    }
173
174    pub fn cell_background(self, cell_background: impl Into<glib::GString>) -> Self {
175        Self {
176            builder: self
177                .builder
178                .property("cell-background", cell_background.into()),
179        }
180    }
181
182    pub fn cell_background_rgba(self, cell_background_rgba: &gdk::RGBA) -> Self {
183        Self {
184            builder: self
185                .builder
186                .property("cell-background-rgba", cell_background_rgba),
187        }
188    }
189
190    pub fn cell_background_set(self, cell_background_set: bool) -> Self {
191        Self {
192            builder: self
193                .builder
194                .property("cell-background-set", cell_background_set),
195        }
196    }
197
198    pub fn height(self, height: i32) -> Self {
199        Self {
200            builder: self.builder.property("height", height),
201        }
202    }
203
204    pub fn is_expanded(self, is_expanded: bool) -> Self {
205        Self {
206            builder: self.builder.property("is-expanded", is_expanded),
207        }
208    }
209
210    pub fn is_expander(self, is_expander: bool) -> Self {
211        Self {
212            builder: self.builder.property("is-expander", is_expander),
213        }
214    }
215
216    pub fn mode(self, mode: CellRendererMode) -> Self {
217        Self {
218            builder: self.builder.property("mode", mode),
219        }
220    }
221
222    pub fn sensitive(self, sensitive: bool) -> Self {
223        Self {
224            builder: self.builder.property("sensitive", sensitive),
225        }
226    }
227
228    pub fn visible(self, visible: bool) -> Self {
229        Self {
230            builder: self.builder.property("visible", visible),
231        }
232    }
233
234    pub fn width(self, width: i32) -> Self {
235        Self {
236            builder: self.builder.property("width", width),
237        }
238    }
239
240    pub fn xalign(self, xalign: f32) -> Self {
241        Self {
242            builder: self.builder.property("xalign", xalign),
243        }
244    }
245
246    pub fn xpad(self, xpad: u32) -> Self {
247        Self {
248            builder: self.builder.property("xpad", xpad),
249        }
250    }
251
252    pub fn yalign(self, yalign: f32) -> Self {
253        Self {
254            builder: self.builder.property("yalign", yalign),
255        }
256    }
257
258    pub fn ypad(self, ypad: u32) -> Self {
259        Self {
260            builder: self.builder.property("ypad", ypad),
261        }
262    }
263
264    // rustdoc-stripper-ignore-next
265    /// Build the [`CellRendererSpinner`].
266    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
267    pub fn build(self) -> CellRendererSpinner {
268        assert_initialized_main_thread!();
269        self.builder.build()
270    }
271}