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

-- * Exported types
    DOMDOMWindowCSS(..)                     ,
    IsDOMDOMWindowCSS                       ,
    toDOMDOMWindowCSS                       ,
    noDOMDOMWindowCSS                       ,


 -- * Methods
-- ** supports #method:supports#
    DOMDOMWindowCSSSupportsMethodInfo       ,
    dOMDOMWindowCSSSupports                 ,




    ) 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 DOMDOMWindowCSS = DOMDOMWindowCSS (ManagedPtr DOMDOMWindowCSS)
foreign import ccall "webkit_dom_dom_window_css_get_type"
    c_webkit_dom_dom_window_css_get_type :: IO GType

instance GObject DOMDOMWindowCSS where
    gobjectType _ = c_webkit_dom_dom_window_css_get_type
    

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

toDOMDOMWindowCSS :: IsDOMDOMWindowCSS o => o -> IO DOMDOMWindowCSS
toDOMDOMWindowCSS = unsafeCastTo DOMDOMWindowCSS

noDOMDOMWindowCSS :: Maybe DOMDOMWindowCSS
noDOMDOMWindowCSS = Nothing

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

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

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

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

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

-- method DOMDOMWindowCSS::supports
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit", name = "DOMDOMWindowCSS"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMDOMWindowCSS", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gchar", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_dom_window_css_supports" webkit_dom_dom_window_css_supports :: 
    Ptr DOMDOMWindowCSS ->                  -- self : TInterface (Name {namespace = "WebKit", name = "DOMDOMWindowCSS"})
    CString ->                              -- property : TBasicType TUTF8
    CString ->                              -- value : TBasicType TUTF8
    IO CInt

{- |
/No description available in the introspection data./
-}
dOMDOMWindowCSSSupports ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMDOMWindowCSS a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit.Objects.DOMDOMWindowCSS.DOMDOMWindowCSS' -}
    -> T.Text
    {- ^ /@property@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@value@/: A @/gchar/@ -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMDOMWindowCSSSupports self property value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    property' <- textToCString property
    value' <- textToCString value
    result <- webkit_dom_dom_window_css_supports self' property' value'
    let result' = (/= 0) result
    touchManagedPtr self
    freeMem property'
    freeMem value'
    return result'

data DOMDOMWindowCSSSupportsMethodInfo
instance (signature ~ (T.Text -> T.Text -> m Bool), MonadIO m, IsDOMDOMWindowCSS a) => O.MethodInfo DOMDOMWindowCSSSupportsMethodInfo a signature where
    overloadedMethod _ = dOMDOMWindowCSSSupports