gtk4/auto/
cell_renderer_spin.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, Adjustment, CellRenderer, CellRendererMode, CellRendererText};
7use glib::{
8    prelude::*,
9    signal::{connect_raw, SignalHandlerId},
10    translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15    #[doc(alias = "GtkCellRendererSpin")]
16    pub struct CellRendererSpin(Object<ffi::GtkCellRendererSpin>) @extends CellRendererText, CellRenderer;
17
18    match fn {
19        type_ => || ffi::gtk_cell_renderer_spin_get_type(),
20    }
21}
22
23impl CellRendererSpin {
24    #[cfg_attr(feature = "v4_10", deprecated = "Since 4.10")]
25    #[allow(deprecated)]
26    #[doc(alias = "gtk_cell_renderer_spin_new")]
27    pub fn new() -> CellRendererSpin {
28        assert_initialized_main_thread!();
29        unsafe { CellRenderer::from_glib_none(ffi::gtk_cell_renderer_spin_new()).unsafe_cast() }
30    }
31
32    // rustdoc-stripper-ignore-next
33    /// Creates a new builder-pattern struct instance to construct [`CellRendererSpin`] objects.
34    ///
35    /// This method returns an instance of [`CellRendererSpinBuilder`](crate::builders::CellRendererSpinBuilder) which can be used to create [`CellRendererSpin`] objects.
36    pub fn builder() -> CellRendererSpinBuilder {
37        CellRendererSpinBuilder::new()
38    }
39
40    pub fn adjustment(&self) -> Option<Adjustment> {
41        ObjectExt::property(self, "adjustment")
42    }
43
44    pub fn set_adjustment<P: IsA<Adjustment>>(&self, adjustment: Option<&P>) {
45        ObjectExt::set_property(self, "adjustment", adjustment)
46    }
47
48    #[doc(alias = "climb-rate")]
49    pub fn climb_rate(&self) -> f64 {
50        ObjectExt::property(self, "climb-rate")
51    }
52
53    #[doc(alias = "climb-rate")]
54    pub fn set_climb_rate(&self, climb_rate: f64) {
55        ObjectExt::set_property(self, "climb-rate", climb_rate)
56    }
57
58    pub fn digits(&self) -> u32 {
59        ObjectExt::property(self, "digits")
60    }
61
62    pub fn set_digits(&self, digits: u32) {
63        ObjectExt::set_property(self, "digits", digits)
64    }
65
66    #[doc(alias = "adjustment")]
67    pub fn connect_adjustment_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
68        unsafe extern "C" fn notify_adjustment_trampoline<F: Fn(&CellRendererSpin) + 'static>(
69            this: *mut ffi::GtkCellRendererSpin,
70            _param_spec: glib::ffi::gpointer,
71            f: glib::ffi::gpointer,
72        ) {
73            let f: &F = &*(f as *const F);
74            f(&from_glib_borrow(this))
75        }
76        unsafe {
77            let f: Box_<F> = Box_::new(f);
78            connect_raw(
79                self.as_ptr() as *mut _,
80                c"notify::adjustment".as_ptr() as *const _,
81                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
82                    notify_adjustment_trampoline::<F> as *const (),
83                )),
84                Box_::into_raw(f),
85            )
86        }
87    }
88
89    #[doc(alias = "climb-rate")]
90    pub fn connect_climb_rate_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
91        unsafe extern "C" fn notify_climb_rate_trampoline<F: Fn(&CellRendererSpin) + 'static>(
92            this: *mut ffi::GtkCellRendererSpin,
93            _param_spec: glib::ffi::gpointer,
94            f: glib::ffi::gpointer,
95        ) {
96            let f: &F = &*(f as *const F);
97            f(&from_glib_borrow(this))
98        }
99        unsafe {
100            let f: Box_<F> = Box_::new(f);
101            connect_raw(
102                self.as_ptr() as *mut _,
103                c"notify::climb-rate".as_ptr() as *const _,
104                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
105                    notify_climb_rate_trampoline::<F> as *const (),
106                )),
107                Box_::into_raw(f),
108            )
109        }
110    }
111
112    #[doc(alias = "digits")]
113    pub fn connect_digits_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
114        unsafe extern "C" fn notify_digits_trampoline<F: Fn(&CellRendererSpin) + 'static>(
115            this: *mut ffi::GtkCellRendererSpin,
116            _param_spec: glib::ffi::gpointer,
117            f: glib::ffi::gpointer,
118        ) {
119            let f: &F = &*(f as *const F);
120            f(&from_glib_borrow(this))
121        }
122        unsafe {
123            let f: Box_<F> = Box_::new(f);
124            connect_raw(
125                self.as_ptr() as *mut _,
126                c"notify::digits".as_ptr() as *const _,
127                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
128                    notify_digits_trampoline::<F> as *const (),
129                )),
130                Box_::into_raw(f),
131            )
132        }
133    }
134}
135
136impl Default for CellRendererSpin {
137    fn default() -> Self {
138        Self::new()
139    }
140}
141
142// rustdoc-stripper-ignore-next
143/// A [builder-pattern] type to construct [`CellRendererSpin`] objects.
144///
145/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
146#[must_use = "The builder must be built to be used"]
147pub struct CellRendererSpinBuilder {
148    builder: glib::object::ObjectBuilder<'static, CellRendererSpin>,
149}
150
151impl CellRendererSpinBuilder {
152    fn new() -> Self {
153        Self {
154            builder: glib::object::Object::builder(),
155        }
156    }
157
158    pub fn adjustment(self, adjustment: &impl IsA<Adjustment>) -> Self {
159        Self {
160            builder: self
161                .builder
162                .property("adjustment", adjustment.clone().upcast()),
163        }
164    }
165
166    pub fn climb_rate(self, climb_rate: f64) -> Self {
167        Self {
168            builder: self.builder.property("climb-rate", climb_rate),
169        }
170    }
171
172    pub fn digits(self, digits: u32) -> Self {
173        Self {
174            builder: self.builder.property("digits", digits),
175        }
176    }
177
178    pub fn align_set(self, align_set: bool) -> Self {
179        Self {
180            builder: self.builder.property("align-set", align_set),
181        }
182    }
183
184    pub fn alignment(self, alignment: pango::Alignment) -> Self {
185        Self {
186            builder: self.builder.property("alignment", alignment),
187        }
188    }
189
190    pub fn attributes(self, attributes: &pango::AttrList) -> Self {
191        Self {
192            builder: self.builder.property("attributes", attributes.clone()),
193        }
194    }
195
196    pub fn background(self, background: impl Into<glib::GString>) -> Self {
197        Self {
198            builder: self.builder.property("background", background.into()),
199        }
200    }
201
202    pub fn background_rgba(self, background_rgba: &gdk::RGBA) -> Self {
203        Self {
204            builder: self.builder.property("background-rgba", background_rgba),
205        }
206    }
207
208    pub fn background_set(self, background_set: bool) -> Self {
209        Self {
210            builder: self.builder.property("background-set", background_set),
211        }
212    }
213
214    pub fn editable(self, editable: bool) -> Self {
215        Self {
216            builder: self.builder.property("editable", editable),
217        }
218    }
219
220    pub fn editable_set(self, editable_set: bool) -> Self {
221        Self {
222            builder: self.builder.property("editable-set", editable_set),
223        }
224    }
225
226    pub fn ellipsize(self, ellipsize: pango::EllipsizeMode) -> Self {
227        Self {
228            builder: self.builder.property("ellipsize", ellipsize),
229        }
230    }
231
232    pub fn ellipsize_set(self, ellipsize_set: bool) -> Self {
233        Self {
234            builder: self.builder.property("ellipsize-set", ellipsize_set),
235        }
236    }
237
238    pub fn family(self, family: impl Into<glib::GString>) -> Self {
239        Self {
240            builder: self.builder.property("family", family.into()),
241        }
242    }
243
244    pub fn family_set(self, family_set: bool) -> Self {
245        Self {
246            builder: self.builder.property("family-set", family_set),
247        }
248    }
249
250    pub fn font(self, font: impl Into<glib::GString>) -> Self {
251        Self {
252            builder: self.builder.property("font", font.into()),
253        }
254    }
255
256    pub fn font_desc(self, font_desc: &pango::FontDescription) -> Self {
257        Self {
258            builder: self.builder.property("font-desc", font_desc),
259        }
260    }
261
262    pub fn foreground(self, foreground: impl Into<glib::GString>) -> Self {
263        Self {
264            builder: self.builder.property("foreground", foreground.into()),
265        }
266    }
267
268    pub fn foreground_rgba(self, foreground_rgba: &gdk::RGBA) -> Self {
269        Self {
270            builder: self.builder.property("foreground-rgba", foreground_rgba),
271        }
272    }
273
274    pub fn foreground_set(self, foreground_set: bool) -> Self {
275        Self {
276            builder: self.builder.property("foreground-set", foreground_set),
277        }
278    }
279
280    pub fn language(self, language: impl Into<glib::GString>) -> Self {
281        Self {
282            builder: self.builder.property("language", language.into()),
283        }
284    }
285
286    pub fn language_set(self, language_set: bool) -> Self {
287        Self {
288            builder: self.builder.property("language-set", language_set),
289        }
290    }
291
292    pub fn markup(self, markup: impl Into<glib::GString>) -> Self {
293        Self {
294            builder: self.builder.property("markup", markup.into()),
295        }
296    }
297
298    pub fn max_width_chars(self, max_width_chars: i32) -> Self {
299        Self {
300            builder: self.builder.property("max-width-chars", max_width_chars),
301        }
302    }
303
304    pub fn placeholder_text(self, placeholder_text: impl Into<glib::GString>) -> Self {
305        Self {
306            builder: self
307                .builder
308                .property("placeholder-text", placeholder_text.into()),
309        }
310    }
311
312    pub fn rise(self, rise: i32) -> Self {
313        Self {
314            builder: self.builder.property("rise", rise),
315        }
316    }
317
318    pub fn rise_set(self, rise_set: bool) -> Self {
319        Self {
320            builder: self.builder.property("rise-set", rise_set),
321        }
322    }
323
324    pub fn scale(self, scale: f64) -> Self {
325        Self {
326            builder: self.builder.property("scale", scale),
327        }
328    }
329
330    pub fn scale_set(self, scale_set: bool) -> Self {
331        Self {
332            builder: self.builder.property("scale-set", scale_set),
333        }
334    }
335
336    pub fn single_paragraph_mode(self, single_paragraph_mode: bool) -> Self {
337        Self {
338            builder: self
339                .builder
340                .property("single-paragraph-mode", single_paragraph_mode),
341        }
342    }
343
344    pub fn size(self, size: i32) -> Self {
345        Self {
346            builder: self.builder.property("size", size),
347        }
348    }
349
350    pub fn size_points(self, size_points: f64) -> Self {
351        Self {
352            builder: self.builder.property("size-points", size_points),
353        }
354    }
355
356    pub fn size_set(self, size_set: bool) -> Self {
357        Self {
358            builder: self.builder.property("size-set", size_set),
359        }
360    }
361
362    pub fn stretch(self, stretch: pango::Stretch) -> Self {
363        Self {
364            builder: self.builder.property("stretch", stretch),
365        }
366    }
367
368    pub fn stretch_set(self, stretch_set: bool) -> Self {
369        Self {
370            builder: self.builder.property("stretch-set", stretch_set),
371        }
372    }
373
374    pub fn strikethrough(self, strikethrough: bool) -> Self {
375        Self {
376            builder: self.builder.property("strikethrough", strikethrough),
377        }
378    }
379
380    pub fn strikethrough_set(self, strikethrough_set: bool) -> Self {
381        Self {
382            builder: self
383                .builder
384                .property("strikethrough-set", strikethrough_set),
385        }
386    }
387
388    pub fn style(self, style: pango::Style) -> Self {
389        Self {
390            builder: self.builder.property("style", style),
391        }
392    }
393
394    pub fn style_set(self, style_set: bool) -> Self {
395        Self {
396            builder: self.builder.property("style-set", style_set),
397        }
398    }
399
400    pub fn text(self, text: impl Into<glib::GString>) -> Self {
401        Self {
402            builder: self.builder.property("text", text.into()),
403        }
404    }
405
406    pub fn underline(self, underline: pango::Underline) -> Self {
407        Self {
408            builder: self.builder.property("underline", underline),
409        }
410    }
411
412    pub fn underline_set(self, underline_set: bool) -> Self {
413        Self {
414            builder: self.builder.property("underline-set", underline_set),
415        }
416    }
417
418    pub fn variant(self, variant: pango::Variant) -> Self {
419        Self {
420            builder: self.builder.property("variant", variant),
421        }
422    }
423
424    pub fn variant_set(self, variant_set: bool) -> Self {
425        Self {
426            builder: self.builder.property("variant-set", variant_set),
427        }
428    }
429
430    pub fn weight(self, weight: i32) -> Self {
431        Self {
432            builder: self.builder.property("weight", weight),
433        }
434    }
435
436    pub fn weight_set(self, weight_set: bool) -> Self {
437        Self {
438            builder: self.builder.property("weight-set", weight_set),
439        }
440    }
441
442    pub fn width_chars(self, width_chars: i32) -> Self {
443        Self {
444            builder: self.builder.property("width-chars", width_chars),
445        }
446    }
447
448    pub fn wrap_mode(self, wrap_mode: pango::WrapMode) -> Self {
449        Self {
450            builder: self.builder.property("wrap-mode", wrap_mode),
451        }
452    }
453
454    pub fn wrap_width(self, wrap_width: i32) -> Self {
455        Self {
456            builder: self.builder.property("wrap-width", wrap_width),
457        }
458    }
459
460    pub fn cell_background(self, cell_background: impl Into<glib::GString>) -> Self {
461        Self {
462            builder: self
463                .builder
464                .property("cell-background", cell_background.into()),
465        }
466    }
467
468    pub fn cell_background_rgba(self, cell_background_rgba: &gdk::RGBA) -> Self {
469        Self {
470            builder: self
471                .builder
472                .property("cell-background-rgba", cell_background_rgba),
473        }
474    }
475
476    pub fn cell_background_set(self, cell_background_set: bool) -> Self {
477        Self {
478            builder: self
479                .builder
480                .property("cell-background-set", cell_background_set),
481        }
482    }
483
484    pub fn height(self, height: i32) -> Self {
485        Self {
486            builder: self.builder.property("height", height),
487        }
488    }
489
490    pub fn is_expanded(self, is_expanded: bool) -> Self {
491        Self {
492            builder: self.builder.property("is-expanded", is_expanded),
493        }
494    }
495
496    pub fn is_expander(self, is_expander: bool) -> Self {
497        Self {
498            builder: self.builder.property("is-expander", is_expander),
499        }
500    }
501
502    pub fn mode(self, mode: CellRendererMode) -> Self {
503        Self {
504            builder: self.builder.property("mode", mode),
505        }
506    }
507
508    pub fn sensitive(self, sensitive: bool) -> Self {
509        Self {
510            builder: self.builder.property("sensitive", sensitive),
511        }
512    }
513
514    pub fn visible(self, visible: bool) -> Self {
515        Self {
516            builder: self.builder.property("visible", visible),
517        }
518    }
519
520    pub fn width(self, width: i32) -> Self {
521        Self {
522            builder: self.builder.property("width", width),
523        }
524    }
525
526    pub fn xalign(self, xalign: f32) -> Self {
527        Self {
528            builder: self.builder.property("xalign", xalign),
529        }
530    }
531
532    pub fn xpad(self, xpad: u32) -> Self {
533        Self {
534            builder: self.builder.property("xpad", xpad),
535        }
536    }
537
538    pub fn yalign(self, yalign: f32) -> Self {
539        Self {
540            builder: self.builder.property("yalign", yalign),
541        }
542    }
543
544    pub fn ypad(self, ypad: u32) -> Self {
545        Self {
546            builder: self.builder.property("ypad", ypad),
547        }
548    }
549
550    // rustdoc-stripper-ignore-next
551    /// Build the [`CellRendererSpin`].
552    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
553    pub fn build(self) -> CellRendererSpin {
554        assert_initialized_main_thread!();
555        self.builder.build()
556    }
557}