Skip to main content

ferroui_controls/
separator.rs

1use crate::primitives::{TemplatedControl, TemplatedControlImpl};
2use crate::ControlImpl;
3use ferroui_base::input::InputElementImpl;
4use ferroui_base::interactivity::InteractiveImpl;
5use ferroui_base::layout::LayoutableImpl;
6use ferroui_base::{ferro_class, ferro_impl_classes, instantiate, FerroObjectImpl, Ref, StyledElementImpl, VisualImpl};
7
8/// A separator control.
9#[repr(C)]
10pub struct Separator {
11    base: TemplatedControl,
12}
13
14ferro_class!(Separator: TemplatedControl);
15ferroui_base::ferro_class_info!(Separator { new: Separator::new });
16ferro_impl_classes!(
17    Separator: FerroObjectImpl,
18    StyledElementImpl,
19    VisualImpl,
20    LayoutableImpl,
21    InteractiveImpl,
22    InputElementImpl,
23    ControlImpl,
24    TemplatedControlImpl
25);
26
27impl Separator {
28    /// Creates the class data; see [`ferroui_base::FerroObject::construct`].
29    pub fn construct() -> Self {
30        Self { base: TemplatedControl::construct() }
31    }
32
33    pub fn new() -> Ref<Self> {
34        instantiate(Self::construct())
35    }
36}