1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use glib::prelude::*;
use std::fmt;

glib::wrapper! {
    /// The [`ShortcutManager`][crate::ShortcutManager] interface is used to implement
    /// shortcut scopes.
    ///
    /// This is important for [`Native`][crate::Native] widgets that have their
    /// own surface, since the event controllers that are used to implement
    /// managed and global scopes are limited to the same native.
    ///
    /// Examples for widgets implementing [`ShortcutManager`][crate::ShortcutManager] are
    /// [`Window`][crate::Window] and [`Popover`][crate::Popover].
    ///
    /// Every widget that implements [`ShortcutManager`][crate::ShortcutManager] will be used as a
    /// [`ShortcutScope::Managed`][crate::ShortcutScope::Managed].
    ///
    /// # Implements
    ///
    /// [`ShortcutManagerExt`][trait@crate::prelude::ShortcutManagerExt]
    #[doc(alias = "GtkShortcutManager")]
    pub struct ShortcutManager(Interface<ffi::GtkShortcutManager, ffi::GtkShortcutManagerInterface>);

    match fn {
        type_ => || ffi::gtk_shortcut_manager_get_type(),
    }
}

impl ShortcutManager {
    pub const NONE: Option<&'static ShortcutManager> = None;
}

mod sealed {
    pub trait Sealed {}
    impl<T: super::IsA<super::ShortcutManager>> Sealed for T {}
}

/// Trait containing all [`struct@ShortcutManager`] methods.
///
/// # Implementors
///
/// [`AboutDialog`][struct@crate::AboutDialog], [`AppChooserDialog`][struct@crate::AppChooserDialog], [`ApplicationWindow`][struct@crate::ApplicationWindow], [`Assistant`][struct@crate::Assistant], [`ColorChooserDialog`][struct@crate::ColorChooserDialog], [`Dialog`][struct@crate::Dialog], [`EmojiChooser`][struct@crate::EmojiChooser], [`FileChooserDialog`][struct@crate::FileChooserDialog], [`FontChooserDialog`][struct@crate::FontChooserDialog], [`MessageDialog`][struct@crate::MessageDialog], [`PageSetupUnixDialog`][struct@crate::PageSetupUnixDialog], [`PopoverMenu`][struct@crate::PopoverMenu], [`Popover`][struct@crate::Popover], [`PrintUnixDialog`][struct@crate::PrintUnixDialog], [`ShortcutManager`][struct@crate::ShortcutManager], [`ShortcutsWindow`][struct@crate::ShortcutsWindow], [`Window`][struct@crate::Window]
pub trait ShortcutManagerExt: IsA<ShortcutManager> + sealed::Sealed + 'static {}

impl<O: IsA<ShortcutManager>> ShortcutManagerExt for O {}

impl fmt::Display for ShortcutManager {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        f.write_str("ShortcutManager")
    }
}