jellyflow_runtime/runtime/events/
viewport.rs1use serde::{Deserialize, Serialize};
2
3use jellyflow_core::core::CanvasPoint;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7#[serde(rename_all = "snake_case")]
8pub enum ViewportMoveKind {
9 PanDrag,
11 PanInertia,
13 PanScroll,
15 ZoomWheel,
17 ZoomPinch,
19 ZoomDoubleClick,
21}
22
23#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
24#[serde(rename_all = "snake_case")]
25pub enum ViewportMoveEndOutcome {
26 Ended,
27 Canceled,
28}
29
30#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
31pub struct ViewportMoveStart {
32 pub kind: ViewportMoveKind,
33 pub pan: CanvasPoint,
34 pub zoom: f32,
35}
36
37#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
38pub struct ViewportMove {
39 pub kind: ViewportMoveKind,
40 pub pan: CanvasPoint,
41 pub zoom: f32,
42}
43
44#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
45pub struct ViewportMoveEnd {
46 pub kind: ViewportMoveKind,
47 pub pan: CanvasPoint,
48 pub zoom: f32,
49 pub outcome: ViewportMoveEndOutcome,
50}