gtk4/auto/
layout_manager.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::{ffi, LayoutChild, Orientation, SizeRequestMode, Widget};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9    #[doc(alias = "GtkLayoutManager")]
10    pub struct LayoutManager(Object<ffi::GtkLayoutManager, ffi::GtkLayoutManagerClass>);
11
12    match fn {
13        type_ => || ffi::gtk_layout_manager_get_type(),
14    }
15}
16
17impl LayoutManager {
18    pub const NONE: Option<&'static LayoutManager> = None;
19}
20
21mod sealed {
22    pub trait Sealed {}
23    impl<T: super::IsA<super::LayoutManager>> Sealed for T {}
24}
25
26pub trait LayoutManagerExt: IsA<LayoutManager> + sealed::Sealed + 'static {
27    #[doc(alias = "gtk_layout_manager_allocate")]
28    fn allocate(&self, widget: &impl IsA<Widget>, width: i32, height: i32, baseline: i32) {
29        unsafe {
30            ffi::gtk_layout_manager_allocate(
31                self.as_ref().to_glib_none().0,
32                widget.as_ref().to_glib_none().0,
33                width,
34                height,
35                baseline,
36            );
37        }
38    }
39
40    #[doc(alias = "gtk_layout_manager_get_layout_child")]
41    #[doc(alias = "get_layout_child")]
42    fn layout_child(&self, child: &impl IsA<Widget>) -> LayoutChild {
43        unsafe {
44            from_glib_none(ffi::gtk_layout_manager_get_layout_child(
45                self.as_ref().to_glib_none().0,
46                child.as_ref().to_glib_none().0,
47            ))
48        }
49    }
50
51    #[doc(alias = "gtk_layout_manager_get_request_mode")]
52    #[doc(alias = "get_request_mode")]
53    fn request_mode(&self) -> SizeRequestMode {
54        unsafe {
55            from_glib(ffi::gtk_layout_manager_get_request_mode(
56                self.as_ref().to_glib_none().0,
57            ))
58        }
59    }
60
61    #[doc(alias = "gtk_layout_manager_get_widget")]
62    #[doc(alias = "get_widget")]
63    fn widget(&self) -> Option<Widget> {
64        unsafe {
65            from_glib_none(ffi::gtk_layout_manager_get_widget(
66                self.as_ref().to_glib_none().0,
67            ))
68        }
69    }
70
71    #[doc(alias = "gtk_layout_manager_layout_changed")]
72    fn layout_changed(&self) {
73        unsafe {
74            ffi::gtk_layout_manager_layout_changed(self.as_ref().to_glib_none().0);
75        }
76    }
77
78    #[doc(alias = "gtk_layout_manager_measure")]
79    fn measure(
80        &self,
81        widget: &impl IsA<Widget>,
82        orientation: Orientation,
83        for_size: i32,
84    ) -> (i32, i32, i32, i32) {
85        unsafe {
86            let mut minimum = std::mem::MaybeUninit::uninit();
87            let mut natural = std::mem::MaybeUninit::uninit();
88            let mut minimum_baseline = std::mem::MaybeUninit::uninit();
89            let mut natural_baseline = std::mem::MaybeUninit::uninit();
90            ffi::gtk_layout_manager_measure(
91                self.as_ref().to_glib_none().0,
92                widget.as_ref().to_glib_none().0,
93                orientation.into_glib(),
94                for_size,
95                minimum.as_mut_ptr(),
96                natural.as_mut_ptr(),
97                minimum_baseline.as_mut_ptr(),
98                natural_baseline.as_mut_ptr(),
99            );
100            (
101                minimum.assume_init(),
102                natural.assume_init(),
103                minimum_baseline.assume_init(),
104                natural_baseline.assume_init(),
105            )
106        }
107    }
108}
109
110impl<O: IsA<LayoutManager>> LayoutManagerExt for O {}