Skip to content

Commit

Permalink
fix missing theme background application (#84)
Browse files Browse the repository at this point in the history
* fix missing theme background application

* update CHANGELOG
  • Loading branch information
tarkah committed Feb 22, 2021
1 parent 43401be commit e3a4c8f
Show file tree
Hide file tree
Showing 12 changed files with 156 additions and 226 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ and `Removed`.

### Fixed

- Fixed theme background not getting applied to all widgets ([#84])
- Fixed last x label for candlestick charts from showing unix time 0 for 1W - 5Y
timeframes ([#85])

Expand Down Expand Up @@ -123,4 +124,5 @@ and `Removed`.
[#75]: https://github.com/tarkah/tickrs/pull/75
[#76]: https://github.com/tarkah/tickrs/pull/76
[#79]: https://github.com/tarkah/tickrs/pull/79
[#85]: https://github.com/tarkah/tickrs/pull/85
[#84]: https://github.com/tarkah/tickrs/pull/84
[#85]: https://github.com/tarkah/tickrs/pull/85
50 changes: 19 additions & 31 deletions src/draw.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use tui::backend::Backend;
use tui::layout::{Alignment, Constraint, Direction, Layout, Rect};
use tui::style::Style;
use tui::text::{Span, Spans, Text};
use tui::widgets::{Block, Borders, Clear, Paragraph, Tabs, Wrap};
use tui::{Frame, Terminal};

use crate::app::{App, Mode, ScrollDirection};
use crate::common::TimeFrame;
use crate::theme::style;
use crate::widget::{
block, AddStockWidget, OptionsWidget, StockSummaryWidget, StockWidget, HELP_HEIGHT, HELP_WIDTH,
};
Expand All @@ -26,10 +26,7 @@ pub fn draw<B: Backend>(terminal: &mut Terminal<B>, app: &mut App) {
terminal
.draw(|mut frame| {
// Set background color
frame.render_widget(
Block::default().style(Style::default().bg(THEME.background())),
frame.size(),
);
frame.render_widget(Block::default().style(style()), frame.size());

if app.debug.enabled && app.mode == Mode::AddStock {
// layout[0] - Main window
Expand Down Expand Up @@ -127,21 +124,17 @@ fn draw_main<B: Backend>(frame: &mut Frame<B>, app: &mut App, area: Rect) {
frame.render_widget(
Tabs::new(tabs)
.select(app.current_tab)
.style(Style::default().fg(THEME.text_secondary()))
.highlight_style(Style::default().fg(THEME.text_primary())),
.style(style().fg(THEME.text_secondary()))
.highlight_style(style().fg(THEME.text_primary())),
header[0],
);
}

// Draw help icon
if !app.hide_help {
frame.render_widget(
Paragraph::new(Text::styled("Help '?'", Style::default()))
.style(
Style::default()
.fg(THEME.text_normal())
.bg(THEME.background()),
)
Paragraph::new(Text::styled("Help '?'", style()))
.style(style().fg(THEME.text_normal()))
.alignment(Alignment::Center),
header[1],
);
Expand Down Expand Up @@ -187,7 +180,7 @@ fn draw_main<B: Backend>(frame: &mut Frame<B>, app: &mut App, area: Rect) {
frame.render_widget(
Paragraph::new(Text::styled(
"Increase screen size to display options",
Style::default(),
style(),
)),
main_chunks[1],
);
Expand Down Expand Up @@ -272,12 +265,8 @@ fn draw_summary<B: Backend>(frame: &mut Frame<B>, app: &mut App, mut area: Rect)
// Draw help icon
if !app.hide_help {
frame.render_widget(
Paragraph::new(Text::styled("Help '?'", Style::default()))
.style(
Style::default()
.fg(THEME.text_normal())
.bg(THEME.background()),
)
Paragraph::new(Text::styled("Help '?'", style()))
.style(style().fg(THEME.text_normal()))
.alignment(Alignment::Center),
header[1],
);
Expand All @@ -301,16 +290,15 @@ fn draw_summary<B: Backend>(frame: &mut Frame<B>, app: &mut App, mut area: Rect)
{
layout[2] = add_padding(layout[2], 1, PaddingDirection::Left);
frame.render_widget(Clear, layout[2]);
frame.render_widget(Block::default().style(style()), layout[2]);

let offset = layout[2].height - 2;
layout[2] = add_padding(layout[2], offset, PaddingDirection::Top);

frame.render_widget(
Block::default().borders(Borders::TOP).border_style(
Style::default()
.fg(THEME.border_secondary())
.bg(THEME.background()),
),
Block::default()
.borders(Borders::TOP)
.border_style(style().fg(THEME.border_secondary())),
layout[2],
);

Expand All @@ -330,8 +318,8 @@ fn draw_summary<B: Backend>(frame: &mut Frame<B>, app: &mut App, mut area: Rect)

let tabs = Tabs::new(time_frames)
.select(app.summary_time_frame.idx())
.style(Style::default().fg(THEME.text_secondary()))
.highlight_style(Style::default().fg(THEME.text_primary()));
.style(style().fg(THEME.text_secondary()))
.highlight_style(style().fg(THEME.text_primary()));

frame.render_widget(tabs, bottom_layout[0]);

Expand All @@ -340,15 +328,15 @@ fn draw_summary<B: Backend>(frame: &mut Frame<B>, app: &mut App, mut area: Rect)

let up_arrow = Span::styled(
"ᐱ",
Style::default().fg(if more_up {
style().fg(if more_up {
THEME.text_normal()
} else {
THEME.gray()
}),
);
let down_arrow = Span::styled(
"ᐯ",
Style::default().fg(if more_down {
style().fg(if more_down {
THEME.text_normal()
} else {
THEME.gray()
Expand All @@ -369,7 +357,7 @@ fn draw_help<B: Backend>(frame: &mut Frame<B>, app: &mut App, area: Rect) {
frame.render_widget(
Paragraph::new(Text::styled(
"Increase screen size to display help",
Style::default(),
style(),
)),
layout,
);
Expand All @@ -383,7 +371,7 @@ fn draw_help<B: Backend>(frame: &mut Frame<B>, app: &mut App, area: Rect) {
fn draw_debug<B: Backend>(frame: &mut Frame<B>, app: &mut App, area: Rect) {
app.debug.mode = app.mode;

let debug_text = Text::styled(format!("{:?}", app.debug), Style::default());
let debug_text = Text::styled(format!("{:?}", app.debug), style());
let debug_paragraph = Paragraph::new(debug_text).wrap(Wrap { trim: true });

frame.render_widget(debug_paragraph, area);
Expand Down
7 changes: 6 additions & 1 deletion src/theme.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
use serde::Deserialize;
use tui::style::Color;
use tui::style::{Color, Style};

use self::de::deserialize_option_color_hex_string;
use crate::THEME;

pub fn style() -> Style {
Style::default().bg(THEME.background())
}

macro_rules! def_theme_struct_with_defaults {
($($name:ident => $color:expr),+) => {
Expand Down
15 changes: 7 additions & 8 deletions src/widget/add_stock.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
use tui::buffer::Buffer;
use tui::layout::{Alignment, Rect};
use tui::style::{Modifier, Style};
use tui::style::Modifier;
use tui::text::{Span, Spans};
use tui::widgets::{Paragraph, StatefulWidget, Widget, Wrap};

use super::block;
use crate::theme::style;
use crate::THEME;

pub struct AddStockState {
Expand Down Expand Up @@ -50,20 +51,18 @@ impl StatefulWidget for AddStockWidget {
fn render(self, area: Rect, buf: &mut Buffer, state: &mut Self::State) {
let spans = if !state.has_user_input && state.error_msg.is_some() {
Spans::from(vec![
Span::styled("> ", Style::default().fg(THEME.text_normal())),
Span::styled("> ", style().fg(THEME.text_normal())),
Span::styled(
state.error_msg.as_ref().unwrap(),
Style::default()
.add_modifier(Modifier::BOLD)
.fg(THEME.loss()),
style().add_modifier(Modifier::BOLD).fg(THEME.loss()),
),
])
} else {
Spans::from(vec![
Span::styled("> ", Style::default().fg(THEME.text_normal())),
Span::styled("> ", style().fg(THEME.text_normal())),
Span::styled(
&state.search_string,
Style::default()
style()
.add_modifier(Modifier::BOLD)
.fg(THEME.text_secondary()),
),
Expand All @@ -72,7 +71,7 @@ impl StatefulWidget for AddStockWidget {

Paragraph::new(spans)
.block(block::new(" Add Ticker "))
.style(Style::default())
.style(style())
.alignment(Alignment::Left)
.wrap(Wrap { trim: true })
.render(area, buf);
Expand Down
9 changes: 3 additions & 6 deletions src/widget/block.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
use tui::style::Style;
use tui::text::Span;
use tui::widgets::{Block, Borders};

use crate::theme::style;
use crate::THEME;

pub fn new(title: &str) -> Block {
Block::default()
.borders(Borders::ALL)
.border_style(Style::default().fg(THEME.border_primary()))
.title(Span::styled(
title,
Style::default().fg(THEME.text_normal()),
))
.border_style(style().fg(THEME.border_primary()))
.title(Span::styled(title, style().fg(THEME.text_normal())))
}
10 changes: 6 additions & 4 deletions src/widget/chart/prices_candlestick.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
use itertools::Itertools;
use tui::buffer::Buffer;
use tui::layout::{Constraint, Direction, Layout, Rect};
use tui::style::Style;
use tui::text::Span;
use tui::widgets::canvas::{Canvas, Line, Rectangle};
use tui::widgets::{Block, Borders, StatefulWidget, Widget};

use crate::common::{Price, TimeFrame};
use crate::draw::{add_padding, PaddingDirection};
use crate::theme::style;
use crate::widget::StockState;
use crate::{HIDE_PREV_CLOSE, THEME};

Expand Down Expand Up @@ -38,7 +38,7 @@ impl<'a> StatefulWidget for PricesCandlestickChart<'a> {
if !self.is_summary {
Block::default()
.borders(Borders::TOP)
.border_style(Style::default().fg(THEME.border_secondary()))
.border_style(style().fg(THEME.border_secondary()))
.render(area, buf);
area = add_padding(area, 1, PaddingDirection::Top);
}
Expand Down Expand Up @@ -174,14 +174,16 @@ impl<'a> StatefulWidget for PricesCandlestickChart<'a> {

if self.loaded {
Canvas::default()
.background_color(THEME.background())
.block(
Block::default()
.style(style())
.borders(if self.show_x_labels {
Borders::LEFT | Borders::BOTTOM
} else {
Borders::LEFT
})
.border_style(Style::default().fg(THEME.border_axis())),
.border_style(style().fg(THEME.border_axis())),
)
.x_bounds([0.0, num_candles as f64 * 4.0])
.y_bounds(state.y_bounds(min, max))
Expand Down Expand Up @@ -245,7 +247,7 @@ impl<'a> StatefulWidget for PricesCandlestickChart<'a> {
} else {
Borders::LEFT
})
.border_style(Style::default().fg(THEME.border_axis()))
.border_style(style().fg(THEME.border_axis()))
.render(layout[1], buf);
}
}
Expand Down
Loading

0 comments on commit e3a4c8f

Please sign in to comment.