gdk4/auto/
touchpad_event.rs
1use crate::{ffi, TouchpadGesturePhase};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GdkTouchpadEvent")]
16 pub struct TouchpadEvent(Shared<ffi::GdkTouchpadEvent>);
17
18 match fn {
19 ref => |ptr| ffi::gdk_event_ref(ptr as *mut ffi::GdkEvent),
20 unref => |ptr| ffi::gdk_event_unref(ptr as *mut ffi::GdkEvent),
21 }
22}
23
24impl StaticType for TouchpadEvent {
25 fn static_type() -> glib::Type {
26 unsafe { from_glib(ffi::gdk_touchpad_event_get_type()) }
27 }
28}
29
30impl TouchpadEvent {
31 #[doc(alias = "gdk_touchpad_event_get_deltas")]
42 #[doc(alias = "get_deltas")]
43 pub fn deltas(&self) -> (f64, f64) {
44 unsafe {
45 let mut dx = std::mem::MaybeUninit::uninit();
46 let mut dy = std::mem::MaybeUninit::uninit();
47 ffi::gdk_touchpad_event_get_deltas(
48 self.to_glib_none().0,
49 dx.as_mut_ptr(),
50 dy.as_mut_ptr(),
51 );
52 (dx.assume_init(), dy.assume_init())
53 }
54 }
55
56 #[doc(alias = "gdk_touchpad_event_get_gesture_phase")]
62 #[doc(alias = "get_gesture_phase")]
63 pub fn gesture_phase(&self) -> TouchpadGesturePhase {
64 unsafe {
65 from_glib(ffi::gdk_touchpad_event_get_gesture_phase(
66 self.to_glib_none().0,
67 ))
68 }
69 }
70
71 #[doc(alias = "gdk_touchpad_event_get_n_fingers")]
77 #[doc(alias = "get_n_fingers")]
78 pub fn n_fingers(&self) -> u32 {
79 unsafe { ffi::gdk_touchpad_event_get_n_fingers(self.to_glib_none().0) }
80 }
81
82 #[doc(alias = "gdk_touchpad_event_get_pinch_angle_delta")]
88 #[doc(alias = "get_pinch_angle_delta")]
89 pub fn pinch_angle_delta(&self) -> f64 {
90 unsafe { ffi::gdk_touchpad_event_get_pinch_angle_delta(self.to_glib_none().0) }
91 }
92
93 #[doc(alias = "gdk_touchpad_event_get_pinch_scale")]
99 #[doc(alias = "get_pinch_scale")]
100 pub fn pinch_scale(&self) -> f64 {
101 unsafe { ffi::gdk_touchpad_event_get_pinch_scale(self.to_glib_none().0) }
102 }
103}