{- |
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.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration
    ( 

-- * Exported types
    DOMCSSStyleDeclaration(..)              ,
    IsDOMCSSStyleDeclaration                ,
    toDOMCSSStyleDeclaration                ,
    noDOMCSSStyleDeclaration                ,


 -- * Methods
-- ** getCssText #method:getCssText#
    DOMCSSStyleDeclarationGetCssTextMethodInfo,
    dOMCSSStyleDeclarationGetCssText        ,


-- ** getLength #method:getLength#
    DOMCSSStyleDeclarationGetLengthMethodInfo,
    dOMCSSStyleDeclarationGetLength         ,


-- ** getParentRule #method:getParentRule#
    DOMCSSStyleDeclarationGetParentRuleMethodInfo,
    dOMCSSStyleDeclarationGetParentRule     ,


-- ** getPropertyPriority #method:getPropertyPriority#
    DOMCSSStyleDeclarationGetPropertyPriorityMethodInfo,
    dOMCSSStyleDeclarationGetPropertyPriority,


-- ** getPropertyShorthand #method:getPropertyShorthand#
    DOMCSSStyleDeclarationGetPropertyShorthandMethodInfo,
    dOMCSSStyleDeclarationGetPropertyShorthand,


-- ** getPropertyValue #method:getPropertyValue#
    DOMCSSStyleDeclarationGetPropertyValueMethodInfo,
    dOMCSSStyleDeclarationGetPropertyValue  ,


-- ** isPropertyImplicit #method:isPropertyImplicit#
    DOMCSSStyleDeclarationIsPropertyImplicitMethodInfo,
    dOMCSSStyleDeclarationIsPropertyImplicit,


-- ** item #method:item#
    DOMCSSStyleDeclarationItemMethodInfo    ,
    dOMCSSStyleDeclarationItem              ,


-- ** removeProperty #method:removeProperty#
    DOMCSSStyleDeclarationRemovePropertyMethodInfo,
    dOMCSSStyleDeclarationRemoveProperty    ,


-- ** setCssText #method:setCssText#
    DOMCSSStyleDeclarationSetCssTextMethodInfo,
    dOMCSSStyleDeclarationSetCssText        ,


-- ** setProperty #method:setProperty#
    DOMCSSStyleDeclarationSetPropertyMethodInfo,
    dOMCSSStyleDeclarationSetProperty       ,




 -- * Properties
-- ** cssText #attr:cssText#
    DOMCSSStyleDeclarationCssTextPropertyInfo,
    clearDOMCSSStyleDeclarationCssText      ,
    constructDOMCSSStyleDeclarationCssText  ,
    dOMCSSStyleDeclarationCssText           ,
    getDOMCSSStyleDeclarationCssText        ,
    setDOMCSSStyleDeclarationCssText        ,


-- ** length #attr:length#
    DOMCSSStyleDeclarationLengthPropertyInfo,
    dOMCSSStyleDeclarationLength            ,
    getDOMCSSStyleDeclarationLength         ,


-- ** parentRule #attr:parentRule#
    DOMCSSStyleDeclarationParentRulePropertyInfo,
    dOMCSSStyleDeclarationParentRule        ,
    getDOMCSSStyleDeclarationParentRule     ,




    ) 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.WebKit2WebExtension.Objects.DOMCSSRule as WebKit2WebExtension.DOMCSSRule
import {-# SOURCE #-} qualified GI.WebKit2WebExtension.Objects.DOMObject as WebKit2WebExtension.DOMObject

newtype DOMCSSStyleDeclaration = DOMCSSStyleDeclaration (ManagedPtr DOMCSSStyleDeclaration)
foreign import ccall "webkit_dom_css_style_declaration_get_type"
    c_webkit_dom_css_style_declaration_get_type :: IO GType

instance GObject DOMCSSStyleDeclaration where
    gobjectType _ = c_webkit_dom_css_style_declaration_get_type
    

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

toDOMCSSStyleDeclaration :: IsDOMCSSStyleDeclaration o => o -> IO DOMCSSStyleDeclaration
toDOMCSSStyleDeclaration = unsafeCastTo DOMCSSStyleDeclaration

noDOMCSSStyleDeclaration :: Maybe DOMCSSStyleDeclaration
noDOMCSSStyleDeclaration = Nothing

type family ResolveDOMCSSStyleDeclarationMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMCSSStyleDeclarationMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "isPropertyImplicit" o = DOMCSSStyleDeclarationIsPropertyImplicitMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "item" o = DOMCSSStyleDeclarationItemMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "removeProperty" o = DOMCSSStyleDeclarationRemovePropertyMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getCssText" o = DOMCSSStyleDeclarationGetCssTextMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getLength" o = DOMCSSStyleDeclarationGetLengthMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getParentRule" o = DOMCSSStyleDeclarationGetParentRuleMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getPropertyPriority" o = DOMCSSStyleDeclarationGetPropertyPriorityMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getPropertyShorthand" o = DOMCSSStyleDeclarationGetPropertyShorthandMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getPropertyValue" o = DOMCSSStyleDeclarationGetPropertyValueMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "setCssText" o = DOMCSSStyleDeclarationSetCssTextMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMCSSStyleDeclarationMethod "setProperty" o = DOMCSSStyleDeclarationSetPropertyMethodInfo
    ResolveDOMCSSStyleDeclarationMethod l o = O.MethodResolutionFailed l o

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

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

-- VVV Prop "css-text"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

getDOMCSSStyleDeclarationCssText :: (MonadIO m, IsDOMCSSStyleDeclaration o) => o -> m (Maybe T.Text)
getDOMCSSStyleDeclarationCssText obj = liftIO $ getObjectPropertyString obj "css-text"

setDOMCSSStyleDeclarationCssText :: (MonadIO m, IsDOMCSSStyleDeclaration o) => o -> T.Text -> m ()
setDOMCSSStyleDeclarationCssText obj val = liftIO $ setObjectPropertyString obj "css-text" (Just val)

constructDOMCSSStyleDeclarationCssText :: (IsDOMCSSStyleDeclaration o) => T.Text -> IO (GValueConstruct o)
constructDOMCSSStyleDeclarationCssText val = constructObjectPropertyString "css-text" (Just val)

clearDOMCSSStyleDeclarationCssText :: (MonadIO m, IsDOMCSSStyleDeclaration o) => o -> m ()
clearDOMCSSStyleDeclarationCssText obj = liftIO $ setObjectPropertyString obj "css-text" (Nothing :: Maybe T.Text)

data DOMCSSStyleDeclarationCssTextPropertyInfo
instance AttrInfo DOMCSSStyleDeclarationCssTextPropertyInfo where
    type AttrAllowedOps DOMCSSStyleDeclarationCssTextPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMCSSStyleDeclarationCssTextPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMCSSStyleDeclarationCssTextPropertyInfo = IsDOMCSSStyleDeclaration
    type AttrGetType DOMCSSStyleDeclarationCssTextPropertyInfo = (Maybe T.Text)
    type AttrLabel DOMCSSStyleDeclarationCssTextPropertyInfo = "css-text"
    type AttrOrigin DOMCSSStyleDeclarationCssTextPropertyInfo = DOMCSSStyleDeclaration
    attrGet _ = getDOMCSSStyleDeclarationCssText
    attrSet _ = setDOMCSSStyleDeclarationCssText
    attrConstruct _ = constructDOMCSSStyleDeclarationCssText
    attrClear _ = clearDOMCSSStyleDeclarationCssText

-- VVV Prop "length"
   -- Type: TBasicType TULong
   -- Flags: [PropertyReadable]
   -- Nullable: (Just False,Nothing)

getDOMCSSStyleDeclarationLength :: (MonadIO m, IsDOMCSSStyleDeclaration o) => o -> m CULong
getDOMCSSStyleDeclarationLength obj = liftIO $ getObjectPropertyULong obj "length"

data DOMCSSStyleDeclarationLengthPropertyInfo
instance AttrInfo DOMCSSStyleDeclarationLengthPropertyInfo where
    type AttrAllowedOps DOMCSSStyleDeclarationLengthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMCSSStyleDeclarationLengthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMCSSStyleDeclarationLengthPropertyInfo = IsDOMCSSStyleDeclaration
    type AttrGetType DOMCSSStyleDeclarationLengthPropertyInfo = CULong
    type AttrLabel DOMCSSStyleDeclarationLengthPropertyInfo = "length"
    type AttrOrigin DOMCSSStyleDeclarationLengthPropertyInfo = DOMCSSStyleDeclaration
    attrGet _ = getDOMCSSStyleDeclarationLength
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

-- VVV Prop "parent-rule"
   -- Type: TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSRule"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

getDOMCSSStyleDeclarationParentRule :: (MonadIO m, IsDOMCSSStyleDeclaration o) => o -> m (Maybe WebKit2WebExtension.DOMCSSRule.DOMCSSRule)
getDOMCSSStyleDeclarationParentRule obj = liftIO $ getObjectPropertyObject obj "parent-rule" WebKit2WebExtension.DOMCSSRule.DOMCSSRule

data DOMCSSStyleDeclarationParentRulePropertyInfo
instance AttrInfo DOMCSSStyleDeclarationParentRulePropertyInfo where
    type AttrAllowedOps DOMCSSStyleDeclarationParentRulePropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint DOMCSSStyleDeclarationParentRulePropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMCSSStyleDeclarationParentRulePropertyInfo = IsDOMCSSStyleDeclaration
    type AttrGetType DOMCSSStyleDeclarationParentRulePropertyInfo = (Maybe WebKit2WebExtension.DOMCSSRule.DOMCSSRule)
    type AttrLabel DOMCSSStyleDeclarationParentRulePropertyInfo = "parent-rule"
    type AttrOrigin DOMCSSStyleDeclarationParentRulePropertyInfo = DOMCSSStyleDeclaration
    attrGet _ = getDOMCSSStyleDeclarationParentRule
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined

instance O.HasAttributeList DOMCSSStyleDeclaration
type instance O.AttributeList DOMCSSStyleDeclaration = DOMCSSStyleDeclarationAttributeList
type DOMCSSStyleDeclarationAttributeList = ('[ '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("cssText", DOMCSSStyleDeclarationCssTextPropertyInfo), '("length", DOMCSSStyleDeclarationLengthPropertyInfo), '("parentRule", DOMCSSStyleDeclarationParentRulePropertyInfo)] :: [(Symbol, *)])

dOMCSSStyleDeclarationCssText :: AttrLabelProxy "cssText"
dOMCSSStyleDeclarationCssText = AttrLabelProxy

dOMCSSStyleDeclarationLength :: AttrLabelProxy "length"
dOMCSSStyleDeclarationLength = AttrLabelProxy

dOMCSSStyleDeclarationParentRule :: AttrLabelProxy "parentRule"
dOMCSSStyleDeclarationParentRule = AttrLabelProxy

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

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

foreign import ccall "webkit_dom_css_style_declaration_get_css_text" webkit_dom_css_style_declaration_get_css_text :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    IO CString

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationGetCssText ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMCSSStyleDeclarationGetCssText self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_css_style_declaration_get_css_text self'
    checkUnexpectedReturnNULL "dOMCSSStyleDeclarationGetCssText" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMCSSStyleDeclarationGetCssTextMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationGetCssTextMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationGetCssText

-- method DOMCSSStyleDeclaration::get_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TULong)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_get_length" webkit_dom_css_style_declaration_get_length :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    IO CULong

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationGetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> m CULong
    {- ^ __Returns:__ A @/gulong/@ -}
dOMCSSStyleDeclarationGetLength self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_css_style_declaration_get_length self'
    touchManagedPtr self
    return result

data DOMCSSStyleDeclarationGetLengthMethodInfo
instance (signature ~ (m CULong), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationGetLengthMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationGetLength

-- method DOMCSSStyleDeclaration::get_parent_rule
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSRule"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_get_parent_rule" webkit_dom_css_style_declaration_get_parent_rule :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    IO (Ptr WebKit2WebExtension.DOMCSSRule.DOMCSSRule)

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationGetParentRule ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> m WebKit2WebExtension.DOMCSSRule.DOMCSSRule
    {- ^ __Returns:__ A 'GI.WebKit2WebExtension.Objects.DOMCSSRule.DOMCSSRule' -}
dOMCSSStyleDeclarationGetParentRule self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_css_style_declaration_get_parent_rule self'
    checkUnexpectedReturnNULL "dOMCSSStyleDeclarationGetParentRule" result
    result' <- (wrapObject WebKit2WebExtension.DOMCSSRule.DOMCSSRule) result
    touchManagedPtr self
    return result'

data DOMCSSStyleDeclarationGetParentRuleMethodInfo
instance (signature ~ (m WebKit2WebExtension.DOMCSSRule.DOMCSSRule), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationGetParentRuleMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationGetParentRule

-- method DOMCSSStyleDeclaration::get_property_priority
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "propertyName", 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 TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_get_property_priority" webkit_dom_css_style_declaration_get_property_priority :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CString ->                              -- propertyName : TBasicType TUTF8
    IO CString

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationGetPropertyPriority ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> T.Text
    {- ^ /@propertyName@/: A @/gchar/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMCSSStyleDeclarationGetPropertyPriority self propertyName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    propertyName' <- textToCString propertyName
    result <- webkit_dom_css_style_declaration_get_property_priority self' propertyName'
    checkUnexpectedReturnNULL "dOMCSSStyleDeclarationGetPropertyPriority" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    freeMem propertyName'
    return result'

data DOMCSSStyleDeclarationGetPropertyPriorityMethodInfo
instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationGetPropertyPriorityMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationGetPropertyPriority

-- method DOMCSSStyleDeclaration::get_property_shorthand
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "propertyName", 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 TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_get_property_shorthand" webkit_dom_css_style_declaration_get_property_shorthand :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CString ->                              -- propertyName : TBasicType TUTF8
    IO CString

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationGetPropertyShorthand ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> T.Text
    {- ^ /@propertyName@/: A @/gchar/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMCSSStyleDeclarationGetPropertyShorthand self propertyName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    propertyName' <- textToCString propertyName
    result <- webkit_dom_css_style_declaration_get_property_shorthand self' propertyName'
    checkUnexpectedReturnNULL "dOMCSSStyleDeclarationGetPropertyShorthand" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    freeMem propertyName'
    return result'

data DOMCSSStyleDeclarationGetPropertyShorthandMethodInfo
instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationGetPropertyShorthandMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationGetPropertyShorthand

-- method DOMCSSStyleDeclaration::get_property_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "propertyName", 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 TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_get_property_value" webkit_dom_css_style_declaration_get_property_value :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CString ->                              -- propertyName : TBasicType TUTF8
    IO CString

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationGetPropertyValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> T.Text
    {- ^ /@propertyName@/: A @/gchar/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMCSSStyleDeclarationGetPropertyValue self propertyName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    propertyName' <- textToCString propertyName
    result <- webkit_dom_css_style_declaration_get_property_value self' propertyName'
    checkUnexpectedReturnNULL "dOMCSSStyleDeclarationGetPropertyValue" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    freeMem propertyName'
    return result'

data DOMCSSStyleDeclarationGetPropertyValueMethodInfo
instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationGetPropertyValueMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationGetPropertyValue

-- method DOMCSSStyleDeclaration::is_property_implicit
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "propertyName", 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_css_style_declaration_is_property_implicit" webkit_dom_css_style_declaration_is_property_implicit :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CString ->                              -- propertyName : TBasicType TUTF8
    IO CInt

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationIsPropertyImplicit ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> T.Text
    {- ^ /@propertyName@/: A @/gchar/@ -}
    -> m Bool
    {- ^ __Returns:__ A 'Bool' -}
dOMCSSStyleDeclarationIsPropertyImplicit self propertyName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    propertyName' <- textToCString propertyName
    result <- webkit_dom_css_style_declaration_is_property_implicit self' propertyName'
    let result' = (/= 0) result
    touchManagedPtr self
    freeMem propertyName'
    return result'

data DOMCSSStyleDeclarationIsPropertyImplicitMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationIsPropertyImplicitMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationIsPropertyImplicit

-- method DOMCSSStyleDeclaration::item
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index", argType = TBasicType TULong, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #gulong", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_item" webkit_dom_css_style_declaration_item :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CULong ->                               -- index : TBasicType TULong
    IO CString

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> CULong
    {- ^ /@index@/: A @/gulong/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ -}
dOMCSSStyleDeclarationItem self index = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_css_style_declaration_item self' index
    checkUnexpectedReturnNULL "dOMCSSStyleDeclarationItem" result
    result' <- cstringToText result
    freeMem result
    touchManagedPtr self
    return result'

data DOMCSSStyleDeclarationItemMethodInfo
instance (signature ~ (CULong -> m T.Text), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationItemMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationItem

-- method DOMCSSStyleDeclaration::remove_property
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "propertyName", 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 TUTF8)
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_remove_property" webkit_dom_css_style_declaration_remove_property :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CString ->                              -- propertyName : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO CString

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationRemoveProperty ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> T.Text
    {- ^ /@propertyName@/: A @/gchar/@ -}
    -> m T.Text
    {- ^ __Returns:__ A @/gchar/@ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCSSStyleDeclarationRemoveProperty self propertyName = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    propertyName' <- textToCString propertyName
    onException (do
        result <- propagateGError $ webkit_dom_css_style_declaration_remove_property self' propertyName'
        checkUnexpectedReturnNULL "dOMCSSStyleDeclarationRemoveProperty" result
        result' <- cstringToText result
        freeMem result
        touchManagedPtr self
        freeMem propertyName'
        return result'
     ) (do
        freeMem propertyName'
     )

data DOMCSSStyleDeclarationRemovePropertyMethodInfo
instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationRemovePropertyMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationRemoveProperty

-- method DOMCSSStyleDeclaration::set_css_text
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", 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 : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_set_css_text" webkit_dom_css_style_declaration_set_css_text :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CString ->                              -- value : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationSetCssText ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> T.Text
    {- ^ /@value@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCSSStyleDeclarationSetCssText self value = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    value' <- textToCString value
    onException (do
        propagateGError $ webkit_dom_css_style_declaration_set_css_text self' value'
        touchManagedPtr self
        freeMem value'
        return ()
     ) (do
        freeMem value'
     )

data DOMCSSStyleDeclarationSetCssTextMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationSetCssTextMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationSetCssText

-- method DOMCSSStyleDeclaration::set_property
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "self", argType = TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #WebKitDOMCSSStyleDeclaration", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "propertyName", 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},Arg {argCName = "priority", 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 : Nothing
-- throws : True
-- Skip return : False

foreign import ccall "webkit_dom_css_style_declaration_set_property" webkit_dom_css_style_declaration_set_property :: 
    Ptr DOMCSSStyleDeclaration ->           -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMCSSStyleDeclaration"})
    CString ->                              -- propertyName : TBasicType TUTF8
    CString ->                              -- value : TBasicType TUTF8
    CString ->                              -- priority : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO ()

{- |
/No description available in the introspection data./
-}
dOMCSSStyleDeclarationSetProperty ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMCSSStyleDeclaration a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMCSSStyleDeclaration.DOMCSSStyleDeclaration' -}
    -> T.Text
    {- ^ /@propertyName@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@value@/: A @/gchar/@ -}
    -> T.Text
    {- ^ /@priority@/: A @/gchar/@ -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
dOMCSSStyleDeclarationSetProperty self propertyName value priority = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    propertyName' <- textToCString propertyName
    value' <- textToCString value
    priority' <- textToCString priority
    onException (do
        propagateGError $ webkit_dom_css_style_declaration_set_property self' propertyName' value' priority'
        touchManagedPtr self
        freeMem propertyName'
        freeMem value'
        freeMem priority'
        return ()
     ) (do
        freeMem propertyName'
        freeMem value'
        freeMem priority'
     )

data DOMCSSStyleDeclarationSetPropertyMethodInfo
instance (signature ~ (T.Text -> T.Text -> T.Text -> m ()), MonadIO m, IsDOMCSSStyleDeclaration a) => O.MethodInfo DOMCSSStyleDeclarationSetPropertyMethodInfo a signature where
    overloadedMethod _ = dOMCSSStyleDeclarationSetProperty