mirror of
https://github.com/penpot/penpot.git
synced 2026-04-02 22:51:07 -04:00
create ui theme type (wasm)
This commit is contained in:
@@ -414,6 +414,10 @@ impl RenderState {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn options(&self) -> RenderOptions {
|
||||
self.options
|
||||
}
|
||||
|
||||
/// Combines every visible layer blur currently active (ancestors + shape)
|
||||
/// into a single equivalent blur. Layer blur radii compound by adding their
|
||||
/// variances (σ² = radius²), so we:
|
||||
@@ -1446,7 +1450,8 @@ impl RenderState {
|
||||
debug::render(self);
|
||||
}
|
||||
|
||||
ui::render(self, shapes);
|
||||
// FIXME: get actual theme from options
|
||||
ui::render(self, shapes, &ui::DarkTheme::default());
|
||||
debug::render_wasm_label(self);
|
||||
|
||||
self.flush_and_submit();
|
||||
@@ -2669,7 +2674,8 @@ impl RenderState {
|
||||
debug::render(self);
|
||||
}
|
||||
|
||||
ui::render(self, tree);
|
||||
// FIXME: get actual theme from options
|
||||
ui::render(self, tree, &ui::DarkTheme::default());
|
||||
debug::render_wasm_label(self);
|
||||
|
||||
Ok(())
|
||||
|
||||
@@ -4,7 +4,14 @@ use super::{RenderState, ShapesPoolRef, SurfaceId};
|
||||
use crate::render::grid_layout;
|
||||
use crate::shapes::{Layout, Type};
|
||||
|
||||
pub fn render(render_state: &mut RenderState, shapes: ShapesPoolRef) {
|
||||
mod themes;
|
||||
use themes::UITheme;
|
||||
|
||||
#[allow(unused_imports)]
|
||||
pub use themes::{DarkTheme, LightTheme};
|
||||
|
||||
pub fn render(render_state: &mut RenderState, shapes: ShapesPoolRef, theme: &impl UITheme) {
|
||||
let render_options = render_state.options();
|
||||
let canvas = render_state.surfaces.canvas(SurfaceId::UI);
|
||||
|
||||
canvas.clear(Color4f::new(0.0, 0.0, 0.0, 0.0));
|
||||
@@ -67,9 +74,18 @@ pub fn render(render_state: &mut RenderState, shapes: ShapesPoolRef) {
|
||||
}
|
||||
|
||||
canvas.restore();
|
||||
|
||||
if render_options.are_rulers_enabled() {
|
||||
render_rulers(canvas, theme);
|
||||
}
|
||||
|
||||
render_state.surfaces.draw_into(
|
||||
SurfaceId::UI,
|
||||
SurfaceId::Target,
|
||||
Some(&skia::Paint::default()),
|
||||
);
|
||||
}
|
||||
|
||||
fn render_rulers(canvas: &skia::Canvas, _theme: &impl UITheme) {
|
||||
canvas.draw_rect(skia::Rect::new(0.0, 0.0, 100.0, 100.0), &skia::Paint::default());
|
||||
}
|
||||
31
render-wasm/src/render/ui/themes.rs
Normal file
31
render-wasm/src/render/ui/themes.rs
Normal file
@@ -0,0 +1,31 @@
|
||||
use crate::shapes::Color;
|
||||
|
||||
pub trait UITheme {
|
||||
fn panel_background_color(&self) -> Color;
|
||||
fn panel_border_color(&self) -> Color;
|
||||
}
|
||||
|
||||
#[derive(Default, Clone, Copy, PartialEq)]
|
||||
pub struct LightTheme {}
|
||||
|
||||
impl UITheme for LightTheme {
|
||||
fn panel_background_color(&self) -> Color {
|
||||
Color::new(0xffffffff)
|
||||
}
|
||||
fn panel_border_color(&self) -> Color {
|
||||
Color::new(0xffeef0f2)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Default, Clone, Copy, PartialEq)]
|
||||
pub struct DarkTheme {}
|
||||
|
||||
impl UITheme for DarkTheme {
|
||||
fn panel_background_color(&self) -> Color {
|
||||
Color::new(0xff18181a)
|
||||
}
|
||||
|
||||
fn panel_border_color(&self) -> Color {
|
||||
Color::new(0xff2e3434)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user