Rework render properties
- lib: introduce general render properties
- lib: replace specific widget properties with render properties
- lib: fix focus in library widgets
- bin: fix focus across all commands
9 files changed
+229
-300
921ebc00
→
b4d543ed
modified bin/commands/inbox/select/ui.rs
@@ -1,4 +1,3 @@
| - | |
|
|
|
|
|
@@ -7,7 +6,7 @@ use tokio::sync::mpsc::UnboundedSender;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -20,7 +19,7 @@ use tui::ui::widget::container::{
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -39,7 +38,6 @@ struct BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -83,7 +81,6 @@ impl<'a> From<&State> for BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -146,7 +143,6 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -183,9 +179,20 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -256,41 +263,29 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -368,12 +363,12 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -383,7 +378,6 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -392,7 +386,6 @@ struct HelpPageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -431,12 +424,9 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
|
|
| - | |
|
|
|
|
|
@@ -449,7 +439,6 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -480,13 +469,18 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -509,26 +503,21 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified bin/commands/issue/select/ui.rs
@@ -1,4 +1,3 @@
| - | |
|
|
|
|
|
@@ -9,7 +8,7 @@ use tokio::sync::mpsc::UnboundedSender;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -22,7 +21,7 @@ use tui::ui::widget::container::{
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -45,7 +44,6 @@ struct BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -99,7 +97,6 @@ impl<'a> From<&State> for BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -151,7 +148,6 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -188,9 +184,20 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -263,41 +270,28 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -375,12 +369,12 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -390,7 +384,6 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -399,7 +392,6 @@ struct HelpPageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -438,12 +430,9 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
|
|
| - | |
|
|
|
|
|
@@ -456,7 +445,6 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -487,13 +475,18 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -516,26 +509,21 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified bin/commands/patch/select/ui.rs
@@ -1,4 +1,3 @@
| - | |
|
|
|
|
|
@@ -8,7 +7,7 @@ use tokio::sync::mpsc::UnboundedSender;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -23,7 +22,7 @@ use tui::ui::widget::container::{
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -45,7 +44,6 @@ pub struct BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -97,7 +95,6 @@ impl<'a> From<&State> for BrowsePageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -150,7 +147,6 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -187,9 +183,20 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -279,41 +286,28 @@ impl<'a: 'static> Widget for BrowsePage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -391,12 +385,12 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -406,7 +400,6 @@ impl Widget for Search {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -415,7 +408,6 @@ pub struct HelpPageProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -454,12 +446,9 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
|
|
| - | |
|
|
|
|
|
@@ -472,7 +461,6 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -503,13 +491,18 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -534,24 +527,18 @@ impl<'a: 'static> Widget for HelpPage<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui.rs
@@ -12,6 +12,8 @@ use std::time::Duration;
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -106,7 +108,7 @@ impl<A> Frontend<A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/theme.rs
@@ -43,7 +43,7 @@ pub mod style {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/widget.rs
@@ -33,6 +33,30 @@ pub struct BaseView<S, A> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -66,8 +90,8 @@ pub trait Widget {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -104,7 +128,7 @@ pub trait ToRow<const W: usize> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -234,11 +258,7 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -248,7 +268,7 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -335,21 +355,18 @@ impl<S, A> Widget for Shortcuts<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -373,7 +390,7 @@ impl<S, A> Widget for Shortcuts<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -410,7 +427,6 @@ where
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -425,7 +441,6 @@ where
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -606,11 +621,7 @@ where
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -618,19 +629,23 @@ where
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -651,9 +666,9 @@ where
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/widget/container.rs
@@ -1,4 +1,3 @@
| - | |
|
|
|
|
|
@@ -11,14 +10,13 @@ use ratatui::widgets::{Block, BorderType, Borders, Row};
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -27,11 +25,6 @@ impl<'a> HeaderProps<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -45,7 +38,6 @@ impl<'a> Default for HeaderProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -65,11 +57,6 @@ impl<'a, S, A> Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -102,12 +89,9 @@ impl<'a: 'static, S, A> Widget for Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -118,7 +102,8 @@ impl<'a: 'static, S, A> Widget for Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
@@ -130,8 +115,11 @@ impl<'a: 'static, S, A> Widget for Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -147,7 +135,7 @@ impl<'a: 'static, S, A> Widget for Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -155,7 +143,7 @@ impl<'a: 'static, S, A> Widget for Header<'a, S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -169,7 +157,6 @@ pub struct FooterProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -183,11 +170,6 @@ impl<'a> FooterProps<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -196,7 +178,6 @@ impl<'a> Default for FooterProps<'a> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -222,11 +203,6 @@ impl<'a, S, A> Footer<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -275,12 +251,9 @@ impl<'a: 'static, S, A> Widget for Footer<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -289,8 +262,9 @@ impl<'a: 'static, S, A> Widget for Footer<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -318,7 +292,6 @@ impl<'a: 'static, S, A> Widget for Footer<'a, S, A> {
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -327,11 +300,6 @@ impl ContainerProps {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -411,13 +379,9 @@ impl<S, A> Widget for Container<S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -428,11 +392,11 @@ impl<S, A> Widget for Container<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -447,15 +411,18 @@ impl<S, A> Widget for Container<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/widget/input.rs
@@ -1,15 +1,12 @@
| - | |
| - | |
|
|
|
|
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -191,20 +188,17 @@ impl<S, A> Widget for TextField<S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -221,7 +215,7 @@ impl<S, A> Widget for TextField<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -237,7 +231,7 @@ impl<S, A> Widget for TextField<S, A> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified src/ui/widget/text.rs
@@ -1,18 +1,15 @@
| - | |
| - | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -29,18 +26,12 @@ impl<'a> ParagraphProps<'a> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
|
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -205,15 +196,11 @@ impl<'a: 'static, S, A> Widget for Paragraph<'a, S, A> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|