{- |
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.WebKit2.Objects.WindowProperties
    ( 

-- * Exported types
    WindowProperties(..)                    ,
    IsWindowProperties                      ,
    toWindowProperties                      ,
    noWindowProperties                      ,


 -- * Methods
-- ** getFullscreen #method:getFullscreen#
    WindowPropertiesGetFullscreenMethodInfo ,
    windowPropertiesGetFullscreen           ,


-- ** getGeometry #method:getGeometry#
    WindowPropertiesGetGeometryMethodInfo   ,
    windowPropertiesGetGeometry             ,


-- ** getLocationbarVisible #method:getLocationbarVisible#
    WindowPropertiesGetLocationbarVisibleMethodInfo,
    windowPropertiesGetLocationbarVisible   ,


-- ** getMenubarVisible #method:getMenubarVisible#
    WindowPropertiesGetMenubarVisibleMethodInfo,
    windowPropertiesGetMenubarVisible       ,


-- ** getResizable #method:getResizable#
    WindowPropertiesGetResizableMethodInfo  ,
    windowPropertiesGetResizable            ,


-- ** getScrollbarsVisible #method:getScrollbarsVisible#
    WindowPropertiesGetScrollbarsVisibleMethodInfo,
    windowPropertiesGetScrollbarsVisible    ,


-- ** getStatusbarVisible #method:getStatusbarVisible#
    WindowPropertiesGetStatusbarVisibleMethodInfo,
    windowPropertiesGetStatusbarVisible     ,


-- ** getToolbarVisible #method:getToolbarVisible#
    WindowPropertiesGetToolbarVisibleMethodInfo,
    windowPropertiesGetToolbarVisible       ,




 -- * Properties
-- ** fullscreen #attr:fullscreen#
    WindowPropertiesFullscreenPropertyInfo  ,
    constructWindowPropertiesFullscreen     ,
    getWindowPropertiesFullscreen           ,
    windowPropertiesFullscreen              ,


-- ** geometry #attr:geometry#
    WindowPropertiesGeometryPropertyInfo    ,
    constructWindowPropertiesGeometry       ,
    getWindowPropertiesGeometry             ,
    windowPropertiesGeometry                ,


-- ** locationbarVisible #attr:locationbarVisible#
    WindowPropertiesLocationbarVisiblePropertyInfo,
    constructWindowPropertiesLocationbarVisible,
    getWindowPropertiesLocationbarVisible   ,
    windowPropertiesLocationbarVisible      ,


-- ** menubarVisible #attr:menubarVisible#
    WindowPropertiesMenubarVisiblePropertyInfo,
    constructWindowPropertiesMenubarVisible ,
    getWindowPropertiesMenubarVisible       ,
    windowPropertiesMenubarVisible          ,


-- ** resizable #attr:resizable#
    WindowPropertiesResizablePropertyInfo   ,
    constructWindowPropertiesResizable      ,
    getWindowPropertiesResizable            ,
    windowPropertiesResizable               ,


-- ** scrollbarsVisible #attr:scrollbarsVisible#
    WindowPropertiesScrollbarsVisiblePropertyInfo,
    constructWindowPropertiesScrollbarsVisible,
    getWindowPropertiesScrollbarsVisible    ,
    windowPropertiesScrollbarsVisible       ,


-- ** statusbarVisible #attr:statusbarVisible#
    WindowPropertiesStatusbarVisiblePropertyInfo,
    constructWindowPropertiesStatusbarVisible,
    getWindowPropertiesStatusbarVisible     ,
    windowPropertiesStatusbarVisible        ,


-- ** toolbarVisible #attr:toolbarVisible#
    WindowPropertiesToolbarVisiblePropertyInfo,
    constructWindowPropertiesToolbarVisible ,
    getWindowPropertiesToolbarVisible       ,
    windowPropertiesToolbarVisible          ,




    ) 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 qualified GI.Gdk.Structs.Rectangle as Gdk.Rectangle

newtype WindowProperties = WindowProperties (ManagedPtr WindowProperties)
foreign import ccall "webkit_window_properties_get_type"
    c_webkit_window_properties_get_type :: IO GType

instance GObject WindowProperties where
    gobjectType _ = c_webkit_window_properties_get_type
    

class GObject o => IsWindowProperties o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError WindowProperties a) =>
    IsWindowProperties a
#endif
instance IsWindowProperties WindowProperties
instance GObject.Object.IsObject WindowProperties

toWindowProperties :: IsWindowProperties o => o -> IO WindowProperties
toWindowProperties = unsafeCastTo WindowProperties

noWindowProperties :: Maybe WindowProperties
noWindowProperties = Nothing

type family ResolveWindowPropertiesMethod (t :: Symbol) (o :: *) :: * where
    ResolveWindowPropertiesMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveWindowPropertiesMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveWindowPropertiesMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveWindowPropertiesMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveWindowPropertiesMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveWindowPropertiesMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveWindowPropertiesMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveWindowPropertiesMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveWindowPropertiesMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveWindowPropertiesMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveWindowPropertiesMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveWindowPropertiesMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveWindowPropertiesMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveWindowPropertiesMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveWindowPropertiesMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveWindowPropertiesMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveWindowPropertiesMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveWindowPropertiesMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveWindowPropertiesMethod "getFullscreen" o = WindowPropertiesGetFullscreenMethodInfo
    ResolveWindowPropertiesMethod "getGeometry" o = WindowPropertiesGetGeometryMethodInfo
    ResolveWindowPropertiesMethod "getLocationbarVisible" o = WindowPropertiesGetLocationbarVisibleMethodInfo
    ResolveWindowPropertiesMethod "getMenubarVisible" o = WindowPropertiesGetMenubarVisibleMethodInfo
    ResolveWindowPropertiesMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveWindowPropertiesMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveWindowPropertiesMethod "getResizable" o = WindowPropertiesGetResizableMethodInfo
    ResolveWindowPropertiesMethod "getScrollbarsVisible" o = WindowPropertiesGetScrollbarsVisibleMethodInfo
    ResolveWindowPropertiesMethod "getStatusbarVisible" o = WindowPropertiesGetStatusbarVisibleMethodInfo
    ResolveWindowPropertiesMethod "getToolbarVisible" o = WindowPropertiesGetToolbarVisibleMethodInfo
    ResolveWindowPropertiesMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveWindowPropertiesMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveWindowPropertiesMethod l o = O.MethodResolutionFailed l o

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

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

-- VVV Prop "fullscreen"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

getWindowPropertiesFullscreen :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesFullscreen obj = liftIO $ getObjectPropertyBool obj "fullscreen"

constructWindowPropertiesFullscreen :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesFullscreen val = constructObjectPropertyBool "fullscreen" val

data WindowPropertiesFullscreenPropertyInfo
instance AttrInfo WindowPropertiesFullscreenPropertyInfo where
    type AttrAllowedOps WindowPropertiesFullscreenPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WindowPropertiesFullscreenPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WindowPropertiesFullscreenPropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesFullscreenPropertyInfo = Bool
    type AttrLabel WindowPropertiesFullscreenPropertyInfo = "fullscreen"
    type AttrOrigin WindowPropertiesFullscreenPropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesFullscreen
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesFullscreen
    attrClear _ = undefined

-- VVV Prop "geometry"
   -- Type: TInterface (Name {namespace = "Gdk", name = "Rectangle"})
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Nothing,Nothing)

getWindowPropertiesGeometry :: (MonadIO m, IsWindowProperties o) => o -> m (Maybe Gdk.Rectangle.Rectangle)
getWindowPropertiesGeometry obj = liftIO $ getObjectPropertyBoxed obj "geometry" Gdk.Rectangle.Rectangle

constructWindowPropertiesGeometry :: (IsWindowProperties o) => Gdk.Rectangle.Rectangle -> IO (GValueConstruct o)
constructWindowPropertiesGeometry val = constructObjectPropertyBoxed "geometry" (Just val)

data WindowPropertiesGeometryPropertyInfo
instance AttrInfo WindowPropertiesGeometryPropertyInfo where
    type AttrAllowedOps WindowPropertiesGeometryPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint WindowPropertiesGeometryPropertyInfo = (~) Gdk.Rectangle.Rectangle
    type AttrBaseTypeConstraint WindowPropertiesGeometryPropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesGeometryPropertyInfo = (Maybe Gdk.Rectangle.Rectangle)
    type AttrLabel WindowPropertiesGeometryPropertyInfo = "geometry"
    type AttrOrigin WindowPropertiesGeometryPropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesGeometry
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesGeometry
    attrClear _ = undefined

-- VVV Prop "locationbar-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

getWindowPropertiesLocationbarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesLocationbarVisible obj = liftIO $ getObjectPropertyBool obj "locationbar-visible"

constructWindowPropertiesLocationbarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesLocationbarVisible val = constructObjectPropertyBool "locationbar-visible" val

data WindowPropertiesLocationbarVisiblePropertyInfo
instance AttrInfo WindowPropertiesLocationbarVisiblePropertyInfo where
    type AttrAllowedOps WindowPropertiesLocationbarVisiblePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WindowPropertiesLocationbarVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WindowPropertiesLocationbarVisiblePropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesLocationbarVisiblePropertyInfo = Bool
    type AttrLabel WindowPropertiesLocationbarVisiblePropertyInfo = "locationbar-visible"
    type AttrOrigin WindowPropertiesLocationbarVisiblePropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesLocationbarVisible
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesLocationbarVisible
    attrClear _ = undefined

-- VVV Prop "menubar-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

getWindowPropertiesMenubarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesMenubarVisible obj = liftIO $ getObjectPropertyBool obj "menubar-visible"

constructWindowPropertiesMenubarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesMenubarVisible val = constructObjectPropertyBool "menubar-visible" val

data WindowPropertiesMenubarVisiblePropertyInfo
instance AttrInfo WindowPropertiesMenubarVisiblePropertyInfo where
    type AttrAllowedOps WindowPropertiesMenubarVisiblePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WindowPropertiesMenubarVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WindowPropertiesMenubarVisiblePropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesMenubarVisiblePropertyInfo = Bool
    type AttrLabel WindowPropertiesMenubarVisiblePropertyInfo = "menubar-visible"
    type AttrOrigin WindowPropertiesMenubarVisiblePropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesMenubarVisible
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesMenubarVisible
    attrClear _ = undefined

-- VVV Prop "resizable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

getWindowPropertiesResizable :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesResizable obj = liftIO $ getObjectPropertyBool obj "resizable"

constructWindowPropertiesResizable :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesResizable val = constructObjectPropertyBool "resizable" val

data WindowPropertiesResizablePropertyInfo
instance AttrInfo WindowPropertiesResizablePropertyInfo where
    type AttrAllowedOps WindowPropertiesResizablePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WindowPropertiesResizablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WindowPropertiesResizablePropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesResizablePropertyInfo = Bool
    type AttrLabel WindowPropertiesResizablePropertyInfo = "resizable"
    type AttrOrigin WindowPropertiesResizablePropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesResizable
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesResizable
    attrClear _ = undefined

-- VVV Prop "scrollbars-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

getWindowPropertiesScrollbarsVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesScrollbarsVisible obj = liftIO $ getObjectPropertyBool obj "scrollbars-visible"

constructWindowPropertiesScrollbarsVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesScrollbarsVisible val = constructObjectPropertyBool "scrollbars-visible" val

data WindowPropertiesScrollbarsVisiblePropertyInfo
instance AttrInfo WindowPropertiesScrollbarsVisiblePropertyInfo where
    type AttrAllowedOps WindowPropertiesScrollbarsVisiblePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WindowPropertiesScrollbarsVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WindowPropertiesScrollbarsVisiblePropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesScrollbarsVisiblePropertyInfo = Bool
    type AttrLabel WindowPropertiesScrollbarsVisiblePropertyInfo = "scrollbars-visible"
    type AttrOrigin WindowPropertiesScrollbarsVisiblePropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesScrollbarsVisible
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesScrollbarsVisible
    attrClear _ = undefined

-- VVV Prop "statusbar-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

getWindowPropertiesStatusbarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesStatusbarVisible obj = liftIO $ getObjectPropertyBool obj "statusbar-visible"

constructWindowPropertiesStatusbarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesStatusbarVisible val = constructObjectPropertyBool "statusbar-visible" val

data WindowPropertiesStatusbarVisiblePropertyInfo
instance AttrInfo WindowPropertiesStatusbarVisiblePropertyInfo where
    type AttrAllowedOps WindowPropertiesStatusbarVisiblePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WindowPropertiesStatusbarVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WindowPropertiesStatusbarVisiblePropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesStatusbarVisiblePropertyInfo = Bool
    type AttrLabel WindowPropertiesStatusbarVisiblePropertyInfo = "statusbar-visible"
    type AttrOrigin WindowPropertiesStatusbarVisiblePropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesStatusbarVisible
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesStatusbarVisible
    attrClear _ = undefined

-- VVV Prop "toolbar-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

getWindowPropertiesToolbarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesToolbarVisible obj = liftIO $ getObjectPropertyBool obj "toolbar-visible"

constructWindowPropertiesToolbarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesToolbarVisible val = constructObjectPropertyBool "toolbar-visible" val

data WindowPropertiesToolbarVisiblePropertyInfo
instance AttrInfo WindowPropertiesToolbarVisiblePropertyInfo where
    type AttrAllowedOps WindowPropertiesToolbarVisiblePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint WindowPropertiesToolbarVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint WindowPropertiesToolbarVisiblePropertyInfo = IsWindowProperties
    type AttrGetType WindowPropertiesToolbarVisiblePropertyInfo = Bool
    type AttrLabel WindowPropertiesToolbarVisiblePropertyInfo = "toolbar-visible"
    type AttrOrigin WindowPropertiesToolbarVisiblePropertyInfo = WindowProperties
    attrGet _ = getWindowPropertiesToolbarVisible
    attrSet _ = undefined
    attrConstruct _ = constructWindowPropertiesToolbarVisible
    attrClear _ = undefined

instance O.HasAttributeList WindowProperties
type instance O.AttributeList WindowProperties = WindowPropertiesAttributeList
type WindowPropertiesAttributeList = ('[ '("fullscreen", WindowPropertiesFullscreenPropertyInfo), '("geometry", WindowPropertiesGeometryPropertyInfo), '("locationbarVisible", WindowPropertiesLocationbarVisiblePropertyInfo), '("menubarVisible", WindowPropertiesMenubarVisiblePropertyInfo), '("resizable", WindowPropertiesResizablePropertyInfo), '("scrollbarsVisible", WindowPropertiesScrollbarsVisiblePropertyInfo), '("statusbarVisible", WindowPropertiesStatusbarVisiblePropertyInfo), '("toolbarVisible", WindowPropertiesToolbarVisiblePropertyInfo)] :: [(Symbol, *)])

windowPropertiesFullscreen :: AttrLabelProxy "fullscreen"
windowPropertiesFullscreen = AttrLabelProxy

windowPropertiesGeometry :: AttrLabelProxy "geometry"
windowPropertiesGeometry = AttrLabelProxy

windowPropertiesLocationbarVisible :: AttrLabelProxy "locationbarVisible"
windowPropertiesLocationbarVisible = AttrLabelProxy

windowPropertiesMenubarVisible :: AttrLabelProxy "menubarVisible"
windowPropertiesMenubarVisible = AttrLabelProxy

windowPropertiesResizable :: AttrLabelProxy "resizable"
windowPropertiesResizable = AttrLabelProxy

windowPropertiesScrollbarsVisible :: AttrLabelProxy "scrollbarsVisible"
windowPropertiesScrollbarsVisible = AttrLabelProxy

windowPropertiesStatusbarVisible :: AttrLabelProxy "statusbarVisible"
windowPropertiesStatusbarVisible = AttrLabelProxy

windowPropertiesToolbarVisible :: AttrLabelProxy "toolbarVisible"
windowPropertiesToolbarVisible = AttrLabelProxy

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

-- method WindowProperties::get_fullscreen
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", 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_window_properties_get_fullscreen" webkit_window_properties_get_fullscreen :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    IO CInt

{- |
Get whether the window should be shown in fullscreen state or not.
-}
windowPropertiesGetFullscreen ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the window should be fullscreen or 'False' otherwise. -}
windowPropertiesGetFullscreen windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    result <- webkit_window_properties_get_fullscreen windowProperties'
    let result' = (/= 0) result
    touchManagedPtr windowProperties
    return result'

data WindowPropertiesGetFullscreenMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetFullscreenMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetFullscreen

-- method WindowProperties::get_geometry
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "geometry", argType = TInterface (Name {namespace = "Gdk", name = "Rectangle"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the window geometry", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_window_properties_get_geometry" webkit_window_properties_get_geometry :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    Ptr Gdk.Rectangle.Rectangle ->          -- geometry : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    IO ()

{- |
Get the geometry the window should have on the screen when shown.
-}
windowPropertiesGetGeometry ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m (Gdk.Rectangle.Rectangle)
windowPropertiesGetGeometry windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    geometry <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    webkit_window_properties_get_geometry windowProperties' geometry
    geometry' <- (wrapBoxed Gdk.Rectangle.Rectangle) geometry
    touchManagedPtr windowProperties
    return geometry'

data WindowPropertiesGetGeometryMethodInfo
instance (signature ~ (m (Gdk.Rectangle.Rectangle)), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetGeometryMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetGeometry

-- method WindowProperties::get_locationbar_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", 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_window_properties_get_locationbar_visible" webkit_window_properties_get_locationbar_visible :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    IO CInt

{- |
Get whether the window should have the locationbar visible or not.
-}
windowPropertiesGetLocationbarVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if locationbar should be visible or 'False' otherwise. -}
windowPropertiesGetLocationbarVisible windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    result <- webkit_window_properties_get_locationbar_visible windowProperties'
    let result' = (/= 0) result
    touchManagedPtr windowProperties
    return result'

data WindowPropertiesGetLocationbarVisibleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetLocationbarVisibleMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetLocationbarVisible

-- method WindowProperties::get_menubar_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", 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_window_properties_get_menubar_visible" webkit_window_properties_get_menubar_visible :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    IO CInt

{- |
Get whether the window should have the menubar visible or not.
-}
windowPropertiesGetMenubarVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if menubar should be visible or 'False' otherwise. -}
windowPropertiesGetMenubarVisible windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    result <- webkit_window_properties_get_menubar_visible windowProperties'
    let result' = (/= 0) result
    touchManagedPtr windowProperties
    return result'

data WindowPropertiesGetMenubarVisibleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetMenubarVisibleMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetMenubarVisible

-- method WindowProperties::get_resizable
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", 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_window_properties_get_resizable" webkit_window_properties_get_resizable :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    IO CInt

{- |
Get whether the window should be resizable by the user or not.
-}
windowPropertiesGetResizable ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the window should be resizable or 'False' otherwise. -}
windowPropertiesGetResizable windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    result <- webkit_window_properties_get_resizable windowProperties'
    let result' = (/= 0) result
    touchManagedPtr windowProperties
    return result'

data WindowPropertiesGetResizableMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetResizableMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetResizable

-- method WindowProperties::get_scrollbars_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", 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_window_properties_get_scrollbars_visible" webkit_window_properties_get_scrollbars_visible :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    IO CInt

{- |
Get whether the window should have the scrollbars visible or not.
-}
windowPropertiesGetScrollbarsVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if scrollbars should be visible or 'False' otherwise. -}
windowPropertiesGetScrollbarsVisible windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    result <- webkit_window_properties_get_scrollbars_visible windowProperties'
    let result' = (/= 0) result
    touchManagedPtr windowProperties
    return result'

data WindowPropertiesGetScrollbarsVisibleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetScrollbarsVisibleMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetScrollbarsVisible

-- method WindowProperties::get_statusbar_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", 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_window_properties_get_statusbar_visible" webkit_window_properties_get_statusbar_visible :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    IO CInt

{- |
Get whether the window should have the statusbar visible or not.
-}
windowPropertiesGetStatusbarVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if statusbar should be visible or 'False' otherwise. -}
windowPropertiesGetStatusbarVisible windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    result <- webkit_window_properties_get_statusbar_visible windowProperties'
    let result' = (/= 0) result
    touchManagedPtr windowProperties
    return result'

data WindowPropertiesGetStatusbarVisibleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetStatusbarVisibleMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetStatusbarVisible

-- method WindowProperties::get_toolbar_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "window_properties", argType = TInterface (Name {namespace = "WebKit2", name = "WindowProperties"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitWindowProperties", 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_window_properties_get_toolbar_visible" webkit_window_properties_get_toolbar_visible :: 
    Ptr WindowProperties ->                 -- window_properties : TInterface (Name {namespace = "WebKit2", name = "WindowProperties"})
    IO CInt

{- |
Get whether the window should have the toolbar visible or not.
-}
windowPropertiesGetToolbarVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsWindowProperties a) =>
    a
    {- ^ /@windowProperties@/: a 'GI.WebKit2.Objects.WindowProperties.WindowProperties' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if toolbar should be visible or 'False' otherwise. -}
windowPropertiesGetToolbarVisible windowProperties = liftIO $ do
    windowProperties' <- unsafeManagedPtrCastPtr windowProperties
    result <- webkit_window_properties_get_toolbar_visible windowProperties'
    let result' = (/= 0) result
    touchManagedPtr windowProperties
    return result'

data WindowPropertiesGetToolbarVisibleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsWindowProperties a) => O.MethodInfo WindowPropertiesGetToolbarVisibleMethodInfo a signature where
    overloadedMethod _ = windowPropertiesGetToolbarVisible