excalidraw_canvas.rs

This commit is contained in:
Martin Kavík 2024-10-08 14:40:01 +02:00
parent c1b0eb33bf
commit a99915c8c3
2 changed files with 161 additions and 0 deletions

View file

@ -1,13 +1,20 @@
use zoon::*;
mod excalidraw_canvas;
use excalidraw_canvas::ExcalidrawCanvas;
pub use excalidraw_canvas::ExcalidrawController;
#[derive(Clone)]
pub struct DiagramPanel {
canvas_controller: Mutable<Mutable<Option<SendWrapper<ExcalidrawController>>>>
}
impl DiagramPanel {
pub fn new(
canvas_controller: Mutable<Mutable<Option<SendWrapper<ExcalidrawController>>>>,
) -> impl Element {
Self {
canvas_controller
}
.root()
}
@ -20,5 +27,18 @@ impl DiagramPanel {
.s(Height::fill())
.s(Gap::new().y(20))
.item("Diagram panel")
.item(self.canvas())
}
fn canvas(&self) -> impl Element {
let canvas_controller = self.canvas_controller.clone();
ExcalidrawCanvas::new()
.s(Align::new().top())
.s(Width::fill())
.s(Height::fill())
.task_with_controller(move |controller| {
canvas_controller.set(controller.clone());
println!("hello from task_with_controller")
})
}
}