mirror of
https://github.com/penpot/penpot.git
synced 2026-07-31 02:16:13 +00:00
create ui theme type (wasm)
This commit is contained in:
parent
08d21302d3
commit
68a86fbd88
@ -414,6 +414,10 @@ impl RenderState {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn options(&self) -> RenderOptions {
|
||||||
|
self.options
|
||||||
|
}
|
||||||
|
|
||||||
/// Combines every visible layer blur currently active (ancestors + shape)
|
/// Combines every visible layer blur currently active (ancestors + shape)
|
||||||
/// into a single equivalent blur. Layer blur radii compound by adding their
|
/// into a single equivalent blur. Layer blur radii compound by adding their
|
||||||
/// variances (σ² = radius²), so we:
|
/// variances (σ² = radius²), so we:
|
||||||
@ -1446,7 +1450,8 @@ impl RenderState {
|
|||||||
debug::render(self);
|
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);
|
debug::render_wasm_label(self);
|
||||||
|
|
||||||
self.flush_and_submit();
|
self.flush_and_submit();
|
||||||
@ -2669,7 +2674,8 @@ impl RenderState {
|
|||||||
debug::render(self);
|
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);
|
debug::render_wasm_label(self);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@ -4,7 +4,14 @@ use super::{RenderState, ShapesPoolRef, SurfaceId};
|
|||||||
use crate::render::grid_layout;
|
use crate::render::grid_layout;
|
||||||
use crate::shapes::{Layout, Type};
|
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);
|
let canvas = render_state.surfaces.canvas(SurfaceId::UI);
|
||||||
|
|
||||||
canvas.clear(Color4f::new(0.0, 0.0, 0.0, 0.0));
|
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();
|
canvas.restore();
|
||||||
|
|
||||||
|
if render_options.are_rulers_enabled() {
|
||||||
|
render_rulers(canvas, theme);
|
||||||
|
}
|
||||||
|
|
||||||
render_state.surfaces.draw_into(
|
render_state.surfaces.draw_into(
|
||||||
SurfaceId::UI,
|
SurfaceId::UI,
|
||||||
SurfaceId::Target,
|
SurfaceId::Target,
|
||||||
Some(&skia::Paint::default()),
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user