From f41235d0f544e79398f8a8c7bbd717bf5e946e44 Mon Sep 17 00:00:00 2001 From: PolyMeilex Date: Sat, 18 Oct 2025 03:10:13 +0200 Subject: [PATCH 1/2] WIP: Sheat music view --- assets/fonts/Leland.otf | Bin 0 -> 89132 bytes neothesia-core/src/font_system.rs | 3 + .../src/scene/playing_scene/top_bar/mod.rs | 73 ++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 assets/fonts/Leland.otf diff --git a/assets/fonts/Leland.otf b/assets/fonts/Leland.otf new file mode 100644 index 0000000000000000000000000000000000000000..4049829ece8fec2af32ae752b02e1960915c4959 GIT binary patch literal 89132 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 literal 0 HcmV?d00001 diff --git a/neothesia-core/src/font_system.rs b/neothesia-core/src/font_system.rs index 20abb73c..92654686 100644 --- a/neothesia-core/src/font_system.rs +++ b/neothesia-core/src/font_system.rs @@ -25,6 +25,9 @@ pub fn font_system() -> Rc> { glyphon::fontdb::Source::Binary(Arc::new(include_bytes!( "../../assets/fonts/bootstrap-icons.ttf" ))), + glyphon::fontdb::Source::Binary(Arc::new(include_bytes!( + "../../assets/fonts/Leland.otf" + ))), ]))) }) .clone() diff --git a/neothesia/src/scene/playing_scene/top_bar/mod.rs b/neothesia/src/scene/playing_scene/top_bar/mod.rs index afc1abf3..558e2b94 100644 --- a/neothesia/src/scene/playing_scene/top_bar/mod.rs +++ b/neothesia/src/scene/playing_scene/top_bar/mod.rs @@ -118,6 +118,79 @@ impl TopBar { pub fn ui(this: &mut PlayingScene, ctx: &mut Context) { let mut ui = std::mem::replace(&mut this.nuon, nuon::Ui::new()); + { + let spacing = 15.0; + let half_spacing = spacing / 2.0; + let y = 150.0; + let x = 40.0; + + { + let y = y + 39.0; + + for id in 0..5 { + nuon::quad() + .y(y - id as f32 * spacing) + .height(1.0) + .width(500.0) + .color([255; 3]) + .build(&mut ui); + } + } + + let base = || half_spacing * 4.0; + let pitch_y = |pitch: u8| base() - half_spacing * pitch as f32; + + nuon::label() + .text("") + .font_family("Leland") + .font_size(60.0) + .x(x) + .y(y) + .build(&mut ui); + + nuon::label() + .text("") + .font_family("Leland") + .font_size(60.0) + .x(x + 60.0) + .y(y + spacing / 2.0) + .build(&mut ui); + + let flat = ""; + let sharp = ""; + + for pitch in 0..10 { + if pitch == 0 { + let y = y + 39.0 + spacing; + nuon::quad() + .x(x + 90.0 + 20.0 - 10.0) + .y(y) + .height(1.0) + .width(30.0) + .color([255; 3]) + .build(&mut ui); + } + + let y = y + pitch_y(pitch); + + nuon::label() + .text(sharp) + .font_family("Leland") + .font_size(60.0) + .x(x + 90.0 + 40.0 * (pitch % 2) as f32) + .y(y) + .build(&mut ui); + } + + // nuon::label() + // .text("") + // .font_family("Leland") + // .font_size(60.0) + // .x(100.0) + // .y(y) + // .build(&mut ui); + } + nuon::translate() .y(this.top_bar.topbar_expand_animation.animate_bool( -75.0 + 5.0, From df91991c7fef14d1d2c7f269405649ce6dcbe96b Mon Sep 17 00:00:00 2001 From: PolyMeilex Date: Sat, 18 Oct 2025 21:46:15 +0200 Subject: [PATCH 2/2] WIP2 --- .../src/scene/playing_scene/top_bar/mod.rs | 83 ++++++++++++------- 1 file changed, 54 insertions(+), 29 deletions(-) diff --git a/neothesia/src/scene/playing_scene/top_bar/mod.rs b/neothesia/src/scene/playing_scene/top_bar/mod.rs index 558e2b94..596a01ea 100644 --- a/neothesia/src/scene/playing_scene/top_bar/mod.rs +++ b/neothesia/src/scene/playing_scene/top_bar/mod.rs @@ -118,12 +118,21 @@ impl TopBar { pub fn ui(this: &mut PlayingScene, ctx: &mut Context) { let mut ui = std::mem::replace(&mut this.nuon, nuon::Ui::new()); - { + nuon::translate().y(100.0).build(&mut ui, |ui| { let spacing = 15.0; let half_spacing = spacing / 2.0; - let y = 150.0; + let y = 50.0; let x = 40.0; + let color = [0; 3]; + + nuon::quad() + .color([255; 3]) + .pos(0.0, 0.0) + .size(250.0, 130.0) + .border_radius([0.0, 10.0, 10.0, 0.0]) + .build(ui); + { let y = y + 39.0; @@ -131,9 +140,9 @@ impl TopBar { nuon::quad() .y(y - id as f32 * spacing) .height(1.0) - .width(500.0) - .color([255; 3]) - .build(&mut ui); + .width(250.0) + .color(color) + .build(ui); } } @@ -142,46 +151,62 @@ impl TopBar { nuon::label() .text("") + .color(color) .font_family("Leland") .font_size(60.0) .x(x) .y(y) - .build(&mut ui); + .build(ui); - nuon::label() - .text("") - .font_family("Leland") - .font_size(60.0) - .x(x + 60.0) - .y(y + spacing / 2.0) - .build(&mut ui); + // nuon::label() + // .text("") + // .color(color) + // .font_family("Leland") + // .font_size(60.0) + // .x(x + 60.0) + // .y(y + spacing / 2.0) + // .build(ui); let flat = ""; let sharp = ""; - for pitch in 0..10 { - if pitch == 0 { - let y = y + 39.0 + spacing; - nuon::quad() - .x(x + 90.0 + 20.0 - 10.0) - .y(y) - .height(1.0) - .width(30.0) - .color([255; 3]) - .build(&mut ui); - } - - let y = y + pitch_y(pitch); + { + let y = y + pitch_y(9); nuon::label() .text(sharp) + .color(color) .font_family("Leland") .font_size(60.0) - .x(x + 90.0 + 40.0 * (pitch % 2) as f32) + .x(x + 60.0 + 22.0) .y(y) - .build(&mut ui); + .build(ui); } + // for pitch in 0..10 { + // if pitch == 0 { + // let y = y + 39.0 + spacing; + // nuon::quad() + // .x(x + 60.0 + 20.0 - 10.0) + // .y(y) + // .height(1.0) + // .width(30.0) + // .color(color) + // .build(ui); + // } + // + // let y = y + pitch_y(pitch); + // + // nuon::label() + // .text(sharp) + // .color(color) + // .font_family("Leland") + // .font_size(60.0) + // .x(x + 60.0 + 22.0 * (pitch % 2) as f32) + // .y(y) + // .build(ui); + // } + // nuon::label() // .text("") // .font_family("Leland") @@ -189,7 +214,7 @@ impl TopBar { // .x(100.0) // .y(y) // .build(&mut ui); - } + }); nuon::translate() .y(this.top_bar.topbar_expand_animation.animate_bool(