libadwaita/auto/
preferences_page.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files.git)
4// DO NOT EDIT
5
6#[cfg(feature = "v1_7")]
7#[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
8use crate::Banner;
9use crate::{ffi, PreferencesGroup};
10use glib::{
11    prelude::*,
12    signal::{connect_raw, SignalHandlerId},
13    translate::*,
14};
15use std::boxed::Box as Box_;
16
17glib::wrapper! {
18    #[doc(alias = "AdwPreferencesPage")]
19    pub struct PreferencesPage(Object<ffi::AdwPreferencesPage, ffi::AdwPreferencesPageClass>) @extends gtk::Widget, @implements gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget;
20
21    match fn {
22        type_ => || ffi::adw_preferences_page_get_type(),
23    }
24}
25
26impl PreferencesPage {
27    pub const NONE: Option<&'static PreferencesPage> = None;
28
29    #[doc(alias = "adw_preferences_page_new")]
30    pub fn new() -> PreferencesPage {
31        assert_initialized_main_thread!();
32        unsafe { gtk::Widget::from_glib_none(ffi::adw_preferences_page_new()).unsafe_cast() }
33    }
34
35    // rustdoc-stripper-ignore-next
36    /// Creates a new builder-pattern struct instance to construct [`PreferencesPage`] objects.
37    ///
38    /// This method returns an instance of [`PreferencesPageBuilder`](crate::builders::PreferencesPageBuilder) which can be used to create [`PreferencesPage`] objects.
39    pub fn builder() -> PreferencesPageBuilder {
40        PreferencesPageBuilder::new()
41    }
42}
43
44impl Default for PreferencesPage {
45    fn default() -> Self {
46        Self::new()
47    }
48}
49
50// rustdoc-stripper-ignore-next
51/// A [builder-pattern] type to construct [`PreferencesPage`] objects.
52///
53/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
54#[must_use = "The builder must be built to be used"]
55pub struct PreferencesPageBuilder {
56    builder: glib::object::ObjectBuilder<'static, PreferencesPage>,
57}
58
59impl PreferencesPageBuilder {
60    fn new() -> Self {
61        Self {
62            builder: glib::object::Object::builder(),
63        }
64    }
65
66    #[cfg(feature = "v1_7")]
67    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
68    pub fn banner(self, banner: &Banner) -> Self {
69        Self {
70            builder: self.builder.property("banner", banner.clone()),
71        }
72    }
73
74    #[cfg(feature = "v1_4")]
75    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
76    pub fn description(self, description: impl Into<glib::GString>) -> Self {
77        Self {
78            builder: self.builder.property("description", description.into()),
79        }
80    }
81
82    #[cfg(feature = "v1_6")]
83    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
84    pub fn description_centered(self, description_centered: bool) -> Self {
85        Self {
86            builder: self
87                .builder
88                .property("description-centered", description_centered),
89        }
90    }
91
92    pub fn icon_name(self, icon_name: impl Into<glib::GString>) -> Self {
93        Self {
94            builder: self.builder.property("icon-name", icon_name.into()),
95        }
96    }
97
98    pub fn name(self, name: impl Into<glib::GString>) -> Self {
99        Self {
100            builder: self.builder.property("name", name.into()),
101        }
102    }
103
104    pub fn title(self, title: impl Into<glib::GString>) -> Self {
105        Self {
106            builder: self.builder.property("title", title.into()),
107        }
108    }
109
110    pub fn use_underline(self, use_underline: bool) -> Self {
111        Self {
112            builder: self.builder.property("use-underline", use_underline),
113        }
114    }
115
116    pub fn can_focus(self, can_focus: bool) -> Self {
117        Self {
118            builder: self.builder.property("can-focus", can_focus),
119        }
120    }
121
122    pub fn can_target(self, can_target: bool) -> Self {
123        Self {
124            builder: self.builder.property("can-target", can_target),
125        }
126    }
127
128    pub fn css_classes(self, css_classes: impl Into<glib::StrV>) -> Self {
129        Self {
130            builder: self.builder.property("css-classes", css_classes.into()),
131        }
132    }
133
134    pub fn css_name(self, css_name: impl Into<glib::GString>) -> Self {
135        Self {
136            builder: self.builder.property("css-name", css_name.into()),
137        }
138    }
139
140    pub fn cursor(self, cursor: &gdk::Cursor) -> Self {
141        Self {
142            builder: self.builder.property("cursor", cursor.clone()),
143        }
144    }
145
146    pub fn focus_on_click(self, focus_on_click: bool) -> Self {
147        Self {
148            builder: self.builder.property("focus-on-click", focus_on_click),
149        }
150    }
151
152    pub fn focusable(self, focusable: bool) -> Self {
153        Self {
154            builder: self.builder.property("focusable", focusable),
155        }
156    }
157
158    pub fn halign(self, halign: gtk::Align) -> Self {
159        Self {
160            builder: self.builder.property("halign", halign),
161        }
162    }
163
164    pub fn has_tooltip(self, has_tooltip: bool) -> Self {
165        Self {
166            builder: self.builder.property("has-tooltip", has_tooltip),
167        }
168    }
169
170    pub fn height_request(self, height_request: i32) -> Self {
171        Self {
172            builder: self.builder.property("height-request", height_request),
173        }
174    }
175
176    pub fn hexpand(self, hexpand: bool) -> Self {
177        Self {
178            builder: self.builder.property("hexpand", hexpand),
179        }
180    }
181
182    pub fn hexpand_set(self, hexpand_set: bool) -> Self {
183        Self {
184            builder: self.builder.property("hexpand-set", hexpand_set),
185        }
186    }
187
188    pub fn layout_manager(self, layout_manager: &impl IsA<gtk::LayoutManager>) -> Self {
189        Self {
190            builder: self
191                .builder
192                .property("layout-manager", layout_manager.clone().upcast()),
193        }
194    }
195
196    #[cfg(feature = "gtk_v4_18")]
197    #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_18")))]
198    pub fn limit_events(self, limit_events: bool) -> Self {
199        Self {
200            builder: self.builder.property("limit-events", limit_events),
201        }
202    }
203
204    pub fn margin_bottom(self, margin_bottom: i32) -> Self {
205        Self {
206            builder: self.builder.property("margin-bottom", margin_bottom),
207        }
208    }
209
210    pub fn margin_end(self, margin_end: i32) -> Self {
211        Self {
212            builder: self.builder.property("margin-end", margin_end),
213        }
214    }
215
216    pub fn margin_start(self, margin_start: i32) -> Self {
217        Self {
218            builder: self.builder.property("margin-start", margin_start),
219        }
220    }
221
222    pub fn margin_top(self, margin_top: i32) -> Self {
223        Self {
224            builder: self.builder.property("margin-top", margin_top),
225        }
226    }
227
228    pub fn opacity(self, opacity: f64) -> Self {
229        Self {
230            builder: self.builder.property("opacity", opacity),
231        }
232    }
233
234    pub fn overflow(self, overflow: gtk::Overflow) -> Self {
235        Self {
236            builder: self.builder.property("overflow", overflow),
237        }
238    }
239
240    pub fn receives_default(self, receives_default: bool) -> Self {
241        Self {
242            builder: self.builder.property("receives-default", receives_default),
243        }
244    }
245
246    pub fn sensitive(self, sensitive: bool) -> Self {
247        Self {
248            builder: self.builder.property("sensitive", sensitive),
249        }
250    }
251
252    pub fn tooltip_markup(self, tooltip_markup: impl Into<glib::GString>) -> Self {
253        Self {
254            builder: self
255                .builder
256                .property("tooltip-markup", tooltip_markup.into()),
257        }
258    }
259
260    pub fn tooltip_text(self, tooltip_text: impl Into<glib::GString>) -> Self {
261        Self {
262            builder: self.builder.property("tooltip-text", tooltip_text.into()),
263        }
264    }
265
266    pub fn valign(self, valign: gtk::Align) -> Self {
267        Self {
268            builder: self.builder.property("valign", valign),
269        }
270    }
271
272    pub fn vexpand(self, vexpand: bool) -> Self {
273        Self {
274            builder: self.builder.property("vexpand", vexpand),
275        }
276    }
277
278    pub fn vexpand_set(self, vexpand_set: bool) -> Self {
279        Self {
280            builder: self.builder.property("vexpand-set", vexpand_set),
281        }
282    }
283
284    pub fn visible(self, visible: bool) -> Self {
285        Self {
286            builder: self.builder.property("visible", visible),
287        }
288    }
289
290    pub fn width_request(self, width_request: i32) -> Self {
291        Self {
292            builder: self.builder.property("width-request", width_request),
293        }
294    }
295
296    pub fn accessible_role(self, accessible_role: gtk::AccessibleRole) -> Self {
297        Self {
298            builder: self.builder.property("accessible-role", accessible_role),
299        }
300    }
301
302    // rustdoc-stripper-ignore-next
303    /// Build the [`PreferencesPage`].
304    #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
305    pub fn build(self) -> PreferencesPage {
306        assert_initialized_main_thread!();
307        self.builder.build()
308    }
309}
310
311pub trait PreferencesPageExt: IsA<PreferencesPage> + 'static {
312    #[doc(alias = "adw_preferences_page_add")]
313    fn add(&self, group: &impl IsA<PreferencesGroup>) {
314        unsafe {
315            ffi::adw_preferences_page_add(
316                self.as_ref().to_glib_none().0,
317                group.as_ref().to_glib_none().0,
318            );
319        }
320    }
321
322    #[cfg(feature = "v1_7")]
323    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
324    #[doc(alias = "adw_preferences_page_get_banner")]
325    #[doc(alias = "get_banner")]
326    fn banner(&self) -> Option<Banner> {
327        unsafe {
328            from_glib_none(ffi::adw_preferences_page_get_banner(
329                self.as_ref().to_glib_none().0,
330            ))
331        }
332    }
333
334    #[cfg(feature = "v1_4")]
335    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
336    #[doc(alias = "adw_preferences_page_get_description")]
337    #[doc(alias = "get_description")]
338    fn description(&self) -> glib::GString {
339        unsafe {
340            from_glib_none(ffi::adw_preferences_page_get_description(
341                self.as_ref().to_glib_none().0,
342            ))
343        }
344    }
345
346    #[cfg(feature = "v1_6")]
347    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
348    #[doc(alias = "adw_preferences_page_get_description_centered")]
349    #[doc(alias = "get_description_centered")]
350    #[doc(alias = "description-centered")]
351    fn is_description_centered(&self) -> bool {
352        unsafe {
353            from_glib(ffi::adw_preferences_page_get_description_centered(
354                self.as_ref().to_glib_none().0,
355            ))
356        }
357    }
358
359    #[cfg(feature = "v1_8")]
360    #[cfg_attr(docsrs, doc(cfg(feature = "v1_8")))]
361    #[doc(alias = "adw_preferences_page_get_group")]
362    #[doc(alias = "get_group")]
363    fn group(&self, index: u32) -> Option<PreferencesGroup> {
364        unsafe {
365            from_glib_none(ffi::adw_preferences_page_get_group(
366                self.as_ref().to_glib_none().0,
367                index,
368            ))
369        }
370    }
371
372    #[doc(alias = "adw_preferences_page_get_icon_name")]
373    #[doc(alias = "get_icon_name")]
374    #[doc(alias = "icon-name")]
375    fn icon_name(&self) -> Option<glib::GString> {
376        unsafe {
377            from_glib_none(ffi::adw_preferences_page_get_icon_name(
378                self.as_ref().to_glib_none().0,
379            ))
380        }
381    }
382
383    #[doc(alias = "adw_preferences_page_get_name")]
384    #[doc(alias = "get_name")]
385    fn name(&self) -> Option<glib::GString> {
386        unsafe {
387            from_glib_none(ffi::adw_preferences_page_get_name(
388                self.as_ref().to_glib_none().0,
389            ))
390        }
391    }
392
393    #[doc(alias = "adw_preferences_page_get_title")]
394    #[doc(alias = "get_title")]
395    fn title(&self) -> glib::GString {
396        unsafe {
397            from_glib_none(ffi::adw_preferences_page_get_title(
398                self.as_ref().to_glib_none().0,
399            ))
400        }
401    }
402
403    #[doc(alias = "adw_preferences_page_get_use_underline")]
404    #[doc(alias = "get_use_underline")]
405    #[doc(alias = "use-underline")]
406    fn uses_underline(&self) -> bool {
407        unsafe {
408            from_glib(ffi::adw_preferences_page_get_use_underline(
409                self.as_ref().to_glib_none().0,
410            ))
411        }
412    }
413
414    #[cfg(feature = "v1_8")]
415    #[cfg_attr(docsrs, doc(cfg(feature = "v1_8")))]
416    #[doc(alias = "adw_preferences_page_insert")]
417    fn insert(&self, group: &impl IsA<PreferencesGroup>, index: i32) {
418        unsafe {
419            ffi::adw_preferences_page_insert(
420                self.as_ref().to_glib_none().0,
421                group.as_ref().to_glib_none().0,
422                index,
423            );
424        }
425    }
426
427    #[doc(alias = "adw_preferences_page_remove")]
428    fn remove(&self, group: &impl IsA<PreferencesGroup>) {
429        unsafe {
430            ffi::adw_preferences_page_remove(
431                self.as_ref().to_glib_none().0,
432                group.as_ref().to_glib_none().0,
433            );
434        }
435    }
436
437    #[cfg(feature = "v1_3")]
438    #[cfg_attr(docsrs, doc(cfg(feature = "v1_3")))]
439    #[doc(alias = "adw_preferences_page_scroll_to_top")]
440    fn scroll_to_top(&self) {
441        unsafe {
442            ffi::adw_preferences_page_scroll_to_top(self.as_ref().to_glib_none().0);
443        }
444    }
445
446    #[cfg(feature = "v1_7")]
447    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
448    #[doc(alias = "adw_preferences_page_set_banner")]
449    #[doc(alias = "banner")]
450    fn set_banner(&self, banner: Option<&Banner>) {
451        unsafe {
452            ffi::adw_preferences_page_set_banner(
453                self.as_ref().to_glib_none().0,
454                banner.to_glib_none().0,
455            );
456        }
457    }
458
459    #[cfg(feature = "v1_4")]
460    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
461    #[doc(alias = "adw_preferences_page_set_description")]
462    #[doc(alias = "description")]
463    fn set_description(&self, description: &str) {
464        unsafe {
465            ffi::adw_preferences_page_set_description(
466                self.as_ref().to_glib_none().0,
467                description.to_glib_none().0,
468            );
469        }
470    }
471
472    #[cfg(feature = "v1_6")]
473    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
474    #[doc(alias = "adw_preferences_page_set_description_centered")]
475    #[doc(alias = "description-centered")]
476    fn set_description_centered(&self, centered: bool) {
477        unsafe {
478            ffi::adw_preferences_page_set_description_centered(
479                self.as_ref().to_glib_none().0,
480                centered.into_glib(),
481            );
482        }
483    }
484
485    #[doc(alias = "adw_preferences_page_set_icon_name")]
486    #[doc(alias = "icon-name")]
487    fn set_icon_name(&self, icon_name: Option<&str>) {
488        unsafe {
489            ffi::adw_preferences_page_set_icon_name(
490                self.as_ref().to_glib_none().0,
491                icon_name.to_glib_none().0,
492            );
493        }
494    }
495
496    #[doc(alias = "adw_preferences_page_set_name")]
497    #[doc(alias = "name")]
498    fn set_name(&self, name: Option<&str>) {
499        unsafe {
500            ffi::adw_preferences_page_set_name(
501                self.as_ref().to_glib_none().0,
502                name.to_glib_none().0,
503            );
504        }
505    }
506
507    #[doc(alias = "adw_preferences_page_set_title")]
508    #[doc(alias = "title")]
509    fn set_title(&self, title: &str) {
510        unsafe {
511            ffi::adw_preferences_page_set_title(
512                self.as_ref().to_glib_none().0,
513                title.to_glib_none().0,
514            );
515        }
516    }
517
518    #[doc(alias = "adw_preferences_page_set_use_underline")]
519    #[doc(alias = "use-underline")]
520    fn set_use_underline(&self, use_underline: bool) {
521        unsafe {
522            ffi::adw_preferences_page_set_use_underline(
523                self.as_ref().to_glib_none().0,
524                use_underline.into_glib(),
525            );
526        }
527    }
528
529    #[cfg(feature = "v1_7")]
530    #[cfg_attr(docsrs, doc(cfg(feature = "v1_7")))]
531    #[doc(alias = "banner")]
532    fn connect_banner_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
533        unsafe extern "C" fn notify_banner_trampoline<
534            P: IsA<PreferencesPage>,
535            F: Fn(&P) + 'static,
536        >(
537            this: *mut ffi::AdwPreferencesPage,
538            _param_spec: glib::ffi::gpointer,
539            f: glib::ffi::gpointer,
540        ) {
541            let f: &F = &*(f as *const F);
542            f(PreferencesPage::from_glib_borrow(this).unsafe_cast_ref())
543        }
544        unsafe {
545            let f: Box_<F> = Box_::new(f);
546            connect_raw(
547                self.as_ptr() as *mut _,
548                c"notify::banner".as_ptr() as *const _,
549                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
550                    notify_banner_trampoline::<Self, F> as *const (),
551                )),
552                Box_::into_raw(f),
553            )
554        }
555    }
556
557    #[cfg(feature = "v1_4")]
558    #[cfg_attr(docsrs, doc(cfg(feature = "v1_4")))]
559    #[doc(alias = "description")]
560    fn connect_description_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
561        unsafe extern "C" fn notify_description_trampoline<
562            P: IsA<PreferencesPage>,
563            F: Fn(&P) + 'static,
564        >(
565            this: *mut ffi::AdwPreferencesPage,
566            _param_spec: glib::ffi::gpointer,
567            f: glib::ffi::gpointer,
568        ) {
569            let f: &F = &*(f as *const F);
570            f(PreferencesPage::from_glib_borrow(this).unsafe_cast_ref())
571        }
572        unsafe {
573            let f: Box_<F> = Box_::new(f);
574            connect_raw(
575                self.as_ptr() as *mut _,
576                c"notify::description".as_ptr() as *const _,
577                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
578                    notify_description_trampoline::<Self, F> as *const (),
579                )),
580                Box_::into_raw(f),
581            )
582        }
583    }
584
585    #[cfg(feature = "v1_6")]
586    #[cfg_attr(docsrs, doc(cfg(feature = "v1_6")))]
587    #[doc(alias = "description-centered")]
588    fn connect_description_centered_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
589        unsafe extern "C" fn notify_description_centered_trampoline<
590            P: IsA<PreferencesPage>,
591            F: Fn(&P) + 'static,
592        >(
593            this: *mut ffi::AdwPreferencesPage,
594            _param_spec: glib::ffi::gpointer,
595            f: glib::ffi::gpointer,
596        ) {
597            let f: &F = &*(f as *const F);
598            f(PreferencesPage::from_glib_borrow(this).unsafe_cast_ref())
599        }
600        unsafe {
601            let f: Box_<F> = Box_::new(f);
602            connect_raw(
603                self.as_ptr() as *mut _,
604                c"notify::description-centered".as_ptr() as *const _,
605                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
606                    notify_description_centered_trampoline::<Self, F> as *const (),
607                )),
608                Box_::into_raw(f),
609            )
610        }
611    }
612
613    #[doc(alias = "icon-name")]
614    fn connect_icon_name_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
615        unsafe extern "C" fn notify_icon_name_trampoline<
616            P: IsA<PreferencesPage>,
617            F: Fn(&P) + 'static,
618        >(
619            this: *mut ffi::AdwPreferencesPage,
620            _param_spec: glib::ffi::gpointer,
621            f: glib::ffi::gpointer,
622        ) {
623            let f: &F = &*(f as *const F);
624            f(PreferencesPage::from_glib_borrow(this).unsafe_cast_ref())
625        }
626        unsafe {
627            let f: Box_<F> = Box_::new(f);
628            connect_raw(
629                self.as_ptr() as *mut _,
630                c"notify::icon-name".as_ptr() as *const _,
631                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
632                    notify_icon_name_trampoline::<Self, F> as *const (),
633                )),
634                Box_::into_raw(f),
635            )
636        }
637    }
638
639    #[doc(alias = "title")]
640    fn connect_title_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
641        unsafe extern "C" fn notify_title_trampoline<
642            P: IsA<PreferencesPage>,
643            F: Fn(&P) + 'static,
644        >(
645            this: *mut ffi::AdwPreferencesPage,
646            _param_spec: glib::ffi::gpointer,
647            f: glib::ffi::gpointer,
648        ) {
649            let f: &F = &*(f as *const F);
650            f(PreferencesPage::from_glib_borrow(this).unsafe_cast_ref())
651        }
652        unsafe {
653            let f: Box_<F> = Box_::new(f);
654            connect_raw(
655                self.as_ptr() as *mut _,
656                c"notify::title".as_ptr() as *const _,
657                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
658                    notify_title_trampoline::<Self, F> as *const (),
659                )),
660                Box_::into_raw(f),
661            )
662        }
663    }
664
665    #[doc(alias = "use-underline")]
666    fn connect_use_underline_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
667        unsafe extern "C" fn notify_use_underline_trampoline<
668            P: IsA<PreferencesPage>,
669            F: Fn(&P) + 'static,
670        >(
671            this: *mut ffi::AdwPreferencesPage,
672            _param_spec: glib::ffi::gpointer,
673            f: glib::ffi::gpointer,
674        ) {
675            let f: &F = &*(f as *const F);
676            f(PreferencesPage::from_glib_borrow(this).unsafe_cast_ref())
677        }
678        unsafe {
679            let f: Box_<F> = Box_::new(f);
680            connect_raw(
681                self.as_ptr() as *mut _,
682                c"notify::use-underline".as_ptr() as *const _,
683                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
684                    notify_use_underline_trampoline::<Self, F> as *const (),
685                )),
686                Box_::into_raw(f),
687            )
688        }
689    }
690}
691
692impl<O: IsA<PreferencesPage>> PreferencesPageExt for O {}