libpanel/auto/
frame_header.rs1use 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 {}