feat: hide borders when only main graph is shown
This commit is contained in:
parent
d3f94b4acc
commit
cb2461b64f
2 changed files with 35 additions and 9 deletions
|
|
@ -6,12 +6,22 @@ use crate::app;
|
|||
|
||||
const CYAN: Color = Color::from_rgb8(0, 255, 255);
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct Graph {
|
||||
timeline: VecDeque<f32>,
|
||||
|
||||
pub show_borders: bool,
|
||||
pub cache: canvas::Cache,
|
||||
}
|
||||
impl Default for Graph {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
show_borders: true,
|
||||
|
||||
timeline: Default::default(),
|
||||
cache: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Graph {
|
||||
pub fn new(value: f32) -> Self {
|
||||
|
|
@ -46,11 +56,13 @@ impl canvas::Program<app::Message, Theme, Renderer> for Graph {
|
|||
_cursor: mouse::Cursor,
|
||||
) -> Vec<canvas::Geometry<Renderer>> {
|
||||
let geometry = self.cache.draw(renderer, bounds.size(), |frame| {
|
||||
frame.stroke_rectangle(
|
||||
Point::new(0., 0.),
|
||||
bounds.size(),
|
||||
canvas::Stroke::default().with_color(Color::from_rgb8(255, 0, 0)),
|
||||
);
|
||||
if self.show_borders {
|
||||
frame.stroke_rectangle(
|
||||
Point::new(0., 0.),
|
||||
bounds.size(),
|
||||
canvas::Stroke::default().with_color(Color::from_rgb8(255, 0, 0)),
|
||||
);
|
||||
}
|
||||
frame.stroke(
|
||||
&canvas::Path::new(|builder| {
|
||||
for (index, value) in self.timeline.iter().enumerate() {
|
||||
|
|
|
|||
|
|
@ -53,9 +53,18 @@ impl State {
|
|||
}
|
||||
fn update(&mut self, message: Message) -> Task<Message> {
|
||||
match message {
|
||||
Message::ToggleMain => self.is_main_section_shown.toggle(),
|
||||
Message::ToggleCpu => self.is_cpu_section_shown.toggle(),
|
||||
Message::ToggleMemory => self.is_memory_section_shown.toggle(),
|
||||
Message::ToggleMain => {
|
||||
self.is_main_section_shown.toggle();
|
||||
self.check_borders();
|
||||
}
|
||||
Message::ToggleCpu => {
|
||||
self.is_cpu_section_shown.toggle();
|
||||
self.check_borders();
|
||||
}
|
||||
Message::ToggleMemory => {
|
||||
self.is_memory_section_shown.toggle();
|
||||
self.check_borders();
|
||||
}
|
||||
|
||||
Message::Info(snapshot) => {
|
||||
self.uptime = snapshot.uptime();
|
||||
|
|
@ -140,6 +149,11 @@ impl State {
|
|||
fn title(&self) -> String {
|
||||
format!("itop {:?}", self.uptime)
|
||||
}
|
||||
|
||||
fn check_borders(&mut self) {
|
||||
self.total_cpu_graph.show_borders =
|
||||
self.is_cpu_section_shown || self.is_memory_section_shown;
|
||||
}
|
||||
}
|
||||
|
||||
pub fn run() -> Result<(), Error> {
|
||||
|
|
|
|||
Loading…
Reference in a new issue