Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6bb65c28c7 | ||
|
|
64ddb16147 | ||
|
|
1c02bfd339 | ||
|
|
d10883169f |
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "wldash"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
authors = ["Kenny Levinsen <kl@kl.wtf>"]
|
||||
edition = "2018"
|
||||
|
||||
|
||||
+7
-1
@@ -39,5 +39,11 @@
|
||||
}
|
||||
},
|
||||
"outputMode": "active",
|
||||
"scale": 1
|
||||
"scale": 1,
|
||||
"background": {
|
||||
"red": 0,
|
||||
"green": 0,
|
||||
"blue": 0,
|
||||
"opacity": 0.9
|
||||
}
|
||||
}
|
||||
+5
-4
@@ -203,6 +203,7 @@ pub struct App {
|
||||
event_queue: EventQueue,
|
||||
cmd_queue: Arc<Mutex<VecDeque<Cmd>>>,
|
||||
widget: Option<Box<dyn Widget + Send>>,
|
||||
bg: Color,
|
||||
inner: Arc<Mutex<AppInner>>,
|
||||
last_damage: Option<Vec<(i32, i32, i32, i32)>>,
|
||||
last_dim: (u32, u32),
|
||||
@@ -256,14 +257,13 @@ impl App {
|
||||
force = true;
|
||||
}
|
||||
|
||||
let bg = Color::new(0.0, 0.0, 0.0, 0.9);
|
||||
if force {
|
||||
buf.memset(&bg);
|
||||
buf.memset(&self.bg);
|
||||
}
|
||||
let report = widget.draw(
|
||||
&mut DrawContext {
|
||||
buf: &mut buf,
|
||||
bg: &bg,
|
||||
bg: &self.bg,
|
||||
time: &time,
|
||||
force,
|
||||
},
|
||||
@@ -337,7 +337,7 @@ impl App {
|
||||
self.redraw(true)
|
||||
}
|
||||
|
||||
pub fn new(tx: Sender<Cmd>, output_mode: OutputMode, scale: u32) -> App {
|
||||
pub fn new(tx: Sender<Cmd>, output_mode: OutputMode, bg: Color, scale: u32) -> App {
|
||||
let inner = Arc::new(Mutex::new(AppInner::new(tx.clone(), output_mode, scale)));
|
||||
|
||||
//
|
||||
@@ -543,6 +543,7 @@ impl App {
|
||||
cmd_queue: cmd_queue,
|
||||
pools: pools,
|
||||
widget: None,
|
||||
bg: bg,
|
||||
inner: inner,
|
||||
last_damage: None,
|
||||
last_dim: (0, 0),
|
||||
|
||||
+3
-1
@@ -1,4 +1,6 @@
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Copy, Default)]
|
||||
pub struct Color {
|
||||
red: f32,
|
||||
green: f32,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use crate::cmd::Cmd;
|
||||
use crate::color::Color;
|
||||
use crate::widget;
|
||||
use crate::widgets;
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -149,6 +150,7 @@ pub struct Config {
|
||||
pub widget: Widget,
|
||||
pub output_mode: OutputMode,
|
||||
pub scale: u32,
|
||||
pub background: Color,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
@@ -204,6 +206,7 @@ impl Default for Config {
|
||||
},
|
||||
output_mode: Default::default(),
|
||||
scale: 1,
|
||||
background: Color::new(0.0, 0.0, 0.0, 0.9),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -107,6 +107,8 @@ fn main() {
|
||||
config::OutputMode::Active => OutputMode::Active,
|
||||
};
|
||||
|
||||
let background = config.background;
|
||||
|
||||
let (tx_draw, rx_draw) = channel();
|
||||
let tx_draw_mod = tx_draw.clone();
|
||||
let (mod_tx, mod_rx) = channel();
|
||||
@@ -118,7 +120,7 @@ fn main() {
|
||||
}
|
||||
});
|
||||
|
||||
let mut app = App::new(tx_draw, output_mode, scale);
|
||||
let mut app = App::new(tx_draw, output_mode, background, scale);
|
||||
let widget = mod_rx.recv().unwrap();
|
||||
app.set_widget(widget).unwrap();
|
||||
|
||||
|
||||
@@ -46,7 +46,9 @@ impl Clock {
|
||||
|
||||
impl Widget for Clock {
|
||||
fn size(&self) -> (u32, u32) {
|
||||
((2.0 * self.size).ceil() as u32, self.size.ceil() as u32)
|
||||
let digit = (self.size * 0.45).ceil() as u32;
|
||||
let colon = (self.size * 0.20).ceil() as u32;
|
||||
(digit * 4 + colon, self.size.ceil() as u32)
|
||||
}
|
||||
|
||||
fn draw(
|
||||
@@ -55,7 +57,6 @@ impl Widget for Clock {
|
||||
pos: (u32, u32),
|
||||
) -> Result<DrawReport, ::std::io::Error> {
|
||||
let (width, height) = self.size();
|
||||
|
||||
if !(ctx.time.date() != self.cur_time.date()
|
||||
|| ctx.time.hour() != self.cur_time.hour()
|
||||
|| ctx.time.minute() != self.cur_time.minute()
|
||||
@@ -71,7 +72,7 @@ impl Widget for Clock {
|
||||
|
||||
let digit = (self.size * 0.45).ceil() as u32;
|
||||
let colon = (self.size * 0.20).ceil() as u32;
|
||||
self.clock_cache.draw_text_fixed_width(
|
||||
let dim = self.clock_cache.draw_text_fixed_width(
|
||||
buf,
|
||||
ctx.bg,
|
||||
&Color::new(1.0, 1.0, 1.0, 1.0),
|
||||
|
||||
Reference in New Issue
Block a user