
This PR updates the `ui2` crate to reference the `theme2` and `settings2` crates without the `2` the way we do in our other crates. Release Notes: - N/A
64 lines
1.6 KiB
Rust
64 lines
1.6 KiB
Rust
pub use gpui::{
|
|
div, Element, ElementId, InteractiveElement, ParentElement, RenderOnce, SharedString, Styled,
|
|
ViewContext, WindowContext,
|
|
};
|
|
|
|
pub use crate::StyledExt;
|
|
pub use crate::{ButtonVariant, Color};
|
|
pub use theme::ActiveTheme;
|
|
|
|
use strum::EnumIter;
|
|
|
|
#[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, Clone, Copy, EnumIter)]
|
|
pub enum IconSide {
|
|
#[default]
|
|
Left,
|
|
Right,
|
|
}
|
|
|
|
#[derive(Default, PartialEq, Copy, Clone, EnumIter, strum::Display)]
|
|
pub enum InteractionState {
|
|
/// An element that is enabled and not hovered, active, focused, or disabled.
|
|
///
|
|
/// This is often referred to as the "default" state.
|
|
#[default]
|
|
Enabled,
|
|
/// An element that is hovered.
|
|
Hovered,
|
|
/// An element has an active mouse down or touch start event on it.
|
|
Active,
|
|
/// An element that is focused using the keyboard.
|
|
Focused,
|
|
/// An element that is disabled.
|
|
Disabled,
|
|
/// A toggleable element that is selected, like the active button in a
|
|
/// button toggle group.
|
|
Selected,
|
|
}
|
|
|
|
impl InteractionState {
|
|
pub fn if_enabled(&self, enabled: bool) -> Self {
|
|
if enabled {
|
|
*self
|
|
} else {
|
|
InteractionState::Disabled
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Default, PartialEq, Eq, Hash, Clone, Copy)]
|
|
pub enum Selection {
|
|
#[default]
|
|
Unselected,
|
|
Indeterminate,
|
|
Selected,
|
|
}
|
|
|
|
impl Selection {
|
|
pub fn inverse(&self) -> Self {
|
|
match self {
|
|
Self::Unselected | Self::Indeterminate => Self::Selected,
|
|
Self::Selected => Self::Unselected,
|
|
}
|
|
}
|
|
}
|