{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE PolyKinds #-} #ifdef USE_TEMPLATE_HASKELL {-# LANGUAGE TemplateHaskell #-} #endif {-# LANGUAGE TypeFamilies #-} module Reflex.Dom.Builder.Class.Events where #ifdef USE_TEMPLATE_HASKELL import Data.GADT.Compare.TH #else import Data.GADT.Compare (GOrdering(..), (:~:)(..), GEq(..), GCompare(..)) #endif import Data.Text (Text) data EventTag = AbortTag | BlurTag | ChangeTag | ClickTag | | DblclickTag | DragTag | DragendTag | DragenterTag | DragleaveTag | DragoverTag | DragstartTag | DropTag | ErrorTag | FocusTag | InputTag | InvalidTag | KeydownTag | KeypressTag | KeyupTag | LoadTag | MousedownTag | MouseenterTag | MouseleaveTag | MousemoveTag | MouseoutTag | MouseoverTag | MouseupTag | MousewheelTag | ScrollTag | SelectTag | SubmitTag | WheelTag | BeforecutTag | CutTag | BeforecopyTag | CopyTag | BeforepasteTag | PasteTag | ResetTag | SearchTag | SelectstartTag | TouchstartTag | TouchmoveTag | TouchendTag | TouchcancelTag data EventName :: EventTag -> * where Abort :: EventName 'AbortTag Blur :: EventName 'BlurTag Change :: EventName 'ChangeTag Click :: EventName 'ClickTag :: EventName 'ContextmenuTag Dblclick :: EventName 'DblclickTag Drag :: EventName 'DragTag Dragend :: EventName 'DragendTag Dragenter :: EventName 'DragenterTag Dragleave :: EventName 'DragleaveTag Dragover :: EventName 'DragoverTag Dragstart :: EventName 'DragstartTag Drop :: EventName 'DropTag Error :: EventName 'ErrorTag Focus :: EventName 'FocusTag Input :: EventName 'InputTag Invalid :: EventName 'InvalidTag Keydown :: EventName 'KeydownTag Keypress :: EventName 'KeypressTag Keyup :: EventName 'KeyupTag Load :: EventName 'LoadTag Mousedown :: EventName 'MousedownTag Mouseenter :: EventName 'MouseenterTag Mouseleave :: EventName 'MouseleaveTag Mousemove :: EventName 'MousemoveTag Mouseout :: EventName 'MouseoutTag Mouseover :: EventName 'MouseoverTag Mouseup :: EventName 'MouseupTag Mousewheel :: EventName 'MousewheelTag Scroll :: EventName 'ScrollTag Select :: EventName 'SelectTag Submit :: EventName 'SubmitTag Wheel :: EventName 'WheelTag Beforecut :: EventName 'BeforecutTag Cut :: EventName 'CutTag Beforecopy :: EventName 'BeforecopyTag Copy :: EventName 'CopyTag Beforepaste :: EventName 'BeforepasteTag Paste :: EventName 'PasteTag Reset :: EventName 'ResetTag Search :: EventName 'SearchTag Selectstart :: EventName 'SelectstartTag Touchstart :: EventName 'TouchstartTag Touchmove :: EventName 'TouchmoveTag Touchend :: EventName 'TouchendTag Touchcancel :: EventName 'TouchcancelTag newtype EventResult en = EventResult { EventResult en -> EventResultType en unEventResult :: EventResultType en } type family EventResultType (en :: EventTag) :: * where EventResultType 'ClickTag = () EventResultType 'DblclickTag = (Int, Int) EventResultType 'KeypressTag = Word EventResultType 'KeydownTag = Word EventResultType 'KeyupTag = Word EventResultType 'ScrollTag = Double EventResultType 'MousemoveTag = (Int, Int) EventResultType 'MousedownTag = (Int, Int) EventResultType 'MouseupTag = (Int, Int) EventResultType 'MouseenterTag = () EventResultType 'MouseleaveTag = () EventResultType 'FocusTag = () EventResultType 'BlurTag = () EventResultType 'ChangeTag = () EventResultType 'DragTag = () EventResultType 'DragendTag = () EventResultType 'DragenterTag = () EventResultType 'DragleaveTag = () EventResultType 'DragoverTag = () EventResultType 'DragstartTag = () EventResultType 'DropTag = () EventResultType 'AbortTag = () EventResultType 'ContextmenuTag = () EventResultType 'ErrorTag = () EventResultType 'InputTag = () EventResultType 'InvalidTag = () EventResultType 'LoadTag = () EventResultType 'MouseoutTag = () EventResultType 'MouseoverTag = () EventResultType 'MousewheelTag = () EventResultType 'SelectTag = () EventResultType 'SubmitTag = () EventResultType 'BeforecutTag = () EventResultType 'CutTag = () EventResultType 'BeforecopyTag = () EventResultType 'CopyTag = () EventResultType 'BeforepasteTag = () EventResultType 'PasteTag = Maybe Text EventResultType 'ResetTag = () EventResultType 'SearchTag = () EventResultType 'SelectstartTag = () EventResultType 'TouchstartTag = TouchEventResult EventResultType 'TouchmoveTag = TouchEventResult EventResultType 'TouchendTag = TouchEventResult EventResultType 'TouchcancelTag = TouchEventResult EventResultType 'WheelTag = WheelEventResult data DeltaMode = DeltaPixel | DeltaLine | DeltaPage deriving (Int -> DeltaMode -> ShowS [DeltaMode] -> ShowS DeltaMode -> String (Int -> DeltaMode -> ShowS) -> (DeltaMode -> String) -> ([DeltaMode] -> ShowS) -> Show DeltaMode forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [DeltaMode] -> ShowS $cshowList :: [DeltaMode] -> ShowS show :: DeltaMode -> String $cshow :: DeltaMode -> String showsPrec :: Int -> DeltaMode -> ShowS $cshowsPrec :: Int -> DeltaMode -> ShowS Show, ReadPrec [DeltaMode] ReadPrec DeltaMode Int -> ReadS DeltaMode ReadS [DeltaMode] (Int -> ReadS DeltaMode) -> ReadS [DeltaMode] -> ReadPrec DeltaMode -> ReadPrec [DeltaMode] -> Read DeltaMode forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [DeltaMode] $creadListPrec :: ReadPrec [DeltaMode] readPrec :: ReadPrec DeltaMode $creadPrec :: ReadPrec DeltaMode readList :: ReadS [DeltaMode] $creadList :: ReadS [DeltaMode] readsPrec :: Int -> ReadS DeltaMode $creadsPrec :: Int -> ReadS DeltaMode Read, DeltaMode -> DeltaMode -> Bool (DeltaMode -> DeltaMode -> Bool) -> (DeltaMode -> DeltaMode -> Bool) -> Eq DeltaMode forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: DeltaMode -> DeltaMode -> Bool $c/= :: DeltaMode -> DeltaMode -> Bool == :: DeltaMode -> DeltaMode -> Bool $c== :: DeltaMode -> DeltaMode -> Bool Eq, Eq DeltaMode Eq DeltaMode => (DeltaMode -> DeltaMode -> Ordering) -> (DeltaMode -> DeltaMode -> Bool) -> (DeltaMode -> DeltaMode -> Bool) -> (DeltaMode -> DeltaMode -> Bool) -> (DeltaMode -> DeltaMode -> Bool) -> (DeltaMode -> DeltaMode -> DeltaMode) -> (DeltaMode -> DeltaMode -> DeltaMode) -> Ord DeltaMode DeltaMode -> DeltaMode -> Bool DeltaMode -> DeltaMode -> Ordering DeltaMode -> DeltaMode -> DeltaMode forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: DeltaMode -> DeltaMode -> DeltaMode $cmin :: DeltaMode -> DeltaMode -> DeltaMode max :: DeltaMode -> DeltaMode -> DeltaMode $cmax :: DeltaMode -> DeltaMode -> DeltaMode >= :: DeltaMode -> DeltaMode -> Bool $c>= :: DeltaMode -> DeltaMode -> Bool > :: DeltaMode -> DeltaMode -> Bool $c> :: DeltaMode -> DeltaMode -> Bool <= :: DeltaMode -> DeltaMode -> Bool $c<= :: DeltaMode -> DeltaMode -> Bool < :: DeltaMode -> DeltaMode -> Bool $c< :: DeltaMode -> DeltaMode -> Bool compare :: DeltaMode -> DeltaMode -> Ordering $ccompare :: DeltaMode -> DeltaMode -> Ordering $cp1Ord :: Eq DeltaMode Ord, DeltaMode DeltaMode -> DeltaMode -> Bounded DeltaMode forall a. a -> a -> Bounded a maxBound :: DeltaMode $cmaxBound :: DeltaMode minBound :: DeltaMode $cminBound :: DeltaMode Bounded, Int -> DeltaMode DeltaMode -> Int DeltaMode -> [DeltaMode] DeltaMode -> DeltaMode DeltaMode -> DeltaMode -> [DeltaMode] DeltaMode -> DeltaMode -> DeltaMode -> [DeltaMode] (DeltaMode -> DeltaMode) -> (DeltaMode -> DeltaMode) -> (Int -> DeltaMode) -> (DeltaMode -> Int) -> (DeltaMode -> [DeltaMode]) -> (DeltaMode -> DeltaMode -> [DeltaMode]) -> (DeltaMode -> DeltaMode -> [DeltaMode]) -> (DeltaMode -> DeltaMode -> DeltaMode -> [DeltaMode]) -> Enum DeltaMode forall a. (a -> a) -> (a -> a) -> (Int -> a) -> (a -> Int) -> (a -> [a]) -> (a -> a -> [a]) -> (a -> a -> [a]) -> (a -> a -> a -> [a]) -> Enum a enumFromThenTo :: DeltaMode -> DeltaMode -> DeltaMode -> [DeltaMode] $cenumFromThenTo :: DeltaMode -> DeltaMode -> DeltaMode -> [DeltaMode] enumFromTo :: DeltaMode -> DeltaMode -> [DeltaMode] $cenumFromTo :: DeltaMode -> DeltaMode -> [DeltaMode] enumFromThen :: DeltaMode -> DeltaMode -> [DeltaMode] $cenumFromThen :: DeltaMode -> DeltaMode -> [DeltaMode] enumFrom :: DeltaMode -> [DeltaMode] $cenumFrom :: DeltaMode -> [DeltaMode] fromEnum :: DeltaMode -> Int $cfromEnum :: DeltaMode -> Int toEnum :: Int -> DeltaMode $ctoEnum :: Int -> DeltaMode pred :: DeltaMode -> DeltaMode $cpred :: DeltaMode -> DeltaMode succ :: DeltaMode -> DeltaMode $csucc :: DeltaMode -> DeltaMode Enum) data WheelEventResult = WheelEventResult { WheelEventResult -> Double _wheelEventResult_deltaX :: Double , WheelEventResult -> Double _wheelEventResult_deltaY :: Double , WheelEventResult -> Double _wheelEventResult_deltaZ :: Double , WheelEventResult -> DeltaMode _wheelEventResult_deltaMode :: DeltaMode } deriving (Int -> WheelEventResult -> ShowS [WheelEventResult] -> ShowS WheelEventResult -> String (Int -> WheelEventResult -> ShowS) -> (WheelEventResult -> String) -> ([WheelEventResult] -> ShowS) -> Show WheelEventResult forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [WheelEventResult] -> ShowS $cshowList :: [WheelEventResult] -> ShowS show :: WheelEventResult -> String $cshow :: WheelEventResult -> String showsPrec :: Int -> WheelEventResult -> ShowS $cshowsPrec :: Int -> WheelEventResult -> ShowS Show, ReadPrec [WheelEventResult] ReadPrec WheelEventResult Int -> ReadS WheelEventResult ReadS [WheelEventResult] (Int -> ReadS WheelEventResult) -> ReadS [WheelEventResult] -> ReadPrec WheelEventResult -> ReadPrec [WheelEventResult] -> Read WheelEventResult forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [WheelEventResult] $creadListPrec :: ReadPrec [WheelEventResult] readPrec :: ReadPrec WheelEventResult $creadPrec :: ReadPrec WheelEventResult readList :: ReadS [WheelEventResult] $creadList :: ReadS [WheelEventResult] readsPrec :: Int -> ReadS WheelEventResult $creadsPrec :: Int -> ReadS WheelEventResult Read, WheelEventResult -> WheelEventResult -> Bool (WheelEventResult -> WheelEventResult -> Bool) -> (WheelEventResult -> WheelEventResult -> Bool) -> Eq WheelEventResult forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: WheelEventResult -> WheelEventResult -> Bool $c/= :: WheelEventResult -> WheelEventResult -> Bool == :: WheelEventResult -> WheelEventResult -> Bool $c== :: WheelEventResult -> WheelEventResult -> Bool Eq, Eq WheelEventResult Eq WheelEventResult => (WheelEventResult -> WheelEventResult -> Ordering) -> (WheelEventResult -> WheelEventResult -> Bool) -> (WheelEventResult -> WheelEventResult -> Bool) -> (WheelEventResult -> WheelEventResult -> Bool) -> (WheelEventResult -> WheelEventResult -> Bool) -> (WheelEventResult -> WheelEventResult -> WheelEventResult) -> (WheelEventResult -> WheelEventResult -> WheelEventResult) -> Ord WheelEventResult WheelEventResult -> WheelEventResult -> Bool WheelEventResult -> WheelEventResult -> Ordering WheelEventResult -> WheelEventResult -> WheelEventResult forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: WheelEventResult -> WheelEventResult -> WheelEventResult $cmin :: WheelEventResult -> WheelEventResult -> WheelEventResult max :: WheelEventResult -> WheelEventResult -> WheelEventResult $cmax :: WheelEventResult -> WheelEventResult -> WheelEventResult >= :: WheelEventResult -> WheelEventResult -> Bool $c>= :: WheelEventResult -> WheelEventResult -> Bool > :: WheelEventResult -> WheelEventResult -> Bool $c> :: WheelEventResult -> WheelEventResult -> Bool <= :: WheelEventResult -> WheelEventResult -> Bool $c<= :: WheelEventResult -> WheelEventResult -> Bool < :: WheelEventResult -> WheelEventResult -> Bool $c< :: WheelEventResult -> WheelEventResult -> Bool compare :: WheelEventResult -> WheelEventResult -> Ordering $ccompare :: WheelEventResult -> WheelEventResult -> Ordering $cp1Ord :: Eq WheelEventResult Ord) data TouchEventResult = TouchEventResult { TouchEventResult -> Bool _touchEventResult_altKey :: Bool , TouchEventResult -> [TouchResult] _touchEventResult_changedTouches :: [TouchResult] , TouchEventResult -> Bool _touchEventResult_ctrlKey :: Bool , TouchEventResult -> Bool _touchEventResult_metaKey :: Bool , TouchEventResult -> Bool _touchEventResult_shiftKey :: Bool , TouchEventResult -> [TouchResult] _touchEventResult_targetTouches :: [TouchResult] , TouchEventResult -> [TouchResult] _touchEventResult_touches :: [TouchResult] } deriving (Int -> TouchEventResult -> ShowS [TouchEventResult] -> ShowS TouchEventResult -> String (Int -> TouchEventResult -> ShowS) -> (TouchEventResult -> String) -> ([TouchEventResult] -> ShowS) -> Show TouchEventResult forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [TouchEventResult] -> ShowS $cshowList :: [TouchEventResult] -> ShowS show :: TouchEventResult -> String $cshow :: TouchEventResult -> String showsPrec :: Int -> TouchEventResult -> ShowS $cshowsPrec :: Int -> TouchEventResult -> ShowS Show, ReadPrec [TouchEventResult] ReadPrec TouchEventResult Int -> ReadS TouchEventResult ReadS [TouchEventResult] (Int -> ReadS TouchEventResult) -> ReadS [TouchEventResult] -> ReadPrec TouchEventResult -> ReadPrec [TouchEventResult] -> Read TouchEventResult forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [TouchEventResult] $creadListPrec :: ReadPrec [TouchEventResult] readPrec :: ReadPrec TouchEventResult $creadPrec :: ReadPrec TouchEventResult readList :: ReadS [TouchEventResult] $creadList :: ReadS [TouchEventResult] readsPrec :: Int -> ReadS TouchEventResult $creadsPrec :: Int -> ReadS TouchEventResult Read, TouchEventResult -> TouchEventResult -> Bool (TouchEventResult -> TouchEventResult -> Bool) -> (TouchEventResult -> TouchEventResult -> Bool) -> Eq TouchEventResult forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: TouchEventResult -> TouchEventResult -> Bool $c/= :: TouchEventResult -> TouchEventResult -> Bool == :: TouchEventResult -> TouchEventResult -> Bool $c== :: TouchEventResult -> TouchEventResult -> Bool Eq, Eq TouchEventResult Eq TouchEventResult => (TouchEventResult -> TouchEventResult -> Ordering) -> (TouchEventResult -> TouchEventResult -> Bool) -> (TouchEventResult -> TouchEventResult -> Bool) -> (TouchEventResult -> TouchEventResult -> Bool) -> (TouchEventResult -> TouchEventResult -> Bool) -> (TouchEventResult -> TouchEventResult -> TouchEventResult) -> (TouchEventResult -> TouchEventResult -> TouchEventResult) -> Ord TouchEventResult TouchEventResult -> TouchEventResult -> Bool TouchEventResult -> TouchEventResult -> Ordering TouchEventResult -> TouchEventResult -> TouchEventResult forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: TouchEventResult -> TouchEventResult -> TouchEventResult $cmin :: TouchEventResult -> TouchEventResult -> TouchEventResult max :: TouchEventResult -> TouchEventResult -> TouchEventResult $cmax :: TouchEventResult -> TouchEventResult -> TouchEventResult >= :: TouchEventResult -> TouchEventResult -> Bool $c>= :: TouchEventResult -> TouchEventResult -> Bool > :: TouchEventResult -> TouchEventResult -> Bool $c> :: TouchEventResult -> TouchEventResult -> Bool <= :: TouchEventResult -> TouchEventResult -> Bool $c<= :: TouchEventResult -> TouchEventResult -> Bool < :: TouchEventResult -> TouchEventResult -> Bool $c< :: TouchEventResult -> TouchEventResult -> Bool compare :: TouchEventResult -> TouchEventResult -> Ordering $ccompare :: TouchEventResult -> TouchEventResult -> Ordering $cp1Ord :: Eq TouchEventResult Ord) data TouchResult = TouchResult { TouchResult -> Word _touchResult_identifier :: Word , TouchResult -> Int _touchResult_screenX :: Int , TouchResult -> Int _touchResult_screenY :: Int , TouchResult -> Int _touchResult_clientX :: Int , TouchResult -> Int _touchResult_clientY :: Int , TouchResult -> Int _touchResult_pageX :: Int , TouchResult -> Int _touchResult_pageY :: Int } deriving (Int -> TouchResult -> ShowS [TouchResult] -> ShowS TouchResult -> String (Int -> TouchResult -> ShowS) -> (TouchResult -> String) -> ([TouchResult] -> ShowS) -> Show TouchResult forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [TouchResult] -> ShowS $cshowList :: [TouchResult] -> ShowS show :: TouchResult -> String $cshow :: TouchResult -> String showsPrec :: Int -> TouchResult -> ShowS $cshowsPrec :: Int -> TouchResult -> ShowS Show, ReadPrec [TouchResult] ReadPrec TouchResult Int -> ReadS TouchResult ReadS [TouchResult] (Int -> ReadS TouchResult) -> ReadS [TouchResult] -> ReadPrec TouchResult -> ReadPrec [TouchResult] -> Read TouchResult forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [TouchResult] $creadListPrec :: ReadPrec [TouchResult] readPrec :: ReadPrec TouchResult $creadPrec :: ReadPrec TouchResult readList :: ReadS [TouchResult] $creadList :: ReadS [TouchResult] readsPrec :: Int -> ReadS TouchResult $creadsPrec :: Int -> ReadS TouchResult Read, TouchResult -> TouchResult -> Bool (TouchResult -> TouchResult -> Bool) -> (TouchResult -> TouchResult -> Bool) -> Eq TouchResult forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: TouchResult -> TouchResult -> Bool $c/= :: TouchResult -> TouchResult -> Bool == :: TouchResult -> TouchResult -> Bool $c== :: TouchResult -> TouchResult -> Bool Eq, Eq TouchResult Eq TouchResult => (TouchResult -> TouchResult -> Ordering) -> (TouchResult -> TouchResult -> Bool) -> (TouchResult -> TouchResult -> Bool) -> (TouchResult -> TouchResult -> Bool) -> (TouchResult -> TouchResult -> Bool) -> (TouchResult -> TouchResult -> TouchResult) -> (TouchResult -> TouchResult -> TouchResult) -> Ord TouchResult TouchResult -> TouchResult -> Bool TouchResult -> TouchResult -> Ordering TouchResult -> TouchResult -> TouchResult forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: TouchResult -> TouchResult -> TouchResult $cmin :: TouchResult -> TouchResult -> TouchResult max :: TouchResult -> TouchResult -> TouchResult $cmax :: TouchResult -> TouchResult -> TouchResult >= :: TouchResult -> TouchResult -> Bool $c>= :: TouchResult -> TouchResult -> Bool > :: TouchResult -> TouchResult -> Bool $c> :: TouchResult -> TouchResult -> Bool <= :: TouchResult -> TouchResult -> Bool $c<= :: TouchResult -> TouchResult -> Bool < :: TouchResult -> TouchResult -> Bool $c< :: TouchResult -> TouchResult -> Bool compare :: TouchResult -> TouchResult -> Ordering $ccompare :: TouchResult -> TouchResult -> Ordering $cp1Ord :: Eq TouchResult Ord) #ifdef USE_TEMPLATE_HASKELL deriveGEq ''EventName deriveGCompare ''EventName #else instance GEq EventName where geq Abort Abort = return Refl geq Blur Blur = return Refl geq Change Change = return Refl geq Click Click = return Refl geq Contextmenu Contextmenu = return Refl geq Dblclick Dblclick = return Refl geq Drag Drag = return Refl geq Dragend Dragend = return Refl geq Dragenter Dragenter = return Refl geq Dragleave Dragleave = return Refl geq Dragover Dragover = return Refl geq Dragstart Dragstart = return Refl geq Drop Drop = return Refl geq Error Error = return Refl geq Focus Focus = return Refl geq Input Input = return Refl geq Invalid Invalid = return Refl geq Keydown Keydown = return Refl geq Keypress Keypress = return Refl geq Keyup Keyup = return Refl geq Load Load = return Refl geq Mousedown Mousedown = return Refl geq Mouseenter Mouseenter = return Refl geq Mouseleave Mouseleave = return Refl geq Mousemove Mousemove = return Refl geq Mouseout Mouseout = return Refl geq Mouseover Mouseover = return Refl geq Mouseup Mouseup = return Refl geq Mousewheel Mousewheel = return Refl geq Scroll Scroll = return Refl geq Select Select = return Refl geq Submit Submit = return Refl geq Wheel Wheel = return Refl geq Beforecut Beforecut = return Refl geq Cut Cut = return Refl geq Beforecopy Beforecopy = return Refl geq Copy Copy = return Refl geq Beforepaste Beforepaste = return Refl geq Paste Paste = return Refl geq Reset Reset = return Refl geq Search Search = return Refl geq Selectstart Selectstart = return Refl geq Touchstart Touchstart = return Refl geq Touchmove Touchmove = return Refl geq Touchend Touchend = return Refl geq Touchcancel Touchcancel = return Refl geq _ _ = Nothing instance GCompare EventName where gcompare Abort Abort = GEQ gcompare Abort _ = GLT gcompare _ Abort = GGT gcompare Blur Blur = GEQ gcompare Blur _ = GLT gcompare _ Blur = GGT gcompare Change Change = GEQ gcompare Change _ = GLT gcompare _ Change = GGT gcompare Click Click = GEQ gcompare Click _ = GLT gcompare _ Click = GGT gcompare Contextmenu Contextmenu = GEQ gcompare Contextmenu _ = GLT gcompare _ Contextmenu = GGT gcompare Dblclick Dblclick = GEQ gcompare Dblclick _ = GLT gcompare _ Dblclick = GGT gcompare Drag Drag = GEQ gcompare Drag _ = GLT gcompare _ Drag = GGT gcompare Dragend Dragend = GEQ gcompare Dragend _ = GLT gcompare _ Dragend = GGT gcompare Dragenter Dragenter = GEQ gcompare Dragenter _ = GLT gcompare _ Dragenter = GGT gcompare Dragleave Dragleave = GEQ gcompare Dragleave _ = GLT gcompare _ Dragleave = GGT gcompare Dragover Dragover = GEQ gcompare Dragover _ = GLT gcompare _ Dragover = GGT gcompare Dragstart Dragstart = GEQ gcompare Dragstart _ = GLT gcompare _ Dragstart = GGT gcompare Drop Drop = GEQ gcompare Drop _ = GLT gcompare _ Drop = GGT gcompare Error Error = GEQ gcompare Error _ = GLT gcompare _ Error = GGT gcompare Focus Focus = GEQ gcompare Focus _ = GLT gcompare _ Focus = GGT gcompare Input Input = GEQ gcompare Input _ = GLT gcompare _ Input = GGT gcompare Invalid Invalid = GEQ gcompare Invalid _ = GLT gcompare _ Invalid = GGT gcompare Keydown Keydown = GEQ gcompare Keydown _ = GLT gcompare _ Keydown = GGT gcompare Keypress Keypress = GEQ gcompare Keypress _ = GLT gcompare _ Keypress = GGT gcompare Keyup Keyup = GEQ gcompare Keyup _ = GLT gcompare _ Keyup = GGT gcompare Load Load = GEQ gcompare Load _ = GLT gcompare _ Load = GGT gcompare Mousedown Mousedown = GEQ gcompare Mousedown _ = GLT gcompare _ Mousedown = GGT gcompare Mouseenter Mouseenter = GEQ gcompare Mouseenter _ = GLT gcompare _ Mouseenter = GGT gcompare Mouseleave Mouseleave = GEQ gcompare Mouseleave _ = GLT gcompare _ Mouseleave = GGT gcompare Mousemove Mousemove = GEQ gcompare Mousemove _ = GLT gcompare _ Mousemove = GGT gcompare Mouseout Mouseout = GEQ gcompare Mouseout _ = GLT gcompare _ Mouseout = GGT gcompare Mouseover Mouseover = GEQ gcompare Mouseover _ = GLT gcompare _ Mouseover = GGT gcompare Mouseup Mouseup = GEQ gcompare Mouseup _ = GLT gcompare _ Mouseup = GGT gcompare Mousewheel Mousewheel = GEQ gcompare Mousewheel _ = GLT gcompare _ Mousewheel = GGT gcompare Scroll Scroll = GEQ gcompare Scroll _ = GLT gcompare _ Scroll = GGT gcompare Select Select = GEQ gcompare Select _ = GLT gcompare _ Select = GGT gcompare Submit Submit = GEQ gcompare Submit _ = GLT gcompare _ Submit = GGT gcompare Wheel Wheel = GEQ gcompare Wheel _ = GLT gcompare _ Wheel = GGT gcompare Beforecut Beforecut = GEQ gcompare Beforecut _ = GLT gcompare _ Beforecut = GGT gcompare Cut Cut = GEQ gcompare Cut _ = GLT gcompare _ Cut = GGT gcompare Beforecopy Beforecopy = GEQ gcompare Beforecopy _ = GLT gcompare _ Beforecopy = GGT gcompare Copy Copy = GEQ gcompare Copy _ = GLT gcompare _ Copy = GGT gcompare Beforepaste Beforepaste = GEQ gcompare Beforepaste _ = GLT gcompare _ Beforepaste = GGT gcompare Paste Paste = GEQ gcompare Paste _ = GLT gcompare _ Paste = GGT gcompare Reset Reset = GEQ gcompare Reset _ = GLT gcompare _ Reset = GGT gcompare Search Search = GEQ gcompare Search _ = GLT gcompare _ Search = GGT gcompare Selectstart Selectstart = GEQ gcompare Selectstart _ = GLT gcompare _ Selectstart = GGT gcompare Touchstart Touchstart = GEQ gcompare Touchstart _ = GLT gcompare _ Touchstart = GGT gcompare Touchmove Touchmove = GEQ gcompare Touchmove _ = GLT gcompare _ Touchmove = GGT gcompare Touchend Touchend = GEQ gcompare Touchend _ = GLT gcompare _ Touchend = GGT gcompare Touchcancel Touchcancel = GEQ #endif