mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 09:05:27 +00:00
make separated widget mod
This commit is contained in:
parent
c97222d68c
commit
2adde0008d
2 changed files with 31 additions and 8 deletions
|
|
@ -1,16 +1,19 @@
|
||||||
mod subject;
|
mod subject;
|
||||||
mod tray;
|
mod tray;
|
||||||
|
mod widget;
|
||||||
|
|
||||||
use subject::Subject;
|
use subject::Subject;
|
||||||
use tray::Tray;
|
use tray::Tray;
|
||||||
|
use widget::Widget;
|
||||||
|
|
||||||
use gtk::{gio::SimpleAction, glib::GString, HeaderBar};
|
use gtk::{gio::SimpleAction, glib::GString, HeaderBar};
|
||||||
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
pub struct Header {
|
pub struct Header {
|
||||||
gobject: HeaderBar,
|
subject: Arc<Subject>,
|
||||||
subject: Subject,
|
// tray: Arc<Subject>,
|
||||||
|
widget: Arc<Widget>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Header {
|
impl Header {
|
||||||
|
|
@ -43,15 +46,13 @@ impl Header {
|
||||||
action_tab_pin,
|
action_tab_pin,
|
||||||
);
|
);
|
||||||
|
|
||||||
let subject = Subject::new();
|
let subject = Arc::new(Subject::new());
|
||||||
|
|
||||||
// Init widget
|
// Init widget
|
||||||
let gobject = HeaderBar::builder().build();
|
let widget = Arc::new(Widget::new(tray.gobject(), Some(subject.gobject())));
|
||||||
gobject.pack_start(tray.gobject());
|
|
||||||
gobject.set_title_widget(Some(subject.gobject()));
|
|
||||||
|
|
||||||
// Return new struct
|
// Return new struct
|
||||||
Self { gobject, subject }
|
Self { subject, widget }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
|
|
@ -61,6 +62,6 @@ impl Header {
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
pub fn gobject(&self) -> &HeaderBar {
|
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…
Add table
Add a link
Reference in a new issue