Skip to main content

traaains/ui/track/segment/
signals_list.rs

1use bevy::{
2    ecs::{entity::Entity, hierarchy::Children},
3    scene::{Scene, bsn},
4    ui::{Display, FlexDirection, Node, px},
5};
6
7use crate::{
8    sim::{signal::Signals, track::pos::TrackPos},
9    ui::segment::signals_list::item::signals_list_item,
10};
11
12pub mod item;
13
14pub fn signals_list(signals: Vec<(Entity, &Signals, &TrackPos)>) -> impl Scene {
15    let items = signals
16        .into_iter()
17        .enumerate()
18        .map(|(idx, (e, s, t))| signals_list_item(idx, e, s, t))
19        .collect::<Vec<_>>();
20
21    bsn! {
22        Node {
23            display: Display::Flex,
24            flex_direction: FlexDirection::Column,
25            row_gap: px(8)
26        }
27        Children [{items}]
28    }
29}