globals.js
This commit is contained in:
parent
a99915c8c3
commit
1d20d3ac56
10 changed files with 122 additions and 53 deletions
|
@ -8,7 +8,7 @@ mod controls_panel;
|
|||
use controls_panel::ControlsPanel;
|
||||
|
||||
mod diagram_panel;
|
||||
use diagram_panel::DiagramPanel;
|
||||
use diagram_panel::{ExcalidrawController, DiagramPanel};
|
||||
|
||||
mod waveform_panel;
|
||||
use waveform_panel::{PixiController, WaveformPanel};
|
||||
|
@ -45,7 +45,8 @@ struct Store {
|
|||
selected_var_refs: MutableVec<wellen::VarRef>,
|
||||
hierarchy: Mutable<Option<Arc<wellen::Hierarchy>>>,
|
||||
loaded_filename: Mutable<Option<Filename>>,
|
||||
canvas_controller: Mutable<Mutable<Option<SendWrapper<PixiController>>>>,
|
||||
pixi_canvas_controller: Mutable<Mutable<Option<SendWrapper<PixiController>>>>,
|
||||
excalidraw_canvas_controller: Mutable<Mutable<Option<SendWrapper<ExcalidrawController>>>>,
|
||||
}
|
||||
|
||||
static STORE: Lazy<Store> = lazy::default();
|
||||
|
@ -65,7 +66,8 @@ fn root() -> impl Element {
|
|||
let layout: Mutable<Layout> = <_>::default();
|
||||
let mode: Mutable<Mode> = <_>::default();
|
||||
let loaded_filename = STORE.loaded_filename.clone();
|
||||
let canvas_controller = STORE.canvas_controller.clone();
|
||||
let pixi_canvas_controller = STORE.pixi_canvas_controller.clone();
|
||||
let excalidraw_canvas_controller = STORE.excalidraw_canvas_controller.clone();
|
||||
Column::new()
|
||||
.s(Height::fill())
|
||||
.s(Scrollbars::y_and_clip_x())
|
||||
|
@ -76,7 +78,7 @@ fn root() -> impl Element {
|
|||
mode.clone(),
|
||||
loaded_filename.clone(),
|
||||
))
|
||||
.item_signal(mode.signal().map(clone!((hierarchy, selected_var_refs, loaded_filename, canvas_controller) move |mode| match mode {
|
||||
.item_signal(mode.signal().map(clone!((hierarchy, selected_var_refs, loaded_filename, pixi_canvas_controller) move |mode| match mode {
|
||||
Mode::Waves => {
|
||||
Column::new()
|
||||
.s(Height::fill())
|
||||
|
@ -96,15 +98,15 @@ fn root() -> impl Element {
|
|||
let hierarchy = hierarchy.clone();
|
||||
let selected_var_refs = selected_var_refs.clone();
|
||||
let loaded_filename = loaded_filename.clone();
|
||||
let canvas_controller = canvas_controller.clone();
|
||||
let pixi_canvas_controller = pixi_canvas_controller.clone();
|
||||
map_ref!{
|
||||
let layout = layout.signal(),
|
||||
let hierarchy_is_some = hierarchy.signal_ref(Option::is_some) => {
|
||||
(*hierarchy_is_some && matches!(layout, Layout::Tree)).then(clone!((hierarchy, selected_var_refs, loaded_filename, canvas_controller) move || WaveformPanel::new(
|
||||
(*hierarchy_is_some && matches!(layout, Layout::Tree)).then(clone!((hierarchy, selected_var_refs, loaded_filename, pixi_canvas_controller) move || WaveformPanel::new(
|
||||
hierarchy.clone(),
|
||||
selected_var_refs.clone(),
|
||||
loaded_filename.clone(),
|
||||
canvas_controller.clone(),
|
||||
pixi_canvas_controller.clone(),
|
||||
)))
|
||||
}
|
||||
}
|
||||
|
@ -114,15 +116,15 @@ fn root() -> impl Element {
|
|||
let hierarchy = hierarchy.clone();
|
||||
let selected_var_refs = selected_var_refs.clone();
|
||||
let loaded_filename = loaded_filename.clone();
|
||||
let canvas_controller = canvas_controller.clone();
|
||||
let pixi_canvas_controller = pixi_canvas_controller.clone();
|
||||
map_ref!{
|
||||
let layout = layout.signal(),
|
||||
let hierarchy_is_some = hierarchy.signal_ref(Option::is_some) => {
|
||||
(*hierarchy_is_some && matches!(layout, Layout::Columns)).then(clone!((hierarchy, selected_var_refs, loaded_filename, canvas_controller) move || WaveformPanel::new(
|
||||
(*hierarchy_is_some && matches!(layout, Layout::Columns)).then(clone!((hierarchy, selected_var_refs, loaded_filename, pixi_canvas_controller) move || WaveformPanel::new(
|
||||
hierarchy.clone(),
|
||||
selected_var_refs.clone(),
|
||||
loaded_filename.clone(),
|
||||
canvas_controller.clone(),
|
||||
pixi_canvas_controller.clone(),
|
||||
)))
|
||||
}
|
||||
}
|
||||
|
@ -132,7 +134,7 @@ fn root() -> impl Element {
|
|||
Column::new()
|
||||
.s(Height::fill())
|
||||
.s(Scrollbars::y_and_clip_x())
|
||||
.item(DiagramPanel::new())
|
||||
.item(DiagramPanel::new(excalidraw_canvas_controller.clone()))
|
||||
}
|
||||
})))
|
||||
.item(CommandPanel::new())
|
||||
|
|
Reference in a new issue