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 5 use gdk; 6 use glib::object::Cast; 7 use glib::object::IsA; 8 use glib::signal::connect_raw; 9 use glib::signal::SignalHandlerId; 10 use glib::translate::*; 11 use glib_sys; 12 use gtk_sys; 13 use std::boxed::Box as Box_; 14 use std::fmt; 15 use std::mem::transmute; 16 use PropagationPhase; 17 use Widget; 18 19 glib_wrapper! { 20 pub struct EventController(Object<gtk_sys::GtkEventController, gtk_sys::GtkEventControllerClass, EventControllerClass>); 21 22 match fn { 23 get_type => || gtk_sys::gtk_event_controller_get_type(), 24 } 25 } 26 27 pub const NONE_EVENT_CONTROLLER: Option<&EventController> = None; 28 29 pub trait EventControllerExt: 'static { get_propagation_phase(&self) -> PropagationPhase30 fn get_propagation_phase(&self) -> PropagationPhase; 31 get_widget(&self) -> Option<Widget>32 fn get_widget(&self) -> Option<Widget>; 33 handle_event(&self, event: &gdk::Event) -> bool34 fn handle_event(&self, event: &gdk::Event) -> bool; 35 reset(&self)36 fn reset(&self); 37 set_propagation_phase(&self, phase: PropagationPhase)38 fn set_propagation_phase(&self, phase: PropagationPhase); 39 connect_property_propagation_phase_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId40 fn connect_property_propagation_phase_notify<F: Fn(&Self) + 'static>( 41 &self, 42 f: F, 43 ) -> SignalHandlerId; 44 } 45 46 impl<O: IsA<EventController>> EventControllerExt for O { get_propagation_phase(&self) -> PropagationPhase47 fn get_propagation_phase(&self) -> PropagationPhase { 48 unsafe { 49 from_glib(gtk_sys::gtk_event_controller_get_propagation_phase( 50 self.as_ref().to_glib_none().0, 51 )) 52 } 53 } 54 get_widget(&self) -> Option<Widget>55 fn get_widget(&self) -> Option<Widget> { 56 unsafe { 57 from_glib_none(gtk_sys::gtk_event_controller_get_widget( 58 self.as_ref().to_glib_none().0, 59 )) 60 } 61 } 62 handle_event(&self, event: &gdk::Event) -> bool63 fn handle_event(&self, event: &gdk::Event) -> bool { 64 unsafe { 65 from_glib(gtk_sys::gtk_event_controller_handle_event( 66 self.as_ref().to_glib_none().0, 67 event.to_glib_none().0, 68 )) 69 } 70 } 71 reset(&self)72 fn reset(&self) { 73 unsafe { 74 gtk_sys::gtk_event_controller_reset(self.as_ref().to_glib_none().0); 75 } 76 } 77 set_propagation_phase(&self, phase: PropagationPhase)78 fn set_propagation_phase(&self, phase: PropagationPhase) { 79 unsafe { 80 gtk_sys::gtk_event_controller_set_propagation_phase( 81 self.as_ref().to_glib_none().0, 82 phase.to_glib(), 83 ); 84 } 85 } 86 connect_property_propagation_phase_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId87 fn connect_property_propagation_phase_notify<F: Fn(&Self) + 'static>( 88 &self, 89 f: F, 90 ) -> SignalHandlerId { 91 unsafe extern "C" fn notify_propagation_phase_trampoline<P, F: Fn(&P) + 'static>( 92 this: *mut gtk_sys::GtkEventController, 93 _param_spec: glib_sys::gpointer, 94 f: glib_sys::gpointer, 95 ) where 96 P: IsA<EventController>, 97 { 98 let f: &F = &*(f as *const F); 99 f(&EventController::from_glib_borrow(this).unsafe_cast()) 100 } 101 unsafe { 102 let f: Box_<F> = Box_::new(f); 103 connect_raw( 104 self.as_ptr() as *mut _, 105 b"notify::propagation-phase\0".as_ptr() as *const _, 106 Some(transmute( 107 notify_propagation_phase_trampoline::<Self, F> as usize, 108 )), 109 Box_::into_raw(f), 110 ) 111 } 112 } 113 } 114 115 impl fmt::Display for EventController { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result116 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 117 write!(f, "EventController") 118 } 119 } 120