use modern (2018) pattern for modules

This commit is contained in:
yggverse 2024-09-27 22:36:22 +03:00
parent 1627902b8f
commit cdc3fe3388
28 changed files with 0 additions and 0 deletions

36
src/browser/header.rs Normal file
View file

@ -0,0 +1,36 @@
mod subject;
mod tray;
use subject::Subject;
use tray::Tray;
use gtk::{glib::GString, HeaderBar};
pub struct Header {
widget: HeaderBar,
subject: Subject,
}
impl Header {
// Construct
pub fn new() -> Self {
let tray = Tray::new();
let subject = Subject::new();
let widget = HeaderBar::builder().build();
widget.pack_start(tray.widget());
widget.set_title_widget(Some(subject.widget()));
Self { widget, subject }
}
// Actions
pub fn update(&self, title: Option<GString>, description: Option<GString>) {
self.subject.update(title, description);
}
// Getters
pub fn widget(&self) -> &HeaderBar {
&self.widget
}
}