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