use super::style::{
DefaultSeparatorStyle, ModalSectionDividerStyle, SeparatorStyle, SidebarSeparatorStyle,
SplitPanelSeparatorStyle, SubPaneSeparatorStyle,
};
use super::theme::{DefaultSeparatorTheme, SeparatorTheme};
pub struct SeparatorSettings {
pub theme: Box<dyn SeparatorTheme>,
pub style: Box<dyn SeparatorStyle>,
}
impl Default for SeparatorSettings {
fn default() -> Self {
Self {
theme: Box::<DefaultSeparatorTheme>::default(),
style: Box::new(DefaultSeparatorStyle),
}
}
}
impl SeparatorSettings {
pub fn sub_pane() -> Self {
Self {
theme: Box::<DefaultSeparatorTheme>::default(),
style: Box::new(SubPaneSeparatorStyle),
}
}
pub fn split_panel(active: bool) -> Self {
Self {
theme: Box::<DefaultSeparatorTheme>::default(),
style: Box::new(SplitPanelSeparatorStyle { active }),
}
}
pub fn sidebar() -> Self {
Self {
theme: Box::<DefaultSeparatorTheme>::default(),
style: Box::new(SidebarSeparatorStyle),
}
}
pub fn modal_divider() -> Self {
Self {
theme: Box::<DefaultSeparatorTheme>::default(),
style: Box::new(ModalSectionDividerStyle),
}
}
}