{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

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

module GI.Gtk.Objects.OverlayLayoutChild
    ( 

-- * Exported types
    OverlayLayoutChild(..)                  ,
    IsOverlayLayoutChild                    ,
    toOverlayLayoutChild                    ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getChildWidget]("GI.Gtk.Objects.LayoutChild#g:method:getChildWidget"), [getClipOverlay]("GI.Gtk.Objects.OverlayLayoutChild#g:method:getClipOverlay"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getLayoutManager]("GI.Gtk.Objects.LayoutChild#g:method:getLayoutManager"), [getMeasure]("GI.Gtk.Objects.OverlayLayoutChild#g:method:getMeasure"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata").
-- 
-- ==== Setters
-- [setClipOverlay]("GI.Gtk.Objects.OverlayLayoutChild#g:method:setClipOverlay"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setMeasure]("GI.Gtk.Objects.OverlayLayoutChild#g:method:setMeasure"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

#if defined(ENABLE_OVERLOADING)
    ResolveOverlayLayoutChildMethod         ,
#endif

-- ** getClipOverlay #method:getClipOverlay#

#if defined(ENABLE_OVERLOADING)
    OverlayLayoutChildGetClipOverlayMethodInfo,
#endif
    overlayLayoutChildGetClipOverlay        ,


-- ** getMeasure #method:getMeasure#

#if defined(ENABLE_OVERLOADING)
    OverlayLayoutChildGetMeasureMethodInfo  ,
#endif
    overlayLayoutChildGetMeasure            ,


-- ** setClipOverlay #method:setClipOverlay#

#if defined(ENABLE_OVERLOADING)
    OverlayLayoutChildSetClipOverlayMethodInfo,
#endif
    overlayLayoutChildSetClipOverlay        ,


-- ** setMeasure #method:setMeasure#

#if defined(ENABLE_OVERLOADING)
    OverlayLayoutChildSetMeasureMethodInfo  ,
#endif
    overlayLayoutChildSetMeasure            ,




 -- * Properties


-- ** clipOverlay #attr:clipOverlay#
-- | Whether the child should be clipped to fit the parent\'s size.

#if defined(ENABLE_OVERLOADING)
    OverlayLayoutChildClipOverlayPropertyInfo,
#endif
    constructOverlayLayoutChildClipOverlay  ,
    getOverlayLayoutChildClipOverlay        ,
#if defined(ENABLE_OVERLOADING)
    overlayLayoutChildClipOverlay           ,
#endif
    setOverlayLayoutChildClipOverlay        ,


-- ** measure #attr:measure#
-- | Whether the child size should contribute to the t'GI.Gtk.Objects.OverlayLayout.OverlayLayout'\'s
-- measurement.

#if defined(ENABLE_OVERLOADING)
    OverlayLayoutChildMeasurePropertyInfo   ,
#endif
    constructOverlayLayoutChildMeasure      ,
    getOverlayLayoutChildMeasure            ,
#if defined(ENABLE_OVERLOADING)
    overlayLayoutChildMeasure               ,
#endif
    setOverlayLayoutChildMeasure            ,




    ) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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 GHC.Records as R

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gtk.Objects.LayoutChild as Gtk.LayoutChild

-- | Memory-managed wrapper type.
newtype OverlayLayoutChild = OverlayLayoutChild (SP.ManagedPtr OverlayLayoutChild)
    deriving (OverlayLayoutChild -> OverlayLayoutChild -> Bool
(OverlayLayoutChild -> OverlayLayoutChild -> Bool)
-> (OverlayLayoutChild -> OverlayLayoutChild -> Bool)
-> Eq OverlayLayoutChild
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OverlayLayoutChild -> OverlayLayoutChild -> Bool
$c/= :: OverlayLayoutChild -> OverlayLayoutChild -> Bool
== :: OverlayLayoutChild -> OverlayLayoutChild -> Bool
$c== :: OverlayLayoutChild -> OverlayLayoutChild -> Bool
Eq)

instance SP.ManagedPtrNewtype OverlayLayoutChild where
    toManagedPtr :: OverlayLayoutChild -> ManagedPtr OverlayLayoutChild
toManagedPtr (OverlayLayoutChild ManagedPtr OverlayLayoutChild
p) = ManagedPtr OverlayLayoutChild
p

foreign import ccall "gtk_overlay_layout_child_get_type"
    c_gtk_overlay_layout_child_get_type :: IO B.Types.GType

instance B.Types.TypedObject OverlayLayoutChild where
    glibType :: IO GType
glibType = IO GType
c_gtk_overlay_layout_child_get_type

instance B.Types.GObject OverlayLayoutChild

-- | Type class for types which can be safely cast to `OverlayLayoutChild`, for instance with `toOverlayLayoutChild`.
class (SP.GObject o, O.IsDescendantOf OverlayLayoutChild o) => IsOverlayLayoutChild o
instance (SP.GObject o, O.IsDescendantOf OverlayLayoutChild o) => IsOverlayLayoutChild o

instance O.HasParentTypes OverlayLayoutChild
type instance O.ParentTypes OverlayLayoutChild = '[Gtk.LayoutChild.LayoutChild, GObject.Object.Object]

-- | Cast to `OverlayLayoutChild`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toOverlayLayoutChild :: (MIO.MonadIO m, IsOverlayLayoutChild o) => o -> m OverlayLayoutChild
toOverlayLayoutChild :: forall (m :: * -> *) o.
(MonadIO m, IsOverlayLayoutChild o) =>
o -> m OverlayLayoutChild
toOverlayLayoutChild = IO OverlayLayoutChild -> m OverlayLayoutChild
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO OverlayLayoutChild -> m OverlayLayoutChild)
-> (o -> IO OverlayLayoutChild) -> o -> m OverlayLayoutChild
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr OverlayLayoutChild -> OverlayLayoutChild)
-> o -> IO OverlayLayoutChild
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr OverlayLayoutChild -> OverlayLayoutChild
OverlayLayoutChild

-- | Convert 'OverlayLayoutChild' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe OverlayLayoutChild) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_overlay_layout_child_get_type
    gvalueSet_ :: Ptr GValue -> Maybe OverlayLayoutChild -> IO ()
gvalueSet_ Ptr GValue
gv Maybe OverlayLayoutChild
P.Nothing = Ptr GValue -> Ptr OverlayLayoutChild -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr OverlayLayoutChild
forall a. Ptr a
FP.nullPtr :: FP.Ptr OverlayLayoutChild)
    gvalueSet_ Ptr GValue
gv (P.Just OverlayLayoutChild
obj) = OverlayLayoutChild -> (Ptr OverlayLayoutChild -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr OverlayLayoutChild
obj (Ptr GValue -> Ptr OverlayLayoutChild -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe OverlayLayoutChild)
gvalueGet_ Ptr GValue
gv = do
        Ptr OverlayLayoutChild
ptr <- Ptr GValue -> IO (Ptr OverlayLayoutChild)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr OverlayLayoutChild)
        if Ptr OverlayLayoutChild
ptr Ptr OverlayLayoutChild -> Ptr OverlayLayoutChild -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr OverlayLayoutChild
forall a. Ptr a
FP.nullPtr
        then OverlayLayoutChild -> Maybe OverlayLayoutChild
forall a. a -> Maybe a
P.Just (OverlayLayoutChild -> Maybe OverlayLayoutChild)
-> IO OverlayLayoutChild -> IO (Maybe OverlayLayoutChild)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr OverlayLayoutChild -> OverlayLayoutChild)
-> Ptr OverlayLayoutChild -> IO OverlayLayoutChild
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr OverlayLayoutChild -> OverlayLayoutChild
OverlayLayoutChild Ptr OverlayLayoutChild
ptr
        else Maybe OverlayLayoutChild -> IO (Maybe OverlayLayoutChild)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe OverlayLayoutChild
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveOverlayLayoutChildMethod (t :: Symbol) (o :: *) :: * where
    ResolveOverlayLayoutChildMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveOverlayLayoutChildMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveOverlayLayoutChildMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveOverlayLayoutChildMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveOverlayLayoutChildMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveOverlayLayoutChildMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveOverlayLayoutChildMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveOverlayLayoutChildMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveOverlayLayoutChildMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveOverlayLayoutChildMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveOverlayLayoutChildMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveOverlayLayoutChildMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveOverlayLayoutChildMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveOverlayLayoutChildMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveOverlayLayoutChildMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveOverlayLayoutChildMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveOverlayLayoutChildMethod "getChildWidget" o = Gtk.LayoutChild.LayoutChildGetChildWidgetMethodInfo
    ResolveOverlayLayoutChildMethod "getClipOverlay" o = OverlayLayoutChildGetClipOverlayMethodInfo
    ResolveOverlayLayoutChildMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveOverlayLayoutChildMethod "getLayoutManager" o = Gtk.LayoutChild.LayoutChildGetLayoutManagerMethodInfo
    ResolveOverlayLayoutChildMethod "getMeasure" o = OverlayLayoutChildGetMeasureMethodInfo
    ResolveOverlayLayoutChildMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveOverlayLayoutChildMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveOverlayLayoutChildMethod "setClipOverlay" o = OverlayLayoutChildSetClipOverlayMethodInfo
    ResolveOverlayLayoutChildMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveOverlayLayoutChildMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveOverlayLayoutChildMethod "setMeasure" o = OverlayLayoutChildSetMeasureMethodInfo
    ResolveOverlayLayoutChildMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveOverlayLayoutChildMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveOverlayLayoutChildMethod t OverlayLayoutChild, O.OverloadedMethod info OverlayLayoutChild p) => OL.IsLabel t (OverlayLayoutChild -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveOverlayLayoutChildMethod t OverlayLayoutChild, O.OverloadedMethod info OverlayLayoutChild p, R.HasField t OverlayLayoutChild p) => R.HasField t OverlayLayoutChild p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveOverlayLayoutChildMethod t OverlayLayoutChild, O.OverloadedMethodInfo info OverlayLayoutChild) => OL.IsLabel t (O.MethodProxy info OverlayLayoutChild) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- VVV Prop "clip-overlay"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@clip-overlay@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' overlayLayoutChild #clipOverlay
-- @
getOverlayLayoutChildClipOverlay :: (MonadIO m, IsOverlayLayoutChild o) => o -> m Bool
getOverlayLayoutChildClipOverlay :: forall (m :: * -> *) o.
(MonadIO m, IsOverlayLayoutChild o) =>
o -> m Bool
getOverlayLayoutChildClipOverlay o
obj = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"clip-overlay"

-- | Set the value of the “@clip-overlay@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' overlayLayoutChild [ #clipOverlay 'Data.GI.Base.Attributes.:=' value ]
-- @
setOverlayLayoutChildClipOverlay :: (MonadIO m, IsOverlayLayoutChild o) => o -> Bool -> m ()
setOverlayLayoutChildClipOverlay :: forall (m :: * -> *) o.
(MonadIO m, IsOverlayLayoutChild o) =>
o -> Bool -> m ()
setOverlayLayoutChildClipOverlay o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"clip-overlay" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@clip-overlay@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructOverlayLayoutChildClipOverlay :: (IsOverlayLayoutChild o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructOverlayLayoutChildClipOverlay :: forall o (m :: * -> *).
(IsOverlayLayoutChild o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructOverlayLayoutChildClipOverlay Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"clip-overlay" Bool
val

#if defined(ENABLE_OVERLOADING)
data OverlayLayoutChildClipOverlayPropertyInfo
instance AttrInfo OverlayLayoutChildClipOverlayPropertyInfo where
    type AttrAllowedOps OverlayLayoutChildClipOverlayPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint OverlayLayoutChildClipOverlayPropertyInfo = IsOverlayLayoutChild
    type AttrSetTypeConstraint OverlayLayoutChildClipOverlayPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint OverlayLayoutChildClipOverlayPropertyInfo = (~) Bool
    type AttrTransferType OverlayLayoutChildClipOverlayPropertyInfo = Bool
    type AttrGetType OverlayLayoutChildClipOverlayPropertyInfo = Bool
    type AttrLabel OverlayLayoutChildClipOverlayPropertyInfo = "clip-overlay"
    type AttrOrigin OverlayLayoutChildClipOverlayPropertyInfo = OverlayLayoutChild
    attrGet = getOverlayLayoutChildClipOverlay
    attrSet = setOverlayLayoutChildClipOverlay
    attrTransfer _ v = do
        return v
    attrConstruct = constructOverlayLayoutChildClipOverlay
    attrClear = undefined
#endif

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

-- | Get the value of the “@measure@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' overlayLayoutChild #measure
-- @
getOverlayLayoutChildMeasure :: (MonadIO m, IsOverlayLayoutChild o) => o -> m Bool
getOverlayLayoutChildMeasure :: forall (m :: * -> *) o.
(MonadIO m, IsOverlayLayoutChild o) =>
o -> m Bool
getOverlayLayoutChildMeasure o
obj = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"measure"

-- | Set the value of the “@measure@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' overlayLayoutChild [ #measure 'Data.GI.Base.Attributes.:=' value ]
-- @
setOverlayLayoutChildMeasure :: (MonadIO m, IsOverlayLayoutChild o) => o -> Bool -> m ()
setOverlayLayoutChildMeasure :: forall (m :: * -> *) o.
(MonadIO m, IsOverlayLayoutChild o) =>
o -> Bool -> m ()
setOverlayLayoutChildMeasure o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"measure" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@measure@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructOverlayLayoutChildMeasure :: (IsOverlayLayoutChild o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructOverlayLayoutChildMeasure :: forall o (m :: * -> *).
(IsOverlayLayoutChild o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructOverlayLayoutChildMeasure Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"measure" Bool
val

#if defined(ENABLE_OVERLOADING)
data OverlayLayoutChildMeasurePropertyInfo
instance AttrInfo OverlayLayoutChildMeasurePropertyInfo where
    type AttrAllowedOps OverlayLayoutChildMeasurePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint OverlayLayoutChildMeasurePropertyInfo = IsOverlayLayoutChild
    type AttrSetTypeConstraint OverlayLayoutChildMeasurePropertyInfo = (~) Bool
    type AttrTransferTypeConstraint OverlayLayoutChildMeasurePropertyInfo = (~) Bool
    type AttrTransferType OverlayLayoutChildMeasurePropertyInfo = Bool
    type AttrGetType OverlayLayoutChildMeasurePropertyInfo = Bool
    type AttrLabel OverlayLayoutChildMeasurePropertyInfo = "measure"
    type AttrOrigin OverlayLayoutChildMeasurePropertyInfo = OverlayLayoutChild
    attrGet = getOverlayLayoutChildMeasure
    attrSet = setOverlayLayoutChildMeasure
    attrTransfer _ v = do
        return v
    attrConstruct = constructOverlayLayoutChildMeasure
    attrClear = undefined
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList OverlayLayoutChild
type instance O.AttributeList OverlayLayoutChild = OverlayLayoutChildAttributeList
type OverlayLayoutChildAttributeList = ('[ '("childWidget", Gtk.LayoutChild.LayoutChildChildWidgetPropertyInfo), '("clipOverlay", OverlayLayoutChildClipOverlayPropertyInfo), '("layoutManager", Gtk.LayoutChild.LayoutChildLayoutManagerPropertyInfo), '("measure", OverlayLayoutChildMeasurePropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
overlayLayoutChildClipOverlay :: AttrLabelProxy "clipOverlay"
overlayLayoutChildClipOverlay = AttrLabelProxy

overlayLayoutChildMeasure :: AttrLabelProxy "measure"
overlayLayoutChildMeasure = AttrLabelProxy

#endif

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

#endif

-- method OverlayLayoutChild::get_clip_overlay
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "child"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "OverlayLayoutChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkOverlayLayoutChild"
--                 , 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 "gtk_overlay_layout_child_get_clip_overlay" gtk_overlay_layout_child_get_clip_overlay :: 
    Ptr OverlayLayoutChild ->               -- child : TInterface (Name {namespace = "Gtk", name = "OverlayLayoutChild"})
    IO CInt

-- | Retrieves whether the child is clipped.
overlayLayoutChildGetClipOverlay ::
    (B.CallStack.HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
    a
    -- ^ /@child@/: a t'GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild'
    -> m Bool
    -- ^ __Returns:__ whether the child is clipped
overlayLayoutChildGetClipOverlay :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
a -> m Bool
overlayLayoutChildGetClipOverlay a
child = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr OverlayLayoutChild
child' <- a -> IO (Ptr OverlayLayoutChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child
    CInt
result <- Ptr OverlayLayoutChild -> IO CInt
gtk_overlay_layout_child_get_clip_overlay Ptr OverlayLayoutChild
child'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data OverlayLayoutChildGetClipOverlayMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsOverlayLayoutChild a) => O.OverloadedMethod OverlayLayoutChildGetClipOverlayMethodInfo a signature where
    overloadedMethod = overlayLayoutChildGetClipOverlay

instance O.OverloadedMethodInfo OverlayLayoutChildGetClipOverlayMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.OverlayLayoutChild.overlayLayoutChildGetClipOverlay",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-OverlayLayoutChild.html#v:overlayLayoutChildGetClipOverlay"
        }


#endif

-- method OverlayLayoutChild::get_measure
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "child"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "OverlayLayoutChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkOverlayLayoutChild"
--                 , 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 "gtk_overlay_layout_child_get_measure" gtk_overlay_layout_child_get_measure :: 
    Ptr OverlayLayoutChild ->               -- child : TInterface (Name {namespace = "Gtk", name = "OverlayLayoutChild"})
    IO CInt

-- | Retrieves whether the child is measured.
overlayLayoutChildGetMeasure ::
    (B.CallStack.HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
    a
    -- ^ /@child@/: a t'GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild'
    -> m Bool
    -- ^ __Returns:__ whether the child is measured
overlayLayoutChildGetMeasure :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
a -> m Bool
overlayLayoutChildGetMeasure a
child = IO Bool -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr OverlayLayoutChild
child' <- a -> IO (Ptr OverlayLayoutChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child
    CInt
result <- Ptr OverlayLayoutChild -> IO CInt
gtk_overlay_layout_child_get_measure Ptr OverlayLayoutChild
child'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child
    Bool -> IO Bool
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data OverlayLayoutChildGetMeasureMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsOverlayLayoutChild a) => O.OverloadedMethod OverlayLayoutChildGetMeasureMethodInfo a signature where
    overloadedMethod = overlayLayoutChildGetMeasure

instance O.OverloadedMethodInfo OverlayLayoutChildGetMeasureMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.OverlayLayoutChild.overlayLayoutChildGetMeasure",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-OverlayLayoutChild.html#v:overlayLayoutChildGetMeasure"
        }


#endif

-- method OverlayLayoutChild::set_clip_overlay
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "child"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "OverlayLayoutChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkOverlayLayoutChild"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "clip_overlay"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether to clip this child"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_overlay_layout_child_set_clip_overlay" gtk_overlay_layout_child_set_clip_overlay :: 
    Ptr OverlayLayoutChild ->               -- child : TInterface (Name {namespace = "Gtk", name = "OverlayLayoutChild"})
    CInt ->                                 -- clip_overlay : TBasicType TBoolean
    IO ()

-- | Sets whether to clip this child.
overlayLayoutChildSetClipOverlay ::
    (B.CallStack.HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
    a
    -- ^ /@child@/: a t'GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild'
    -> Bool
    -- ^ /@clipOverlay@/: whether to clip this child
    -> m ()
overlayLayoutChildSetClipOverlay :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
a -> Bool -> m ()
overlayLayoutChildSetClipOverlay a
child Bool
clipOverlay = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr OverlayLayoutChild
child' <- a -> IO (Ptr OverlayLayoutChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child
    let clipOverlay' :: CInt
clipOverlay' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
clipOverlay
    Ptr OverlayLayoutChild -> CInt -> IO ()
gtk_overlay_layout_child_set_clip_overlay Ptr OverlayLayoutChild
child' CInt
clipOverlay'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data OverlayLayoutChildSetClipOverlayMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsOverlayLayoutChild a) => O.OverloadedMethod OverlayLayoutChildSetClipOverlayMethodInfo a signature where
    overloadedMethod = overlayLayoutChildSetClipOverlay

instance O.OverloadedMethodInfo OverlayLayoutChildSetClipOverlayMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.OverlayLayoutChild.overlayLayoutChildSetClipOverlay",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-OverlayLayoutChild.html#v:overlayLayoutChildSetClipOverlay"
        }


#endif

-- method OverlayLayoutChild::set_measure
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "child"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "OverlayLayoutChild" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkOverlayLayoutChild"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "measure"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether to measure this child"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_overlay_layout_child_set_measure" gtk_overlay_layout_child_set_measure :: 
    Ptr OverlayLayoutChild ->               -- child : TInterface (Name {namespace = "Gtk", name = "OverlayLayoutChild"})
    CInt ->                                 -- measure : TBasicType TBoolean
    IO ()

-- | Sets whether to measure this child.
overlayLayoutChildSetMeasure ::
    (B.CallStack.HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
    a
    -- ^ /@child@/: a t'GI.Gtk.Objects.OverlayLayoutChild.OverlayLayoutChild'
    -> Bool
    -- ^ /@measure@/: whether to measure this child
    -> m ()
overlayLayoutChildSetMeasure :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsOverlayLayoutChild a) =>
a -> Bool -> m ()
overlayLayoutChildSetMeasure a
child Bool
measure = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr OverlayLayoutChild
child' <- a -> IO (Ptr OverlayLayoutChild)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
child
    let measure' :: CInt
measure' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
measure
    Ptr OverlayLayoutChild -> CInt -> IO ()
gtk_overlay_layout_child_set_measure Ptr OverlayLayoutChild
child' CInt
measure'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
child
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data OverlayLayoutChildSetMeasureMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsOverlayLayoutChild a) => O.OverloadedMethod OverlayLayoutChildSetMeasureMethodInfo a signature where
    overloadedMethod = overlayLayoutChildSetMeasure

instance O.OverloadedMethodInfo OverlayLayoutChildSetMeasureMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.OverlayLayoutChild.overlayLayoutChildSetMeasure",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-OverlayLayoutChild.html#v:overlayLayoutChildSetMeasure"
        }


#endif