gtk4/auto/
alternative_trigger.rs1use crate::{ffi, ShortcutTrigger};
6use glib::{prelude::*, translate::*};
7
8glib::wrapper! {
9 #[doc(alias = "GtkAlternativeTrigger")]
10 pub struct AlternativeTrigger(Object<ffi::GtkAlternativeTrigger, ffi::GtkAlternativeTriggerClass>) @extends ShortcutTrigger;
11
12 match fn {
13 type_ => || ffi::gtk_alternative_trigger_get_type(),
14 }
15}
16
17impl AlternativeTrigger {
18 #[doc(alias = "gtk_alternative_trigger_new")]
19 pub fn new(
20 first: impl IsA<ShortcutTrigger>,
21 second: impl IsA<ShortcutTrigger>,
22 ) -> AlternativeTrigger {
23 skip_assert_initialized!();
24 unsafe {
25 ShortcutTrigger::from_glib_full(ffi::gtk_alternative_trigger_new(
26 first.upcast().into_glib_ptr(),
27 second.upcast().into_glib_ptr(),
28 ))
29 .unsafe_cast()
30 }
31 }
32
33 pub fn builder() -> AlternativeTriggerBuilder {
38 AlternativeTriggerBuilder::new()
39 }
40
41 #[doc(alias = "gtk_alternative_trigger_get_first")]
42 #[doc(alias = "get_first")]
43 pub fn first(&self) -> ShortcutTrigger {
44 unsafe {
45 from_glib_none(ffi::gtk_alternative_trigger_get_first(
46 self.to_glib_none().0,
47 ))
48 }
49 }
50
51 #[doc(alias = "gtk_alternative_trigger_get_second")]
52 #[doc(alias = "get_second")]
53 pub fn second(&self) -> ShortcutTrigger {
54 unsafe {
55 from_glib_none(ffi::gtk_alternative_trigger_get_second(
56 self.to_glib_none().0,
57 ))
58 }
59 }
60}
61
62impl Default for AlternativeTrigger {
63 fn default() -> Self {
64 glib::object::Object::new::<Self>()
65 }
66}
67
68#[must_use = "The builder must be built to be used"]
73pub struct AlternativeTriggerBuilder {
74 builder: glib::object::ObjectBuilder<'static, AlternativeTrigger>,
75}
76
77impl AlternativeTriggerBuilder {
78 fn new() -> Self {
79 Self {
80 builder: glib::object::Object::builder(),
81 }
82 }
83
84 pub fn first(self, first: &impl IsA<ShortcutTrigger>) -> Self {
85 Self {
86 builder: self.builder.property("first", first.clone().upcast()),
87 }
88 }
89
90 pub fn second(self, second: &impl IsA<ShortcutTrigger>) -> Self {
91 Self {
92 builder: self.builder.property("second", second.clone().upcast()),
93 }
94 }
95
96 #[must_use = "Building the object from the builder is usually expensive and is not expected to have side effects"]
99 pub fn build(self) -> AlternativeTrigger {
100 assert_initialized_main_thread!();
101 self.builder.build()
102 }
103}