This commit is contained in:
2025-07-18 19:51:28 +02:00
parent ff95449c3e
commit 610d3986ac

View File

@@ -1,5 +1,6 @@
mod polygon_draw; mod polygon_draw;
use iced::keyboard::Modifiers; use iced::keyboard::Modifiers;
use iced::widget::canvas::path::lyon_path::IterWithAttributes;
use polygon_draw::Polygon; use polygon_draw::Polygon;
mod music; mod music;
@@ -13,15 +14,20 @@ use utils::{is_delta_format_valid, str_to_sec};
use std::fs; use std::fs;
use iced::Font;
use iced::widget::{TextInput, column, text}; use iced::widget::{TextInput, column, text};
use iced::{Application, Element, Theme, executor};
use iced::{ use iced::{
Color, Event, Length, Padding, Task, Theme, Color, Event, Length, Padding, Task,
event::{self, Status}, event::{self, Status},
keyboard::{Key, key::Named}, keyboard::{Key, key::Named},
widget::{Column, button, canvas, container, pick_list, row, scrollable, slider}, widget::{Column, button, canvas, container, pick_list, row, scrollable, slider},
}; };
use iced::{Element, Font}; use iced_aw::menu::MenuBar;
use iced_aw::menu::{self, Item};
use iced_aw::widget::color_picker; use iced_aw::widget::color_picker;
use iced_aw::widget::menu::Menu;
use iced_aw::{menu_bar, menu_items};
use std::f32::consts::PI; use std::f32::consts::PI;
use std::time::Instant; use std::time::Instant;
@@ -320,33 +326,28 @@ impl MyApp {
.collect(); .collect();
let polygon_column = scrollable(Column::with_children(polygon_rows).spacing(24)); let polygon_column = scrollable(Column::with_children(polygon_rows).spacing(24));
let mut save_panel: Vec<Element<Message>> = vec![
button("Toggle Save Panel")
.on_press(Message::ToggleSavePanel)
.into(),
];
if self.show_save_panel { let menu_tpl_1 = |items| Menu::new(items).max_width(100.0).offset(15.0).spacing(5.0);
save_panel.push( let save_menu = menu_tpl_1(vec![
Item::new(
TextInput::new("Name File", &self.music.file_name) TextInput::new("Name File", &self.music.file_name)
.on_input(|new_value| Message::FileNameChanged(new_value)) .on_input(|new_value| Message::FileNameChanged(new_value)),
.into(), ),
); Item::new(button("Save").on_press(Message::Save)),
save_panel.push(button("Save").on_press(Message::Save).into()); Item::new(pick_list(
save_panel.push( self.all_saves.clone(),
pick_list( Some(&self.music.file_name),
self.all_saves.clone(), move |s| Message::FileNameChanged(s),
Some(&self.music.file_name), )),
move |s| Message::FileNameChanged(s), Item::new(button("Load").on_press(Message::Load)),
) ]);
.into(),
);
save_panel.push(button("Load").on_press(Message::Load).into());
}
column![ column![
text("Polymusic").size(32.0), menu_bar!((text("File").size(20), save_menu)(
row(save_panel).spacing(20), text("Shortcut").size(20),
menu_tpl_1(vec![Item::new("󰐊 SPACE"), Item::new("󰆓 CTRL+S")])
))
.draw_path(menu::DrawPath::Backdrop)
.spacing(20),
row![ row![
container( container(
canvas(self.music.current_frame(self.current_delta)) canvas(self.music.current_frame(self.current_delta))