get rid of palette dependency
This commit is contained in:
parent
2b7d8eaaca
commit
44e13db1ef
7 changed files with 119 additions and 99 deletions
|
|
@ -9,4 +9,4 @@ publish = false
|
|||
iced.workspace = true
|
||||
iced.features = ["canvas"]
|
||||
|
||||
palette.workspace = true
|
||||
palette = "0.7"
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ pub enum Message {
|
|||
impl ColorPalette {
|
||||
fn update(&mut self, message: Message) {
|
||||
let srgb = match message {
|
||||
Message::RgbColorChanged(rgb) => Rgb::from(rgb),
|
||||
Message::RgbColorChanged(rgb) => to_rgb(rgb),
|
||||
Message::HslColorChanged(hsl) => Rgb::from_color(hsl),
|
||||
Message::HsvColorChanged(hsv) => Rgb::from_color(hsv),
|
||||
Message::HwbColorChanged(hwb) => Rgb::from_color(hwb),
|
||||
|
|
@ -54,13 +54,13 @@ impl ColorPalette {
|
|||
Message::LchColorChanged(lch) => Rgb::from_color(lch),
|
||||
};
|
||||
|
||||
self.theme = Theme::new(srgb);
|
||||
self.theme = Theme::new(to_color(srgb));
|
||||
}
|
||||
|
||||
fn view(&self) -> Element<Message> {
|
||||
let base = self.theme.base;
|
||||
|
||||
let srgb = Rgb::from(base);
|
||||
let srgb = to_rgb(base);
|
||||
let hsl = palette::Hsl::from_color(srgb);
|
||||
let hsv = palette::Hsv::from_color(srgb);
|
||||
let hwb = palette::Hwb::from_color(srgb);
|
||||
|
|
@ -109,7 +109,7 @@ impl Theme {
|
|||
let base = base.into();
|
||||
|
||||
// Convert to HSL color for manipulation
|
||||
let hsl = Hsl::from_color(Rgb::from(base));
|
||||
let hsl = Hsl::from_color(to_rgb(base));
|
||||
|
||||
let lower = [
|
||||
hsl.shift_hue(-135.0).lighten(0.075),
|
||||
|
|
@ -128,12 +128,12 @@ impl Theme {
|
|||
Theme {
|
||||
lower: lower
|
||||
.iter()
|
||||
.map(|&color| Rgb::from_color(color).into())
|
||||
.map(|&color| to_color(Rgb::from_color(color)))
|
||||
.collect(),
|
||||
base,
|
||||
higher: higher
|
||||
.iter()
|
||||
.map(|&color| Rgb::from_color(color).into())
|
||||
.map(|&color| to_color(Rgb::from_color(color)))
|
||||
.collect(),
|
||||
canvas_cache: canvas::Cache::default(),
|
||||
}
|
||||
|
|
@ -216,14 +216,14 @@ impl Theme {
|
|||
|
||||
text.align_y = alignment::Vertical::Bottom;
|
||||
|
||||
let hsl = Hsl::from_color(Rgb::from(self.base));
|
||||
let hsl = Hsl::from_color(to_rgb(self.base));
|
||||
for i in 0..self.len() {
|
||||
let pct = (i as f32 + 1.0) / (self.len() as f32 + 1.0);
|
||||
let graded = Hsl {
|
||||
lightness: 1.0 - pct,
|
||||
..hsl
|
||||
};
|
||||
let color: Color = Rgb::from_color(graded).into();
|
||||
let color: Color = to_color(Rgb::from_color(graded));
|
||||
|
||||
let anchor = Point {
|
||||
x: (i as f32) * box_size.width,
|
||||
|
|
@ -475,3 +475,21 @@ impl ColorSpace for palette::Lch {
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
fn to_rgb(color: Color) -> Rgb {
|
||||
Rgb {
|
||||
red: color.r,
|
||||
green: color.g,
|
||||
blue: color.b,
|
||||
..Rgb::default()
|
||||
}
|
||||
}
|
||||
|
||||
fn to_color(rgb: Rgb) -> Color {
|
||||
Color {
|
||||
r: rgb.red,
|
||||
g: rgb.green,
|
||||
b: rgb.blue,
|
||||
a: 1.0,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue