integrate simple action object

This commit is contained in:
yggverse 2024-09-28 02:06:04 +03:00
parent 12f5146468
commit ff2073d302
2 changed files with 20 additions and 10 deletions

View File

@ -31,7 +31,8 @@ impl Tray {
action_tab_page_reload,
action_tab_pin,
);
let tab = Tab::new();
let tab = Tab::new(action_tab_append);
// Init widget
let widget = Box::builder()

View File

@ -1,4 +1,4 @@
use gtk::Button;
use gtk::{gio::SimpleAction, prelude::ActionExt, prelude::ButtonExt, Button};
pub struct Tab {
pub widget: Button,
@ -6,14 +6,23 @@ pub struct Tab {
impl Tab {
// Construct
pub fn new() -> Self {
Self {
widget: Button::builder()
.action_name("win.tab_append")
.icon_name("tab-new-symbolic")
.tooltip_text("New tab")
.build(),
}
pub fn new(action_tab_append: &SimpleAction) -> Self {
// Init widget
let widget = Button::builder()
.icon_name("tab-new-symbolic")
.tooltip_text("New tab")
.build();
// Init events
widget.connect_clicked({
let action_tab_append = action_tab_append.clone();
move |_| {
action_tab_append.activate(None);
}
});
// Return activated struct
Self { widget }
}
// Getters