gtk4/auto/
cell_renderer_toggle.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, TreePath};
7use glib::{
8    object::ObjectType as _,
9    prelude::*,
10    signal::{connect_raw, SignalHandlerId},
11    translate::*,
12};
13use std::boxed::Box as Box_;
14
15glib::wrapper! {
16    #[doc(alias = "GtkCellRendererToggle")]
17    pub struct CellRendererToggle(Object<ffi::GtkCellRendererToggle>) @extends CellRenderer;
18
19    match fn {
20        type_ => || ffi::gtk_cell_renderer_toggle_get_type(),
21    }
22}
23
24impl CellRendererToggle {
25    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
26    #[allow(deprecated)]
27    #[doc(alias = "gtk_cell_renderer_toggle_new")]
28    pub fn new() -> CellRendererToggle {
29        assert_initialized_main_thread!();
30        unsafe { CellRenderer::from_glib_none(ffi::gtk_cell_renderer_toggle_new()).unsafe_cast() }
31    }
32
33    // rustdoc-stripper-ignore-next
34    /// Creates a new builder-pattern struct instance to construct [`CellRendererToggle`] objects.
35    ///
36    /// This method returns an instance of [`CellRendererToggleBuilder`](crate::builders::CellRendererToggleBuilder) which can be used to create [`CellRendererToggle`] objects.
37    pub fn builder() -> CellRendererToggleBuilder {
38        CellRendererToggleBuilder::new()
39    }
40
41    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
42    #[allow(deprecated)]
43    #[doc(alias = "gtk_cell_renderer_toggle_get_activatable")]
44    #[doc(alias = "get_activatable")]
45    #[doc(alias = "activatable")]
46    pub fn is_activatable(&self) -> bool {
47        unsafe {
48            from_glib(ffi::gtk_cell_renderer_toggle_get_activatable(
49                self.to_glib_none().0,
50            ))
51        }
52    }
53
54    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
55    #[allow(deprecated)]
56    #[doc(alias = "gtk_cell_renderer_toggle_get_active")]
57    #[doc(alias = "get_active")]
58    #[doc(alias = "active")]
59    pub fn is_active(&self) -> bool {
60        unsafe {
61            from_glib(ffi::gtk_cell_renderer_toggle_get_active(
62                self.to_glib_none().0,
63            ))
64        }
65    }
66
67    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
68    #[allow(deprecated)]
69    #[doc(alias = "gtk_cell_renderer_toggle_get_radio")]
70    #[doc(alias = "get_radio")]
71    #[doc(alias = "radio")]
72    pub fn is_radio(&self) -> bool {
73        unsafe {
74            from_glib(ffi::gtk_cell_renderer_toggle_get_radio(
75                self.to_glib_none().0,
76            ))
77        }
78    }
79
80    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
81    #[allow(deprecated)]
82    #[doc(alias = "gtk_cell_renderer_toggle_set_activatable")]
83    #[doc(alias = "activatable")]
84    pub fn set_activatable(&self, setting: bool) {
85        unsafe {
86            ffi::gtk_cell_renderer_toggle_set_activatable(
87                self.to_glib_none().0,
88                setting.into_glib(),
89            );
90        }
91    }
92
93    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
94    #[allow(deprecated)]
95    #[doc(alias = "gtk_cell_renderer_toggle_set_active")]
96    #[doc(alias = "active")]
97    pub fn set_active(&self, setting: bool) {
98        unsafe {
99            ffi::gtk_cell_renderer_toggle_set_active(self.to_glib_none().0, setting.into_glib());
100        }
101    }
102
103    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
104    #[allow(deprecated)]
105    #[doc(alias = "gtk_cell_renderer_toggle_set_radio")]
106    #[doc(alias = "radio")]
107    pub fn set_radio(&self, radio: bool) {
108        unsafe {
109            ffi::gtk_cell_renderer_toggle_set_radio(self.to_glib_none().0, radio.into_glib());
110        }
111    }
112
113    pub fn is_inconsistent(&self) -> bool {
114        ObjectExt::property(self, "inconsistent")
115    }
116
117    pub fn set_inconsistent(&self, inconsistent: bool) {
118        ObjectExt::set_property(self, "inconsistent", inconsistent)
119    }
120
121    #[doc(alias = "toggled")]
122    pub fn connect_toggled<F: Fn(&Self, TreePath) + 'static>(&self, f: F) -> SignalHandlerId {
123        unsafe extern "C" fn toggled_trampoline<F: Fn(&CellRendererToggle, TreePath) + 'static>(
124            this: *mut ffi::GtkCellRendererToggle,
125            path: *mut std::ffi::c_char,
126            f: glib::ffi::gpointer,
127        ) {
128            let f: &F = &*(f as *const F);
129            let path = from_glib_full(crate::ffi::gtk_tree_path_new_from_string(path));
130            f(&from_glib_borrow(this), path)
131        }
132        unsafe {
133            let f: Box_<F> = Box_::new(f);
134            connect_raw(
135                self.as_ptr() as *mut _,
136                c"toggled".as_ptr() as *const _,
137                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
138                    toggled_trampoline::<F> as *const (),
139                )),
140                Box_::into_raw(f),
141            )
142        }
143    }
144
145    #[doc(alias = "activatable")]
146    pub fn connect_activatable_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
147        unsafe extern "C" fn notify_activatable_trampoline<F: Fn(&CellRendererToggle) + 'static>(
148            this: *mut ffi::GtkCellRendererToggle,
149            _param_spec: glib::ffi::gpointer,
150            f: glib::ffi::gpointer,
151        ) {
152            let f: &F = &*(f as *const F);
153            f(&from_glib_borrow(this))
154        }
155        unsafe {
156            let f: Box_<F> = Box_::new(f);
157            connect_raw(
158                self.as_ptr() as *mut _,
159                c"notify::activatable".as_ptr() as *const _,
160                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
161                    notify_activatable_trampoline::<F> as *const (),
162                )),
163                Box_::into_raw(f),
164            )
165        }
166    }
167
168    #[doc(alias = "active")]
169    pub fn connect_active_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
170        unsafe extern "C" fn notify_active_trampoline<F: Fn(&CellRendererToggle) + 'static>(
171            this: *mut ffi::GtkCellRendererToggle,
172            _param_spec: glib::ffi::gpointer,
173            f: glib::ffi::gpointer,
174        ) {
175            let f: &F = &*(f as *const F);
176            f(&from_glib_borrow(this))
177        }
178        unsafe {
179            let f: Box_<F> = Box_::new(f);
180            connect_raw(
181                self.as_ptr() as *mut _,
182                c"notify::active".as_ptr() as *const _,
183                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
184                    notify_active_trampoline::<F> as *const (),
185                )),
186                Box_::into_raw(f),
187            )
188        }
189    }
190
191    #[doc(alias = "inconsistent")]
192    pub fn connect_inconsistent_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
193        unsafe extern "C" fn notify_inconsistent_trampoline<
194            F: Fn(&CellRendererToggle) + 'static,
195        >(
196            this: *mut ffi::GtkCellRendererToggle,
197            _param_spec: glib::ffi::gpointer,
198            f: glib::ffi::gpointer,
199        ) {
200            let f: &F = &*(f as *const F);
201            f(&from_glib_borrow(this))
202        }
203        unsafe {
204            let f: Box_<F> = Box_::new(f);
205            connect_raw(
206                self.as_ptr() as *mut _,
207                c"notify::inconsistent".as_ptr() as *const _,
208                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
209                    notify_inconsistent_trampoline::<F> as *const (),
210                )),
211                Box_::into_raw(f),
212            )
213        }
214    }
215
216    #[doc(alias = "radio")]
217    pub fn connect_radio_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
218        unsafe extern "C" fn notify_radio_trampoline<F: Fn(&CellRendererToggle) + 'static>(
219            this: *mut ffi::GtkCellRendererToggle,
220            _param_spec: glib::ffi::gpointer,
221            f: glib::ffi::gpointer,
222        ) {
223            let f: &F = &*(f as *const F);
224            f(&from_glib_borrow(this))
225        }
226        unsafe {
227            let f: Box_<F> = Box_::new(f);
228            connect_raw(
229                self.as_ptr() as *mut _,
230                c"notify::radio".as_ptr() as *const _,
231                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
232                    notify_radio_trampoline::<F> as *const (),
233                )),
234                Box_::into_raw(f),
235            )
236        }
237    }
238}
239
240impl Default for CellRendererToggle {
241    fn default() -> Self {
242        Self::new()
243    }
244}
245
246// rustdoc-stripper-ignore-next
247/// A [builder-pattern] type to construct [`CellRendererToggle`] objects.
248///
249/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
250#[must_use = "The builder must be built to be used"]
251pub struct CellRendererToggleBuilder {
252    builder: glib::object::ObjectBuilder<'static, CellRendererToggle>,
253}
254
255impl CellRendererToggleBuilder {
256    fn new() -> Self {
257        Self {
258            builder: glib::object::Object::builder(),
259        }
260    }
261
262    pub fn activatable(self, activatable: bool) -> Self {
263        Self {
264            builder: self.builder.property("activatable", activatable),
265        }
266    }
267
268    pub fn active(self, active: bool) -> Self {
269        Self {
270            builder: self.builder.property("active", active),
271        }
272    }
273
274    pub fn inconsistent(self, inconsistent: bool) -> Self {
275        Self {
276            builder: self.builder.property("inconsistent", inconsistent),
277        }
278    }
279
280    pub fn radio(self, radio: bool) -> Self {
281        Self {
282            builder: self.builder.property("radio", radio),
283        }
284    }
285
286    pub fn cell_background(self, cell_background: impl Into<glib::GString>) -> Self {
287        Self {
288            builder: self
289                .builder
290                .property("cell-background", cell_background.into()),
291        }
292    }
293
294    pub fn cell_background_rgba(self, cell_background_rgba: &gdk::RGBA) -> Self {
295        Self {
296            builder: self
297                .builder
298                .property("cell-background-rgba", cell_background_rgba),
299        }
300    }
301
302    pub fn cell_background_set(self, cell_background_set: bool) -> Self {
303        Self {
304            builder: self
305                .builder
306                .property("cell-background-set", cell_background_set),
307        }
308    }
309
310    pub fn height(self, height: i32) -> Self {
311        Self {
312            builder: self.builder.property("height", height),
313        }
314    }
315
316    pub fn is_expanded(self, is_expanded: bool) -> Self {
317        Self {
318            builder: self.builder.property("is-expanded", is_expanded),
319        }
320    }
321
322    pub fn is_expander(self, is_expander: bool) -> Self {
323        Self {
324            builder: self.builder.property("is-expander", is_expander),
325        }
326    }
327
328    pub fn mode(self, mode: CellRendererMode) -> Self {
329        Self {
330            builder: self.builder.property("mode", mode),
331        }
332    }
333
334    pub fn sensitive(self, sensitive: bool) -> Self {
335        Self {
336            builder: self.builder.property("sensitive", sensitive),
337        }
338    }
339
340    pub fn visible(self, visible: bool) -> Self {
341        Self {
342            builder: self.builder.property("visible", visible),
343        }
344    }
345
346    pub fn width(self, width: i32) -> Self {
347        Self {
348            builder: self.builder.property("width", width),
349        }
350    }
351
352    pub fn xalign(self, xalign: f32) -> Self {
353        Self {
354            builder: self.builder.property("xalign", xalign),
355        }
356    }
357
358    pub fn xpad(self, xpad: u32) -> Self {
359        Self {
360            builder: self.builder.property("xpad", xpad),
361        }
362    }
363
364    pub fn yalign(self, yalign: f32) -> Self {
365        Self {
366            builder: self.builder.property("yalign", yalign),
367        }
368    }
369
370    pub fn ypad(self, ypad: u32) -> Self {
371        Self {
372            builder: self.builder.property("ypad", ypad),
373        }
374    }
375
376    // rustdoc-stripper-ignore-next
377    /// Build the [`CellRendererToggle`].
378    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
379    pub fn build(self) -> CellRendererToggle {
380        assert_initialized_main_thread!();
381        self.builder.build()
382    }
383}