gtk4/page_range.rs
1// Take a look at the license at the top of the repository in the LICENSE file.
2
3use std::fmt;
4
5use crate::ffi;
6use glib::translate::*;
7
8glib::wrapper! {
9 /// A range of pages to print.
10 ///
11 /// See also [`PrintSettings::set_page_ranges()`][crate::PrintSettings::set_page_ranges()].
12 #[doc(alias = "GtkPageRange")]
13 pub struct PageRange(BoxedInline<ffi::GtkPageRange>);
14}
15
16impl PageRange {
17 #[inline]
18 pub fn new(start: i32, end: i32) -> Self {
19 skip_assert_initialized!();
20 unsafe { Self::unsafe_from(ffi::GtkPageRange { start, end }) }
21 }
22
23 #[inline]
24 pub fn start(&self) -> i32 {
25 self.inner.start
26 }
27
28 #[inline]
29 pub fn end(&self) -> i32 {
30 self.inner.end
31 }
32}
33
34impl fmt::Debug for PageRange {
35 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
36 f.debug_struct("PageRange")
37 .field("start", &self.start())
38 .field("end", &self.end())
39 .finish()
40 }
41}