excalidraw_canvas.rs
This commit is contained in:
parent
c1b0eb33bf
commit
a99915c8c3
2 changed files with 161 additions and 0 deletions
|
@ -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")
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue