gtk4/auto/
print_operation_preview.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, PageSetup, PrintContext};
6use glib::{
7    object::ObjectType as _,
8    prelude::*,
9    signal::{connect_raw, SignalHandlerId},
10    translate::*,
11};
12use std::boxed::Box as Box_;
13
14glib::wrapper! {
15    #[doc(alias = "GtkPrintOperationPreview")]
16    pub struct PrintOperationPreview(Interface<ffi::GtkPrintOperationPreview, ffi::GtkPrintOperationPreviewIface>);
17
18    match fn {
19        type_ => || ffi::gtk_print_operation_preview_get_type(),
20    }
21}
22
23impl PrintOperationPreview {
24    pub const NONE: Option<&'static PrintOperationPreview> = None;
25}
26
27pub trait PrintOperationPreviewExt: IsA<PrintOperationPreview> + 'static {
28    #[doc(alias = "gtk_print_operation_preview_end_preview")]
29    fn end_preview(&self) {
30        unsafe {
31            ffi::gtk_print_operation_preview_end_preview(self.as_ref().to_glib_none().0);
32        }
33    }
34
35    #[doc(alias = "gtk_print_operation_preview_is_selected")]
36    fn is_selected(&self, page_nr: i32) -> bool {
37        unsafe {
38            from_glib(ffi::gtk_print_operation_preview_is_selected(
39                self.as_ref().to_glib_none().0,
40                page_nr,
41            ))
42        }
43    }
44
45    #[doc(alias = "gtk_print_operation_preview_render_page")]
46    fn render_page(&self, page_nr: i32) {
47        unsafe {
48            ffi::gtk_print_operation_preview_render_page(self.as_ref().to_glib_none().0, page_nr);
49        }
50    }
51
52    #[doc(alias = "got-page-size")]
53    fn connect_got_page_size<F: Fn(&Self, &PrintContext, &PageSetup) + 'static>(
54        &self,
55        f: F,
56    ) -> SignalHandlerId {
57        unsafe extern "C" fn got_page_size_trampoline<
58            P: IsA<PrintOperationPreview>,
59            F: Fn(&P, &PrintContext, &PageSetup) + 'static,
60        >(
61            this: *mut ffi::GtkPrintOperationPreview,
62            context: *mut ffi::GtkPrintContext,
63            page_setup: *mut ffi::GtkPageSetup,
64            f: glib::ffi::gpointer,
65        ) {
66            let f: &F = &*(f as *const F);
67            f(
68                PrintOperationPreview::from_glib_borrow(this).unsafe_cast_ref(),
69                &from_glib_borrow(context),
70                &from_glib_borrow(page_setup),
71            )
72        }
73        unsafe {
74            let f: Box_<F> = Box_::new(f);
75            connect_raw(
76                self.as_ptr() as *mut _,
77                c"got-page-size".as_ptr() as *const _,
78                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
79                    got_page_size_trampoline::<Self, F> as *const (),
80                )),
81                Box_::into_raw(f),
82            )
83        }
84    }
85
86    #[doc(alias = "ready")]
87    fn connect_ready<F: Fn(&Self, &PrintContext) + 'static>(&self, f: F) -> SignalHandlerId {
88        unsafe extern "C" fn ready_trampoline<
89            P: IsA<PrintOperationPreview>,
90            F: Fn(&P, &PrintContext) + 'static,
91        >(
92            this: *mut ffi::GtkPrintOperationPreview,
93            context: *mut ffi::GtkPrintContext,
94            f: glib::ffi::gpointer,
95        ) {
96            let f: &F = &*(f as *const F);
97            f(
98                PrintOperationPreview::from_glib_borrow(this).unsafe_cast_ref(),
99                &from_glib_borrow(context),
100            )
101        }
102        unsafe {
103            let f: Box_<F> = Box_::new(f);
104            connect_raw(
105                self.as_ptr() as *mut _,
106                c"ready".as_ptr() as *const _,
107                Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(
108                    ready_trampoline::<Self, F> as *const (),
109                )),
110                Box_::into_raw(f),
111            )
112        }
113    }
114}
115
116impl<O: IsA<PrintOperationPreview>> PrintOperationPreviewExt for O {}