Update to druid's pointer events branch #41

Open
enrico wants to merge 11 commits from pointer_events into master
1 changed files with 15 additions and 7 deletions
Showing only changes of commit fd9a8a3685 - Show all commits

View File

@ -16,6 +16,7 @@
use std::vec::Vec;
use druid::Color;
use im::{vector, Vector};
use serde::de::{Deserializer, SeqAccess, Visitor};
@ -27,12 +28,6 @@ pub struct Path {
pub kurbo_path: druid::kurbo::BezPath,
}
#[derive(Serialize, Deserialize)]
#[serde(remote = "druid::Color")]
enum ColorDef {
Rgba32(u32),
}
struct Interval {
start_pos: f64,
end_pos: f64,
@ -86,11 +81,24 @@ pub enum CanvasElement {
Freehand {
path: Path,
thickness: f64,
#[serde(with = "ColorDef")]
#[serde(serialize_with = "serialize_color", deserialize_with = "deserialize_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 {
pub fn bounding_box(&self) -> druid::Rect {
match self {