gtk4/auto/alternative_trigger.rs
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 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
// 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 crate::{ffi, ShortcutTrigger};
use glib::{prelude::*, translate::*};
glib::wrapper! {
/// A [`ShortcutTrigger`][crate::ShortcutTrigger] that combines two triggers.
///
/// The [`AlternativeTrigger`][crate::AlternativeTrigger] triggers when either of two trigger.
///
/// This can be cascaded to combine more than two triggers.
///
/// ## Properties
///
///
/// #### `first`
/// The first [`ShortcutTrigger`][crate::ShortcutTrigger] to check.
///
/// Readable | Writeable | Construct Only
///
///
/// #### `second`
/// The second [`ShortcutTrigger`][crate::ShortcutTrigger] to check.
///
/// Readable | Writeable | Construct Only
///
/// # Implements
///
/// [`ShortcutTriggerExt`][trait@crate::prelude::ShortcutTriggerExt], [`trait@glib::ObjectExt`], [`ShortcutTriggerExtManual`][trait@crate::prelude::ShortcutTriggerExtManual]
#[doc(alias = "GtkAlternativeTrigger")]
pub struct AlternativeTrigger(Object<ffi::GtkAlternativeTrigger, ffi::GtkAlternativeTriggerClass>) @extends ShortcutTrigger;
match fn {
type_ => || ffi::gtk_alternative_trigger_get_type(),
}
}
impl AlternativeTrigger {
/// Creates a [`ShortcutTrigger`][crate::ShortcutTrigger] that will trigger whenever
/// either of the two given triggers gets triggered.
///
/// Note that nesting is allowed, so if you want more than two
/// alternative, create a new alternative trigger for each option.
/// ## `first`
/// The first trigger that may trigger
/// ## `second`
/// The second trigger that may trigger
///
/// # Returns
///
/// a new [`ShortcutTrigger`][crate::ShortcutTrigger]
#[doc(alias = "gtk_alternative_trigger_new")]
pub fn new(
first: impl IsA<ShortcutTrigger>,
second: impl IsA<ShortcutTrigger>,
) -> AlternativeTrigger {
skip_assert_initialized!();
unsafe {
ShortcutTrigger::from_glib_full(ffi::gtk_alternative_trigger_new(
first.upcast().into_glib_ptr(),
second.upcast().into_glib_ptr(),
))
.unsafe_cast()
}
}
// rustdoc-stripper-ignore-next
/// Creates a new builder-pattern struct instance to construct [`AlternativeTrigger`] objects.
///
/// This method returns an instance of [`AlternativeTriggerBuilder`](crate::builders::AlternativeTriggerBuilder) which can be used to create [`AlternativeTrigger`] objects.
pub fn builder() -> AlternativeTriggerBuilder {
AlternativeTriggerBuilder::new()
}
/// Gets the first of the two alternative triggers that may
/// trigger @self.
///
/// [`second()`][Self::second()] will return
/// the other one.
///
/// # Returns
///
/// the first alternative trigger
#[doc(alias = "gtk_alternative_trigger_get_first")]
#[doc(alias = "get_first")]
pub fn first(&self) -> ShortcutTrigger {
unsafe {
from_glib_none(ffi::gtk_alternative_trigger_get_first(
self.to_glib_none().0,
))
}
}
/// Gets the second of the two alternative triggers that may
/// trigger @self.
///
/// [`first()`][Self::first()] will return
/// the other one.
///
/// # Returns
///
/// the second alternative trigger
#[doc(alias = "gtk_alternative_trigger_get_second")]
#[doc(alias = "get_second")]
pub fn second(&self) -> ShortcutTrigger {
unsafe {
from_glib_none(ffi::gtk_alternative_trigger_get_second(
self.to_glib_none().0,
))
}
}
}
impl Default for AlternativeTrigger {
fn default() -> Self {
glib::object::Object::new::<Self>()
}
}
// rustdoc-stripper-ignore-next
/// A [builder-pattern] type to construct [`AlternativeTrigger`] objects.
///
/// [builder-pattern]: https://doc.rust-lang.org/1.0.0/style/ownership/builders.html
#[must_use = "The builder must be built to be used"]
pub struct AlternativeTriggerBuilder {
builder: glib::object::ObjectBuilder<'static, AlternativeTrigger>,
}
impl AlternativeTriggerBuilder {
fn new() -> Self {
Self {
builder: glib::object::Object::builder(),
}
}
/// The first [`ShortcutTrigger`][crate::ShortcutTrigger] to check.
pub fn first(self, first: &impl IsA<ShortcutTrigger>) -> Self {
Self {
builder: self.builder.property("first", first.clone().upcast()),
}
}
/// The second [`ShortcutTrigger`][crate::ShortcutTrigger] to check.
pub fn second(self, second: &impl IsA<ShortcutTrigger>) -> Self {
Self {
builder: self.builder.property("second", second.clone().upcast()),
}
}
// rustdoc-stripper-ignore-next
/// Build the [`AlternativeTrigger`].
#[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
pub fn build(self) -> AlternativeTrigger {
assert_initialized_main_thread!();
self.builder.build()
}
}