Update to druid's pointer events branch #41
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
use std::vec::Vec;
|
use std::vec::Vec;
|
||||||
|
|
||||||
|
use druid::Color;
|
||||||
use im::{vector, Vector};
|
use im::{vector, Vector};
|
||||||
|
|
||||||
use serde::de::{Deserializer, SeqAccess, Visitor};
|
use serde::de::{Deserializer, SeqAccess, Visitor};
|
||||||
|
|
@ -27,12 +28,6 @@ pub struct Path {
|
||||||
pub kurbo_path: druid::kurbo::BezPath,
|
pub kurbo_path: druid::kurbo::BezPath,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize)]
|
|
||||||
#[serde(remote = "druid::Color")]
|
|
||||||
enum ColorDef {
|
|
||||||
Rgba32(u32),
|
|
||||||
}
|
|
||||||
|
|
||||||
struct Interval {
|
struct Interval {
|
||||||
start_pos: f64,
|
start_pos: f64,
|
||||||
end_pos: f64,
|
end_pos: f64,
|
||||||
|
|
@ -86,11 +81,24 @@ pub enum CanvasElement {
|
||||||
Freehand {
|
Freehand {
|
||||||
path: Path,
|
path: Path,
|
||||||
thickness: f64,
|
thickness: f64,
|
||||||
#[serde(with = "ColorDef")]
|
#[serde(serialize_with = "serialize_color", deserialize_with = "deserialize_color")]
|
||||||
stroke_color: druid::Color,
|
stroke_color: druid::Color,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn serialize_color<S>(c: &druid::Color, ser: S) -> Result<S::Ok, S::Error>
|
||||||
|
where S: Serializer
|
||||||
|
{
|
||||||
|
ser.serialize_u32(c.as_rgba_u32())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn deserialize_color<'de, D>(de: D) -> Result<druid::Color, D::Error>
|
||||||
|
where D: Deserializer<'de>
|
||||||
|
{
|
||||||
|
let c = u32::deserialize(de)?;
|
||||||
|
Ok(druid::Color::from_rgba32_u32(c))
|
||||||
|
}
|
||||||
|
|
||||||
impl CanvasElement {
|
impl CanvasElement {
|
||||||
pub fn bounding_box(&self) -> druid::Rect {
|
pub fn bounding_box(&self) -> druid::Rect {
|
||||||
match self {
|
match self {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue