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