From 680bf0f0aacbe016c371b86f64f660418fae6b1e Mon Sep 17 00:00:00 2001 From: yggverse Date: Sun, 26 Jan 2025 16:02:45 +0200 Subject: [PATCH] implement tab node as trait --- src/app/browser/window/header/bar.rs | 4 +-- src/app/browser/window/header/bar/tab.rs | 28 ++++++++----------- .../browser/window/header/bar/tab/widget.rs | 22 --------------- 3 files changed, 14 insertions(+), 40 deletions(-) delete mode 100644 src/app/browser/window/header/bar/tab/widget.rs diff --git a/src/app/browser/window/header/bar.rs b/src/app/browser/window/header/bar.rs index a3d9186b..70f17287 100644 --- a/src/app/browser/window/header/bar.rs +++ b/src/app/browser/window/header/bar.rs @@ -7,7 +7,7 @@ use menu::Menu; use tab::Tab; use super::{BrowserAction, Profile, WindowAction}; -use adw::TabView; +use adw::{TabBar, TabView}; use gtk::{prelude::BoxExt, Box, Orientation}; use std::rc::Rc; @@ -33,7 +33,7 @@ impl Bar for Box { .spacing(8) .build(); - g_box.append(&Tab::new(window_action, view).widget.tab_bar); + g_box.append(&TabBar::tab(window_action, view)); g_box.append(&Menu::build((browser_action, window_action), profile).menu_button); g_box.append(&Control::new().window_controls); g_box diff --git a/src/app/browser/window/header/bar/tab.rs b/src/app/browser/window/header/bar/tab.rs index b01b3ec6..e48da2e4 100644 --- a/src/app/browser/window/header/bar/tab.rs +++ b/src/app/browser/window/header/bar/tab.rs @@ -1,25 +1,21 @@ mod append; -mod widget; - -use append::Append; -use widget::Widget; use super::WindowAction; -use adw::TabView; +use adw::{TabBar, TabView}; +use append::Append; use std::rc::Rc; -pub struct Tab { - pub widget: Rc, +pub trait Tab { + fn tab(window_action: &Rc, view: &TabView) -> Self; } -impl Tab { - // Construct - pub fn new(window_action: &Rc, view: &TabView) -> Self { - Self { - widget: Rc::new(Widget::build( - view, - &Append::build(window_action).widget.button, - )), - } +impl Tab for TabBar { + fn tab(window_action: &Rc, view: &TabView) -> Self { + TabBar::builder() + .autohide(false) + .expand_tabs(false) + .end_action_widget(&Append::build(window_action).widget.button) // @TODO find solution to append after tabs + .view(view) + .build() } } diff --git a/src/app/browser/window/header/bar/tab/widget.rs b/src/app/browser/window/header/bar/tab/widget.rs deleted file mode 100644 index 6c50708e..00000000 --- a/src/app/browser/window/header/bar/tab/widget.rs +++ /dev/null @@ -1,22 +0,0 @@ -use adw::{TabBar, TabView}; -use gtk::prelude::IsA; - -pub struct Widget { - pub tab_bar: TabBar, -} - -impl Widget { - // Constructors - - /// Build new `Self` - pub fn build(view: &TabView, start_action_widget: &impl IsA) -> Self { - Self { - tab_bar: TabBar::builder() - .autohide(false) - .expand_tabs(false) - .end_action_widget(start_action_widget) // @TODO find solution to append after tabs - .view(view) - .build(), - } - } -}