Skip to content

Commit

Permalink
perf: colors, layout cleaned up, improved
Browse files Browse the repository at this point in the history
  • Loading branch information
dsjkvf authored and 097115 committed Nov 9, 2023
1 parent 0724370 commit 4c72dbb
Show file tree
Hide file tree
Showing 8 changed files with 314 additions and 249 deletions.
21 changes: 13 additions & 8 deletions src/draw.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,14 @@ fn draw_main<B: Backend>(frame: &mut Frame<B>, app: &mut App, area: Rect) {
// layout[0] - Header
// layout[1] - Main widget
let mut layout = Layout::default()
.constraints([Constraint::Length(3), Constraint::Min(0)].as_ref())
// changed from 3 to 1 not to waste space
.constraints([Constraint::Length(0), Constraint::Min(0)].as_ref())
.split(area);

if !app.stocks.is_empty() {
frame.render_widget(crate::widget::block::new(" Tabs "), layout[0]);
layout[0] = add_padding(layout[0], 1, PaddingDirection::All);
// drawing the block disabled, a separating line is more than enough
// frame.render_widget(crate::widget::block::new(""), layout[0]);
// layout[0] = add_padding(layout[0], 1, PaddingDirection::All);

// header[0] - Stock symbol tabs
// header[1] - (Optional) help icon
Expand All @@ -126,18 +128,21 @@ 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().fg(THEME.text_secondary()))
.highlight_style(style().fg(THEME.text_primary())),
.style(style().fg(THEME.gray()))
// color updated from primary to normal
.highlight_style(style().fg(THEME.text_normal())),
header[0],
);
}

// Draw help icon
if !app.hide_help {
frame.render_widget(
Paragraph::new(Text::styled("Help '?'", style()))
.style(style().fg(THEME.text_normal()))
.alignment(Alignment::Center),
Paragraph::new(Text::styled("?", style()))
// color updated from normal to gray
.style(style().fg(THEME.gray()))
// alignment updated from center to right
.alignment(Alignment::Right),
header[1],
);
}
Expand Down
3 changes: 2 additions & 1 deletion src/widget/add_stock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ impl StatefulWidget for AddStockWidget {
&state.search_string,
style()
.add_modifier(Modifier::BOLD)
.fg(THEME.text_secondary()),
// color updated from secondary to normal
.fg(THEME.text_normal()),
),
])
};
Expand Down
3 changes: 2 additions & 1 deletion src/widget/block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use crate::THEME;
pub fn new(title: &str) -> Block {
Block::default()
.borders(Borders::ALL)
.border_style(style().fg(THEME.border_primary()))
// border color updated from secondary to gray
.border_style(style().fg(THEME.gray()))
.title(Span::styled(title, style().fg(THEME.text_normal())))
}
21 changes: 12 additions & 9 deletions src/widget/chart/prices_candlestick.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,14 @@ impl<'a> StatefulWidget for PricesCandlestickChart<'a> {
return;
}

if !self.is_summary {
Block::default()
.borders(Borders::TOP)
.border_style(style().fg(THEME.border_secondary()))
.render(area, buf);
area = add_padding(area, 1, PaddingDirection::Top);
}
// if !self.is_summary {
// Block::default()
// .borders(Borders::TOP)
// // border color updated from secondary to gray
// .border_style(style().fg(THEME.gray()))
// .render(area, buf);
// area = add_padding(area, 1, PaddingDirection::Top);
// }

let mut data = self.data.to_vec();
data.push(Price {
Expand Down Expand Up @@ -181,7 +182,8 @@ impl<'a> StatefulWidget for PricesCandlestickChart<'a> {
} else {
Borders::LEFT
})
.border_style(style().fg(THEME.border_axis())),
// border color updated from axis to gray
.border_style(style().fg(THEME.gray())),
)
.x_bounds([0.0, num_candles as f64 * 4.0])
.y_bounds(state.y_bounds(min, max))
Expand Down Expand Up @@ -245,7 +247,8 @@ impl<'a> StatefulWidget for PricesCandlestickChart<'a> {
} else {
Borders::LEFT
})
.border_style(style().fg(THEME.border_axis()))
// border color updated from axis to gray
.border_style(style().fg(THEME.gray()))
.render(layout[1], buf);
}
}
Expand Down
21 changes: 12 additions & 9 deletions src/widget/chart/prices_kagi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -332,13 +332,14 @@ impl<'a> StatefulWidget for PricesKagiChart<'a> {

let kagi_trends = calculate_trends(self.data, reversal_option, price_option);

if !self.is_summary {
Block::default()
.borders(Borders::TOP)
.border_style(style().fg(THEME.border_secondary()))
.render(area, buf);
area = add_padding(area, 1, PaddingDirection::Top);
}
// if !self.is_summary {
// Block::default()
// // border color updated from secondary to gray
// .borders(Borders::TOP)
// .border_style(style().fg(THEME.gray()))
// .render(area, buf);
// area = add_padding(area, 1, PaddingDirection::Top);
// }

// x_layout[0] - chart + y labels
// x_layout[1] - (x labels)
Expand Down Expand Up @@ -464,7 +465,8 @@ impl<'a> StatefulWidget for PricesKagiChart<'a> {
} else {
Borders::LEFT
})
.border_style(style().fg(THEME.border_axis())),
// border color updated from axis to gray
.border_style(style().fg(THEME.gray())),
)
.x_bounds([0.0, chart_width])
.y_bounds(state.y_bounds(min, max))
Expand Down Expand Up @@ -582,7 +584,8 @@ impl<'a> StatefulWidget for PricesKagiChart<'a> {
} else {
Borders::LEFT
})
.border_style(style().fg(THEME.border_axis()))
// border color updated from axis to gray
.border_style(style().fg(THEME.gray()))
.render(layout[1], buf);
}
}
Expand Down
23 changes: 13 additions & 10 deletions src/widget/chart/prices_line.rs
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,8 @@ impl<'a> StatefulWidget for PricesLineChart<'a> {
let axis = Axis::default().bounds(state.x_bounds(start, end, self.data));

if self.show_x_labels && self.loaded && !self.is_summary {
axis.labels(x_labels).style(style().fg(THEME.border_axis()))
// border color updated from axis to gray
axis.labels(x_labels).style(style().fg(THEME.gray()))
} else {
axis
}
Expand All @@ -206,17 +207,19 @@ impl<'a> StatefulWidget for PricesLineChart<'a> {
Axis::default()
.bounds(state.y_bounds(min, max))
.labels(state.y_labels(min, max))
.style(style().fg(THEME.border_axis())),
// border color updated from axis to gray
.style(style().fg(THEME.gray())),
);

if !self.is_summary {
chart = chart.block(
Block::default()
.style(style().fg(THEME.border_secondary()))
.borders(Borders::TOP)
.border_style(style()),
);
}
// if !self.is_summary {
// chart = chart.block(
// Block::default()
// // border color updated from secondary to gray
// .style(style().fg(THEME.gray()))
// .borders(Borders::TOP)
// .border_style(style()),
// );
// }

chart.render(area, buf);
}
Expand Down
3 changes: 2 additions & 1 deletion src/widget/chart/volume_bar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ impl<'a> StatefulWidget for VolumeBarChart<'a> {

Block::default()
.borders(Borders::LEFT)
.border_style(style().fg(THEME.border_axis()))
// border color updated from axis to gray
.border_style(style().fg(THEME.gray()))
.render(volume_chunks, buf);

volume_chunks.x += 1;
Expand Down
Loading

0 comments on commit 4c72dbb

Please sign in to comment.