use crate::dir::Direction;
#[crate::impl_default(MarginStyle::Large)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub enum MarginStyle {
None,
Inner,
Tiny,
Small,
Large,
Huge,
Text,
Px(f32),
Em(f32),
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord, PartialOrd, Hash)]
pub enum MarkStyle {
Chevron(Direction),
X,
Plus,
Minus,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord, PartialOrd, Hash)]
pub enum Feature {
Separator,
Mark(MarkStyle),
CheckBox,
RadioBox,
ScrollBar(Direction),
Slider(Direction),
ProgressBar(Direction),
}
impl From<MarkStyle> for Feature {
fn from(style: MarkStyle) -> Self {
Feature::Mark(style)
}
}
#[derive(Copy, Clone, Debug, Default, PartialEq, Eq, Ord, PartialOrd, Hash)]
pub enum FrameStyle {
#[default]
None,
Frame,
Popup,
MenuEntry,
NavFocus,
Button,
InvisibleButton,
Tab,
EditBox,
Window,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord, PartialOrd, Hash)]
pub enum SelectionStyle {
Highlight,
Frame,
Both,
}
impl SelectionStyle {
pub fn is_external(self) -> bool {
matches!(self, SelectionStyle::Frame | SelectionStyle::Both)
}
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Ord, PartialOrd, Hash, linearize::Linearize)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum TextClass {
Standard,
Label,
Small,
Editor,
Serif,
SansSerif,
Monospace,
}