Skip to main content

ferroui_xaml_interactions/core/
multi_data_trigger.rs

1//! Port of `Core/MultiDataTrigger.cs`.
2
3use super::MultiDataTriggerBehavior;
4use ferroui_base::{ferro_class, ferro_class_info, instantiate, FerroObjectImpl, Ref, StyledElementImpl};
5use ferroui_xaml_interactivity::StyledElementBehaviorImpl;
6
7/// A behavior that performs actions when all bound data conditions are satisfied (the short name
8/// of [`MultiDataTriggerBehavior`]).
9#[repr(C)]
10pub struct MultiDataTrigger {
11    base: MultiDataTriggerBehavior,
12}
13
14ferro_class!(MultiDataTrigger: MultiDataTriggerBehavior);
15ferro_class_info!(MultiDataTrigger { new: MultiDataTrigger::new });
16ferroui_base::ferro_impl_classes!(MultiDataTrigger: FerroObjectImpl, StyledElementImpl, StyledElementBehaviorImpl);
17
18impl MultiDataTrigger {
19    /// Creates the class data; see [`ferroui_base::FerroObject::construct`].
20    pub fn construct() -> Self {
21        Self { base: MultiDataTriggerBehavior::construct() }
22    }
23
24    /// Creates a trigger.
25    pub fn new() -> Ref<Self> {
26        instantiate(Self::construct())
27    }
28}