gdk/auto/
rectangle.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 glib::translate::*;
6
7glib::wrapper! {
8    pub struct Rectangle(BoxedInline<ffi::GdkRectangle>);
9
10    match fn {
11        copy => |ptr| glib::gobject_ffi::g_boxed_copy(ffi::gdk_rectangle_get_type(), ptr as *mut _) as *mut ffi::GdkRectangle,
12        free => |ptr| glib::gobject_ffi::g_boxed_free(ffi::gdk_rectangle_get_type(), ptr as *mut _),
13        type_ => || ffi::gdk_rectangle_get_type(),
14    }
15}
16
17impl Rectangle {
18    #[doc(alias = "gdk_rectangle_equal")]
19    fn equal(&self, rect2: &Rectangle) -> bool {
20        unsafe {
21            from_glib(ffi::gdk_rectangle_equal(
22                self.to_glib_none().0,
23                rect2.to_glib_none().0,
24            ))
25        }
26    }
27
28    #[doc(alias = "gdk_rectangle_intersect")]
29    pub fn intersect(&self, src2: &Rectangle) -> Option<Rectangle> {
30        unsafe {
31            let mut dest = Rectangle::uninitialized();
32            let ret = from_glib(ffi::gdk_rectangle_intersect(
33                self.to_glib_none().0,
34                src2.to_glib_none().0,
35                dest.to_glib_none_mut().0,
36            ));
37            if ret {
38                Some(dest)
39            } else {
40                None
41            }
42        }
43    }
44
45    #[doc(alias = "gdk_rectangle_union")]
46    #[must_use]
47    pub fn union(&self, src2: &Rectangle) -> Rectangle {
48        unsafe {
49            let mut dest = Rectangle::uninitialized();
50            ffi::gdk_rectangle_union(
51                self.to_glib_none().0,
52                src2.to_glib_none().0,
53                dest.to_glib_none_mut().0,
54            );
55            dest
56        }
57    }
58}
59
60impl PartialEq for Rectangle {
61    #[inline]
62    fn eq(&self, other: &Self) -> bool {
63        self.equal(other)
64    }
65}
66
67impl Eq for Rectangle {}