mod control; mod menu; mod tab; mod widget; use control::Control; use menu::Menu; use tab::Tab; use widget::Widget; use crate::app::browser::action::Action as BrowserAction; use crate::app::browser::window::action::Action as WindowAction; use adw::TabView; use gtk::Box; use std::rc::Rc; pub struct Bar { widget: Rc, } impl Bar { // Constructors pub fn new( browser_action: Rc, window_action: Rc, view: &TabView, ) -> Self { let control = Control::new(); let tab = Tab::new(window_action.clone(), view); let menu = Menu::new(browser_action, window_action); Self { widget: Rc::new(Widget::new( control.gobject(), menu.gobject(), tab.gobject(), )), } } // Getters pub fn gobject(&self) -> &Box { self.widget.gobject() } }