reorganize widget modules

This commit is contained in:
yggverse 2024-09-23 18:51:48 +03:00
parent b9b226cc54
commit 4903968309
47 changed files with 352 additions and 786 deletions

View file

@ -1,44 +1,53 @@
mod label;
mod page;
mod widget;
use std::sync::Arc;
use gtk::Notebook;
use label::Label;
use page::Page;
pub struct Tab {
widget: widget::Tab,
widget: Notebook,
}
impl Tab {
// Construct
pub fn new() -> Arc<Tab> {
Arc::new(Self {
widget: widget::Tab::new(),
})
pub fn new() -> Tab {
Self {
widget: Notebook::builder().scrollable(true).build(),
}
}
// Actions
pub fn append(&self, is_active: bool) -> u32 {
self.widget.append(
label::Label::new(false).widget().container(),
page::Page::new().widget().container(),
is_active,
)
let label = Label::new(false);
let page = Page::new();
let page_number = self.widget.append_page(page.widget(), Some(label.widget()));
self.widget.set_tab_reorderable(page.widget(), true);
if is_active {
self.widget.set_current_page(Some(page_number));
}
page_number
}
pub fn close(&self) {
todo!()
}
/* @TODO
pub fn close_all(&self) {
todo!()
}
}*/
pub fn pin(&self) -> bool {
todo!()
}
// Getters
pub fn widget(&self) -> &widget::Tab {
pub fn widget(&self) -> &Notebook {
&self.widget
}
}