libpanel/auto/
frame_header.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
6use crate::{ffi, Frame, Widget};
7use glib::{
8    prelude::*,
9    signal::{connect_raw, SignalHandlerId},
10    translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15    #[doc(alias = "PanelFrameHeader")]
16    pub struct FrameHeader(Interface<ffi::PanelFrameHeader, ffi::PanelFrameHeaderInterface>) @requires gtk::Widget, gtk::Accessible, gtk::Buildable, gtk::ConstraintTarget;
17
18    match fn {
19        type_ => || ffi::panel_frame_header_get_type(),
20    }
21}
22
23impl FrameHeader {
24    pub const NONE: Option<&'static FrameHeader> = None;
25}
26
27pub trait FrameHeaderExt: IsA<FrameHeader> + 'static {
28    #[doc(alias = "panel_frame_header_add_prefix")]
29    fn add_prefix(&self, priority: i32, child: &impl IsA<gtk::Widget>) {
30        unsafe {
31            ffi::panel_frame_header_add_prefix(
32                self.as_ref().to_glib_none().0,
33                priority,
34                child.as_ref().to_glib_none().0,
35            );
36        }
37    }
38
39    #[doc(alias = "panel_frame_header_add_suffix")]
40    fn add_suffix(&self, priority: i32, child: &impl IsA<gtk::Widget>) {
41        unsafe {
42            ffi::panel_frame_header_add_suffix(
43                self.as_ref().to_glib_none().0,
44                priority,
45                child.as_ref().to_glib_none().0,
46            );
47        }
48    }
49
50    #[doc(alias = "panel_frame_header_can_drop")]
51    fn can_drop(&self, widget: &impl IsA<Widget>) -> bool {
52        unsafe {
53            from_glib(ffi::panel_frame_header_can_drop(
54                self.as_ref().to_glib_none().0,
55                widget.as_ref().to_glib_none().0,
56            ))
57        }
58    }
59
60    #[doc(alias = "panel_frame_header_get_frame")]
61    #[doc(alias = "get_frame")]
62    fn frame(&self) -> Option<Frame> {
63        unsafe {
64            from_glib_none(ffi::panel_frame_header_get_frame(
65                self.as_ref().to_glib_none().0,
66            ))
67        }
68    }
69
70    #[doc(alias = "panel_frame_header_page_changed")]
71    fn page_changed(&self, widget: Option<&impl IsA<Widget>>) {
72        unsafe {
73            ffi::panel_frame_header_page_changed(
74                self.as_ref().to_glib_none().0,
75                widget.map(|p| p.as_ref()).to_glib_none().0,
76            );
77        }
78    }
79
80    #[doc(alias = "panel_frame_header_set_frame")]
81    #[doc(alias = "frame")]
82    fn set_frame(&self, frame: Option<&impl IsA<Frame>>) {
83        unsafe {
84            ffi::panel_frame_header_set_frame(
85                self.as_ref().to_glib_none().0,
86                frame.map(|p| p.as_ref()).to_glib_none().0,
87            );
88        }
89    }
90
91    #[doc(alias = "frame")]
92    fn connect_frame_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId {
93        unsafe extern "C" fn notify_frame_trampoline<P: IsA<FrameHeader>, F: Fn(&P) + 'static>(
94            this: *mut ffi::PanelFrameHeader,
95            _param_spec: glib::ffi::gpointer,
96            f: glib::ffi::gpointer,
97        ) {
98            let f: &F = &*(f as *const F);
99            f(FrameHeader::from_glib_borrow(this).unsafe_cast_ref())
100        }
101        unsafe {
102            let f: Box_<F> = Box_::new(f);
103            connect_raw(
104                self.as_ptr() as *mut _,
105                c"notify::frame".as_ptr() as *const _,
106                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
107                    notify_frame_trampoline::<Self, F> as *const (),
108                )),
109                Box_::into_raw(f),
110            )
111        }
112    }
113}
114
115impl<O: IsA<FrameHeader>> FrameHeaderExt for O {}