gtk4/auto/
shortcut_action.rs1use crate::{ffi, ShortcutActionFlags, Widget};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GtkShortcutAction")]
10 pub struct ShortcutAction(Object<ffi::GtkShortcutAction, ffi::GtkShortcutActionClass>);
11
12 match fn {
13 type_ => || ffi::gtk_shortcut_action_get_type(),
14 }
15}
16
17impl ShortcutAction {
18 pub const NONE: Option<&'static ShortcutAction> = None;
19
20 #[doc(alias = "gtk_shortcut_action_parse_string")]
21 pub fn parse_string(string: &str) -> Option<ShortcutAction> {
22 assert_initialized_main_thread!();
23 unsafe {
24 from_glib_full(ffi::gtk_shortcut_action_parse_string(
25 string.to_glib_none().0,
26 ))
27 }
28 }
29}
30
31impl std::fmt::Display for ShortcutAction {
32 #[inline]
33 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
34 f.write_str(&ShortcutActionExt::to_str(self))
35 }
36}
37
38mod sealed {
39 pub trait Sealed {}
40 impl<T: super::IsA<super::ShortcutAction>> Sealed for T {}
41}
42
43pub trait ShortcutActionExt: IsA<ShortcutAction> + sealed::Sealed + 'static {
44 #[doc(alias = "gtk_shortcut_action_activate")]
45 fn activate(
46 &self,
47 flags: ShortcutActionFlags,
48 widget: &impl IsA<Widget>,
49 args: Option<&glib::Variant>,
50 ) -> bool {
51 unsafe {
52 from_glib(ffi::gtk_shortcut_action_activate(
53 self.as_ref().to_glib_none().0,
54 flags.into_glib(),
55 widget.as_ref().to_glib_none().0,
56 args.to_glib_none().0,
57 ))
58 }
59 }
60
61 #[doc(alias = "gtk_shortcut_action_to_string")]
62 #[doc(alias = "to_string")]
63 fn to_str(&self) -> glib::GString {
64 unsafe {
65 from_glib_full(ffi::gtk_shortcut_action_to_string(
66 self.as_ref().to_glib_none().0,
67 ))
68 }
69 }
70}
71
72impl<O: IsA<ShortcutAction>> ShortcutActionExt for O {}