{- |
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.DOMMicroDataItemValue
    ( 

-- * Exported types
    DOMMicroDataItemValue(..)               ,
    IsDOMMicroDataItemValue                 ,
    toDOMMicroDataItemValue                 ,
    noDOMMicroDataItemValue                 ,


    ) 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.DOMObject as WebKit.DOMObject

newtype DOMMicroDataItemValue = DOMMicroDataItemValue (ManagedPtr DOMMicroDataItemValue)
foreign import ccall "webkit_dom_micro_data_item_value_get_type"
    c_webkit_dom_micro_data_item_value_get_type :: IO GType

instance GObject DOMMicroDataItemValue where
    gobjectType _ = c_webkit_dom_micro_data_item_value_get_type
    

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

toDOMMicroDataItemValue :: IsDOMMicroDataItemValue o => o -> IO DOMMicroDataItemValue
toDOMMicroDataItemValue = unsafeCastTo DOMMicroDataItemValue

noDOMMicroDataItemValue :: Maybe DOMMicroDataItemValue
noDOMMicroDataItemValue = Nothing

type family ResolveDOMMicroDataItemValueMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMMicroDataItemValueMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMMicroDataItemValueMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMMicroDataItemValueMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMMicroDataItemValueMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMMicroDataItemValueMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMMicroDataItemValueMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMMicroDataItemValueMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMMicroDataItemValueMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMMicroDataItemValueMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMMicroDataItemValueMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMMicroDataItemValueMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMMicroDataItemValueMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMMicroDataItemValueMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMMicroDataItemValueMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMMicroDataItemValueMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMMicroDataItemValueMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMMicroDataItemValueMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMMicroDataItemValueMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMMicroDataItemValueMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMMicroDataItemValueMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMMicroDataItemValueMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMMicroDataItemValueMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMMicroDataItemValueMethod l o = O.MethodResolutionFailed l o

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

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

instance O.HasAttributeList DOMMicroDataItemValue
type instance O.AttributeList DOMMicroDataItemValue = DOMMicroDataItemValueAttributeList
type DOMMicroDataItemValueAttributeList = ('[ '("coreObject", WebKit.DOMObject.DOMObjectCoreObjectPropertyInfo)] :: [(Symbol, *)])

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