mod menu; mod tab; use menu::Menu; use tab::Tab; use gtk::{ gio::SimpleAction, prelude::BoxExt, {Box, Orientation}, }; use std::sync::Arc; pub struct Tray { gobject: Box, } impl Tray { pub fn new( action_tool_debug: Arc, action_tool_profile_directory: Arc, action_quit: Arc, action_tab_append: Arc, action_tab_close: Arc, action_tab_close_all: Arc, action_tab_page_navigation_base: Arc, action_tab_page_navigation_history_back: Arc, action_tab_page_navigation_history_forward: Arc, action_tab_page_navigation_reload: Arc, action_tab_pin: Arc, ) -> Self { // Init components let tab = Tab::new(action_tab_append.clone()); let menu = Menu::new( action_tool_debug, action_tool_profile_directory, action_quit, action_tab_append, action_tab_close, action_tab_close_all, action_tab_page_navigation_base, action_tab_page_navigation_history_back, action_tab_page_navigation_history_forward, action_tab_page_navigation_reload, action_tab_pin, ); // Init widget let gobject = Box::builder() .orientation(Orientation::Horizontal) .spacing(8) .build(); gobject.append(menu.gobject()); gobject.append(tab.gobject()); // Return new struct Self { gobject } } // Getters pub fn gobject(&self) -> &Box { &self.gobject } }