From 85aedf9bed1d4284a3a682e2fd120da765ea2485 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 5 Sep 2023 16:40:52 -0600 Subject: [PATCH] WIP: Icons not yet rendering --- crates/gpui/src/app/window.rs | 3 -- crates/gpui2/src/element.rs | 2 +- crates/gpui2/src/elements.rs | 2 + crates/gpui2/src/elements/svg.rs | 81 ++++++++++++++++++++++++++++ crates/gpui2/src/elements/text.rs | 8 +++ crates/storybook/src/collab_panel.rs | 53 ++++++++++-------- crates/storybook/src/storybook.rs | 1 + crates/storybook/src/theme.rs | 5 +- 8 files changed, 126 insertions(+), 29 deletions(-) create mode 100644 crates/gpui2/src/elements/svg.rs diff --git a/crates/gpui/src/app/window.rs b/crates/gpui/src/app/window.rs index 18691934e5992d34f3ff80c1ef9e35f4f6235b88..2c4a758c7f45a433e6ff3d6366eae14ab5c7627e 100644 --- a/crates/gpui/src/app/window.rs +++ b/crates/gpui/src/app/window.rs @@ -1291,9 +1291,6 @@ impl<'a> WindowContext<'a> { pub fn push_text_style(&mut self, refinement: &TextStyleRefinement) -> Result<()> { let mut style = self.text_style(); style.refine(refinement, self.font_cache())?; - - dbg!(&style); - self.window.text_style_stack.push(style); Ok(()) } diff --git a/crates/gpui2/src/element.rs b/crates/gpui2/src/element.rs index d893b6794ca021f65338058a9b3b6903eb41befd..92a981fc5c2200257119d6d201d27f00179a6d84 100644 --- a/crates/gpui2/src/element.rs +++ b/crates/gpui2/src/element.rs @@ -5,7 +5,7 @@ use gpui::geometry::vector::Vector2F; pub use gpui::{Layout, LayoutId}; use smallvec::SmallVec; -pub trait Element: 'static { +pub trait Element: 'static + IntoElement { type PaintState; fn layout( diff --git a/crates/gpui2/src/elements.rs b/crates/gpui2/src/elements.rs index 1bff85259f1949e75e9a50c3ef4cba7d3f97f18f..65b8c7119fbaeb06251f52817eb68cc7cdf483fa 100644 --- a/crates/gpui2/src/elements.rs +++ b/crates/gpui2/src/elements.rs @@ -1,6 +1,8 @@ pub mod div; pub mod hoverable; pub mod pressable; +pub mod svg; pub mod text; pub use div::div; +pub use svg::svg; diff --git a/crates/gpui2/src/elements/svg.rs b/crates/gpui2/src/elements/svg.rs new file mode 100644 index 0000000000000000000000000000000000000000..c9ee84f8c54b04c61737a10abd831f4ae04dd00c --- /dev/null +++ b/crates/gpui2/src/elements/svg.rs @@ -0,0 +1,81 @@ +use crate::{ + self as gpui2, scene, + style::{Style, StyleHelpers, Styleable}, + Element, IntoElement, Layout, LayoutId, Rgba, +}; +use refineable::RefinementCascade; +use std::borrow::Cow; + +#[derive(IntoElement)] +pub struct Svg { + path: Option>, + style: RefinementCascade