Skip to content

Commit da18736

Browse files
committed
refactor(studio): modularize into types, presets, layout, renderer, inspector, and app modules
1 parent 9cbf6b8 commit da18736

7 files changed

Lines changed: 2112 additions & 2071 deletions

File tree

crates/embedded-gui-studio/src/app.rs

Lines changed: 887 additions & 0 deletions
Large diffs are not rendered by default.

crates/embedded-gui-studio/src/inspector.rs

Lines changed: 599 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//! Grid layout track calculation helpers for simulated 2D viewports.
2+
3+
use embedded_gui_codegen::GridTrackDef;
4+
5+
/// Resolves fractional (`fr`) and fixed (`px`) track constraints against available container size.
6+
pub fn compute_track_sizes(tracks: &[GridTrackDef], available_size: f32, gap: f32) -> Vec<f32> {
7+
let n = tracks.len();
8+
if n == 0 {
9+
return vec![available_size];
10+
}
11+
let total_gap = gap * (n.saturating_sub(1) as f32);
12+
let net_space = (available_size - total_gap).max(0.0);
13+
14+
let mut fixed_sum = 0.0;
15+
let mut total_fr = 0u32;
16+
17+
for t in tracks {
18+
match t {
19+
GridTrackDef::Px(px) => fixed_sum += *px as f32,
20+
GridTrackDef::Fr(fr) => total_fr += *fr as u32,
21+
GridTrackDef::Auto => fixed_sum += 32.0,
22+
}
23+
}
24+
25+
let remaining = (net_space - fixed_sum).max(0.0);
26+
let fr_unit = if total_fr > 0 {
27+
remaining / (total_fr as f32)
28+
} else {
29+
0.0
30+
};
31+
32+
tracks
33+
.iter()
34+
.map(|t| match t {
35+
GridTrackDef::Px(px) => *px as f32,
36+
GridTrackDef::Fr(fr) => (*fr as f32) * fr_unit,
37+
GridTrackDef::Auto => 32.0,
38+
})
39+
.collect()
40+
}

0 commit comments

Comments
 (0)