mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-03-13 06:01:21 +00:00
make separated widget mod
This commit is contained in:
parent
c97222d68c
commit
2adde0008d
@ -1,16 +1,19 @@
|
||||
mod subject;
|
||||
mod tray;
|
||||
mod widget;
|
||||
|
||||
use subject::Subject;
|
||||
use tray::Tray;
|
||||
use widget::Widget;
|
||||
|
||||
use gtk::{gio::SimpleAction, glib::GString, HeaderBar};
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
pub struct Header {
|
||||
gobject: HeaderBar,
|
||||
subject: Subject,
|
||||
subject: Arc<Subject>,
|
||||
// tray: Arc<Subject>,
|
||||
widget: Arc<Widget>,
|
||||
}
|
||||
|
||||
impl Header {
|
||||
@ -43,15 +46,13 @@ impl Header {
|
||||
action_tab_pin,
|
||||
);
|
||||
|
||||
let subject = Subject::new();
|
||||
let subject = Arc::new(Subject::new());
|
||||
|
||||
// Init widget
|
||||
let gobject = HeaderBar::builder().build();
|
||||
gobject.pack_start(tray.gobject());
|
||||
gobject.set_title_widget(Some(subject.gobject()));
|
||||
let widget = Arc::new(Widget::new(tray.gobject(), Some(subject.gobject())));
|
||||
|
||||
// Return new struct
|
||||
Self { gobject, subject }
|
||||
Self { subject, widget }
|
||||
}
|
||||
|
||||
// Actions
|
||||
@ -61,6 +62,6 @@ impl Header {
|
||||
|
||||
// Getters
|
||||
pub fn gobject(&self) -> &HeaderBar {
|
||||
&self.gobject
|
||||
&self.widget.gobject()
|
||||
}
|
||||
}
|
||||
|
22
src/app/browser/header/widget.rs
Normal file
22
src/app/browser/header/widget.rs
Normal file
@ -0,0 +1,22 @@
|
||||
use gtk::{Box, HeaderBar};
|
||||
|
||||
pub struct Widget {
|
||||
gobject: HeaderBar,
|
||||
}
|
||||
|
||||
impl Widget {
|
||||
// Construct
|
||||
pub fn new(tray: &Box, title_widget: Option<&Box>) -> Self {
|
||||
let gobject = HeaderBar::builder().build();
|
||||
|
||||
gobject.pack_start(tray);
|
||||
gobject.set_title_widget(title_widget);
|
||||
|
||||
Self { gobject }
|
||||
}
|
||||
|
||||
// Getters
|
||||
pub fn gobject(&self) -> &HeaderBar {
|
||||
&self.gobject
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user