{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit.Objects.DOMTrackEvent
    ( 

-- * Exported types
    DOMTrackEvent(..)                       ,
    IsDOMTrackEvent                         ,
    toDOMTrackEvent                         ,
    noDOMTrackEvent                         ,


    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit.Objects.DOMEvent as WebKit.DOMEvent
import {-# SOURCE #-} qualified GI.WebKit.Objects.DOMObject as WebKit.DOMObject

newtype DOMTrackEvent = DOMTrackEvent (ManagedPtr DOMTrackEvent)
foreign import ccall "webkit_dom_track_event_get_type"
    c_webkit_dom_track_event_get_type :: IO GType

instance GObject DOMTrackEvent where
    gobjectType _ = c_webkit_dom_track_event_get_type
    

class GObject o => IsDOMTrackEvent o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError DOMTrackEvent a) =>
    IsDOMTrackEvent a
#endif
instance IsDOMTrackEvent DOMTrackEvent
instance WebKit.DOMEvent.IsDOMEvent DOMTrackEvent
instance WebKit.DOMObject.IsDOMObject DOMTrackEvent
instance GObject.Object.IsObject DOMTrackEvent

toDOMTrackEvent :: IsDOMTrackEvent o => o -> IO DOMTrackEvent
toDOMTrackEvent = unsafeCastTo DOMTrackEvent

noDOMTrackEvent :: Maybe DOMTrackEvent
noDOMTrackEvent = Nothing

type family ResolveDOMTrackEventMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMTrackEventMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMTrackEventMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMTrackEventMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMTrackEventMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMTrackEventMethod "initEvent" o = WebKit.DOMEvent.DOMEventInitEventMethodInfo
    ResolveDOMTrackEventMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMTrackEventMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMTrackEventMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMTrackEventMethod "preventDefault" o = WebKit.DOMEvent.DOMEventPreventDefaultMethodInfo
    ResolveDOMTrackEventMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMTrackEventMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMTrackEventMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMTrackEventMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMTrackEventMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMTrackEventMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMTrackEventMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMTrackEventMethod "stopImmediatePropagation" o = WebKit.DOMEvent.DOMEventStopImmediatePropagationMethodInfo
    ResolveDOMTrackEventMethod "stopPropagation" o = WebKit.DOMEvent.DOMEventStopPropagationMethodInfo
    ResolveDOMTrackEventMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMTrackEventMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMTrackEventMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMTrackEventMethod "getBubbles" o = WebKit.DOMEvent.DOMEventGetBubblesMethodInfo
    ResolveDOMTrackEventMethod "getCancelBubble" o = WebKit.DOMEvent.DOMEventGetCancelBubbleMethodInfo
    ResolveDOMTrackEventMethod "getCancelable" o = WebKit.DOMEvent.DOMEventGetCancelableMethodInfo
    ResolveDOMTrackEventMethod "getCurrentTarget" o = WebKit.DOMEvent.DOMEventGetCurrentTargetMethodInfo
    ResolveDOMTrackEventMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMTrackEventMethod "getDefaultPrevented" o = WebKit.DOMEvent.DOMEventGetDefaultPreventedMethodInfo
    ResolveDOMTrackEventMethod "getEventPhase" o = WebKit.DOMEvent.DOMEventGetEventPhaseMethodInfo
    ResolveDOMTrackEventMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMTrackEventMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMTrackEventMethod "getReturnValue" o = WebKit.DOMEvent.DOMEventGetReturnValueMethodInfo
    ResolveDOMTrackEventMethod "getSrcElement" o = WebKit.DOMEvent.DOMEventGetSrcElementMethodInfo
    ResolveDOMTrackEventMethod "getTarget" o = WebKit.DOMEvent.DOMEventGetTargetMethodInfo
    ResolveDOMTrackEventMethod "getTimeStamp" o = WebKit.DOMEvent.DOMEventGetTimeStampMethodInfo
    ResolveDOMTrackEventMethod "setCancelBubble" o = WebKit.DOMEvent.DOMEventSetCancelBubbleMethodInfo
    ResolveDOMTrackEventMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMTrackEventMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMTrackEventMethod "setReturnValue" o = WebKit.DOMEvent.DOMEventSetReturnValueMethodInfo
    ResolveDOMTrackEventMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMTrackEventMethod t DOMTrackEvent, O.MethodInfo info DOMTrackEvent p) => O.IsLabelProxy t (DOMTrackEvent -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveDOMTrackEventMethod t DOMTrackEvent, O.MethodInfo info DOMTrackEvent p) => O.IsLabel t (DOMTrackEvent -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

instance O.HasAttributeList DOMTrackEvent
type instance O.AttributeList DOMTrackEvent = DOMTrackEventAttributeList
type DOMTrackEventAttributeList = ('[ '("bubbles", WebKit.DOMEvent.DOMEventBubblesPropertyInfo), '("cancelBubble", WebKit.DOMEvent.DOMEventCancelBubblePropertyInfo), '("cancelable", WebKit.DOMEvent.DOMEventCancelablePropertyInfo), '("coreObject", WebKit.DOMObject.DOMObjectCoreObjectPropertyInfo), '("currentTarget", WebKit.DOMEvent.DOMEventCurrentTargetPropertyInfo), '("defaultPrevented", WebKit.DOMEvent.DOMEventDefaultPreventedPropertyInfo), '("eventPhase", WebKit.DOMEvent.DOMEventEventPhasePropertyInfo), '("returnValue", WebKit.DOMEvent.DOMEventReturnValuePropertyInfo), '("srcElement", WebKit.DOMEvent.DOMEventSrcElementPropertyInfo), '("target", WebKit.DOMEvent.DOMEventTargetPropertyInfo), '("timeStamp", WebKit.DOMEvent.DOMEventTimeStampPropertyInfo), '("type", WebKit.DOMEvent.DOMEventTypePropertyInfo)] :: [(Symbol, *)])

type instance O.SignalList DOMTrackEvent = DOMTrackEventSignalList
type DOMTrackEventSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])