mirror of https://github.com/YGGverse/Yoda.git
yggverse
2 months ago
29 changed files with 576 additions and 136 deletions
@ -1,16 +1,24 @@
@@ -1,16 +1,24 @@
|
||||
mod pin; |
||||
mod title; |
||||
mod widget; |
||||
|
||||
use gtk::prelude::BoxExt; |
||||
use gtk::Box; |
||||
|
||||
pub fn new() -> Box { |
||||
let label = Box::builder() |
||||
.orientation(gtk::Orientation::Horizontal) |
||||
.build(); |
||||
pub struct Label { |
||||
widget: widget::Label, |
||||
} |
||||
|
||||
label.append(&pin::new(false)); |
||||
label.append(&title::new()); |
||||
impl Label { |
||||
// Construct
|
||||
pub fn new() -> Label { |
||||
Self { |
||||
widget: widget::Label::new( |
||||
pin::Pin::new().widget().gtk(), |
||||
title::Title::new().widget().gtk(), |
||||
), |
||||
} |
||||
} |
||||
|
||||
label |
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Label { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -1,8 +1,19 @@
@@ -1,8 +1,19 @@
|
||||
use gtk::Image; |
||||
mod widget; |
||||
|
||||
pub fn new(visible: bool) -> Image { |
||||
Image::builder() |
||||
.icon_name("view-pin-symbolic") |
||||
.visible(visible) |
||||
.build() |
||||
pub struct Pin { |
||||
widget: widget::Pin, |
||||
} |
||||
|
||||
impl Pin { |
||||
// Construct
|
||||
pub fn new() -> Pin { |
||||
Self { |
||||
widget: widget::Pin::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Pin { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
pub struct Pin { |
||||
gtk: gtk::Image, |
||||
} |
||||
|
||||
impl Pin { |
||||
// Construct
|
||||
pub fn new() -> Pin { |
||||
let gtk = gtk::Image::builder() |
||||
.icon_name("view-pin-symbolic") |
||||
.visible(false) //@TODO
|
||||
.build(); |
||||
|
||||
Self { gtk } |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Image { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,10 +1,19 @@
@@ -1,10 +1,19 @@
|
||||
use gtk::Label; |
||||
mod widget; |
||||
|
||||
pub fn new() -> Label { |
||||
Label::builder() |
||||
.label("New page") |
||||
.ellipsize(gtk::pango::EllipsizeMode::End) |
||||
.width_chars(16) |
||||
.single_line_mode(true) |
||||
.build() |
||||
pub struct Title { |
||||
widget: widget::Title, |
||||
} |
||||
|
||||
impl Title { |
||||
// Construct
|
||||
pub fn new() -> Title { |
||||
Self { |
||||
widget: widget::Title::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Title { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
pub struct Title { |
||||
gtk: gtk::Label, |
||||
} |
||||
|
||||
impl Title { |
||||
// Construct
|
||||
pub fn new() -> Title { |
||||
let gtk = gtk::Label::builder() |
||||
.label("New page") |
||||
.ellipsize(gtk::pango::EllipsizeMode::End) |
||||
.width_chars(16) |
||||
.single_line_mode(true) |
||||
.build(); |
||||
|
||||
Self { gtk } |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Label { |
||||
&self.gtk |
||||
} |
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
use gtk::prelude::BoxExt; |
||||
|
||||
pub struct Label { |
||||
gtk: gtk::Box, |
||||
} |
||||
|
||||
impl Label { |
||||
// Construct new object
|
||||
pub fn new(pin: >k::Image, title: >k::Label) -> Label { |
||||
let gtk = gtk::Box::builder() |
||||
.orientation(gtk::Orientation::Horizontal) |
||||
.build(); |
||||
|
||||
gtk.append(pin); |
||||
gtk.append(title); |
||||
|
||||
Self { gtk } |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Box { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,31 +1,30 @@
@@ -1,31 +1,30 @@
|
||||
mod label; |
||||
mod page; |
||||
mod widget; |
||||
|
||||
use std::sync::Arc; |
||||
|
||||
use gtk::Notebook; |
||||
pub struct Tab { |
||||
pub widget: Arc<gtk::Notebook>, |
||||
widget: widget::Tab, |
||||
} |
||||
|
||||
impl Tab { |
||||
pub fn append(&self, current: bool) -> u32 { |
||||
let page = page::new(); |
||||
|
||||
let page_number = self.widget.append_page(&page, Some(&label::new())); |
||||
|
||||
self.widget.set_tab_reorderable(&page, true); |
||||
|
||||
if current { |
||||
self.widget.set_current_page(Some(page_number)); |
||||
} |
||||
// Construct
|
||||
pub fn new() -> Tab { |
||||
let widget = widget::Tab::new(); |
||||
|
||||
page_number |
||||
Self { widget } |
||||
} |
||||
} |
||||
|
||||
pub fn new() -> Tab { |
||||
let widget = Arc::new(Notebook::builder().scrollable(true).build()); |
||||
// Actions
|
||||
pub fn append(&self, current: bool) -> u32 { |
||||
self.widget.append( |
||||
label::Label::new().widget().gtk(), |
||||
page::Page::new().widget().gtk(), |
||||
true, |
||||
) |
||||
} |
||||
|
||||
Tab { widget } |
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Tab { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -1,8 +1,19 @@
@@ -1,8 +1,19 @@
|
||||
use gtk::Box; |
||||
// use gtk::prelude::BoxExt; @TODO append
|
||||
mod widget; |
||||
|
||||
pub fn new() -> Box { |
||||
Box::builder() |
||||
.orientation(gtk::Orientation::Vertical) |
||||
.build() |
||||
pub struct Content { |
||||
widget: widget::Content, |
||||
} |
||||
|
||||
impl Content { |
||||
// Construct
|
||||
pub fn new() -> Content { |
||||
Self { |
||||
widget: widget::Content::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Content { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
pub struct Content { |
||||
gtk: gtk::Box, |
||||
} |
||||
|
||||
impl Content { |
||||
// Construct new object
|
||||
pub fn new() -> Content { |
||||
Self { |
||||
gtk: gtk::Box::builder() |
||||
.orientation(gtk::Orientation::Vertical) |
||||
.build(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Box { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,16 +1,23 @@
@@ -1,16 +1,23 @@
|
||||
mod content; |
||||
mod navigation; |
||||
mod widget; |
||||
|
||||
use gtk::prelude::BoxExt; |
||||
use gtk::Box; |
||||
|
||||
pub fn new() -> Box { |
||||
let page = Box::builder() |
||||
.orientation(gtk::Orientation::Vertical) |
||||
.build(); |
||||
pub struct Page { |
||||
widget: widget::Page, |
||||
} |
||||
|
||||
page.append(&navigation::new()); |
||||
page.append(&content::new()); |
||||
impl Page { |
||||
pub fn new() -> Page { |
||||
Self { |
||||
widget: widget::Page::new( |
||||
navigation::Navigation::new().widget().gtk(), |
||||
content::Content::new().widget().gtk(), |
||||
), |
||||
} |
||||
} |
||||
|
||||
page |
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Page { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -1,9 +1,19 @@
@@ -1,9 +1,19 @@
|
||||
use gtk::Button; |
||||
mod widget; |
||||
|
||||
pub fn new() -> Button { |
||||
Button::builder() |
||||
.icon_name("go-home-symbolic") |
||||
.tooltip_text("Base") |
||||
.sensitive(false) |
||||
.build() |
||||
pub struct Base { |
||||
widget: widget::Base, |
||||
} |
||||
|
||||
impl Base { |
||||
// Construct
|
||||
pub fn new() -> Base { |
||||
Self { |
||||
widget: widget::Base::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Base { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
pub struct Base { |
||||
gtk: gtk::Button, |
||||
} |
||||
|
||||
impl Base { |
||||
// Construct
|
||||
pub fn new() -> Base { |
||||
Self { |
||||
gtk: gtk::Button::builder() |
||||
.icon_name("go-home-symbolic") |
||||
.tooltip_text("Base") |
||||
.sensitive(false) |
||||
.build(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Button { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,9 +1,19 @@
@@ -1,9 +1,19 @@
|
||||
use gtk::Button; |
||||
mod widget; |
||||
|
||||
pub fn new() -> Button { |
||||
Button::builder() |
||||
.icon_name("starred-symbolic") |
||||
.tooltip_text("Toggle bookmark") |
||||
.sensitive(false) |
||||
.build() |
||||
pub struct Bookmark { |
||||
widget: widget::Bookmark, |
||||
} |
||||
|
||||
impl Bookmark { |
||||
// Construct
|
||||
pub fn new() -> Bookmark { |
||||
Self { |
||||
widget: widget::Bookmark::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Bookmark { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
pub struct Bookmark { |
||||
gtk: gtk::Button, |
||||
} |
||||
|
||||
impl Bookmark { |
||||
// Construct
|
||||
pub fn new() -> Bookmark { |
||||
Self { |
||||
gtk: gtk::Button::builder() |
||||
.icon_name("starred-symbolic") |
||||
.tooltip_text("Toggle bookmark") |
||||
.sensitive(false) |
||||
.build(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Button { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,9 +1,19 @@
@@ -1,9 +1,19 @@
|
||||
use gtk::Button; |
||||
mod widget; |
||||
|
||||
pub fn new() -> Button { |
||||
Button::builder() |
||||
.icon_name("go-previous-symbolic") |
||||
.tooltip_text("Back") |
||||
.sensitive(false) |
||||
.build() |
||||
pub struct Back { |
||||
widget: widget::Back, |
||||
} |
||||
|
||||
impl Back { |
||||
// Construct
|
||||
pub fn new() -> Back { |
||||
Self { |
||||
widget: widget::Back::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Back { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
pub struct Back { |
||||
gtk: gtk::Button, |
||||
} |
||||
|
||||
impl Back { |
||||
// Construct
|
||||
pub fn new() -> Back { |
||||
Self { |
||||
gtk: gtk::Button::builder() |
||||
.icon_name("go-previous-symbolic") |
||||
.tooltip_text("Back") |
||||
.sensitive(false) |
||||
.build(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Button { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,9 +1,19 @@
@@ -1,9 +1,19 @@
|
||||
use gtk::Button; |
||||
mod widget; |
||||
|
||||
pub fn new() -> Button { |
||||
Button::builder() |
||||
.icon_name("go-next-symbolic") |
||||
.tooltip_text("Forward") |
||||
.sensitive(false) |
||||
.build() |
||||
pub struct Forward { |
||||
widget: widget::Forward, |
||||
} |
||||
|
||||
impl Forward { |
||||
// Construct
|
||||
pub fn new() -> Forward { |
||||
Self { |
||||
widget: widget::Forward::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Forward { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
pub struct Forward { |
||||
gtk: gtk::Button, |
||||
} |
||||
|
||||
impl Forward { |
||||
// Construct
|
||||
pub fn new() -> Forward { |
||||
Self { |
||||
gtk: gtk::Button::builder() |
||||
.icon_name("go-next-symbolic") |
||||
.tooltip_text("Forward") |
||||
.sensitive(false) |
||||
.build(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Button { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,20 +1,24 @@
@@ -1,20 +1,24 @@
|
||||
mod back; |
||||
mod forward; |
||||
mod widget; |
||||
|
||||
use gtk::prelude::BoxExt; |
||||
use gtk::Box; |
||||
|
||||
pub fn new() -> Box { |
||||
let history = Box::builder() |
||||
.orientation(gtk::Orientation::Horizontal) |
||||
.css_classes([ |
||||
"linked", // merge childs
|
||||
]) |
||||
.build(); |
||||
pub struct History { |
||||
widget: widget::History, |
||||
} |
||||
|
||||
// Compose childs
|
||||
history.append(&back::new()); |
||||
history.append(&forward::new()); |
||||
impl History { |
||||
// Construct
|
||||
pub fn new() -> History { |
||||
Self { |
||||
widget: widget::History::new( |
||||
back::Back::new().widget().gtk(), |
||||
forward::Forward::new().widget().gtk(), |
||||
), |
||||
} |
||||
} |
||||
|
||||
history |
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::History { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
use gtk::prelude::BoxExt; |
||||
|
||||
pub struct History { |
||||
gtk: gtk::Box, |
||||
} |
||||
|
||||
impl History { |
||||
// Construct
|
||||
pub fn new(back: >k::Button, forward: >k::Button) -> History { |
||||
let gtk = gtk::Box::builder() |
||||
.orientation(gtk::Orientation::Horizontal) |
||||
.css_classes([ |
||||
"linked", // merge childs
|
||||
]) |
||||
.build(); |
||||
|
||||
gtk.append(back); |
||||
gtk.append(forward); |
||||
|
||||
Self { gtk } |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Box { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,9 +1,19 @@
@@ -1,9 +1,19 @@
|
||||
use gtk::Button; |
||||
mod widget; |
||||
|
||||
pub fn new() -> Button { |
||||
return Button::builder() |
||||
.icon_name("view-refresh-symbolic") |
||||
.tooltip_text("Reload") |
||||
.sensitive(false) |
||||
.build(); |
||||
pub struct Reload { |
||||
widget: widget::Reload, |
||||
} |
||||
|
||||
impl Reload { |
||||
// Construct
|
||||
pub fn new() -> Reload { |
||||
Self { |
||||
widget: widget::Reload::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Reload { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
pub struct Reload { |
||||
gtk: gtk::Button, |
||||
} |
||||
|
||||
impl Reload { |
||||
// Construct
|
||||
pub fn new() -> Reload { |
||||
Self { |
||||
gtk: gtk::Button::builder() |
||||
.icon_name("view-refresh-symbolic") |
||||
.tooltip_text("Reload") |
||||
.sensitive(false) |
||||
.build(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Button { |
||||
&self.gtk |
||||
} |
||||
} |
@ -1,9 +1,19 @@
@@ -1,9 +1,19 @@
|
||||
use gtk::Entry; |
||||
mod widget; |
||||
|
||||
pub fn new() -> Entry { |
||||
Entry::builder() |
||||
.placeholder_text("URL or search term...") |
||||
.hexpand(true) |
||||
.progress_pulse_step(0.1) |
||||
.build() |
||||
pub struct Request { |
||||
widget: widget::Request, |
||||
} |
||||
|
||||
impl Request { |
||||
// Construct
|
||||
pub fn new() -> Request { |
||||
Self { |
||||
widget: widget::Request::new(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn widget(&self) -> &widget::Request { |
||||
&self.widget |
||||
} |
||||
} |
||||
|
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
pub struct Request { |
||||
gtk: gtk::Entry, |
||||
} |
||||
|
||||
impl Request { |
||||
// Construct
|
||||
pub fn new() -> Request { |
||||
Self { |
||||
gtk: gtk::Entry::builder() |
||||
.placeholder_text("URL or search term...") |
||||
.hexpand(true) |
||||
.progress_pulse_step(0.1) |
||||
.build(), |
||||
} |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Entry { |
||||
&self.gtk |
||||
} |
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
use gtk::prelude::BoxExt; |
||||
|
||||
pub struct Navigation { |
||||
gtk: gtk::Box, |
||||
} |
||||
|
||||
impl Navigation { |
||||
// Construct
|
||||
pub fn new( |
||||
base: >k::Button, |
||||
history: >k::Box, |
||||
reload: >k::Button, |
||||
request: >k::Entry, |
||||
bookmark: >k::Button, |
||||
) -> Navigation { |
||||
let gtk = gtk::Box::builder() |
||||
.orientation(gtk::Orientation::Horizontal) |
||||
.spacing(8) |
||||
.margin_top(8) |
||||
.margin_start(8) |
||||
.margin_end(8) |
||||
.margin_bottom(8) |
||||
.build(); |
||||
|
||||
gtk.append(base); |
||||
gtk.append(history); |
||||
gtk.append(reload); |
||||
gtk.append(request); |
||||
gtk.append(bookmark); |
||||
|
||||
Self { gtk } |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Box { |
||||
&self.gtk |
||||
} |
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
use gtk::prelude::BoxExt; |
||||
|
||||
pub struct Page { |
||||
gtk: gtk::Box, |
||||
} |
||||
|
||||
impl Page { |
||||
// Construct
|
||||
pub fn new(navigation: >k::Box, content: >k::Box) -> Page { |
||||
let gtk = gtk::Box::builder() |
||||
.orientation(gtk::Orientation::Vertical) |
||||
.build(); |
||||
|
||||
gtk.append(navigation); |
||||
gtk.append(content); |
||||
|
||||
Self { gtk } |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Box { |
||||
&self.gtk |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
pub struct Tab { |
||||
gtk: gtk::Notebook, |
||||
} |
||||
|
||||
impl Tab { |
||||
// Construct new object
|
||||
pub fn new() -> Tab { |
||||
Self { |
||||
gtk: gtk::Notebook::builder().scrollable(true).build(), |
||||
} |
||||
} |
||||
|
||||
// Actions
|
||||
pub fn append(&self, label: >k::Box, page: >k::Box, current: bool) -> u32 { |
||||
let page_number = self.gtk.append_page(page, Some(label)); |
||||
|
||||
self.gtk.set_tab_reorderable(page, true); |
||||
|
||||
if current { |
||||
self.gtk.set_current_page(Some(page_number)); |
||||
} |
||||
|
||||
page_number |
||||
} |
||||
|
||||
// Getters
|
||||
pub fn gtk(&self) -> >k::Notebook { |
||||
&self.gtk |
||||
} |
||||
} |
Loading…
Reference in new issue