module Eventloop.Module.Websocket.Mouse.Types where
import GHC.Generics (Generic)
import Control.DeepSeq
import Eventloop.Types.Common
import Eventloop.Utility.Vectors
data MouseIn = Mouse MouseType NumericId MouseEvent Point
deriving (Eq, Show)
data MouseType = MouseCanvas
| MouseSVG
deriving (Eq, Show)
data MouseEvent = Click MouseButton
| DoubleClick MouseButton
| MouseMove
| MouseDown MouseButton
| MouseUp MouseButton
| MouseEnter
| MouseLeave
deriving (Eq, Show)
data MouseButton = MouseLeft
| MouseRight
| MouseMiddle
deriving (Eq, Show, Generic, NFData)