complete widget submodule refactory

This commit is contained in:
yggverse 2024-09-22 22:23:44 +03:00
parent e45b7f0a4a
commit 1e42a75f2e
29 changed files with 585 additions and 145 deletions

View file

@ -1,31 +1,30 @@
mod label;
mod page;
mod widget;
use std::sync::Arc;
use gtk::Notebook;
pub struct Tab {
pub widget: Arc<gtk::Notebook>,
widget: widget::Tab,
}
impl Tab {
// Construct
pub fn new() -> Tab {
let widget = widget::Tab::new();
Self { widget }
}
// Actions
pub fn append(&self, current: bool) -> u32 {
let page = page::new();
self.widget.append(
label::Label::new().widget().gtk(),
page::Page::new().widget().gtk(),
true,
)
}
let page_number = self.widget.append_page(&page, Some(&label::new()));
self.widget.set_tab_reorderable(&page, true);
if current {
self.widget.set_current_page(Some(page_number));
}
page_number
// Getters
pub fn widget(&self) -> &widget::Tab {
&self.widget
}
}
pub fn new() -> Tab {
let widget = Arc::new(Notebook::builder().scrollable(true).build());
Tab { widget }
}