1use crate::{Widget, ffi};
4use glib::object::IsA;
5use glib::translate::*;
6
7pub trait DragContextExtManual: IsA<gdk::DragContext> + 'static {
8 #[doc(alias = "gtk_drag_finish")]
9 fn drag_finish(&self, success: bool, del: bool, time_: u32) {
10 unsafe {
11 ffi::gtk_drag_finish(
12 self.as_ref().to_glib_none().0,
13 success as i32,
14 del as i32,
15 time_,
16 )
17 };
18 }
19
20 #[doc(alias = "gtk_drag_cancel")]
21 fn drag_cancel(&self) {
22 assert_initialized_main_thread!();
23 unsafe {
24 ffi::gtk_drag_cancel(self.as_ref().to_glib_none().0);
25 }
26 }
27
28 #[doc(alias = "gtk_drag_get_source_widget")]
29 fn drag_get_source_widget(&self) -> Option<Widget> {
30 assert_initialized_main_thread!();
31 unsafe {
32 from_glib_none(ffi::gtk_drag_get_source_widget(
33 self.as_ref().to_glib_none().0,
34 ))
35 }
36 }
37
38 #[doc(alias = "gtk_drag_set_icon_default")]
39 fn drag_set_icon_default(&self) {
40 assert_initialized_main_thread!();
41 unsafe {
42 ffi::gtk_drag_set_icon_default(self.as_ref().to_glib_none().0);
43 }
44 }
45
46 #[doc(alias = "gtk_drag_set_icon_gicon")]
47 fn drag_set_icon_gicon<P: IsA<gio::Icon>>(&self, icon: &P, hot_x: i32, hot_y: i32) {
48 assert_initialized_main_thread!();
49 unsafe {
50 ffi::gtk_drag_set_icon_gicon(
51 self.as_ref().to_glib_none().0,
52 icon.as_ref().to_glib_none().0,
53 hot_x,
54 hot_y,
55 );
56 }
57 }
58
59 #[doc(alias = "gtk_drag_set_icon_name")]
60 fn drag_set_icon_name(&self, icon_name: &str, hot_x: i32, hot_y: i32) {
61 assert_initialized_main_thread!();
62 unsafe {
63 ffi::gtk_drag_set_icon_name(
64 self.as_ref().to_glib_none().0,
65 icon_name.to_glib_none().0,
66 hot_x,
67 hot_y,
68 );
69 }
70 }
71
72 #[doc(alias = "gtk_drag_set_icon_pixbuf")]
73 fn drag_set_icon_pixbuf(&self, pixbuf: &gdk_pixbuf::Pixbuf, hot_x: i32, hot_y: i32) {
74 assert_initialized_main_thread!();
75 unsafe {
76 ffi::gtk_drag_set_icon_pixbuf(
77 self.as_ref().to_glib_none().0,
78 pixbuf.to_glib_none().0,
79 hot_x,
80 hot_y,
81 );
82 }
83 }
84
85 #[doc(alias = "gtk_drag_set_icon_stock")]
86 fn drag_set_icon_stock(&self, stock_id: &str, hot_x: i32, hot_y: i32) {
87 assert_initialized_main_thread!();
88 unsafe {
89 ffi::gtk_drag_set_icon_stock(
90 self.as_ref().to_glib_none().0,
91 stock_id.to_glib_none().0,
92 hot_x,
93 hot_y,
94 );
95 }
96 }
97
98 #[doc(alias = "gtk_drag_set_icon_surface")]
99 fn drag_set_icon_surface(&self, surface: &cairo::Surface) {
100 assert_initialized_main_thread!();
101 unsafe {
102 ffi::gtk_drag_set_icon_surface(
103 self.as_ref().to_glib_none().0,
104 mut_override(surface.to_glib_none().0),
105 );
106 }
107 }
108
109 #[doc(alias = "gtk_drag_set_icon_widget")]
110 fn drag_set_icon_widget<P: IsA<Widget>>(&self, widget: &P, hot_x: i32, hot_y: i32) {
111 assert_initialized_main_thread!();
112 unsafe {
113 ffi::gtk_drag_set_icon_widget(
114 self.as_ref().to_glib_none().0,
115 widget.as_ref().to_glib_none().0,
116 hot_x,
117 hot_y,
118 );
119 }
120 }
121}
122
123impl<O: IsA<gdk::DragContext>> DragContextExtManual for O {}