58 lines · 1.3 KB · Rust
RawDownload
use gpui::Position; use crate::prelude::*; #[derive(Default)]pub enum IndicatorStyle {    #[default]    Dot,    Bar,} #[derive(IntoElement)]pub struct Indicator {    position: Position,    style: IndicatorStyle,    color: Color,} impl Indicator {    pub fn dot() -> Self {        Self {            position: Position::Relative,            style: IndicatorStyle::Dot,            color: Color::Default,        }    }     pub fn bar() -> Self {        Self {            position: Position::Relative,            style: IndicatorStyle::Dot,            color: Color::Default,        }    }     pub fn color(mut self, color: Color) -> Self {        self.color = color;        self    }     pub fn absolute(mut self) -> Self {        self.position = Position::Absolute;        self    }} impl RenderOnce for Indicator {    fn render(self, cx: &mut WindowContext) -> impl IntoElement {        div()            .flex_none()            .map(|this| match self.style {                IndicatorStyle::Dot => this.w_1p5().h_1p5().rounded_full(),                IndicatorStyle::Bar => this.w_full().h_1p5().rounded_t_md(),            })            .when(self.position == Position::Absolute, |this| this.absolute())            .bg(self.color.color(cx))    }}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t