Browse Source

create separated widget mod implementation

master
yggverse 2 months ago
parent
commit
6f3ad01c35
  1. 43
      src/browser/main/mod.rs
  2. 23
      src/browser/main/widget.rs
  3. 2
      src/browser/mod.rs

43
src/browser/main/mod.rs

@ -1,34 +1,31 @@ @@ -1,34 +1,31 @@
mod tab;
use std::sync::Arc;
use gtk::prelude::BoxExt;
use gtk::Box;
mod widget;
pub struct Main {
pub widget: Arc<gtk::Box>,
pub tab: Arc<tab::Tab>,
widget: widget::Main,
tab: tab::Tab,
}
impl Main {
// Construct
pub fn new() -> Main {
// Init components
let tab = tab::new();
// Init struct
Self {
widget: widget::Main::new(tab.widget.as_ref()), // @TODO
tab,
}
}
// Actions
pub fn tab_append(&self) {
self.tab.append(true);
}
}
pub fn new() -> Main {
// Init components
let tab = Arc::new(tab::new());
// Init widget
let widget = Arc::new(
Box::builder()
.orientation(gtk::Orientation::Vertical)
.build(),
);
widget.append(tab.widget.as_ref());
// Init struct
Main { widget, tab }
// Getters
pub fn widget(&self) -> &widget::Main {
&self.widget
}
}

23
src/browser/main/widget.rs

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
use gtk::prelude::BoxExt;
pub struct Main {
gtk: gtk::Box,
}
impl Main {
// Construct
pub fn new(tab: &gtk::Notebook) -> Main {
let gtk = gtk::Box::builder()
.orientation(gtk::Orientation::Vertical)
.build();
gtk.append(tab);
Self { gtk }
}
// Getters
pub fn gtk(&self) -> &gtk::Box {
&self.gtk
}
}

2
src/browser/mod.rs

@ -23,7 +23,7 @@ impl Browser { @@ -23,7 +23,7 @@ impl Browser {
let widget = widget::Browser::new(
app,
header::Header::new().widget().gtk(),
main::new().widget.as_ref(), // @TODO
main::Main::new().widget().gtk(),
default_width,
default_height,
);

Loading…
Cancel
Save