header_panel.rs

This commit is contained in:
Martin Kavík 2024-06-17 10:15:05 +02:00
parent 50238c1577
commit 5c778b4350
3 changed files with 295 additions and 250 deletions

View file

@ -10,6 +10,9 @@ use controls_panel::ControlsPanel;
mod waveform_panel;
use waveform_panel::WaveformPanel;
mod header_panel;
use header_panel::HeaderPanel;
#[derive(Clone, Copy, Default)]
enum Layout {
Tree,
@ -17,6 +20,8 @@ enum Layout {
Columns,
}
type Filename = String;
#[derive(Default)]
struct Store {
selected_var_refs: MutableVec<wellen::VarRef>,
@ -37,10 +42,16 @@ fn root() -> impl Element {
let hierarchy: Mutable<Option<Rc<wellen::Hierarchy>>> = <_>::default();
let selected_var_refs = STORE.selected_var_refs.clone();
let layout: Mutable<Layout> = <_>::default();
let loaded_filename: Mutable<Option<Filename>> = <_>::default();
Column::new()
.s(Height::fill())
.s(Scrollbars::y_and_clip_x())
.s(Font::new().color(color!("Lavender")))
.item(HeaderPanel::new(
hierarchy.clone(),
layout.clone(),
loaded_filename.clone(),
))
.item(
Row::new()
.s(Height::fill())
@ -49,6 +60,7 @@ fn root() -> impl Element {
hierarchy.clone(),
selected_var_refs.clone(),
layout.clone(),
loaded_filename,
))
.item_signal(
layout