Update to druid's pointer events branch #41
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue