mod gemini;
use gemini::Gemini;
use crate::app::browser::window::{tab::item::Action as TabAction, Action as WindowAction};
use gtk::{
glib::{GString, Uri},
ScrolledWindow,
};
use std::rc::Rc;
pub struct Meta {
title: Option<GString>,
}
pub struct Text {
meta: Meta,
gobject: ScrolledWindow,
}
impl Text {
pub fn gemini(gemtext: &str, base: &Uri, actions: (Rc<WindowAction>, Rc<TabAction>)) -> Self {
let gemini = Gemini::new(gemtext, base, actions);
let meta = Meta {
title: gemini.reader_title().clone(),
};
let gobject = ScrolledWindow::builder().build();
gobject.set_child(Some(gemini.gobject()));
Self { meta, gobject }
}
pub fn meta_title(&self) -> &Option<GString> {
&self.meta.title
}
pub fn gobject(&self) -> &ScrolledWindow {
&self.gobject
}
}