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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files.git)
// DO NOT EDIT
use glib::object::IsA;
use glib::translate::*;
use std::fmt;
glib::wrapper! {
/// [`ShortcutTrigger`][crate::ShortcutTrigger] tracks how a [`Shortcut`][crate::Shortcut] should be activated.
///
/// To find out if a [`ShortcutTrigger`][crate::ShortcutTrigger] triggers, you can call
/// [``ShortcutTriggerExtManual::trigger()``][crate::prelude::`ShortcutTriggerExtManual::trigger()`] on a [`gdk::Event`][crate::gdk::Event].
///
/// `GtkShortcutTriggers` contain functions that allow easy presentation
/// to end users as well as being printed for debugging.
///
/// All `GtkShortcutTriggers` are immutable, you can only specify their
/// properties during construction. If you want to change a trigger, you
/// have to replace it with a new one.
///
/// This is an Abstract Base Class, you cannot instantiate it.
///
/// # Implements
///
/// [`ShortcutTriggerExt`][trait@crate::prelude::ShortcutTriggerExt], [`trait@glib::ObjectExt`], [`ShortcutTriggerExtManual`][trait@crate::prelude::ShortcutTriggerExtManual]
#[doc(alias = "GtkShortcutTrigger")]
pub struct ShortcutTrigger(Object<ffi::GtkShortcutTrigger, ffi::GtkShortcutTriggerClass>);
match fn {
type_ => || ffi::gtk_shortcut_trigger_get_type(),
}
}
impl ShortcutTrigger {
/// Tries to parse the given string into a trigger.
///
/// On success, the parsed trigger is returned.
/// When parsing failed, [`None`] is returned.
///
/// The accepted strings are:
///
/// - `never`, for [`NeverTrigger`][crate::NeverTrigger]
/// - a string parsed by [`accelerator_parse()`][crate::accelerator_parse()], for a [`KeyvalTrigger`][crate::KeyvalTrigger], e.g. ``<Control>`C`
/// - underscore, followed by a single character, for [`MnemonicTrigger`][crate::MnemonicTrigger], e.g. `_l`
/// - two valid trigger strings, separated by a `|` character, for a
/// [`AlternativeTrigger`][crate::AlternativeTrigger]: ``<Control>`q|`<Control>`w`
///
/// Note that you will have to escape the `<` and `>` characters when specifying
/// triggers in XML files, such as GtkBuilder ui files. Use `<` instead of
/// `<` and `>` instead of `>`.
/// ## `string`
/// the string to parse
///
/// # Returns
///
/// a new [`ShortcutTrigger`][crate::ShortcutTrigger]
#[doc(alias = "gtk_shortcut_trigger_parse_string")]
pub fn parse_string(string: &str) -> Option<ShortcutTrigger> {
assert_initialized_main_thread!();
unsafe {
from_glib_full(ffi::gtk_shortcut_trigger_parse_string(
string.to_glib_none().0,
))
}
}
}
impl fmt::Display for ShortcutTrigger {
#[inline]
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str(&ShortcutTriggerExt::to_str(self))
}
}
pub const NONE_SHORTCUT_TRIGGER: Option<&ShortcutTrigger> = None;
/// Trait containing all [`struct@ShortcutTrigger`] methods.
///
/// # Implementors
///
/// [`AlternativeTrigger`][struct@crate::AlternativeTrigger], [`KeyvalTrigger`][struct@crate::KeyvalTrigger], [`MnemonicTrigger`][struct@crate::MnemonicTrigger], [`NeverTrigger`][struct@crate::NeverTrigger], [`ShortcutTrigger`][struct@crate::ShortcutTrigger]
pub trait ShortcutTriggerExt: 'static {
/// Gets textual representation for the given trigger.
///
/// This function is returning a translated string for
/// presentation to end users for example in menu items
/// or in help texts.
///
/// The `display` in use may influence the resulting string in
/// various forms, such as resolving hardware keycodes or by
/// causing display-specific modifier names.
///
/// The form of the representation may change at any time and is
/// not guaranteed to stay identical.
/// ## `display`
/// [`gdk::Display`][crate::gdk::Display] to print for
///
/// # Returns
///
/// a new string
#[doc(alias = "gtk_shortcut_trigger_to_label")]
fn to_label<P: IsA<gdk::Display>>(&self, display: &P) -> glib::GString;
#[doc(alias = "gtk_shortcut_trigger_to_string")]
#[doc(alias = "to_string")]
fn to_str(&self) -> glib::GString;
}
impl<O: IsA<ShortcutTrigger>> ShortcutTriggerExt for O {
fn to_label<P: IsA<gdk::Display>>(&self, display: &P) -> glib::GString {
unsafe {
from_glib_full(ffi::gtk_shortcut_trigger_to_label(
self.as_ref().to_glib_none().0,
display.as_ref().to_glib_none().0,
))
}
}
fn to_str(&self) -> glib::GString {
unsafe {
from_glib_full(ffi::gtk_shortcut_trigger_to_string(
self.as_ref().to_glib_none().0,
))
}
}
}