48 lines
1 KiB
Rust
48 lines
1 KiB
Rust
use iced::{Element, Task, Theme, window, Length};
|
|
use iced::widget::{text, button, column, row};
|
|
|
|
#[derive(Debug)]
|
|
struct State{
|
|
title: String,
|
|
}
|
|
impl State {
|
|
fn update(_state: &mut State, message: Message) -> Task<Message>{
|
|
match message {
|
|
Message::Exit => window::latest().and_then(window::close),
|
|
}
|
|
}
|
|
|
|
fn view(_state: &State) -> Element<Message>{
|
|
column![
|
|
row![
|
|
text("Music Player on Rust Nya").size(38).width(Length::Fill),
|
|
button(text("Exit").size(30)).on_press(Message::Exit)
|
|
],
|
|
].into()
|
|
}
|
|
}
|
|
impl Default for State {
|
|
fn default() -> Self{
|
|
Self{
|
|
title: String::from("Mporn"),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Clone)]
|
|
enum Message{
|
|
Exit,
|
|
}
|
|
|
|
fn main() -> iced::Result {
|
|
iced::application(||{
|
|
(
|
|
State{title: String::from("Mporn")},
|
|
Task::none()
|
|
)
|
|
},
|
|
State::update,
|
|
State::view)
|
|
.theme(|_s: &State| iced::Theme::KanagawaDragon)
|
|
.run()
|
|
}
|