use gpui::{Div, Render, Stateful}; use story::Story; use ui::prelude::*; pub struct CursorStory; impl Render for CursorStory { fn render(&mut self, _window: &mut Window, _cx: &mut Context) -> impl IntoElement { let all_cursors: [(&str, Box) -> Stateful
>); 19] = [ ( "cursor_default", Box::new(|el: Stateful
| el.cursor_default()), ), ( "cursor_pointer", Box::new(|el: Stateful
| el.cursor_pointer()), ), ( "cursor_text", Box::new(|el: Stateful
| el.cursor_text()), ), ( "cursor_move", Box::new(|el: Stateful
| el.cursor_move()), ), ( "cursor_not_allowed", Box::new(|el: Stateful
| el.cursor_not_allowed()), ), ( "cursor_context_menu", Box::new(|el: Stateful
| el.cursor_context_menu()), ), ( "cursor_crosshair", Box::new(|el: Stateful
| el.cursor_crosshair()), ), ( "cursor_vertical_text", Box::new(|el: Stateful
| el.cursor_vertical_text()), ), ( "cursor_alias", Box::new(|el: Stateful
| el.cursor_alias()), ), ( "cursor_copy", Box::new(|el: Stateful
| el.cursor_copy()), ), ( "cursor_no_drop", Box::new(|el: Stateful
| el.cursor_no_drop()), ), ( "cursor_grab", Box::new(|el: Stateful
| el.cursor_grab()), ), ( "cursor_grabbing", Box::new(|el: Stateful
| el.cursor_grabbing()), ), ( "cursor_col_resize", Box::new(|el: Stateful
| el.cursor_col_resize()), ), ( "cursor_row_resize", Box::new(|el: Stateful
| el.cursor_row_resize()), ), ( "cursor_n_resize", Box::new(|el: Stateful
| el.cursor_n_resize()), ), ( "cursor_e_resize", Box::new(|el: Stateful
| el.cursor_e_resize()), ), ( "cursor_s_resize", Box::new(|el: Stateful
| el.cursor_s_resize()), ), ( "cursor_w_resize", Box::new(|el: Stateful
| el.cursor_w_resize()), ), ]; Story::container() .flex() .gap_1() .child(Story::title("cursor")) .children(all_cursors.map(|(name, apply_cursor)| { div().gap_1().flex().text_color(gpui::white()).child( div() .flex() .items_center() .justify_center() .id(name) .map(apply_cursor) .w_64() .h_8() .bg(gpui::red()) .active(|style| style.bg(gpui::green())) .text_sm() .child(Story::label(name)), ) })) } }