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