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

-- * Exported types
    DOMDOMWindow(..)                        ,
    DOMDOMWindowK                           ,
    toDOMDOMWindow                          ,
    noDOMDOMWindow                          ,


 -- * Methods
-- ** dOMDOMWindowWebkitMessageHandlersPostMessage
    dOMDOMWindowWebkitMessageHandlersPostMessage,




 -- * Properties
-- ** Closed
    DOMDOMWindowClosedPropertyInfo          ,
    getDOMDOMWindowClosed                   ,


-- ** DefaultStatus
    DOMDOMWindowDefaultStatusPropertyInfo   ,
    constructDOMDOMWindowDefaultStatus      ,
    getDOMDOMWindowDefaultStatus            ,
    setDOMDOMWindowDefaultStatus            ,


-- ** DevicePixelRatio
    DOMDOMWindowDevicePixelRatioPropertyInfo,
    getDOMDOMWindowDevicePixelRatio         ,


-- ** Document
    DOMDOMWindowDocumentPropertyInfo        ,
    getDOMDOMWindowDocument                 ,


-- ** FrameElement
    DOMDOMWindowFrameElementPropertyInfo    ,
    getDOMDOMWindowFrameElement             ,


-- ** Frames
    DOMDOMWindowFramesPropertyInfo          ,
    getDOMDOMWindowFrames                   ,


-- ** InnerHeight
    DOMDOMWindowInnerHeightPropertyInfo     ,
    getDOMDOMWindowInnerHeight              ,


-- ** InnerWidth
    DOMDOMWindowInnerWidthPropertyInfo      ,
    getDOMDOMWindowInnerWidth               ,


-- ** Length
    DOMDOMWindowLengthPropertyInfo          ,
    getDOMDOMWindowLength                   ,


-- ** Name
    DOMDOMWindowNamePropertyInfo            ,
    constructDOMDOMWindowName               ,
    getDOMDOMWindowName                     ,
    setDOMDOMWindowName                     ,


-- ** OffscreenBuffering
    DOMDOMWindowOffscreenBufferingPropertyInfo,
    getDOMDOMWindowOffscreenBuffering       ,


-- ** Opener
    DOMDOMWindowOpenerPropertyInfo          ,
    getDOMDOMWindowOpener                   ,


-- ** Orientation
    DOMDOMWindowOrientationPropertyInfo     ,
    getDOMDOMWindowOrientation              ,


-- ** OuterHeight
    DOMDOMWindowOuterHeightPropertyInfo     ,
    getDOMDOMWindowOuterHeight              ,


-- ** OuterWidth
    DOMDOMWindowOuterWidthPropertyInfo      ,
    getDOMDOMWindowOuterWidth               ,


-- ** PageXOffset
    DOMDOMWindowPageXOffsetPropertyInfo     ,
    getDOMDOMWindowPageXOffset              ,


-- ** PageYOffset
    DOMDOMWindowPageYOffsetPropertyInfo     ,
    getDOMDOMWindowPageYOffset              ,


-- ** Parent
    DOMDOMWindowParentPropertyInfo          ,
    getDOMDOMWindowParent                   ,


-- ** ScreenLeft
    DOMDOMWindowScreenLeftPropertyInfo      ,
    getDOMDOMWindowScreenLeft               ,


-- ** ScreenTop
    DOMDOMWindowScreenTopPropertyInfo       ,
    getDOMDOMWindowScreenTop                ,


-- ** ScreenX
    DOMDOMWindowScreenXPropertyInfo         ,
    getDOMDOMWindowScreenX                  ,


-- ** ScreenY
    DOMDOMWindowScreenYPropertyInfo         ,
    getDOMDOMWindowScreenY                  ,


-- ** ScrollX
    DOMDOMWindowScrollXPropertyInfo         ,
    getDOMDOMWindowScrollX                  ,


-- ** ScrollY
    DOMDOMWindowScrollYPropertyInfo         ,
    getDOMDOMWindowScrollY                  ,


-- ** Self
    DOMDOMWindowSelfPropertyInfo            ,
    getDOMDOMWindowSelf                     ,


-- ** Status
    DOMDOMWindowStatusPropertyInfo          ,
    constructDOMDOMWindowStatus             ,
    getDOMDOMWindowStatus                   ,
    setDOMDOMWindowStatus                   ,


-- ** Top
    DOMDOMWindowTopPropertyInfo             ,
    getDOMDOMWindowTop                      ,


-- ** Window
    DOMDOMWindowWindowPropertyInfo          ,
    getDOMDOMWindowWindow                   ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.WebKit2WebExtension.Types
import GI.WebKit2WebExtension.Callbacks
import qualified GI.GObject as GObject

newtype DOMDOMWindow = DOMDOMWindow (ForeignPtr DOMDOMWindow)
foreign import ccall "webkit_dom_dom_window_get_type"
    c_webkit_dom_dom_window_get_type :: IO GType

type instance ParentTypes DOMDOMWindow = DOMDOMWindowParentTypes
type DOMDOMWindowParentTypes = '[DOMObject, GObject.Object, DOMEventTarget]

instance GObject DOMDOMWindow where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_webkit_dom_dom_window_get_type
    

class GObject o => DOMDOMWindowK o
instance (GObject o, IsDescendantOf DOMDOMWindow o) => DOMDOMWindowK o

toDOMDOMWindow :: DOMDOMWindowK o => o -> IO DOMDOMWindow
toDOMDOMWindow = unsafeCastTo DOMDOMWindow

noDOMDOMWindow :: Maybe DOMDOMWindow
noDOMDOMWindow = Nothing

-- VVV Prop "closed"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMDOMWindowClosed :: (MonadIO m, DOMDOMWindowK o) => o -> m Bool
getDOMDOMWindowClosed obj = liftIO $ getObjectPropertyBool obj "closed"

data DOMDOMWindowClosedPropertyInfo
instance AttrInfo DOMDOMWindowClosedPropertyInfo where
    type AttrAllowedOps DOMDOMWindowClosedPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowClosedPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowClosedPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowClosedPropertyInfo = Bool
    type AttrLabel DOMDOMWindowClosedPropertyInfo = "DOMDOMWindow::closed"
    attrGet _ = getDOMDOMWindowClosed
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "default-status"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMDOMWindowDefaultStatus :: (MonadIO m, DOMDOMWindowK o) => o -> m T.Text
getDOMDOMWindowDefaultStatus obj = liftIO $ getObjectPropertyString obj "default-status"

setDOMDOMWindowDefaultStatus :: (MonadIO m, DOMDOMWindowK o) => o -> T.Text -> m ()
setDOMDOMWindowDefaultStatus obj val = liftIO $ setObjectPropertyString obj "default-status" val

constructDOMDOMWindowDefaultStatus :: T.Text -> IO ([Char], GValue)
constructDOMDOMWindowDefaultStatus val = constructObjectPropertyString "default-status" val

data DOMDOMWindowDefaultStatusPropertyInfo
instance AttrInfo DOMDOMWindowDefaultStatusPropertyInfo where
    type AttrAllowedOps DOMDOMWindowDefaultStatusPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowDefaultStatusPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMDOMWindowDefaultStatusPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowDefaultStatusPropertyInfo = T.Text
    type AttrLabel DOMDOMWindowDefaultStatusPropertyInfo = "DOMDOMWindow::default-status"
    attrGet _ = getDOMDOMWindowDefaultStatus
    attrSet _ = setDOMDOMWindowDefaultStatus
    attrConstruct _ = constructDOMDOMWindowDefaultStatus

-- VVV Prop "device-pixel-ratio"
   -- Type: TBasicType TDouble
   -- Flags: [PropertyReadable]

getDOMDOMWindowDevicePixelRatio :: (MonadIO m, DOMDOMWindowK o) => o -> m Double
getDOMDOMWindowDevicePixelRatio obj = liftIO $ getObjectPropertyDouble obj "device-pixel-ratio"

data DOMDOMWindowDevicePixelRatioPropertyInfo
instance AttrInfo DOMDOMWindowDevicePixelRatioPropertyInfo where
    type AttrAllowedOps DOMDOMWindowDevicePixelRatioPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowDevicePixelRatioPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowDevicePixelRatioPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowDevicePixelRatioPropertyInfo = Double
    type AttrLabel DOMDOMWindowDevicePixelRatioPropertyInfo = "DOMDOMWindow::device-pixel-ratio"
    attrGet _ = getDOMDOMWindowDevicePixelRatio
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "document"
   -- Type: TInterface "WebKit2WebExtension" "DOMDocument"
   -- Flags: [PropertyReadable]

getDOMDOMWindowDocument :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMDocument
getDOMDOMWindowDocument obj = liftIO $ getObjectPropertyObject obj "document" DOMDocument

data DOMDOMWindowDocumentPropertyInfo
instance AttrInfo DOMDOMWindowDocumentPropertyInfo where
    type AttrAllowedOps DOMDOMWindowDocumentPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowDocumentPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowDocumentPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowDocumentPropertyInfo = DOMDocument
    type AttrLabel DOMDOMWindowDocumentPropertyInfo = "DOMDOMWindow::document"
    attrGet _ = getDOMDOMWindowDocument
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "frame-element"
   -- Type: TInterface "WebKit2WebExtension" "DOMElement"
   -- Flags: [PropertyReadable]

getDOMDOMWindowFrameElement :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMElement
getDOMDOMWindowFrameElement obj = liftIO $ getObjectPropertyObject obj "frame-element" DOMElement

data DOMDOMWindowFrameElementPropertyInfo
instance AttrInfo DOMDOMWindowFrameElementPropertyInfo where
    type AttrAllowedOps DOMDOMWindowFrameElementPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowFrameElementPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowFrameElementPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowFrameElementPropertyInfo = DOMElement
    type AttrLabel DOMDOMWindowFrameElementPropertyInfo = "DOMDOMWindow::frame-element"
    attrGet _ = getDOMDOMWindowFrameElement
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "frames"
   -- Type: TInterface "WebKit2WebExtension" "DOMDOMWindow"
   -- Flags: [PropertyReadable]

getDOMDOMWindowFrames :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMDOMWindow
getDOMDOMWindowFrames obj = liftIO $ getObjectPropertyObject obj "frames" DOMDOMWindow

data DOMDOMWindowFramesPropertyInfo
instance AttrInfo DOMDOMWindowFramesPropertyInfo where
    type AttrAllowedOps DOMDOMWindowFramesPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowFramesPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowFramesPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowFramesPropertyInfo = DOMDOMWindow
    type AttrLabel DOMDOMWindowFramesPropertyInfo = "DOMDOMWindow::frames"
    attrGet _ = getDOMDOMWindowFrames
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "inner-height"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowInnerHeight :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowInnerHeight obj = liftIO $ getObjectPropertyInt64 obj "inner-height"

data DOMDOMWindowInnerHeightPropertyInfo
instance AttrInfo DOMDOMWindowInnerHeightPropertyInfo where
    type AttrAllowedOps DOMDOMWindowInnerHeightPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowInnerHeightPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowInnerHeightPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowInnerHeightPropertyInfo = Int64
    type AttrLabel DOMDOMWindowInnerHeightPropertyInfo = "DOMDOMWindow::inner-height"
    attrGet _ = getDOMDOMWindowInnerHeight
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "inner-width"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowInnerWidth :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowInnerWidth obj = liftIO $ getObjectPropertyInt64 obj "inner-width"

data DOMDOMWindowInnerWidthPropertyInfo
instance AttrInfo DOMDOMWindowInnerWidthPropertyInfo where
    type AttrAllowedOps DOMDOMWindowInnerWidthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowInnerWidthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowInnerWidthPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowInnerWidthPropertyInfo = Int64
    type AttrLabel DOMDOMWindowInnerWidthPropertyInfo = "DOMDOMWindow::inner-width"
    attrGet _ = getDOMDOMWindowInnerWidth
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "length"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowLength :: (MonadIO m, DOMDOMWindowK o) => o -> m Word64
getDOMDOMWindowLength obj = liftIO $ getObjectPropertyUInt64 obj "length"

data DOMDOMWindowLengthPropertyInfo
instance AttrInfo DOMDOMWindowLengthPropertyInfo where
    type AttrAllowedOps DOMDOMWindowLengthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowLengthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowLengthPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowLengthPropertyInfo = Word64
    type AttrLabel DOMDOMWindowLengthPropertyInfo = "DOMDOMWindow::length"
    attrGet _ = getDOMDOMWindowLength
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "name"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMDOMWindowName :: (MonadIO m, DOMDOMWindowK o) => o -> m T.Text
getDOMDOMWindowName obj = liftIO $ getObjectPropertyString obj "name"

setDOMDOMWindowName :: (MonadIO m, DOMDOMWindowK o) => o -> T.Text -> m ()
setDOMDOMWindowName obj val = liftIO $ setObjectPropertyString obj "name" val

constructDOMDOMWindowName :: T.Text -> IO ([Char], GValue)
constructDOMDOMWindowName val = constructObjectPropertyString "name" val

data DOMDOMWindowNamePropertyInfo
instance AttrInfo DOMDOMWindowNamePropertyInfo where
    type AttrAllowedOps DOMDOMWindowNamePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowNamePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMDOMWindowNamePropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowNamePropertyInfo = T.Text
    type AttrLabel DOMDOMWindowNamePropertyInfo = "DOMDOMWindow::name"
    attrGet _ = getDOMDOMWindowName
    attrSet _ = setDOMDOMWindowName
    attrConstruct _ = constructDOMDOMWindowName

-- VVV Prop "offscreen-buffering"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable]

getDOMDOMWindowOffscreenBuffering :: (MonadIO m, DOMDOMWindowK o) => o -> m Bool
getDOMDOMWindowOffscreenBuffering obj = liftIO $ getObjectPropertyBool obj "offscreen-buffering"

data DOMDOMWindowOffscreenBufferingPropertyInfo
instance AttrInfo DOMDOMWindowOffscreenBufferingPropertyInfo where
    type AttrAllowedOps DOMDOMWindowOffscreenBufferingPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowOffscreenBufferingPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowOffscreenBufferingPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowOffscreenBufferingPropertyInfo = Bool
    type AttrLabel DOMDOMWindowOffscreenBufferingPropertyInfo = "DOMDOMWindow::offscreen-buffering"
    attrGet _ = getDOMDOMWindowOffscreenBuffering
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "opener"
   -- Type: TInterface "WebKit2WebExtension" "DOMDOMWindow"
   -- Flags: [PropertyReadable]

getDOMDOMWindowOpener :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMDOMWindow
getDOMDOMWindowOpener obj = liftIO $ getObjectPropertyObject obj "opener" DOMDOMWindow

data DOMDOMWindowOpenerPropertyInfo
instance AttrInfo DOMDOMWindowOpenerPropertyInfo where
    type AttrAllowedOps DOMDOMWindowOpenerPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowOpenerPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowOpenerPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowOpenerPropertyInfo = DOMDOMWindow
    type AttrLabel DOMDOMWindowOpenerPropertyInfo = "DOMDOMWindow::opener"
    attrGet _ = getDOMDOMWindowOpener
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "orientation"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowOrientation :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowOrientation obj = liftIO $ getObjectPropertyInt64 obj "orientation"

data DOMDOMWindowOrientationPropertyInfo
instance AttrInfo DOMDOMWindowOrientationPropertyInfo where
    type AttrAllowedOps DOMDOMWindowOrientationPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowOrientationPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowOrientationPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowOrientationPropertyInfo = Int64
    type AttrLabel DOMDOMWindowOrientationPropertyInfo = "DOMDOMWindow::orientation"
    attrGet _ = getDOMDOMWindowOrientation
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "outer-height"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowOuterHeight :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowOuterHeight obj = liftIO $ getObjectPropertyInt64 obj "outer-height"

data DOMDOMWindowOuterHeightPropertyInfo
instance AttrInfo DOMDOMWindowOuterHeightPropertyInfo where
    type AttrAllowedOps DOMDOMWindowOuterHeightPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowOuterHeightPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowOuterHeightPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowOuterHeightPropertyInfo = Int64
    type AttrLabel DOMDOMWindowOuterHeightPropertyInfo = "DOMDOMWindow::outer-height"
    attrGet _ = getDOMDOMWindowOuterHeight
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "outer-width"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowOuterWidth :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowOuterWidth obj = liftIO $ getObjectPropertyInt64 obj "outer-width"

data DOMDOMWindowOuterWidthPropertyInfo
instance AttrInfo DOMDOMWindowOuterWidthPropertyInfo where
    type AttrAllowedOps DOMDOMWindowOuterWidthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowOuterWidthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowOuterWidthPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowOuterWidthPropertyInfo = Int64
    type AttrLabel DOMDOMWindowOuterWidthPropertyInfo = "DOMDOMWindow::outer-width"
    attrGet _ = getDOMDOMWindowOuterWidth
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "page-x-offset"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowPageXOffset :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowPageXOffset obj = liftIO $ getObjectPropertyInt64 obj "page-x-offset"

data DOMDOMWindowPageXOffsetPropertyInfo
instance AttrInfo DOMDOMWindowPageXOffsetPropertyInfo where
    type AttrAllowedOps DOMDOMWindowPageXOffsetPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowPageXOffsetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowPageXOffsetPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowPageXOffsetPropertyInfo = Int64
    type AttrLabel DOMDOMWindowPageXOffsetPropertyInfo = "DOMDOMWindow::page-x-offset"
    attrGet _ = getDOMDOMWindowPageXOffset
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "page-y-offset"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowPageYOffset :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowPageYOffset obj = liftIO $ getObjectPropertyInt64 obj "page-y-offset"

data DOMDOMWindowPageYOffsetPropertyInfo
instance AttrInfo DOMDOMWindowPageYOffsetPropertyInfo where
    type AttrAllowedOps DOMDOMWindowPageYOffsetPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowPageYOffsetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowPageYOffsetPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowPageYOffsetPropertyInfo = Int64
    type AttrLabel DOMDOMWindowPageYOffsetPropertyInfo = "DOMDOMWindow::page-y-offset"
    attrGet _ = getDOMDOMWindowPageYOffset
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "parent"
   -- Type: TInterface "WebKit2WebExtension" "DOMDOMWindow"
   -- Flags: [PropertyReadable]

getDOMDOMWindowParent :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMDOMWindow
getDOMDOMWindowParent obj = liftIO $ getObjectPropertyObject obj "parent" DOMDOMWindow

data DOMDOMWindowParentPropertyInfo
instance AttrInfo DOMDOMWindowParentPropertyInfo where
    type AttrAllowedOps DOMDOMWindowParentPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowParentPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowParentPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowParentPropertyInfo = DOMDOMWindow
    type AttrLabel DOMDOMWindowParentPropertyInfo = "DOMDOMWindow::parent"
    attrGet _ = getDOMDOMWindowParent
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "screen-left"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowScreenLeft :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowScreenLeft obj = liftIO $ getObjectPropertyInt64 obj "screen-left"

data DOMDOMWindowScreenLeftPropertyInfo
instance AttrInfo DOMDOMWindowScreenLeftPropertyInfo where
    type AttrAllowedOps DOMDOMWindowScreenLeftPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowScreenLeftPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowScreenLeftPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowScreenLeftPropertyInfo = Int64
    type AttrLabel DOMDOMWindowScreenLeftPropertyInfo = "DOMDOMWindow::screen-left"
    attrGet _ = getDOMDOMWindowScreenLeft
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "screen-top"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowScreenTop :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowScreenTop obj = liftIO $ getObjectPropertyInt64 obj "screen-top"

data DOMDOMWindowScreenTopPropertyInfo
instance AttrInfo DOMDOMWindowScreenTopPropertyInfo where
    type AttrAllowedOps DOMDOMWindowScreenTopPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowScreenTopPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowScreenTopPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowScreenTopPropertyInfo = Int64
    type AttrLabel DOMDOMWindowScreenTopPropertyInfo = "DOMDOMWindow::screen-top"
    attrGet _ = getDOMDOMWindowScreenTop
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "screen-x"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowScreenX :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowScreenX obj = liftIO $ getObjectPropertyInt64 obj "screen-x"

data DOMDOMWindowScreenXPropertyInfo
instance AttrInfo DOMDOMWindowScreenXPropertyInfo where
    type AttrAllowedOps DOMDOMWindowScreenXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowScreenXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowScreenXPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowScreenXPropertyInfo = Int64
    type AttrLabel DOMDOMWindowScreenXPropertyInfo = "DOMDOMWindow::screen-x"
    attrGet _ = getDOMDOMWindowScreenX
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "screen-y"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowScreenY :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowScreenY obj = liftIO $ getObjectPropertyInt64 obj "screen-y"

data DOMDOMWindowScreenYPropertyInfo
instance AttrInfo DOMDOMWindowScreenYPropertyInfo where
    type AttrAllowedOps DOMDOMWindowScreenYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowScreenYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowScreenYPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowScreenYPropertyInfo = Int64
    type AttrLabel DOMDOMWindowScreenYPropertyInfo = "DOMDOMWindow::screen-y"
    attrGet _ = getDOMDOMWindowScreenY
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "scroll-x"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowScrollX :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowScrollX obj = liftIO $ getObjectPropertyInt64 obj "scroll-x"

data DOMDOMWindowScrollXPropertyInfo
instance AttrInfo DOMDOMWindowScrollXPropertyInfo where
    type AttrAllowedOps DOMDOMWindowScrollXPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowScrollXPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowScrollXPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowScrollXPropertyInfo = Int64
    type AttrLabel DOMDOMWindowScrollXPropertyInfo = "DOMDOMWindow::scroll-x"
    attrGet _ = getDOMDOMWindowScrollX
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "scroll-y"
   -- Type: TBasicType TInt64
   -- Flags: [PropertyReadable]

getDOMDOMWindowScrollY :: (MonadIO m, DOMDOMWindowK o) => o -> m Int64
getDOMDOMWindowScrollY obj = liftIO $ getObjectPropertyInt64 obj "scroll-y"

data DOMDOMWindowScrollYPropertyInfo
instance AttrInfo DOMDOMWindowScrollYPropertyInfo where
    type AttrAllowedOps DOMDOMWindowScrollYPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowScrollYPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowScrollYPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowScrollYPropertyInfo = Int64
    type AttrLabel DOMDOMWindowScrollYPropertyInfo = "DOMDOMWindow::scroll-y"
    attrGet _ = getDOMDOMWindowScrollY
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "self"
   -- Type: TInterface "WebKit2WebExtension" "DOMDOMWindow"
   -- Flags: [PropertyReadable]

getDOMDOMWindowSelf :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMDOMWindow
getDOMDOMWindowSelf obj = liftIO $ getObjectPropertyObject obj "self" DOMDOMWindow

data DOMDOMWindowSelfPropertyInfo
instance AttrInfo DOMDOMWindowSelfPropertyInfo where
    type AttrAllowedOps DOMDOMWindowSelfPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowSelfPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowSelfPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowSelfPropertyInfo = DOMDOMWindow
    type AttrLabel DOMDOMWindowSelfPropertyInfo = "DOMDOMWindow::self"
    attrGet _ = getDOMDOMWindowSelf
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "status"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getDOMDOMWindowStatus :: (MonadIO m, DOMDOMWindowK o) => o -> m T.Text
getDOMDOMWindowStatus obj = liftIO $ getObjectPropertyString obj "status"

setDOMDOMWindowStatus :: (MonadIO m, DOMDOMWindowK o) => o -> T.Text -> m ()
setDOMDOMWindowStatus obj val = liftIO $ setObjectPropertyString obj "status" val

constructDOMDOMWindowStatus :: T.Text -> IO ([Char], GValue)
constructDOMDOMWindowStatus val = constructObjectPropertyString "status" val

data DOMDOMWindowStatusPropertyInfo
instance AttrInfo DOMDOMWindowStatusPropertyInfo where
    type AttrAllowedOps DOMDOMWindowStatusPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowStatusPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint DOMDOMWindowStatusPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowStatusPropertyInfo = T.Text
    type AttrLabel DOMDOMWindowStatusPropertyInfo = "DOMDOMWindow::status"
    attrGet _ = getDOMDOMWindowStatus
    attrSet _ = setDOMDOMWindowStatus
    attrConstruct _ = constructDOMDOMWindowStatus

-- VVV Prop "top"
   -- Type: TInterface "WebKit2WebExtension" "DOMDOMWindow"
   -- Flags: [PropertyReadable]

getDOMDOMWindowTop :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMDOMWindow
getDOMDOMWindowTop obj = liftIO $ getObjectPropertyObject obj "top" DOMDOMWindow

data DOMDOMWindowTopPropertyInfo
instance AttrInfo DOMDOMWindowTopPropertyInfo where
    type AttrAllowedOps DOMDOMWindowTopPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowTopPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowTopPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowTopPropertyInfo = DOMDOMWindow
    type AttrLabel DOMDOMWindowTopPropertyInfo = "DOMDOMWindow::top"
    attrGet _ = getDOMDOMWindowTop
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "window"
   -- Type: TInterface "WebKit2WebExtension" "DOMDOMWindow"
   -- Flags: [PropertyReadable]

getDOMDOMWindowWindow :: (MonadIO m, DOMDOMWindowK o) => o -> m DOMDOMWindow
getDOMDOMWindowWindow obj = liftIO $ getObjectPropertyObject obj "window" DOMDOMWindow

data DOMDOMWindowWindowPropertyInfo
instance AttrInfo DOMDOMWindowWindowPropertyInfo where
    type AttrAllowedOps DOMDOMWindowWindowPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint DOMDOMWindowWindowPropertyInfo = (~) ()
    type AttrBaseTypeConstraint DOMDOMWindowWindowPropertyInfo = DOMDOMWindowK
    type AttrGetType DOMDOMWindowWindowPropertyInfo = DOMDOMWindow
    type AttrLabel DOMDOMWindowWindowPropertyInfo = "DOMDOMWindow::window"
    attrGet _ = getDOMDOMWindowWindow
    attrSet _ = undefined
    attrConstruct _ = undefined

type instance AttributeList DOMDOMWindow = DOMDOMWindowAttributeList
type DOMDOMWindowAttributeList = ('[ '("closed", DOMDOMWindowClosedPropertyInfo), '("core-object", DOMObjectCoreObjectPropertyInfo), '("default-status", DOMDOMWindowDefaultStatusPropertyInfo), '("device-pixel-ratio", DOMDOMWindowDevicePixelRatioPropertyInfo), '("document", DOMDOMWindowDocumentPropertyInfo), '("frame-element", DOMDOMWindowFrameElementPropertyInfo), '("frames", DOMDOMWindowFramesPropertyInfo), '("inner-height", DOMDOMWindowInnerHeightPropertyInfo), '("inner-width", DOMDOMWindowInnerWidthPropertyInfo), '("length", DOMDOMWindowLengthPropertyInfo), '("name", DOMDOMWindowNamePropertyInfo), '("offscreen-buffering", DOMDOMWindowOffscreenBufferingPropertyInfo), '("opener", DOMDOMWindowOpenerPropertyInfo), '("orientation", DOMDOMWindowOrientationPropertyInfo), '("outer-height", DOMDOMWindowOuterHeightPropertyInfo), '("outer-width", DOMDOMWindowOuterWidthPropertyInfo), '("page-x-offset", DOMDOMWindowPageXOffsetPropertyInfo), '("page-y-offset", DOMDOMWindowPageYOffsetPropertyInfo), '("parent", DOMDOMWindowParentPropertyInfo), '("screen-left", DOMDOMWindowScreenLeftPropertyInfo), '("screen-top", DOMDOMWindowScreenTopPropertyInfo), '("screen-x", DOMDOMWindowScreenXPropertyInfo), '("screen-y", DOMDOMWindowScreenYPropertyInfo), '("scroll-x", DOMDOMWindowScrollXPropertyInfo), '("scroll-y", DOMDOMWindowScrollYPropertyInfo), '("self", DOMDOMWindowSelfPropertyInfo), '("status", DOMDOMWindowStatusPropertyInfo), '("top", DOMDOMWindowTopPropertyInfo), '("window", DOMDOMWindowWindowPropertyInfo)] :: [(Symbol, *)])

type instance SignalList DOMDOMWindow = DOMDOMWindowSignalList
type DOMDOMWindowSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method DOMDOMWindow::webkit_message_handlers_post_message
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMDOMWindow", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "WebKit2WebExtension" "DOMDOMWindow", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "webkit_dom_dom_window_webkit_message_handlers_post_message" webkit_dom_dom_window_webkit_message_handlers_post_message :: 
    Ptr DOMDOMWindow ->                     -- _obj : TInterface "WebKit2WebExtension" "DOMDOMWindow"
    CString ->                              -- handler : TBasicType TUTF8
    CString ->                              -- message : TBasicType TUTF8
    IO CInt


dOMDOMWindowWebkitMessageHandlersPostMessage ::
    (MonadIO m, DOMDOMWindowK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- handler
    T.Text ->                               -- message
    m Bool
dOMDOMWindowWebkitMessageHandlersPostMessage _obj handler message = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    handler' <- textToCString handler
    message' <- textToCString message
    result <- webkit_dom_dom_window_webkit_message_handlers_post_message _obj' handler' message'
    let result' = (/= 0) result
    touchManagedPtr _obj
    freeMem handler'
    freeMem message'
    return result'