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