0 | module CyBy.Draw.Event
2 | import CyBy.Draw.Internal.Abbreviations
3 | import CyBy.Draw.Internal.Atom
4 | import CyBy.Draw.Internal.Graph
6 | import Derive.FromJSON.Simple
7 | import Derive.ToJSON.Simple
8 | import Derive.Prelude
14 | %language ElabReflection
21 | data ColorScheme = Black | CyBy | Groups | CPK | CDK | JMol | PyMol
23 | %runElab derive "ColorScheme" [Show,Eq,Ord,Finite,FromJSON,ToJSON]
31 | data Modifier = NoMod | Ctrl | Shift
33 | %runElab derive "Modifier" [Show, Eq]
38 | reset : (mod, current : Modifier) -> Modifier
39 | reset m c = if m == c then NoMod else c
47 | data DrawMsg : Type where
52 | ReadErr : String -> DrawMsg
54 | %runElab derive "DrawMsg" [Show, Eq]
57 | data DrawEvent : Type where
58 | ZoomIn : (atPos : Bool) -> DrawEvent
59 | ZoomOut : (atPos : Bool) -> DrawEvent
62 | SetElem : Elem -> DrawEvent
63 | ChgElem : Elem -> DrawEvent
64 | ChgCharge : Charge -> DrawEvent
65 | ChgMass : Maybe MassNr -> DrawEvent
66 | SelAbbr : Abbreviation -> DrawEvent
67 | EnableAbbr : DrawEvent
68 | SetBond : MolBond -> DrawEvent
69 | Move : (x,y : Double) -> DrawEvent
70 | LeftDown : DrawEvent
72 | MiddleDown : DrawEvent
73 | MiddleUp : DrawEvent
74 | SetTempl : CDGraph -> DrawEvent
75 | Load : CDGraph -> DrawEvent
76 | SelectMode : DrawEvent
77 | KeyDown : String -> DrawEvent
78 | KeyUp : String -> DrawEvent
79 | EraseMode : DrawEvent
86 | Resize : (h,w : Double) -> DrawEvent
87 | StartPSE : DrawEvent
91 | %runElab derive "DrawEvent" [Show, Eq]