mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 00:55:28 +00:00
draft gemtext composer
This commit is contained in:
parent
70f3b51591
commit
1cc3ddaf2e
5 changed files with 89 additions and 8 deletions
30
src/browser/main/tab/page/content/text/gemini/mod.rs
Normal file
30
src/browser/main/tab/page/content/text/gemini/mod.rs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
mod reader;
|
||||
|
||||
use reader::Reader;
|
||||
|
||||
use gtk::Viewport;
|
||||
|
||||
pub struct Gemini {
|
||||
widget: Viewport,
|
||||
}
|
||||
|
||||
impl Gemini {
|
||||
// Construct
|
||||
pub fn new(gemtext: &str) -> Self {
|
||||
// Init components
|
||||
let reader = Reader::new(gemtext);
|
||||
|
||||
// Init widget
|
||||
let widget = Viewport::builder().scroll_to_focus(false).build();
|
||||
|
||||
widget.set_child(Some(reader.widget()));
|
||||
|
||||
// Result
|
||||
Self { widget }
|
||||
}
|
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &Viewport {
|
||||
&self.widget
|
||||
}
|
||||
}
|
||||
|
|
@ -6,16 +6,18 @@ pub struct Reader {
|
|||
|
||||
impl Reader {
|
||||
// Construct
|
||||
pub fn new() -> Self {
|
||||
pub fn new(gemtext: &str) -> Self {
|
||||
Self {
|
||||
widget: Label::builder()
|
||||
.halign(Align::Start)
|
||||
.valign(Align::Start)
|
||||
.vexpand(true)
|
||||
.margin_start(8)
|
||||
.margin_end(8)
|
||||
.wrap(true)
|
||||
.selectable(true)
|
||||
.use_markup(true)
|
||||
.label(gemtext) // @TODO
|
||||
.build(),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
mod gemini;
|
||||
|
||||
use gemini::Gemini;
|
||||
|
||||
use gtk::ScrolledWindow;
|
||||
|
||||
pub struct Text {
|
||||
|
|
@ -6,10 +10,17 @@ pub struct Text {
|
|||
|
||||
impl Text {
|
||||
// Construct
|
||||
pub fn new() -> Self {
|
||||
Self {
|
||||
widget: ScrolledWindow::builder().build(),
|
||||
}
|
||||
pub fn gemini(gemtext: &str) -> Self {
|
||||
// Init components
|
||||
let gemini = Gemini::new(gemtext);
|
||||
|
||||
// Init widget
|
||||
let widget = ScrolledWindow::builder().build();
|
||||
|
||||
widget.set_child(Some(gemini.widget()));
|
||||
|
||||
// Result
|
||||
Self { widget }
|
||||
}
|
||||
|
||||
// Getters
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue