define struct, implement action

This commit is contained in:
yggverse 2024-09-22 02:32:57 +03:00
parent c0ebe95eb8
commit ecd686976c
2 changed files with 31 additions and 10 deletions

View File

@ -5,14 +5,18 @@ use gtk::prelude::BoxExt;
use gtk::Box;
pub fn new() -> Box {
// Init components
let tab = tab::new();
// Init widget
let tray = Box::builder()
.orientation(gtk::Orientation::Horizontal)
.spacing(8)
.build();
// Compose childs
tray.append(&menu::new());
tray.append(&tab::new());
tray.append(&menu::new()); // @TODO
tray.append(tab.widget.as_ref());
tray
tray // @TODO struct
}

View File

@ -1,10 +1,27 @@
use std::sync::Arc;
use gtk::prelude::{ButtonExt, WidgetExt};
use gtk::Button;
pub fn new() -> Button {
let tab = Button::builder()
.icon_name("tab-new-symbolic")
.tooltip_text("New tab")
.build();
return tab;
pub struct Tab {
pub widget: Arc<gtk::Button>,
}
pub fn new() -> Tab {
// Init widget
let widget = Arc::new(
Button::builder()
.icon_name("tab-new-symbolic")
.tooltip_text("New tab")
.build(),
);
// Init events
widget.connect_clicked(|this| {
this.activate_action("win.tab_append", None)
.expect("The action does not exist");
});
// Result
Tab { widget }
}