From 1e43b0a2c4737986a8fd807c61ee7f8bbad67d21 Mon Sep 17 00:00:00 2001 From: mars Date: Sun, 6 Nov 2022 18:27:43 -0700 Subject: [PATCH 1/7] WIP SAO UI music player --- scripts/sao-ui/Cargo.toml | 1 + scripts/sao-ui/src/lib.rs | 4 +- scripts/sao-ui/src/music_player.rs | 212 +++++++++++++++++++++++++++++ scripts/sao-ui/src/widgets/text.rs | 20 +++ 4 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 scripts/sao-ui/src/music_player.rs diff --git a/scripts/sao-ui/Cargo.toml b/scripts/sao-ui/Cargo.toml index 6c6862e..2a09cd0 100644 --- a/scripts/sao-ui/Cargo.toml +++ b/scripts/sao-ui/Cargo.toml @@ -10,6 +10,7 @@ crate-type = ["cdylib"] [dependencies] glam = "^0.21" keyframe = "1" +canary-music-player = { path = "../../apps/music-player" } canary-script = { path = "../../crates/script" } serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/scripts/sao-ui/src/lib.rs b/scripts/sao-ui/src/lib.rs index b24baef..b1c2430 100644 --- a/scripts/sao-ui/src/lib.rs +++ b/scripts/sao-ui/src/lib.rs @@ -4,6 +4,7 @@ static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT; pub mod anim; pub mod draw; pub mod main_menu; +pub mod music_player; pub mod panel; pub mod widgets; @@ -11,8 +12,9 @@ use canary_script::*; use api::*; use widgets::Widget; use main_menu::MainMenuPanel; +use music_player::MusicPlayerPanel; -export_abi!(MainMenuPanel); +export_abi!(MusicPlayerPanel); pub const ICON_FONT: &str = "Iosevka Nerd Font"; pub const DISPLAY_FONT: &str = "Homenaje"; diff --git a/scripts/sao-ui/src/music_player.rs b/scripts/sao-ui/src/music_player.rs new file mode 100644 index 0000000..ef70e2c --- /dev/null +++ b/scripts/sao-ui/src/music_player.rs @@ -0,0 +1,212 @@ +use api::*; +use canary_script::*; + +use canary_music_player::{AlbumInfo, TrackInfo}; + +use crate::widgets::prelude::*; +use dialog::{DialogBodyStyle, DialogFooterStyle}; +use shell::Offset; +use text::{HorizontalAlignment, Label, LabelText}; + +pub struct MusicPlayerPanel { + panel: Panel, + widget: Option, + disconnected: Offset