better menu

This commit is contained in:
ALEZ-DEV 2025-01-16 20:45:14 +01:00
parent c93454358f
commit d2e8f5f818
4 changed files with 49 additions and 31 deletions

View File

@ -70,6 +70,7 @@ dependencies = [
"anyhow", "anyhow",
"babylonia-terminal-sdk", "babylonia-terminal-sdk",
"glib-build-tools", "glib-build-tools",
"libadwaita",
"log", "log",
"relm4", "relm4",
"relm4-components", "relm4-components",

View File

@ -10,6 +10,7 @@ log = "0.4.22"
relm4-components = "0.9.1" relm4-components = "0.9.1"
wincompatlib = "0.7.5" wincompatlib = "0.7.5"
relm4 = { version = "0.9.1", features = ["libadwaita"] } relm4 = { version = "0.9.1", features = ["libadwaita"] }
libadwaita = { version = "0.7.1", features = ["v1_4"] }
[build-dependencies] [build-dependencies]
glib-build-tools = "0.20.0" glib-build-tools = "0.20.0"

View File

@ -3,6 +3,7 @@ use std::convert::identity;
use crate::manager; use crate::manager;
use babylonia_terminal_sdk::game_state::GameState; use babylonia_terminal_sdk::game_state::GameState;
use log::debug;
use relm4::{ use relm4::{
adw::{ adw::{
self, self,
@ -21,6 +22,8 @@ use relm4::{
view, Component, ComponentController, Controller, RelmApp, RelmWidgetExt, WorkerController, view, Component, ComponentController, Controller, RelmApp, RelmWidgetExt, WorkerController,
}; };
use libadwaita::OverlaySplitView;
use crate::APP_RESOURCE_PATH; use crate::APP_RESOURCE_PATH;
pub fn run(app: RelmApp<MainWindowMsg>) { pub fn run(app: RelmApp<MainWindowMsg>) {
@ -68,36 +71,10 @@ impl SimpleAsyncComponent for MainWindow {
gtk::Box { gtk::Box {
set_orientation: gtk::Orientation::Vertical, set_orientation: gtk::Orientation::Vertical,
adw::Flap { OverlaySplitView {
#[watch] #[watch]
set_reveal_flap: model.is_menu_visible, set_show_sidebar: model.is_menu_visible,
set_margin_all: 0, set_collapsed: true,
set_fold_policy: adw::FlapFoldPolicy::Auto,
#[wrap(Some)]
set_flap = &gtk::Box {
set_orientation: gtk::Orientation::Vertical,
gtk::ListBox {
set_width_request: 250,
set_margin_all: 10,
append = &gtk::Button {
set_margin_vertical: 5,
set_label: "Item 1",
},
append = &gtk::Button {
set_margin_vertical: 5,
set_label: "Item 2"
},
append = &gtk::Button {
set_margin_vertical: 5,
set_label: "Item 3",
},
},
},
#[wrap(Some)] #[wrap(Some)]
set_content = &gtk::Box { set_content = &gtk::Box {
@ -105,7 +82,7 @@ impl SimpleAsyncComponent for MainWindow {
adw::HeaderBar { adw::HeaderBar {
pack_start = &gtk::Button { pack_start = &gtk::Button {
set_label: "Menu", set_icon_name: "open-menu-symbolic",
connect_clicked => MainWindowMsg::ToggleMenuVisibility, connect_clicked => MainWindowMsg::ToggleMenuVisibility,
}, },
}, },
@ -149,8 +126,46 @@ impl SimpleAsyncComponent for MainWindow {
}, },
}, },
}, },
} },
#[wrap(Some)]
set_sidebar = &gtk::Box {
set_orientation: gtk::Orientation::Vertical,
gtk::ListBox {
set_width_request: 250,
set_margin_all: 10,
append = &gtk::Button {
set_margin_vertical: 5,
set_label: "Item 1",
},
append = &gtk::Button {
set_margin_vertical: 5,
set_label: "Item 2"
},
append = &gtk::Button {
set_margin_vertical: 5,
set_label: "Item 3",
},
},
},
}, },
//adw::Flap {
// #[watch]
// set_reveal_flap: model.is_menu_visible,
// set_margin_all: 0,
// set_fold_policy: adw::FlapFoldPolicy::Auto,
// #[wrap(Some)]
// set_flap =
// #[wrap(Some)]
// set_content =
//},
} }
} }
} }

View File

@ -148,6 +148,7 @@ dependencies = [
"anyhow", "anyhow",
"babylonia-terminal-sdk", "babylonia-terminal-sdk",
"glib-build-tools", "glib-build-tools",
"libadwaita",
"log", "log",
"relm4", "relm4",
"relm4-components", "relm4-components",