1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Take a look at the license at the top of the repository in the LICENSE file.

use crate::prelude::*;
use glib::translate::*;

/// The [`DragSurfaceSize`][crate::DragSurfaceSize] struct contains information that is useful
/// to compute the size of a drag surface.
#[repr(transparent)]
#[doc(alias = "GdkDragSurfaceSize")]
pub struct DragSurfaceSize(std::ptr::NonNull<ffi::GdkDragSurfaceSize>);

impl StaticType for DragSurfaceSize {
    fn static_type() -> glib::Type {
        unsafe { from_glib(ffi::gdk_drag_surface_size_get_type()) }
    }
}

impl DragSurfaceSize {
    /// Sets the size the drag surface prefers to be resized to.
    /// ## `width`
    /// the width
    /// ## `height`
    /// the height
    #[doc(alias = "gdk_drag_surface_size_set_size")]
    pub fn set_size(&self, width: i32, height: i32) {
        unsafe { ffi::gdk_drag_surface_size_set_size(self.0.as_ptr(), width, height) }
    }
}