module Data.DOM.MouseEvent
       (initMouseEvent, get'screenX, getm'screenX, get'screenY,
        getm'screenY, get'clientX, getm'clientX, get'clientY, getm'clientY,
        get'ctrlKey, getm'ctrlKey, get'shiftKey, getm'shiftKey, get'altKey,
        getm'altKey, get'metaKey, getm'metaKey, get'button, getm'button,
        get'relatedTarget, getm'relatedTarget)
       where
import Data.DOM.Events
import Control.Monad
import WebBits.JavaScript
import Data.DOM.WBTypes
import Data.DOM.Views
import Data.DOM.Dom
import Data.DOM.Document (createElement)
 
initMouseEvent ::
               (Monad mn, CMouseEvent this, CAbstractView viewArg,
                CEventTarget relatedTargetArg) =>
                 Expression String ->
                   Expression Bool ->
                     Expression Bool ->
                       Expression viewArg ->
                         Expression Double ->
                           Expression Double ->
                             Expression Double ->
                               Expression Double ->
                                 Expression Double ->
                                   Expression Bool ->
                                     Expression Bool ->
                                       Expression Bool ->
                                         Expression Bool ->
                                           Expression Double ->
                                             Expression relatedTargetArg ->
                                               Expression this -> mn (Expression ())
initMouseEvent a b c d e f g h i j k l m n o thisp
  = do let et = undefined :: ()
       let r = DotRef et (thisp /\ et) (Id et "initMouseEvent")
       return
         (CallExpr et r
            [a /\ et, b /\ et, c /\ et, d /\ et, e /\ et, f /\ et, g /\ et,
             h /\ et, i /\ et, j /\ et, k /\ et, l /\ et, m /\ et, n /\ et,
             o /\ et])
 
get'screenX ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Double)
get'screenX thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "screenX")
       return r
 
getm'screenX ::
             (Monad mn, CMouseEvent this) =>
               Expression this -> mn (Expression Double)
getm'screenX = get'screenX
 
get'screenY ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Double)
get'screenY thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "screenY")
       return r
 
getm'screenY ::
             (Monad mn, CMouseEvent this) =>
               Expression this -> mn (Expression Double)
getm'screenY = get'screenY
 
get'clientX ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Double)
get'clientX thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "clientX")
       return r
 
getm'clientX ::
             (Monad mn, CMouseEvent this) =>
               Expression this -> mn (Expression Double)
getm'clientX = get'clientX
 
get'clientY ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Double)
get'clientY thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "clientY")
       return r
 
getm'clientY ::
             (Monad mn, CMouseEvent this) =>
               Expression this -> mn (Expression Double)
getm'clientY = get'clientY
 
get'ctrlKey ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Bool)
get'ctrlKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "ctrlKey")
       return r
 
getm'ctrlKey ::
             (Monad mn, CMouseEvent this) =>
               Expression this -> mn (Expression Bool)
getm'ctrlKey = get'ctrlKey
 
get'shiftKey ::
             (Monad mn, CMouseEvent this) =>
               Expression this -> mn (Expression Bool)
get'shiftKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "shiftKey")
       return r
 
getm'shiftKey ::
              (Monad mn, CMouseEvent this) =>
                Expression this -> mn (Expression Bool)
getm'shiftKey = get'shiftKey
 
get'altKey ::
           (Monad mn, CMouseEvent this) =>
             Expression this -> mn (Expression Bool)
get'altKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "altKey")
       return r
 
getm'altKey ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Bool)
getm'altKey = get'altKey
 
get'metaKey ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Bool)
get'metaKey thisp
  = do let et = undefined :: Bool
       let r = DotRef et (thisp /\ et) (Id et "metaKey")
       return r
 
getm'metaKey ::
             (Monad mn, CMouseEvent this) =>
               Expression this -> mn (Expression Bool)
getm'metaKey = get'metaKey
 
get'button ::
           (Monad mn, CMouseEvent this) =>
             Expression this -> mn (Expression Double)
get'button thisp
  = do let et = undefined :: Double
       let r = DotRef et (thisp /\ et) (Id et "button")
       return r
 
getm'button ::
            (Monad mn, CMouseEvent this) =>
              Expression this -> mn (Expression Double)
getm'button = get'button
 
get'relatedTarget ::
                  (Monad mn, CMouseEvent this, CEventTarget zz) =>
                    Expression this -> mn (Expression zz)
get'relatedTarget thisp
  = do let et = undefined :: zz
       let r = DotRef et (thisp /\ et) (Id et "relatedTarget")
       return r
 
getm'relatedTarget ::
                   (Monad mn, CMouseEvent this) =>
                     Expression this -> mn (Expression TEventTarget)
getm'relatedTarget = get'relatedTarget