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 56 57 58
// Take a look at the license at the top of the repository in the LICENSE file.
use crate::ShortcutTrigger;
use gdk::Key;
use glib::translate::*;
use std::fmt;
glib::wrapper! {
/// A [`ShortcutTrigger`][crate::ShortcutTrigger] that triggers when a specific mnemonic is pressed.
///
/// Mnemonics require a *mnemonic modifier* (typically <kbd>Alt</kbd>) to be
/// pressed together with the mnemonic key.
///
/// # Implements
///
/// [`ShortcutTriggerExt`][trait@crate::prelude::ShortcutTriggerExt], [`trait@glib::ObjectExt`], [`ShortcutTriggerExtManual`][trait@crate::prelude::ShortcutTriggerExtManual]
pub struct MnemonicTrigger(Object<ffi::GtkMnemonicTrigger, ffi::GtkMnemonicTriggerClass>) @extends ShortcutTrigger;
match fn {
type_ => || ffi::gtk_mnemonic_trigger_get_type(),
}
}
impl MnemonicTrigger {
/// Creates a [`ShortcutTrigger`][crate::ShortcutTrigger] that will trigger whenever the key with
/// the given @keyval is pressed and mnemonics have been activated.
///
/// Mnemonics are activated by calling code when a key event with the right
/// modifiers is detected.
/// ## `keyval`
/// The keyval to trigger for
///
/// # Returns
///
/// A new [`ShortcutTrigger`][crate::ShortcutTrigger]
#[doc(alias = "gtk_mnemonic_trigger_new")]
pub fn new(keyval: Key) -> Self {
assert_initialized_main_thread!();
unsafe { from_glib_full(ffi::gtk_mnemonic_trigger_new(keyval.into_glib())) }
}
/// Gets the keyval that must be pressed to succeed triggering @self.
///
/// # Returns
///
/// the keyval
#[doc(alias = "gtk_mnemonic_trigger_get_keyval")]
#[doc(alias = "get_keyval")]
pub fn keyval(&self) -> Key {
unsafe { from_glib(ffi::gtk_mnemonic_trigger_get_keyval(self.to_glib_none().0)) }
}
}
impl fmt::Display for MnemonicTrigger {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("MnemonicTrigger")
}
}