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
21pub trait LayoutManagerExt: IsA<LayoutManager> + 'static {
22    #[doc(alias = "gtk_layout_manager_allocate")]
23    fn allocate(&self, widget: &impl IsA<Widget>, width: i32, height: i32, baseline: i32) {
24        unsafe {
25            ffi::gtk_layout_manager_allocate(
26                self.as_ref().to_glib_none().0,
27                widget.as_ref().to_glib_none().0,
28                width,
29                height,
30                baseline,
31            );
32        }
33    }
34
35    #[doc(alias = "gtk_layout_manager_get_layout_child")]
36    #[doc(alias = "get_layout_child")]
37    fn layout_child(&self, child: &impl IsA<Widget>) -> LayoutChild {
38        unsafe {
39            from_glib_none(ffi::gtk_layout_manager_get_layout_child(
40                self.as_ref().to_glib_none().0,
41                child.as_ref().to_glib_none().0,
42            ))
43        }
44    }
45
46    #[doc(alias = "gtk_layout_manager_get_request_mode")]
47    #[doc(alias = "get_request_mode")]
48    fn request_mode(&self) -> SizeRequestMode {
49        unsafe {
50            from_glib(ffi::gtk_layout_manager_get_request_mode(
51                self.as_ref().to_glib_none().0,
52            ))
53        }
54    }
55
56    #[doc(alias = "gtk_layout_manager_get_widget")]
57    #[doc(alias = "get_widget")]
58    fn widget(&self) -> Option<Widget> {
59        unsafe {
60            from_glib_none(ffi::gtk_layout_manager_get_widget(
61                self.as_ref().to_glib_none().0,
62            ))
63        }
64    }
65
66    #[doc(alias = "gtk_layout_manager_layout_changed")]
67    fn layout_changed(&self) {
68        unsafe {
69            ffi::gtk_layout_manager_layout_changed(self.as_ref().to_glib_none().0);
70        }
71    }
72
73    #[doc(alias = "gtk_layout_manager_measure")]
74    fn measure(
75        &self,
76        widget: &impl IsA<Widget>,
77        orientation: Orientation,
78        for_size: i32,
79    ) -> (i32, i32, i32, i32) {
80        unsafe {
81            let mut minimum = std::mem::MaybeUninit::uninit();
82            let mut natural = std::mem::MaybeUninit::uninit();
83            let mut minimum_baseline = std::mem::MaybeUninit::uninit();
84            let mut natural_baseline = std::mem::MaybeUninit::uninit();
85            ffi::gtk_layout_manager_measure(
86                self.as_ref().to_glib_none().0,
87                widget.as_ref().to_glib_none().0,
88                orientation.into_glib(),
89                for_size,
90                minimum.as_mut_ptr(),
91                natural.as_mut_ptr(),
92                minimum_baseline.as_mut_ptr(),
93                natural_baseline.as_mut_ptr(),
94            );
95            (
96                minimum.assume_init(),
97                natural.assume_init(),
98                minimum_baseline.assume_init(),
99                natural_baseline.assume_init(),
100            )
101        }
102    }
103}
104
105impl<O: IsA<LayoutManager>> LayoutManagerExt for O {}