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