feat(env): change default druid colors
This commit is contained in:
parent
fdedff21dd
commit
acd1a87e63
69
src/env.rs
69
src/env.rs
|
@ -1,10 +1,9 @@
|
|||
use crate::state;
|
||||
use druid::{Env, Key};
|
||||
use druid::{Color, Env, Key};
|
||||
|
||||
pub const TIMER_INIT_DURATION: Key<f64> = Key::new("hwt.env.comp.timer.init_duration");
|
||||
pub const TIMER_DURATION: Key<f64> = Key::new("hwt.env.comp.timer.duration");
|
||||
pub const TIMER_POSTPONE_DURATION: Key<f64> = Key::new("hwt.env.comp.timer.postpone_duration");
|
||||
pub const TIMER_WAIT_DURATION: Key<f64> = Key::new("hwt.env.comp.timer.wait_duration");
|
||||
|
||||
pub const MICRO_BREAK_TIMER_DURATION: Key<f64> = Key::new("hwt.env.widget.micro_break.duration");
|
||||
pub const MICRO_BREAK_TIMER_POSTPONE_DURATION: Key<f64> =
|
||||
|
@ -21,6 +20,22 @@ pub const REST_BREAK_TIMER_WAIT_DURATION: Key<f64> =
|
|||
pub const BREAK_NOTIFIER_TIMER_DURATION: Key<f64> = Key::new("hwt.env.widget.notifier.duration");
|
||||
|
||||
pub fn configure(env: &mut Env, _data: &state::App) {
|
||||
let col_def_white = hsl(0.0, 0.0, 1.0);
|
||||
// let col_def_black = hsl(0.0, 0.0, 0.0);
|
||||
let col_graphite = hsl(0.0, 0.0, 0.13);
|
||||
let col_pale = hsl(0.0, 0.0, 0.86);
|
||||
let col_faded = hsl(0.0, 0.0, 0.96);
|
||||
|
||||
// druid theme
|
||||
env.set(druid::theme::WINDOW_BACKGROUND_COLOR, col_def_white);
|
||||
env.set(druid::theme::BACKGROUND_DARK, col_pale.clone());
|
||||
env.set(druid::theme::BACKGROUND_LIGHT, col_faded.clone());
|
||||
env.set(druid::theme::BORDER_DARK, col_pale.clone());
|
||||
env.set(druid::theme::BORDER_LIGHT, col_faded.clone());
|
||||
env.set(druid::theme::LABEL_COLOR, col_graphite);
|
||||
env.set(druid::theme::BUTTON_DARK, col_pale);
|
||||
env.set(druid::theme::BUTTON_LIGHT, col_faded);
|
||||
|
||||
env.set(MICRO_BREAK_TIMER_DURATION, 10.0);
|
||||
env.set(MICRO_BREAK_TIMER_POSTPONE_DURATION, 10.0);
|
||||
env.set(MICRO_BREAK_TIMER_WAIT_DURATION, 30.0);
|
||||
|
@ -35,3 +50,53 @@ pub fn configure(env: &mut Env, _data: &state::App) {
|
|||
fn mins(m: f64) -> f64 {
|
||||
return m * 60.0;
|
||||
}
|
||||
|
||||
fn hsl(h: f64, s: f64, l: f64) -> Color {
|
||||
hsla(h, s, l, 1.0)
|
||||
}
|
||||
|
||||
fn hsla(h: f64, s: f64, l: f64, a: f64) -> Color {
|
||||
let (r, g, b) = hsl_to_rgb(h, s, l);
|
||||
Color::rgba(r, g, b, a)
|
||||
}
|
||||
|
||||
fn hsl_to_rgb(h: f64, s: f64, l: f64) -> (f64, f64, f64) {
|
||||
let r;
|
||||
let g;
|
||||
let b;
|
||||
|
||||
if s == 0.0 {
|
||||
r = l;
|
||||
g = l;
|
||||
b = l; // achromatic
|
||||
} else {
|
||||
let q = if l < 0.5 { l * (1. + s) } else { l + s - l * s };
|
||||
|
||||
let p = 2. * l - q;
|
||||
r = hue_to_rgb(p, q, h + 1. / 3.);
|
||||
g = hue_to_rgb(p, q, h);
|
||||
b = hue_to_rgb(p, q, h - 1. / 3.);
|
||||
}
|
||||
|
||||
return (r, g, b);
|
||||
}
|
||||
|
||||
fn hue_to_rgb(p: f64, q: f64, t: f64) -> f64 {
|
||||
let mut t = t;
|
||||
if t < 0. {
|
||||
t += 1.
|
||||
}
|
||||
if t > 1. {
|
||||
t -= 1.
|
||||
};
|
||||
if t < 1. / 6. {
|
||||
return p + (q - p) * 6. * t;
|
||||
}
|
||||
if t < 1. / 2. {
|
||||
return q;
|
||||
}
|
||||
if t < 2. / 3. {
|
||||
return p + (q - p) * (2. / 3. - t) * 6.;
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue