mirror of
https://github.com/ALEZ-DEV/Babylonia-terminal.git
synced 2025-12-16 09:28:53 +00:00
better menu
This commit is contained in:
parent
1b34ad7642
commit
08364f8624
@ -18,5 +18,36 @@ pub fn run() {
|
||||
let display = gdk::Display::default().unwrap();
|
||||
let theme = gtk::IconTheme::for_display(&display);
|
||||
theme.add_resource_path(&format!("{APP_RESOURCE_PATH}/icons"));
|
||||
|
||||
relm4::set_global_css(&format!(
|
||||
"
|
||||
progressbar > text {{
|
||||
margin-bottom: 4px;
|
||||
}}
|
||||
|
||||
window.classic-style {{
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}}
|
||||
|
||||
window.classic-style progressbar {{
|
||||
background-color: #00000020;
|
||||
border-radius: 16px;
|
||||
padding: 8px 16px;
|
||||
}}
|
||||
|
||||
window.classic-style progressbar:hover {{
|
||||
background-color: #00000060;
|
||||
color: #ffffff;
|
||||
transition-duration: 0.5s;
|
||||
transition-timing-function: linear;
|
||||
}}
|
||||
|
||||
.round-bin {{
|
||||
border-radius: 24px;
|
||||
}}
|
||||
"
|
||||
));
|
||||
|
||||
ui::run(app);
|
||||
}
|
||||
|
||||
@ -4,7 +4,11 @@ use crate::manager;
|
||||
use babylonia_terminal_sdk::game_state::GameState;
|
||||
|
||||
use relm4::{
|
||||
adw::{self, ApplicationWindow},
|
||||
adw::{
|
||||
self,
|
||||
prelude::{PreferencesGroupExt, PreferencesPageExt},
|
||||
ApplicationWindow,
|
||||
},
|
||||
gtk::{
|
||||
self,
|
||||
prelude::{BoxExt, ButtonExt, GtkWindowExt, OrientableExt, WidgetExt},
|
||||
@ -59,20 +63,43 @@ impl SimpleAsyncComponent for MainWindow {
|
||||
|
||||
adw::HeaderBar,
|
||||
|
||||
gtk::Image {
|
||||
set_resource: Some(&format!("{APP_RESOURCE_PATH}/icons/hicolor/scalable/apps/icon.png")),
|
||||
set_height_request: 256,
|
||||
},
|
||||
gtk::Box {
|
||||
set_orientation: gtk::Orientation::Vertical,
|
||||
set_vexpand: true,
|
||||
set_margin_horizontal: 50,
|
||||
set_valign: gtk::Align::Center,
|
||||
|
||||
#[name(start_button)]
|
||||
gtk::Button {
|
||||
#[watch]
|
||||
set_sensitive: !model.is_game_running,
|
||||
set_label: "Start game",
|
||||
connect_clicked[sender = model.game_handler.sender().clone()] => move |_| {
|
||||
sender.send(manager::HandleGameProcessMsg::RunGame).unwrap();
|
||||
adw::PreferencesPage {
|
||||
add = &adw::PreferencesGroup {
|
||||
gtk::Picture {
|
||||
set_resource: Some(&format!("{APP_RESOURCE_PATH}/icons/hicolor/scalable/apps/icon.png")),
|
||||
set_vexpand: true,
|
||||
},
|
||||
|
||||
gtk::Label {
|
||||
set_label: "Babylonia Terminal",
|
||||
set_margin_top: 24,
|
||||
add_css_class: "title-1",
|
||||
},
|
||||
},
|
||||
|
||||
add = &adw::PreferencesGroup {
|
||||
gtk::Button {
|
||||
set_css_classes: &["suggested-action", "pill"],
|
||||
|
||||
set_label: "Start game",
|
||||
set_hexpand: false,
|
||||
set_width_request: 200,
|
||||
|
||||
#[watch]
|
||||
set_sensitive: !model.is_game_running,
|
||||
connect_clicked[sender = model.game_handler.sender().clone()] => move |_| {
|
||||
sender.send(manager::HandleGameProcessMsg::RunGame).unwrap();
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user