From 7845d6431389999cc4a94abb69b8474b0d9f9bd6 Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Sun, 4 Aug 2019 21:52:13 +0200 Subject: [PATCH] battery: Color battery bar based on state --- src/battery.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/battery.rs b/src/battery.rs index 5d4713a..7f22ceb 100644 --- a/src/battery.rs +++ b/src/battery.rs @@ -187,25 +187,31 @@ impl ModuleImpl for UpowerBattery { _time: &DateTime, ) -> Result, ::std::io::Error> { buf.memset(bg); - let c = Color::new(1.0, 1.0, 1.0, 1.0); + let text_color = Color::new(1.0, 1.0, 1.0, 1.0); + let bar_color = match self.inner.lock().unwrap().state { + UpowerBatteryState::Discharging | UpowerBatteryState::Unknown => Color::new(1.0, 1.0, 1.0, 1.0), + UpowerBatteryState::Charging | UpowerBatteryState::Full => Color::new(0.5, 1.0, 0.5, 1.0), + UpowerBatteryState::NotCharging | UpowerBatteryState::Empty => Color::new(1.0, 0.5, 0.5, 1.0), + }; + let inner = self.inner.lock().unwrap(); draw_text( ROBOTO_REGULAR, &mut buf.subdimensions((0, 0, 128, 24))?, bg, - &c, + &text_color, 24.0, "battery", )?; draw_bar( &mut buf.subdimensions((128, 0, 432, 24))?, - &c, + &bar_color, 432, 24, (inner.capacity as f32) / 100.0, )?; - draw_box(&mut buf.subdimensions((128, 0, 432, 24))?, &c, (432, 24))?; + draw_box(&mut buf.subdimensions((128, 0, 432, 24))?, &bar_color, (432, 24))?; Ok(vec![buf.get_signed_bounds()]) }