Configurable background
This commit is contained in:
+7
-1
@@ -39,5 +39,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputMode": "active",
|
"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,
|
event_queue: EventQueue,
|
||||||
cmd_queue: Arc<Mutex<VecDeque<Cmd>>>,
|
cmd_queue: Arc<Mutex<VecDeque<Cmd>>>,
|
||||||
widget: Option<Box<dyn Widget + Send>>,
|
widget: Option<Box<dyn Widget + Send>>,
|
||||||
|
bg: Color,
|
||||||
inner: Arc<Mutex<AppInner>>,
|
inner: Arc<Mutex<AppInner>>,
|
||||||
last_damage: Option<Vec<(i32, i32, i32, i32)>>,
|
last_damage: Option<Vec<(i32, i32, i32, i32)>>,
|
||||||
last_dim: (u32, u32),
|
last_dim: (u32, u32),
|
||||||
@@ -256,14 +257,13 @@ impl App {
|
|||||||
force = true;
|
force = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
let bg = Color::new(0.0, 0.0, 0.0, 0.9);
|
|
||||||
if force {
|
if force {
|
||||||
buf.memset(&bg);
|
buf.memset(&self.bg);
|
||||||
}
|
}
|
||||||
let report = widget.draw(
|
let report = widget.draw(
|
||||||
&mut DrawContext {
|
&mut DrawContext {
|
||||||
buf: &mut buf,
|
buf: &mut buf,
|
||||||
bg: &bg,
|
bg: &self.bg,
|
||||||
time: &time,
|
time: &time,
|
||||||
force,
|
force,
|
||||||
},
|
},
|
||||||
@@ -337,7 +337,7 @@ impl App {
|
|||||||
self.redraw(true)
|
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)));
|
let inner = Arc::new(Mutex::new(AppInner::new(tx.clone(), output_mode, scale)));
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -543,6 +543,7 @@ impl App {
|
|||||||
cmd_queue: cmd_queue,
|
cmd_queue: cmd_queue,
|
||||||
pools: pools,
|
pools: pools,
|
||||||
widget: None,
|
widget: None,
|
||||||
|
bg: bg,
|
||||||
inner: inner,
|
inner: inner,
|
||||||
last_damage: None,
|
last_damage: None,
|
||||||
last_dim: (0, 0),
|
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 {
|
pub struct Color {
|
||||||
red: f32,
|
red: f32,
|
||||||
green: f32,
|
green: f32,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use crate::cmd::Cmd;
|
use crate::cmd::Cmd;
|
||||||
use crate::widget;
|
use crate::widget;
|
||||||
use crate::widgets;
|
use crate::widgets;
|
||||||
|
use crate::color::Color;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
use std::sync::mpsc::Sender;
|
use std::sync::mpsc::Sender;
|
||||||
@@ -149,6 +150,7 @@ pub struct Config {
|
|||||||
pub widget: Widget,
|
pub widget: Widget,
|
||||||
pub output_mode: OutputMode,
|
pub output_mode: OutputMode,
|
||||||
pub scale: u32,
|
pub scale: u32,
|
||||||
|
pub background: Color,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Config {
|
impl Default for Config {
|
||||||
@@ -204,6 +206,7 @@ impl Default for Config {
|
|||||||
},
|
},
|
||||||
output_mode: Default::default(),
|
output_mode: Default::default(),
|
||||||
scale: 1,
|
scale: 1,
|
||||||
|
background: Color::new(0.0, 0.0, 0.0, 0.9),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-1
@@ -107,6 +107,9 @@ fn main() {
|
|||||||
config::OutputMode::Active => OutputMode::Active,
|
config::OutputMode::Active => OutputMode::Active,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
let background = config.background;
|
||||||
|
|
||||||
let (tx_draw, rx_draw) = channel();
|
let (tx_draw, rx_draw) = channel();
|
||||||
let tx_draw_mod = tx_draw.clone();
|
let tx_draw_mod = tx_draw.clone();
|
||||||
let (mod_tx, mod_rx) = channel();
|
let (mod_tx, mod_rx) = channel();
|
||||||
@@ -118,7 +121,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();
|
let widget = mod_rx.recv().unwrap();
|
||||||
app.set_widget(widget).unwrap();
|
app.set_widget(widget).unwrap();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user