From 0f89b526f7f29bb14fd8eda55877336bbcb3af7c Mon Sep 17 00:00:00 2001 From: yggverse Date: Mon, 27 Jan 2025 09:57:57 +0200 Subject: [PATCH] implement main menu as trait --- src/app/browser/window/header/bar.rs | 4 ++-- src/app/browser/window/header/bar/menu.rs | 13 +++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/app/browser/window/header/bar.rs b/src/app/browser/window/header/bar.rs index 70f17287..4addca71 100644 --- a/src/app/browser/window/header/bar.rs +++ b/src/app/browser/window/header/bar.rs @@ -8,7 +8,7 @@ use tab::Tab; use super::{BrowserAction, Profile, WindowAction}; use adw::{TabBar, TabView}; -use gtk::{prelude::BoxExt, Box, Orientation}; +use gtk::{prelude::BoxExt, Box, MenuButton, Orientation}; use std::rc::Rc; pub trait Bar { @@ -34,7 +34,7 @@ impl Bar for Box { .build(); g_box.append(&TabBar::tab(window_action, view)); - g_box.append(&Menu::build((browser_action, window_action), profile).menu_button); + g_box.append(&MenuButton::menu((browser_action, window_action), profile)); g_box.append(&Control::new().window_controls); g_box } diff --git a/src/app/browser/window/header/bar/menu.rs b/src/app/browser/window/header/bar/menu.rs index 54b81e7a..430c74f2 100644 --- a/src/app/browser/window/header/bar/menu.rs +++ b/src/app/browser/window/header/bar/menu.rs @@ -11,16 +11,16 @@ use std::rc::Rc; // Config options const LABEL_MAX_LENGTH: usize = 28; -pub struct Menu { - pub menu_button: MenuButton, +pub trait Menu { + fn menu(action: (&Rc, &Rc), profile: &Rc) -> Self; } #[rustfmt::skip] // @TODO template builder? -impl Menu { +impl Menu for MenuButton { // Constructors /// Build new `Self` - pub fn build( + fn menu( (browser_action, window_action): (&Rc, &Rc), profile: &Rc, ) -> Self { @@ -252,10 +252,7 @@ impl Menu { } }); - // Result - Self { - menu_button - } + menu_button } }