1use crate::{ModifierType, ffi};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GdkKeyEvent")]
11 pub struct KeyEvent(Shared<ffi::GdkKeyEvent>);
12
13 match fn {
14 ref => |ptr| ffi::gdk_event_ref(ptr as *mut ffi::GdkEvent),
15 unref => |ptr| ffi::gdk_event_unref(ptr as *mut ffi::GdkEvent),
16 }
17}
18
19impl StaticType for KeyEvent {
20 fn static_type() -> glib::Type {
21 unsafe { from_glib(ffi::gdk_key_event_get_type()) }
22 }
23}
24
25impl KeyEvent {
26 #[doc(alias = "gdk_key_event_get_consumed_modifiers")]
32 #[doc(alias = "get_consumed_modifiers")]
33 pub fn consumed_modifiers(&self) -> ModifierType {
34 unsafe {
35 from_glib(ffi::gdk_key_event_get_consumed_modifiers(
36 self.to_glib_none().0,
37 ))
38 }
39 }
40
41 #[doc(alias = "gdk_key_event_get_keycode")]
47 #[doc(alias = "get_keycode")]
48 pub fn keycode(&self) -> u32 {
49 unsafe { ffi::gdk_key_event_get_keycode(self.to_glib_none().0) }
50 }
51
52 #[doc(alias = "gdk_key_event_get_layout")]
58 #[doc(alias = "get_layout")]
59 pub fn layout(&self) -> u32 {
60 unsafe { ffi::gdk_key_event_get_layout(self.to_glib_none().0) }
61 }
62
63 #[doc(alias = "gdk_key_event_get_level")]
69 #[doc(alias = "get_level")]
70 pub fn level(&self) -> u32 {
71 unsafe { ffi::gdk_key_event_get_level(self.to_glib_none().0) }
72 }
73
74 #[doc(alias = "gdk_key_event_is_modifier")]
80 pub fn is_modifier(&self) -> bool {
81 unsafe { from_glib(ffi::gdk_key_event_is_modifier(self.to_glib_none().0)) }
82 }
83}