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

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


 -- * Methods
-- ** getFullscreen #method:getFullscreen#

#if ENABLE_OVERLOADING
    WindowPropertiesGetFullscreenMethodInfo ,
#endif
    windowPropertiesGetFullscreen           ,


-- ** getGeometry #method:getGeometry#

#if ENABLE_OVERLOADING
    WindowPropertiesGetGeometryMethodInfo   ,
#endif
    windowPropertiesGetGeometry             ,


-- ** getLocationbarVisible #method:getLocationbarVisible#

#if ENABLE_OVERLOADING
    WindowPropertiesGetLocationbarVisibleMethodInfo,
#endif
    windowPropertiesGetLocationbarVisible   ,


-- ** getMenubarVisible #method:getMenubarVisible#

#if ENABLE_OVERLOADING
    WindowPropertiesGetMenubarVisibleMethodInfo,
#endif
    windowPropertiesGetMenubarVisible       ,


-- ** getResizable #method:getResizable#

#if ENABLE_OVERLOADING
    WindowPropertiesGetResizableMethodInfo  ,
#endif
    windowPropertiesGetResizable            ,


-- ** getScrollbarsVisible #method:getScrollbarsVisible#

#if ENABLE_OVERLOADING
    WindowPropertiesGetScrollbarsVisibleMethodInfo,
#endif
    windowPropertiesGetScrollbarsVisible    ,


-- ** getStatusbarVisible #method:getStatusbarVisible#

#if ENABLE_OVERLOADING
    WindowPropertiesGetStatusbarVisibleMethodInfo,
#endif
    windowPropertiesGetStatusbarVisible     ,


-- ** getToolbarVisible #method:getToolbarVisible#

#if ENABLE_OVERLOADING
    WindowPropertiesGetToolbarVisibleMethodInfo,
#endif
    windowPropertiesGetToolbarVisible       ,




 -- * Properties
-- ** fullscreen #attr:fullscreen#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesFullscreenPropertyInfo  ,
#endif
    constructWindowPropertiesFullscreen     ,
    getWindowPropertiesFullscreen           ,
#if ENABLE_OVERLOADING
    windowPropertiesFullscreen              ,
#endif


-- ** geometry #attr:geometry#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesGeometryPropertyInfo    ,
#endif
    constructWindowPropertiesGeometry       ,
    getWindowPropertiesGeometry             ,
#if ENABLE_OVERLOADING
    windowPropertiesGeometry                ,
#endif


-- ** locationbarVisible #attr:locationbarVisible#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesLocationbarVisiblePropertyInfo,
#endif
    constructWindowPropertiesLocationbarVisible,
    getWindowPropertiesLocationbarVisible   ,
#if ENABLE_OVERLOADING
    windowPropertiesLocationbarVisible      ,
#endif


-- ** menubarVisible #attr:menubarVisible#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesMenubarVisiblePropertyInfo,
#endif
    constructWindowPropertiesMenubarVisible ,
    getWindowPropertiesMenubarVisible       ,
#if ENABLE_OVERLOADING
    windowPropertiesMenubarVisible          ,
#endif


-- ** resizable #attr:resizable#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesResizablePropertyInfo   ,
#endif
    constructWindowPropertiesResizable      ,
    getWindowPropertiesResizable            ,
#if ENABLE_OVERLOADING
    windowPropertiesResizable               ,
#endif


-- ** scrollbarsVisible #attr:scrollbarsVisible#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesScrollbarsVisiblePropertyInfo,
#endif
    constructWindowPropertiesScrollbarsVisible,
    getWindowPropertiesScrollbarsVisible    ,
#if ENABLE_OVERLOADING
    windowPropertiesScrollbarsVisible       ,
#endif


-- ** statusbarVisible #attr:statusbarVisible#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesStatusbarVisiblePropertyInfo,
#endif
    constructWindowPropertiesStatusbarVisible,
    getWindowPropertiesStatusbarVisible     ,
#if ENABLE_OVERLOADING
    windowPropertiesStatusbarVisible        ,
#endif


-- ** toolbarVisible #attr:toolbarVisible#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    WindowPropertiesToolbarVisiblePropertyInfo,
#endif
    constructWindowPropertiesToolbarVisible ,
    getWindowPropertiesToolbarVisible       ,
#if ENABLE_OVERLOADING
    windowPropertiesToolbarVisible          ,
#endif




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

-- | Memory-managed wrapper type.
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


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

instance O.HasParentTypes WindowProperties
type instance O.ParentTypes WindowProperties = '[GObject.Object.Object]

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

-- | A convenience alias for `Nothing` :: `Maybe` `WindowProperties`.
noWindowProperties :: Maybe WindowProperties
noWindowProperties = Nothing

#if ENABLE_OVERLOADING
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 "getv" o = GObject.Object.ObjectGetvMethodInfo
    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 "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) => OL.IsLabel t (WindowProperties -> 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 "fullscreen"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

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

@
'Data.GI.Base.Attributes.get' windowProperties #fullscreen
@
-}
getWindowPropertiesFullscreen :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesFullscreen obj = liftIO $ B.Properties.getObjectPropertyBool obj "fullscreen"

{- |
Construct a `GValueConstruct` with valid value for the “@fullscreen@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesFullscreen :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesFullscreen val = B.Properties.constructObjectPropertyBool "fullscreen" val

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' windowProperties #geometry
@
-}
getWindowPropertiesGeometry :: (MonadIO m, IsWindowProperties o) => o -> m (Maybe Gdk.Rectangle.Rectangle)
getWindowPropertiesGeometry obj = liftIO $ B.Properties.getObjectPropertyBoxed obj "geometry" Gdk.Rectangle.Rectangle

{- |
Construct a `GValueConstruct` with valid value for the “@geometry@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesGeometry :: (IsWindowProperties o) => Gdk.Rectangle.Rectangle -> IO (GValueConstruct o)
constructWindowPropertiesGeometry val = B.Properties.constructObjectPropertyBoxed "geometry" (Just val)

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' windowProperties #locationbarVisible
@
-}
getWindowPropertiesLocationbarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesLocationbarVisible obj = liftIO $ B.Properties.getObjectPropertyBool obj "locationbar-visible"

{- |
Construct a `GValueConstruct` with valid value for the “@locationbar-visible@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesLocationbarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesLocationbarVisible val = B.Properties.constructObjectPropertyBool "locationbar-visible" val

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' windowProperties #menubarVisible
@
-}
getWindowPropertiesMenubarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesMenubarVisible obj = liftIO $ B.Properties.getObjectPropertyBool obj "menubar-visible"

{- |
Construct a `GValueConstruct` with valid value for the “@menubar-visible@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesMenubarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesMenubarVisible val = B.Properties.constructObjectPropertyBool "menubar-visible" val

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' windowProperties #resizable
@
-}
getWindowPropertiesResizable :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesResizable obj = liftIO $ B.Properties.getObjectPropertyBool obj "resizable"

{- |
Construct a `GValueConstruct` with valid value for the “@resizable@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesResizable :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesResizable val = B.Properties.constructObjectPropertyBool "resizable" val

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' windowProperties #scrollbarsVisible
@
-}
getWindowPropertiesScrollbarsVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesScrollbarsVisible obj = liftIO $ B.Properties.getObjectPropertyBool obj "scrollbars-visible"

{- |
Construct a `GValueConstruct` with valid value for the “@scrollbars-visible@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesScrollbarsVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesScrollbarsVisible val = B.Properties.constructObjectPropertyBool "scrollbars-visible" val

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' windowProperties #statusbarVisible
@
-}
getWindowPropertiesStatusbarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesStatusbarVisible obj = liftIO $ B.Properties.getObjectPropertyBool obj "statusbar-visible"

{- |
Construct a `GValueConstruct` with valid value for the “@statusbar-visible@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesStatusbarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesStatusbarVisible val = B.Properties.constructObjectPropertyBool "statusbar-visible" val

#if ENABLE_OVERLOADING
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
#endif

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

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

@
'Data.GI.Base.Attributes.get' windowProperties #toolbarVisible
@
-}
getWindowPropertiesToolbarVisible :: (MonadIO m, IsWindowProperties o) => o -> m Bool
getWindowPropertiesToolbarVisible obj = liftIO $ B.Properties.getObjectPropertyBool obj "toolbar-visible"

{- |
Construct a `GValueConstruct` with valid value for the “@toolbar-visible@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructWindowPropertiesToolbarVisible :: (IsWindowProperties o) => Bool -> IO (GValueConstruct o)
constructWindowPropertiesToolbarVisible val = B.Properties.constructObjectPropertyBool "toolbar-visible" val

#if ENABLE_OVERLOADING
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
#endif

#if ENABLE_OVERLOADING
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, *)])
#endif

#if ENABLE_OVERLOADING
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

#endif

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

#endif

-- 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'

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

#endif

-- 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'

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

#endif

-- 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'

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

#endif

-- 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'

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

#endif

-- 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'

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

#endif

-- 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'

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

#endif

-- 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'

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

#endif

-- 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'

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

#endif