This commit is contained in:
2025-07-18 19:51:28 +02:00
parent 46861440fd
commit fc54c4b9ee

View File

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