{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)

/No description available in the introspection data./
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.WebKit2WebExtension.Objects.DOMClientRect
    (

-- * Exported types
    DOMClientRect(..)                       ,
    IsDOMClientRect                         ,
    toDOMClientRect                         ,
    noDOMClientRect                         ,


 -- * Methods
-- ** getBottom #method:getBottom#

#if ENABLE_OVERLOADING
    DOMClientRectGetBottomMethodInfo        ,
#endif
    dOMClientRectGetBottom                  ,


-- ** getHeight #method:getHeight#

#if ENABLE_OVERLOADING
    DOMClientRectGetHeightMethodInfo        ,
#endif
    dOMClientRectGetHeight                  ,


-- ** getLeft #method:getLeft#

#if ENABLE_OVERLOADING
    DOMClientRectGetLeftMethodInfo          ,
#endif
    dOMClientRectGetLeft                    ,


-- ** getRight #method:getRight#

#if ENABLE_OVERLOADING
    DOMClientRectGetRightMethodInfo         ,
#endif
    dOMClientRectGetRight                   ,


-- ** getTop #method:getTop#

#if ENABLE_OVERLOADING
    DOMClientRectGetTopMethodInfo           ,
#endif
    dOMClientRectGetTop                     ,


-- ** getWidth #method:getWidth#

#if ENABLE_OVERLOADING
    DOMClientRectGetWidthMethodInfo         ,
#endif
    dOMClientRectGetWidth                   ,




 -- * Properties
-- ** bottom #attr:bottom#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMClientRectBottomPropertyInfo         ,
#endif
#if ENABLE_OVERLOADING
    dOMClientRectBottom                     ,
#endif
    getDOMClientRectBottom                  ,


-- ** height #attr:height#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMClientRectHeightPropertyInfo         ,
#endif
#if ENABLE_OVERLOADING
    dOMClientRectHeight                     ,
#endif
    getDOMClientRectHeight                  ,


-- ** left #attr:left#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMClientRectLeftPropertyInfo           ,
#endif
#if ENABLE_OVERLOADING
    dOMClientRectLeft                       ,
#endif
    getDOMClientRectLeft                    ,


-- ** right #attr:right#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMClientRectRightPropertyInfo          ,
#endif
#if ENABLE_OVERLOADING
    dOMClientRectRight                      ,
#endif
    getDOMClientRectRight                   ,


-- ** top #attr:top#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMClientRectTopPropertyInfo            ,
#endif
#if ENABLE_OVERLOADING
    dOMClientRectTop                        ,
#endif
    getDOMClientRectTop                     ,


-- ** width #attr:width#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    DOMClientRectWidthPropertyInfo          ,
#endif
#if ENABLE_OVERLOADING
    dOMClientRectWidth                      ,
#endif
    getDOMClientRectWidth                   ,




    ) 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.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
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 GHC.OverloadedLabels as OL

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

-- | Memory-managed wrapper type.
newtype DOMClientRect = DOMClientRect (ManagedPtr DOMClientRect)
foreign import ccall "webkit_dom_client_rect_get_type"
    c_webkit_dom_client_rect_get_type :: IO GType

instance GObject DOMClientRect where
    gobjectType = c_webkit_dom_client_rect_get_type


-- | Type class for types which can be safely cast to `DOMClientRect`, for instance with `toDOMClientRect`.
class (GObject o, O.IsDescendantOf DOMClientRect o) => IsDOMClientRect o
instance (GObject o, O.IsDescendantOf DOMClientRect o) => IsDOMClientRect o

instance O.HasParentTypes DOMClientRect
type instance O.ParentTypes DOMClientRect = '[WebKit2WebExtension.DOMObject.DOMObject, GObject.Object.Object]

-- | Cast to `DOMClientRect`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toDOMClientRect :: (MonadIO m, IsDOMClientRect o) => o -> m DOMClientRect
toDOMClientRect = liftIO . unsafeCastTo DOMClientRect

-- | A convenience alias for `Nothing` :: `Maybe` `DOMClientRect`.
noDOMClientRect :: Maybe DOMClientRect
noDOMClientRect = Nothing

#if ENABLE_OVERLOADING
type family ResolveDOMClientRectMethod (t :: Symbol) (o :: *) :: * where
    ResolveDOMClientRectMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDOMClientRectMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDOMClientRectMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDOMClientRectMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDOMClientRectMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDOMClientRectMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDOMClientRectMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDOMClientRectMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDOMClientRectMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDOMClientRectMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDOMClientRectMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDOMClientRectMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDOMClientRectMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDOMClientRectMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDOMClientRectMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDOMClientRectMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDOMClientRectMethod "getBottom" o = DOMClientRectGetBottomMethodInfo
    ResolveDOMClientRectMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDOMClientRectMethod "getHeight" o = DOMClientRectGetHeightMethodInfo
    ResolveDOMClientRectMethod "getLeft" o = DOMClientRectGetLeftMethodInfo
    ResolveDOMClientRectMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDOMClientRectMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDOMClientRectMethod "getRight" o = DOMClientRectGetRightMethodInfo
    ResolveDOMClientRectMethod "getTop" o = DOMClientRectGetTopMethodInfo
    ResolveDOMClientRectMethod "getWidth" o = DOMClientRectGetWidthMethodInfo
    ResolveDOMClientRectMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDOMClientRectMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDOMClientRectMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDOMClientRectMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveDOMClientRectMethod t DOMClientRect, O.MethodInfo info DOMClientRect p) => OL.IsLabel t (DOMClientRect -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

#endif

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

{- |
Get the value of the “@bottom@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMClientRect #bottom
@
-}
getDOMClientRectBottom :: (MonadIO m, IsDOMClientRect o) => o -> m Float
getDOMClientRectBottom obj = liftIO $ B.Properties.getObjectPropertyFloat obj "bottom"

#if ENABLE_OVERLOADING
data DOMClientRectBottomPropertyInfo
instance AttrInfo DOMClientRectBottomPropertyInfo where
    type AttrAllowedOps DOMClientRectBottomPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMClientRectBottomPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMClientRectBottomPropertyInfo = IsDOMClientRect
    type AttrGetType DOMClientRectBottomPropertyInfo = Float
    type AttrLabel DOMClientRectBottomPropertyInfo = "bottom"
    type AttrOrigin DOMClientRectBottomPropertyInfo = DOMClientRect
    attrGet _ = getDOMClientRectBottom
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

{- |
Get the value of the “@height@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMClientRect #height
@
-}
getDOMClientRectHeight :: (MonadIO m, IsDOMClientRect o) => o -> m Float
getDOMClientRectHeight obj = liftIO $ B.Properties.getObjectPropertyFloat obj "height"

#if ENABLE_OVERLOADING
data DOMClientRectHeightPropertyInfo
instance AttrInfo DOMClientRectHeightPropertyInfo where
    type AttrAllowedOps DOMClientRectHeightPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMClientRectHeightPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMClientRectHeightPropertyInfo = IsDOMClientRect
    type AttrGetType DOMClientRectHeightPropertyInfo = Float
    type AttrLabel DOMClientRectHeightPropertyInfo = "height"
    type AttrOrigin DOMClientRectHeightPropertyInfo = DOMClientRect
    attrGet _ = getDOMClientRectHeight
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

{- |
Get the value of the “@left@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMClientRect #left
@
-}
getDOMClientRectLeft :: (MonadIO m, IsDOMClientRect o) => o -> m Float
getDOMClientRectLeft obj = liftIO $ B.Properties.getObjectPropertyFloat obj "left"

#if ENABLE_OVERLOADING
data DOMClientRectLeftPropertyInfo
instance AttrInfo DOMClientRectLeftPropertyInfo where
    type AttrAllowedOps DOMClientRectLeftPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMClientRectLeftPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMClientRectLeftPropertyInfo = IsDOMClientRect
    type AttrGetType DOMClientRectLeftPropertyInfo = Float
    type AttrLabel DOMClientRectLeftPropertyInfo = "left"
    type AttrOrigin DOMClientRectLeftPropertyInfo = DOMClientRect
    attrGet _ = getDOMClientRectLeft
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

{- |
Get the value of the “@right@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMClientRect #right
@
-}
getDOMClientRectRight :: (MonadIO m, IsDOMClientRect o) => o -> m Float
getDOMClientRectRight obj = liftIO $ B.Properties.getObjectPropertyFloat obj "right"

#if ENABLE_OVERLOADING
data DOMClientRectRightPropertyInfo
instance AttrInfo DOMClientRectRightPropertyInfo where
    type AttrAllowedOps DOMClientRectRightPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMClientRectRightPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMClientRectRightPropertyInfo = IsDOMClientRect
    type AttrGetType DOMClientRectRightPropertyInfo = Float
    type AttrLabel DOMClientRectRightPropertyInfo = "right"
    type AttrOrigin DOMClientRectRightPropertyInfo = DOMClientRect
    attrGet _ = getDOMClientRectRight
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

{- |
Get the value of the “@top@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMClientRect #top
@
-}
getDOMClientRectTop :: (MonadIO m, IsDOMClientRect o) => o -> m Float
getDOMClientRectTop obj = liftIO $ B.Properties.getObjectPropertyFloat obj "top"

#if ENABLE_OVERLOADING
data DOMClientRectTopPropertyInfo
instance AttrInfo DOMClientRectTopPropertyInfo where
    type AttrAllowedOps DOMClientRectTopPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMClientRectTopPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMClientRectTopPropertyInfo = IsDOMClientRect
    type AttrGetType DOMClientRectTopPropertyInfo = Float
    type AttrLabel DOMClientRectTopPropertyInfo = "top"
    type AttrOrigin DOMClientRectTopPropertyInfo = DOMClientRect
    attrGet _ = getDOMClientRectTop
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

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

{- |
Get the value of the “@width@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' dOMClientRect #width
@
-}
getDOMClientRectWidth :: (MonadIO m, IsDOMClientRect o) => o -> m Float
getDOMClientRectWidth obj = liftIO $ B.Properties.getObjectPropertyFloat obj "width"

#if ENABLE_OVERLOADING
data DOMClientRectWidthPropertyInfo
instance AttrInfo DOMClientRectWidthPropertyInfo where
    type AttrAllowedOps DOMClientRectWidthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMClientRectWidthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMClientRectWidthPropertyInfo = IsDOMClientRect
    type AttrGetType DOMClientRectWidthPropertyInfo = Float
    type AttrLabel DOMClientRectWidthPropertyInfo = "width"
    type AttrOrigin DOMClientRectWidthPropertyInfo = DOMClientRect
    attrGet _ = getDOMClientRectWidth
    attrSet _ = undefined
    attrConstruct _ = undefined
    attrClear _ = undefined
#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList DOMClientRect
type instance O.AttributeList DOMClientRect = DOMClientRectAttributeList
type DOMClientRectAttributeList = ('[ '("bottom", DOMClientRectBottomPropertyInfo), '("coreObject", WebKit2WebExtension.DOMObject.DOMObjectCoreObjectPropertyInfo), '("height", DOMClientRectHeightPropertyInfo), '("left", DOMClientRectLeftPropertyInfo), '("right", DOMClientRectRightPropertyInfo), '("top", DOMClientRectTopPropertyInfo), '("width", DOMClientRectWidthPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
dOMClientRectBottom :: AttrLabelProxy "bottom"
dOMClientRectBottom = AttrLabelProxy

dOMClientRectHeight :: AttrLabelProxy "height"
dOMClientRectHeight = AttrLabelProxy

dOMClientRectLeft :: AttrLabelProxy "left"
dOMClientRectLeft = AttrLabelProxy

dOMClientRectRight :: AttrLabelProxy "right"
dOMClientRectRight = AttrLabelProxy

dOMClientRectTop :: AttrLabelProxy "top"
dOMClientRectTop = AttrLabelProxy

dOMClientRectWidth :: AttrLabelProxy "width"
dOMClientRectWidth = AttrLabelProxy

#endif

#if ENABLE_OVERLOADING
type instance O.SignalList DOMClientRect = DOMClientRectSignalList
type DOMClientRectSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

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

foreign import ccall "webkit_dom_client_rect_get_bottom" webkit_dom_client_rect_get_bottom ::
    Ptr DOMClientRect ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMClientRect"})
    IO CFloat

{-# DEPRECATED dOMClientRectGetBottom ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
Returns the bottom coordinate of /@self@/, relative to the viewport.

/Since: 2.18/
-}
dOMClientRectGetBottom ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMClientRect a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMClientRect.DOMClientRect' -}
    -> m Float
    {- ^ __Returns:__ A @/gfloat/@ -}
dOMClientRectGetBottom self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_client_rect_get_bottom self'
    let result' = realToFrac result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMClientRectGetBottomMethodInfo
instance (signature ~ (m Float), MonadIO m, IsDOMClientRect a) => O.MethodInfo DOMClientRectGetBottomMethodInfo a signature where
    overloadedMethod _ = dOMClientRectGetBottom

#endif

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

foreign import ccall "webkit_dom_client_rect_get_height" webkit_dom_client_rect_get_height ::
    Ptr DOMClientRect ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMClientRect"})
    IO CFloat

{-# DEPRECATED dOMClientRectGetHeight ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
Returns the height of /@self@/.

/Since: 2.18/
-}
dOMClientRectGetHeight ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMClientRect a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMClientRect.DOMClientRect' -}
    -> m Float
    {- ^ __Returns:__ A @/gfloat/@ -}
dOMClientRectGetHeight self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_client_rect_get_height self'
    let result' = realToFrac result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMClientRectGetHeightMethodInfo
instance (signature ~ (m Float), MonadIO m, IsDOMClientRect a) => O.MethodInfo DOMClientRectGetHeightMethodInfo a signature where
    overloadedMethod _ = dOMClientRectGetHeight

#endif

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

foreign import ccall "webkit_dom_client_rect_get_left" webkit_dom_client_rect_get_left ::
    Ptr DOMClientRect ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMClientRect"})
    IO CFloat

{-# DEPRECATED dOMClientRectGetLeft ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
Returns the left coordinate of /@self@/, relative to the viewport.

/Since: 2.18/
-}
dOMClientRectGetLeft ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMClientRect a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMClientRect.DOMClientRect' -}
    -> m Float
    {- ^ __Returns:__ A @/gfloat/@ -}
dOMClientRectGetLeft self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_client_rect_get_left self'
    let result' = realToFrac result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMClientRectGetLeftMethodInfo
instance (signature ~ (m Float), MonadIO m, IsDOMClientRect a) => O.MethodInfo DOMClientRectGetLeftMethodInfo a signature where
    overloadedMethod _ = dOMClientRectGetLeft

#endif

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

foreign import ccall "webkit_dom_client_rect_get_right" webkit_dom_client_rect_get_right ::
    Ptr DOMClientRect ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMClientRect"})
    IO CFloat

{-# DEPRECATED dOMClientRectGetRight ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
Returns the right coordinate of /@self@/, relative to the viewport.

/Since: 2.18/
-}
dOMClientRectGetRight ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMClientRect a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMClientRect.DOMClientRect' -}
    -> m Float
    {- ^ __Returns:__ A @/gfloat/@ -}
dOMClientRectGetRight self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_client_rect_get_right self'
    let result' = realToFrac result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMClientRectGetRightMethodInfo
instance (signature ~ (m Float), MonadIO m, IsDOMClientRect a) => O.MethodInfo DOMClientRectGetRightMethodInfo a signature where
    overloadedMethod _ = dOMClientRectGetRight

#endif

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

foreign import ccall "webkit_dom_client_rect_get_top" webkit_dom_client_rect_get_top ::
    Ptr DOMClientRect ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMClientRect"})
    IO CFloat

{-# DEPRECATED dOMClientRectGetTop ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
Returns the top coordinate of /@self@/, relative to the viewport.

/Since: 2.18/
-}
dOMClientRectGetTop ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMClientRect a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMClientRect.DOMClientRect' -}
    -> m Float
    {- ^ __Returns:__ A @/gfloat/@ -}
dOMClientRectGetTop self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_client_rect_get_top self'
    let result' = realToFrac result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMClientRectGetTopMethodInfo
instance (signature ~ (m Float), MonadIO m, IsDOMClientRect a) => O.MethodInfo DOMClientRectGetTopMethodInfo a signature where
    overloadedMethod _ = dOMClientRectGetTop

#endif

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

foreign import ccall "webkit_dom_client_rect_get_width" webkit_dom_client_rect_get_width ::
    Ptr DOMClientRect ->                    -- self : TInterface (Name {namespace = "WebKit2WebExtension", name = "DOMClientRect"})
    IO CFloat

{-# DEPRECATED dOMClientRectGetWidth ["(Since version 2.22)","Use JavaScriptCore API instead"] #-}
{- |
Returns the width of /@self@/.

/Since: 2.18/
-}
dOMClientRectGetWidth ::
    (B.CallStack.HasCallStack, MonadIO m, IsDOMClientRect a) =>
    a
    {- ^ /@self@/: A 'GI.WebKit2WebExtension.Objects.DOMClientRect.DOMClientRect' -}
    -> m Float
    {- ^ __Returns:__ A @/gfloat/@ -}
dOMClientRectGetWidth self = liftIO $ do
    self' <- unsafeManagedPtrCastPtr self
    result <- webkit_dom_client_rect_get_width self'
    let result' = realToFrac result
    touchManagedPtr self
    return result'

#if ENABLE_OVERLOADING
data DOMClientRectGetWidthMethodInfo
instance (signature ~ (m Float), MonadIO m, IsDOMClientRect a) => O.MethodInfo DOMClientRectGetWidthMethodInfo a signature where
    overloadedMethod _ = dOMClientRectGetWidth

#endif