{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- @GtkTreeExpander@ is a widget that provides an expander for a list.
-- 
-- It is typically placed as a bottommost child into a @GtkListView@
-- to allow users to expand and collapse children in a list with a
-- t'GI.Gtk.Objects.TreeListModel.TreeListModel'. @GtkTreeExpander@ provides the common UI
-- elements, gestures and keybindings for this purpose.
-- 
-- On top of this, the \"listitem.expand\", \"listitem.collapse\" and
-- \"listitem.toggle-expand\" actions are provided to allow adding custom
-- UI for managing expanded state.
-- 
-- The @GtkTreeListModel@ must be set to not be passthrough. Then it
-- will provide t'GI.Gtk.Objects.TreeListRow.TreeListRow' items which can be set via
-- 'GI.Gtk.Objects.TreeExpander.treeExpanderSetListRow' on the expander.
-- The expander will then watch that row item automatically.
-- 'GI.Gtk.Objects.TreeExpander.treeExpanderSetChild' sets the widget that displays
-- the actual row contents.
-- 
-- = CSS nodes
-- 
-- >treeexpander
-- >├── [indent]*
-- >├── [expander]
-- >╰── <child>
-- 
-- 
-- @GtkTreeExpander@ has zero or one CSS nodes with the name \"expander\" that
-- should display the expander icon. The node will be @:checked@ when it
-- is expanded. If the node is not expandable, an \"indent\" node will be
-- displayed instead.
-- 
-- For every level of depth, another \"indent\" node is prepended.
-- 
-- = Accessibility
-- 
-- @GtkTreeExpander@ uses the 'GI.Gtk.Enums.AccessibleRoleGroup' role. The expander icon
-- is represented as a 'GI.Gtk.Enums.AccessibleRoleButton', labelled by the expander\'s
-- child, and toggling it will change the 'GI.Gtk.Enums.AccessibleStateExpanded' state.

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

module GI.Gtk.Objects.TreeExpander
    ( 

-- * Exported types
    TreeExpander(..)                        ,
    IsTreeExpander                          ,
    toTreeExpander                          ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [actionSetEnabled]("GI.Gtk.Objects.Widget#g:method:actionSetEnabled"), [activate]("GI.Gtk.Objects.Widget#g:method:activate"), [activateAction]("GI.Gtk.Objects.Widget#g:method:activateAction"), [activateDefault]("GI.Gtk.Objects.Widget#g:method:activateDefault"), [addController]("GI.Gtk.Objects.Widget#g:method:addController"), [addCssClass]("GI.Gtk.Objects.Widget#g:method:addCssClass"), [addMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:addMnemonicLabel"), [addTickCallback]("GI.Gtk.Objects.Widget#g:method:addTickCallback"), [allocate]("GI.Gtk.Objects.Widget#g:method:allocate"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [childFocus]("GI.Gtk.Objects.Widget#g:method:childFocus"), [computeBounds]("GI.Gtk.Objects.Widget#g:method:computeBounds"), [computeExpand]("GI.Gtk.Objects.Widget#g:method:computeExpand"), [computePoint]("GI.Gtk.Objects.Widget#g:method:computePoint"), [computeTransform]("GI.Gtk.Objects.Widget#g:method:computeTransform"), [contains]("GI.Gtk.Objects.Widget#g:method:contains"), [createPangoContext]("GI.Gtk.Objects.Widget#g:method:createPangoContext"), [createPangoLayout]("GI.Gtk.Objects.Widget#g:method:createPangoLayout"), [dragCheckThreshold]("GI.Gtk.Objects.Widget#g:method:dragCheckThreshold"), [errorBell]("GI.Gtk.Objects.Widget#g:method:errorBell"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [grabFocus]("GI.Gtk.Objects.Widget#g:method:grabFocus"), [hasCssClass]("GI.Gtk.Objects.Widget#g:method:hasCssClass"), [hasDefault]("GI.Gtk.Objects.Widget#g:method:hasDefault"), [hasFocus]("GI.Gtk.Objects.Widget#g:method:hasFocus"), [hasVisibleFocus]("GI.Gtk.Objects.Widget#g:method:hasVisibleFocus"), [hide]("GI.Gtk.Objects.Widget#g:method:hide"), [inDestruction]("GI.Gtk.Objects.Widget#g:method:inDestruction"), [initTemplate]("GI.Gtk.Objects.Widget#g:method:initTemplate"), [insertActionGroup]("GI.Gtk.Objects.Widget#g:method:insertActionGroup"), [insertAfter]("GI.Gtk.Objects.Widget#g:method:insertAfter"), [insertBefore]("GI.Gtk.Objects.Widget#g:method:insertBefore"), [isAncestor]("GI.Gtk.Objects.Widget#g:method:isAncestor"), [isDrawable]("GI.Gtk.Objects.Widget#g:method:isDrawable"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isFocus]("GI.Gtk.Objects.Widget#g:method:isFocus"), [isSensitive]("GI.Gtk.Objects.Widget#g:method:isSensitive"), [isVisible]("GI.Gtk.Objects.Widget#g:method:isVisible"), [keynavFailed]("GI.Gtk.Objects.Widget#g:method:keynavFailed"), [listMnemonicLabels]("GI.Gtk.Objects.Widget#g:method:listMnemonicLabels"), [map]("GI.Gtk.Objects.Widget#g:method:map"), [measure]("GI.Gtk.Objects.Widget#g:method:measure"), [mnemonicActivate]("GI.Gtk.Objects.Widget#g:method:mnemonicActivate"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [observeChildren]("GI.Gtk.Objects.Widget#g:method:observeChildren"), [observeControllers]("GI.Gtk.Objects.Widget#g:method:observeControllers"), [pick]("GI.Gtk.Objects.Widget#g:method:pick"), [queueAllocate]("GI.Gtk.Objects.Widget#g:method:queueAllocate"), [queueDraw]("GI.Gtk.Objects.Widget#g:method:queueDraw"), [queueResize]("GI.Gtk.Objects.Widget#g:method:queueResize"), [realize]("GI.Gtk.Objects.Widget#g:method:realize"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeController]("GI.Gtk.Objects.Widget#g:method:removeController"), [removeCssClass]("GI.Gtk.Objects.Widget#g:method:removeCssClass"), [removeMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:removeMnemonicLabel"), [removeTickCallback]("GI.Gtk.Objects.Widget#g:method:removeTickCallback"), [resetProperty]("GI.Gtk.Interfaces.Accessible#g:method:resetProperty"), [resetRelation]("GI.Gtk.Interfaces.Accessible#g:method:resetRelation"), [resetState]("GI.Gtk.Interfaces.Accessible#g:method:resetState"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [shouldLayout]("GI.Gtk.Objects.Widget#g:method:shouldLayout"), [show]("GI.Gtk.Objects.Widget#g:method:show"), [sizeAllocate]("GI.Gtk.Objects.Widget#g:method:sizeAllocate"), [snapshotChild]("GI.Gtk.Objects.Widget#g:method:snapshotChild"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [translateCoordinates]("GI.Gtk.Objects.Widget#g:method:translateCoordinates"), [triggerTooltipQuery]("GI.Gtk.Objects.Widget#g:method:triggerTooltipQuery"), [unmap]("GI.Gtk.Objects.Widget#g:method:unmap"), [unparent]("GI.Gtk.Objects.Widget#g:method:unparent"), [unrealize]("GI.Gtk.Objects.Widget#g:method:unrealize"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [unsetStateFlags]("GI.Gtk.Objects.Widget#g:method:unsetStateFlags"), [updateProperty]("GI.Gtk.Interfaces.Accessible#g:method:updateProperty"), [updateRelation]("GI.Gtk.Interfaces.Accessible#g:method:updateRelation"), [updateState]("GI.Gtk.Interfaces.Accessible#g:method:updateState"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAccessibleRole]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleRole"), [getAllocatedBaseline]("GI.Gtk.Objects.Widget#g:method:getAllocatedBaseline"), [getAllocatedHeight]("GI.Gtk.Objects.Widget#g:method:getAllocatedHeight"), [getAllocatedWidth]("GI.Gtk.Objects.Widget#g:method:getAllocatedWidth"), [getAllocation]("GI.Gtk.Objects.Widget#g:method:getAllocation"), [getAncestor]("GI.Gtk.Objects.Widget#g:method:getAncestor"), [getBuildableId]("GI.Gtk.Interfaces.Buildable#g:method:getBuildableId"), [getCanFocus]("GI.Gtk.Objects.Widget#g:method:getCanFocus"), [getCanTarget]("GI.Gtk.Objects.Widget#g:method:getCanTarget"), [getChild]("GI.Gtk.Objects.TreeExpander#g:method:getChild"), [getChildVisible]("GI.Gtk.Objects.Widget#g:method:getChildVisible"), [getClipboard]("GI.Gtk.Objects.Widget#g:method:getClipboard"), [getCssClasses]("GI.Gtk.Objects.Widget#g:method:getCssClasses"), [getCssName]("GI.Gtk.Objects.Widget#g:method:getCssName"), [getCursor]("GI.Gtk.Objects.Widget#g:method:getCursor"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDirection]("GI.Gtk.Objects.Widget#g:method:getDirection"), [getDisplay]("GI.Gtk.Objects.Widget#g:method:getDisplay"), [getFirstChild]("GI.Gtk.Objects.Widget#g:method:getFirstChild"), [getFocusChild]("GI.Gtk.Objects.Widget#g:method:getFocusChild"), [getFocusOnClick]("GI.Gtk.Objects.Widget#g:method:getFocusOnClick"), [getFocusable]("GI.Gtk.Objects.Widget#g:method:getFocusable"), [getFontMap]("GI.Gtk.Objects.Widget#g:method:getFontMap"), [getFontOptions]("GI.Gtk.Objects.Widget#g:method:getFontOptions"), [getFrameClock]("GI.Gtk.Objects.Widget#g:method:getFrameClock"), [getHalign]("GI.Gtk.Objects.Widget#g:method:getHalign"), [getHasTooltip]("GI.Gtk.Objects.Widget#g:method:getHasTooltip"), [getHeight]("GI.Gtk.Objects.Widget#g:method:getHeight"), [getHexpand]("GI.Gtk.Objects.Widget#g:method:getHexpand"), [getHexpandSet]("GI.Gtk.Objects.Widget#g:method:getHexpandSet"), [getItem]("GI.Gtk.Objects.TreeExpander#g:method:getItem"), [getLastChild]("GI.Gtk.Objects.Widget#g:method:getLastChild"), [getLayoutManager]("GI.Gtk.Objects.Widget#g:method:getLayoutManager"), [getListRow]("GI.Gtk.Objects.TreeExpander#g:method:getListRow"), [getMapped]("GI.Gtk.Objects.Widget#g:method:getMapped"), [getMarginBottom]("GI.Gtk.Objects.Widget#g:method:getMarginBottom"), [getMarginEnd]("GI.Gtk.Objects.Widget#g:method:getMarginEnd"), [getMarginStart]("GI.Gtk.Objects.Widget#g:method:getMarginStart"), [getMarginTop]("GI.Gtk.Objects.Widget#g:method:getMarginTop"), [getName]("GI.Gtk.Objects.Widget#g:method:getName"), [getNative]("GI.Gtk.Objects.Widget#g:method:getNative"), [getNextSibling]("GI.Gtk.Objects.Widget#g:method:getNextSibling"), [getOpacity]("GI.Gtk.Objects.Widget#g:method:getOpacity"), [getOverflow]("GI.Gtk.Objects.Widget#g:method:getOverflow"), [getPangoContext]("GI.Gtk.Objects.Widget#g:method:getPangoContext"), [getParent]("GI.Gtk.Objects.Widget#g:method:getParent"), [getPreferredSize]("GI.Gtk.Objects.Widget#g:method:getPreferredSize"), [getPrevSibling]("GI.Gtk.Objects.Widget#g:method:getPrevSibling"), [getPrimaryClipboard]("GI.Gtk.Objects.Widget#g:method:getPrimaryClipboard"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRealized]("GI.Gtk.Objects.Widget#g:method:getRealized"), [getReceivesDefault]("GI.Gtk.Objects.Widget#g:method:getReceivesDefault"), [getRequestMode]("GI.Gtk.Objects.Widget#g:method:getRequestMode"), [getRoot]("GI.Gtk.Objects.Widget#g:method:getRoot"), [getScaleFactor]("GI.Gtk.Objects.Widget#g:method:getScaleFactor"), [getSensitive]("GI.Gtk.Objects.Widget#g:method:getSensitive"), [getSettings]("GI.Gtk.Objects.Widget#g:method:getSettings"), [getSize]("GI.Gtk.Objects.Widget#g:method:getSize"), [getSizeRequest]("GI.Gtk.Objects.Widget#g:method:getSizeRequest"), [getStateFlags]("GI.Gtk.Objects.Widget#g:method:getStateFlags"), [getStyleContext]("GI.Gtk.Objects.Widget#g:method:getStyleContext"), [getTemplateChild]("GI.Gtk.Objects.Widget#g:method:getTemplateChild"), [getTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:getTooltipMarkup"), [getTooltipText]("GI.Gtk.Objects.Widget#g:method:getTooltipText"), [getValign]("GI.Gtk.Objects.Widget#g:method:getValign"), [getVexpand]("GI.Gtk.Objects.Widget#g:method:getVexpand"), [getVexpandSet]("GI.Gtk.Objects.Widget#g:method:getVexpandSet"), [getVisible]("GI.Gtk.Objects.Widget#g:method:getVisible"), [getWidth]("GI.Gtk.Objects.Widget#g:method:getWidth").
-- 
-- ==== Setters
-- [setCanFocus]("GI.Gtk.Objects.Widget#g:method:setCanFocus"), [setCanTarget]("GI.Gtk.Objects.Widget#g:method:setCanTarget"), [setChild]("GI.Gtk.Objects.TreeExpander#g:method:setChild"), [setChildVisible]("GI.Gtk.Objects.Widget#g:method:setChildVisible"), [setCssClasses]("GI.Gtk.Objects.Widget#g:method:setCssClasses"), [setCursor]("GI.Gtk.Objects.Widget#g:method:setCursor"), [setCursorFromName]("GI.Gtk.Objects.Widget#g:method:setCursorFromName"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setDirection]("GI.Gtk.Objects.Widget#g:method:setDirection"), [setFocusChild]("GI.Gtk.Objects.Widget#g:method:setFocusChild"), [setFocusOnClick]("GI.Gtk.Objects.Widget#g:method:setFocusOnClick"), [setFocusable]("GI.Gtk.Objects.Widget#g:method:setFocusable"), [setFontMap]("GI.Gtk.Objects.Widget#g:method:setFontMap"), [setFontOptions]("GI.Gtk.Objects.Widget#g:method:setFontOptions"), [setHalign]("GI.Gtk.Objects.Widget#g:method:setHalign"), [setHasTooltip]("GI.Gtk.Objects.Widget#g:method:setHasTooltip"), [setHexpand]("GI.Gtk.Objects.Widget#g:method:setHexpand"), [setHexpandSet]("GI.Gtk.Objects.Widget#g:method:setHexpandSet"), [setLayoutManager]("GI.Gtk.Objects.Widget#g:method:setLayoutManager"), [setListRow]("GI.Gtk.Objects.TreeExpander#g:method:setListRow"), [setMarginBottom]("GI.Gtk.Objects.Widget#g:method:setMarginBottom"), [setMarginEnd]("GI.Gtk.Objects.Widget#g:method:setMarginEnd"), [setMarginStart]("GI.Gtk.Objects.Widget#g:method:setMarginStart"), [setMarginTop]("GI.Gtk.Objects.Widget#g:method:setMarginTop"), [setName]("GI.Gtk.Objects.Widget#g:method:setName"), [setOpacity]("GI.Gtk.Objects.Widget#g:method:setOpacity"), [setOverflow]("GI.Gtk.Objects.Widget#g:method:setOverflow"), [setParent]("GI.Gtk.Objects.Widget#g:method:setParent"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setReceivesDefault]("GI.Gtk.Objects.Widget#g:method:setReceivesDefault"), [setSensitive]("GI.Gtk.Objects.Widget#g:method:setSensitive"), [setSizeRequest]("GI.Gtk.Objects.Widget#g:method:setSizeRequest"), [setStateFlags]("GI.Gtk.Objects.Widget#g:method:setStateFlags"), [setTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:setTooltipMarkup"), [setTooltipText]("GI.Gtk.Objects.Widget#g:method:setTooltipText"), [setValign]("GI.Gtk.Objects.Widget#g:method:setValign"), [setVexpand]("GI.Gtk.Objects.Widget#g:method:setVexpand"), [setVexpandSet]("GI.Gtk.Objects.Widget#g:method:setVexpandSet"), [setVisible]("GI.Gtk.Objects.Widget#g:method:setVisible").

#if defined(ENABLE_OVERLOADING)
    ResolveTreeExpanderMethod               ,
#endif

-- ** getChild #method:getChild#

#if defined(ENABLE_OVERLOADING)
    TreeExpanderGetChildMethodInfo          ,
#endif
    treeExpanderGetChild                    ,


-- ** getItem #method:getItem#

#if defined(ENABLE_OVERLOADING)
    TreeExpanderGetItemMethodInfo           ,
#endif
    treeExpanderGetItem                     ,


-- ** getListRow #method:getListRow#

#if defined(ENABLE_OVERLOADING)
    TreeExpanderGetListRowMethodInfo        ,
#endif
    treeExpanderGetListRow                  ,


-- ** new #method:new#

    treeExpanderNew                         ,


-- ** setChild #method:setChild#

#if defined(ENABLE_OVERLOADING)
    TreeExpanderSetChildMethodInfo          ,
#endif
    treeExpanderSetChild                    ,


-- ** setListRow #method:setListRow#

#if defined(ENABLE_OVERLOADING)
    TreeExpanderSetListRowMethodInfo        ,
#endif
    treeExpanderSetListRow                  ,




 -- * Properties


-- ** child #attr:child#
-- | The child widget with the actual contents.

#if defined(ENABLE_OVERLOADING)
    TreeExpanderChildPropertyInfo           ,
#endif
    clearTreeExpanderChild                  ,
    constructTreeExpanderChild              ,
    getTreeExpanderChild                    ,
    setTreeExpanderChild                    ,
#if defined(ENABLE_OVERLOADING)
    treeExpanderChild                       ,
#endif


-- ** item #attr:item#
-- | The item held by this expander\'s row.

#if defined(ENABLE_OVERLOADING)
    TreeExpanderItemPropertyInfo            ,
#endif
    getTreeExpanderItem                     ,
#if defined(ENABLE_OVERLOADING)
    treeExpanderItem                        ,
#endif


-- ** listRow #attr:listRow#
-- | The list row to track for expander state.

#if defined(ENABLE_OVERLOADING)
    TreeExpanderListRowPropertyInfo         ,
#endif
    clearTreeExpanderListRow                ,
    constructTreeExpanderListRow            ,
    getTreeExpanderListRow                  ,
    setTreeExpanderListRow                  ,
#if defined(ENABLE_OVERLOADING)
    treeExpanderListRow                     ,
#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.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.Coerce as Coerce
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.Interfaces.Accessible as Gtk.Accessible
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.ConstraintTarget as Gtk.ConstraintTarget
import {-# SOURCE #-} qualified GI.Gtk.Objects.TreeListRow as Gtk.TreeListRow
import {-# SOURCE #-} qualified GI.Gtk.Objects.Widget as Gtk.Widget

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

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

foreign import ccall "gtk_tree_expander_get_type"
    c_gtk_tree_expander_get_type :: IO B.Types.GType

instance B.Types.TypedObject TreeExpander where
    glibType :: IO GType
glibType = IO GType
c_gtk_tree_expander_get_type

instance B.Types.GObject TreeExpander

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

instance O.HasParentTypes TreeExpander
type instance O.ParentTypes TreeExpander = '[Gtk.Widget.Widget, GObject.Object.Object, Gtk.Accessible.Accessible, Gtk.Buildable.Buildable, Gtk.ConstraintTarget.ConstraintTarget]

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

-- | Convert 'TreeExpander' 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 TreeExpander) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_tree_expander_get_type
    gvalueSet_ :: Ptr GValue -> Maybe TreeExpander -> IO ()
gvalueSet_ Ptr GValue
gv Maybe TreeExpander
P.Nothing = Ptr GValue -> Ptr TreeExpander -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr TreeExpander
forall a. Ptr a
FP.nullPtr :: FP.Ptr TreeExpander)
    gvalueSet_ Ptr GValue
gv (P.Just TreeExpander
obj) = TreeExpander -> (Ptr TreeExpander -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr TreeExpander
obj (Ptr GValue -> Ptr TreeExpander -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe TreeExpander)
gvalueGet_ Ptr GValue
gv = do
        Ptr TreeExpander
ptr <- Ptr GValue -> IO (Ptr TreeExpander)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr TreeExpander)
        if Ptr TreeExpander
ptr Ptr TreeExpander -> Ptr TreeExpander -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr TreeExpander
forall a. Ptr a
FP.nullPtr
        then TreeExpander -> Maybe TreeExpander
forall a. a -> Maybe a
P.Just (TreeExpander -> Maybe TreeExpander)
-> IO TreeExpander -> IO (Maybe TreeExpander)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr TreeExpander -> TreeExpander)
-> Ptr TreeExpander -> IO TreeExpander
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr TreeExpander -> TreeExpander
TreeExpander Ptr TreeExpander
ptr
        else Maybe TreeExpander -> IO (Maybe TreeExpander)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TreeExpander
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveTreeExpanderMethod (t :: Symbol) (o :: *) :: * where
    ResolveTreeExpanderMethod "actionSetEnabled" o = Gtk.Widget.WidgetActionSetEnabledMethodInfo
    ResolveTreeExpanderMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveTreeExpanderMethod "activateAction" o = Gtk.Widget.WidgetActivateActionMethodInfo
    ResolveTreeExpanderMethod "activateDefault" o = Gtk.Widget.WidgetActivateDefaultMethodInfo
    ResolveTreeExpanderMethod "addController" o = Gtk.Widget.WidgetAddControllerMethodInfo
    ResolveTreeExpanderMethod "addCssClass" o = Gtk.Widget.WidgetAddCssClassMethodInfo
    ResolveTreeExpanderMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveTreeExpanderMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveTreeExpanderMethod "allocate" o = Gtk.Widget.WidgetAllocateMethodInfo
    ResolveTreeExpanderMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveTreeExpanderMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveTreeExpanderMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveTreeExpanderMethod "computeBounds" o = Gtk.Widget.WidgetComputeBoundsMethodInfo
    ResolveTreeExpanderMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveTreeExpanderMethod "computePoint" o = Gtk.Widget.WidgetComputePointMethodInfo
    ResolveTreeExpanderMethod "computeTransform" o = Gtk.Widget.WidgetComputeTransformMethodInfo
    ResolveTreeExpanderMethod "contains" o = Gtk.Widget.WidgetContainsMethodInfo
    ResolveTreeExpanderMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveTreeExpanderMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveTreeExpanderMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveTreeExpanderMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveTreeExpanderMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveTreeExpanderMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveTreeExpanderMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveTreeExpanderMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveTreeExpanderMethod "hasCssClass" o = Gtk.Widget.WidgetHasCssClassMethodInfo
    ResolveTreeExpanderMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveTreeExpanderMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveTreeExpanderMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveTreeExpanderMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveTreeExpanderMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveTreeExpanderMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveTreeExpanderMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveTreeExpanderMethod "insertAfter" o = Gtk.Widget.WidgetInsertAfterMethodInfo
    ResolveTreeExpanderMethod "insertBefore" o = Gtk.Widget.WidgetInsertBeforeMethodInfo
    ResolveTreeExpanderMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveTreeExpanderMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveTreeExpanderMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveTreeExpanderMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveTreeExpanderMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveTreeExpanderMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveTreeExpanderMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveTreeExpanderMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveTreeExpanderMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveTreeExpanderMethod "measure" o = Gtk.Widget.WidgetMeasureMethodInfo
    ResolveTreeExpanderMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveTreeExpanderMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveTreeExpanderMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveTreeExpanderMethod "observeChildren" o = Gtk.Widget.WidgetObserveChildrenMethodInfo
    ResolveTreeExpanderMethod "observeControllers" o = Gtk.Widget.WidgetObserveControllersMethodInfo
    ResolveTreeExpanderMethod "pick" o = Gtk.Widget.WidgetPickMethodInfo
    ResolveTreeExpanderMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveTreeExpanderMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveTreeExpanderMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveTreeExpanderMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveTreeExpanderMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveTreeExpanderMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveTreeExpanderMethod "removeController" o = Gtk.Widget.WidgetRemoveControllerMethodInfo
    ResolveTreeExpanderMethod "removeCssClass" o = Gtk.Widget.WidgetRemoveCssClassMethodInfo
    ResolveTreeExpanderMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveTreeExpanderMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveTreeExpanderMethod "resetProperty" o = Gtk.Accessible.AccessibleResetPropertyMethodInfo
    ResolveTreeExpanderMethod "resetRelation" o = Gtk.Accessible.AccessibleResetRelationMethodInfo
    ResolveTreeExpanderMethod "resetState" o = Gtk.Accessible.AccessibleResetStateMethodInfo
    ResolveTreeExpanderMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveTreeExpanderMethod "shouldLayout" o = Gtk.Widget.WidgetShouldLayoutMethodInfo
    ResolveTreeExpanderMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveTreeExpanderMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveTreeExpanderMethod "snapshotChild" o = Gtk.Widget.WidgetSnapshotChildMethodInfo
    ResolveTreeExpanderMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveTreeExpanderMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveTreeExpanderMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveTreeExpanderMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveTreeExpanderMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveTreeExpanderMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveTreeExpanderMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveTreeExpanderMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveTreeExpanderMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveTreeExpanderMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveTreeExpanderMethod "updateProperty" o = Gtk.Accessible.AccessibleUpdatePropertyMethodInfo
    ResolveTreeExpanderMethod "updateRelation" o = Gtk.Accessible.AccessibleUpdateRelationMethodInfo
    ResolveTreeExpanderMethod "updateState" o = Gtk.Accessible.AccessibleUpdateStateMethodInfo
    ResolveTreeExpanderMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveTreeExpanderMethod "getAccessibleRole" o = Gtk.Accessible.AccessibleGetAccessibleRoleMethodInfo
    ResolveTreeExpanderMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveTreeExpanderMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveTreeExpanderMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveTreeExpanderMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveTreeExpanderMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveTreeExpanderMethod "getBuildableId" o = Gtk.Buildable.BuildableGetBuildableIdMethodInfo
    ResolveTreeExpanderMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveTreeExpanderMethod "getCanTarget" o = Gtk.Widget.WidgetGetCanTargetMethodInfo
    ResolveTreeExpanderMethod "getChild" o = TreeExpanderGetChildMethodInfo
    ResolveTreeExpanderMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveTreeExpanderMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveTreeExpanderMethod "getCssClasses" o = Gtk.Widget.WidgetGetCssClassesMethodInfo
    ResolveTreeExpanderMethod "getCssName" o = Gtk.Widget.WidgetGetCssNameMethodInfo
    ResolveTreeExpanderMethod "getCursor" o = Gtk.Widget.WidgetGetCursorMethodInfo
    ResolveTreeExpanderMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveTreeExpanderMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveTreeExpanderMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveTreeExpanderMethod "getFirstChild" o = Gtk.Widget.WidgetGetFirstChildMethodInfo
    ResolveTreeExpanderMethod "getFocusChild" o = Gtk.Widget.WidgetGetFocusChildMethodInfo
    ResolveTreeExpanderMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveTreeExpanderMethod "getFocusable" o = Gtk.Widget.WidgetGetFocusableMethodInfo
    ResolveTreeExpanderMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveTreeExpanderMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveTreeExpanderMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveTreeExpanderMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveTreeExpanderMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveTreeExpanderMethod "getHeight" o = Gtk.Widget.WidgetGetHeightMethodInfo
    ResolveTreeExpanderMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveTreeExpanderMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveTreeExpanderMethod "getItem" o = TreeExpanderGetItemMethodInfo
    ResolveTreeExpanderMethod "getLastChild" o = Gtk.Widget.WidgetGetLastChildMethodInfo
    ResolveTreeExpanderMethod "getLayoutManager" o = Gtk.Widget.WidgetGetLayoutManagerMethodInfo
    ResolveTreeExpanderMethod "getListRow" o = TreeExpanderGetListRowMethodInfo
    ResolveTreeExpanderMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveTreeExpanderMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveTreeExpanderMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveTreeExpanderMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveTreeExpanderMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveTreeExpanderMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveTreeExpanderMethod "getNative" o = Gtk.Widget.WidgetGetNativeMethodInfo
    ResolveTreeExpanderMethod "getNextSibling" o = Gtk.Widget.WidgetGetNextSiblingMethodInfo
    ResolveTreeExpanderMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveTreeExpanderMethod "getOverflow" o = Gtk.Widget.WidgetGetOverflowMethodInfo
    ResolveTreeExpanderMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveTreeExpanderMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveTreeExpanderMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveTreeExpanderMethod "getPrevSibling" o = Gtk.Widget.WidgetGetPrevSiblingMethodInfo
    ResolveTreeExpanderMethod "getPrimaryClipboard" o = Gtk.Widget.WidgetGetPrimaryClipboardMethodInfo
    ResolveTreeExpanderMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveTreeExpanderMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveTreeExpanderMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveTreeExpanderMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveTreeExpanderMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveTreeExpanderMethod "getRoot" o = Gtk.Widget.WidgetGetRootMethodInfo
    ResolveTreeExpanderMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveTreeExpanderMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveTreeExpanderMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveTreeExpanderMethod "getSize" o = Gtk.Widget.WidgetGetSizeMethodInfo
    ResolveTreeExpanderMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveTreeExpanderMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveTreeExpanderMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveTreeExpanderMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveTreeExpanderMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveTreeExpanderMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveTreeExpanderMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveTreeExpanderMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveTreeExpanderMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveTreeExpanderMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveTreeExpanderMethod "getWidth" o = Gtk.Widget.WidgetGetWidthMethodInfo
    ResolveTreeExpanderMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveTreeExpanderMethod "setCanTarget" o = Gtk.Widget.WidgetSetCanTargetMethodInfo
    ResolveTreeExpanderMethod "setChild" o = TreeExpanderSetChildMethodInfo
    ResolveTreeExpanderMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveTreeExpanderMethod "setCssClasses" o = Gtk.Widget.WidgetSetCssClassesMethodInfo
    ResolveTreeExpanderMethod "setCursor" o = Gtk.Widget.WidgetSetCursorMethodInfo
    ResolveTreeExpanderMethod "setCursorFromName" o = Gtk.Widget.WidgetSetCursorFromNameMethodInfo
    ResolveTreeExpanderMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveTreeExpanderMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveTreeExpanderMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveTreeExpanderMethod "setFocusChild" o = Gtk.Widget.WidgetSetFocusChildMethodInfo
    ResolveTreeExpanderMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveTreeExpanderMethod "setFocusable" o = Gtk.Widget.WidgetSetFocusableMethodInfo
    ResolveTreeExpanderMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveTreeExpanderMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveTreeExpanderMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveTreeExpanderMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveTreeExpanderMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveTreeExpanderMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveTreeExpanderMethod "setLayoutManager" o = Gtk.Widget.WidgetSetLayoutManagerMethodInfo
    ResolveTreeExpanderMethod "setListRow" o = TreeExpanderSetListRowMethodInfo
    ResolveTreeExpanderMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveTreeExpanderMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveTreeExpanderMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveTreeExpanderMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveTreeExpanderMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveTreeExpanderMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveTreeExpanderMethod "setOverflow" o = Gtk.Widget.WidgetSetOverflowMethodInfo
    ResolveTreeExpanderMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveTreeExpanderMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveTreeExpanderMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveTreeExpanderMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveTreeExpanderMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveTreeExpanderMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveTreeExpanderMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveTreeExpanderMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveTreeExpanderMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveTreeExpanderMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveTreeExpanderMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveTreeExpanderMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveTreeExpanderMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveTreeExpanderMethod t TreeExpander, O.OverloadedMethod info TreeExpander p) => OL.IsLabel t (TreeExpander -> 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 ~ ResolveTreeExpanderMethod t TreeExpander, O.OverloadedMethod info TreeExpander p, R.HasField t TreeExpander p) => R.HasField t TreeExpander p where
    getField = O.overloadedMethod @info

#endif

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

#endif

-- VVV Prop "child"
   -- Type: TInterface (Name {namespace = "Gtk", name = "Widget"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just True,Just True)

-- | Get the value of the “@child@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' treeExpander #child
-- @
getTreeExpanderChild :: (MonadIO m, IsTreeExpander o) => o -> m (Maybe Gtk.Widget.Widget)
getTreeExpanderChild :: forall (m :: * -> *) o.
(MonadIO m, IsTreeExpander o) =>
o -> m (Maybe Widget)
getTreeExpanderChild o
obj = IO (Maybe Widget) -> m (Maybe Widget)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe Widget) -> m (Maybe Widget))
-> IO (Maybe Widget) -> m (Maybe Widget)
forall a b. (a -> b) -> a -> b
$ o -> String -> (ManagedPtr Widget -> Widget) -> IO (Maybe Widget)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"child" ManagedPtr Widget -> Widget
Gtk.Widget.Widget

-- | Set the value of the “@child@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' treeExpander [ #child 'Data.GI.Base.Attributes.:=' value ]
-- @
setTreeExpanderChild :: (MonadIO m, IsTreeExpander o, Gtk.Widget.IsWidget a) => o -> a -> m ()
setTreeExpanderChild :: forall (m :: * -> *) o a.
(MonadIO m, IsTreeExpander o, IsWidget a) =>
o -> a -> m ()
setTreeExpanderChild o
obj a
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 -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"child" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)

-- | Construct a `GValueConstruct` with valid value for the “@child@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructTreeExpanderChild :: (IsTreeExpander o, MIO.MonadIO m, Gtk.Widget.IsWidget a) => a -> m (GValueConstruct o)
constructTreeExpanderChild :: forall o (m :: * -> *) a.
(IsTreeExpander o, MonadIO m, IsWidget a) =>
a -> m (GValueConstruct o)
constructTreeExpanderChild a
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 -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"child" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

-- | Set the value of the “@child@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #child
-- @
clearTreeExpanderChild :: (MonadIO m, IsTreeExpander o) => o -> m ()
clearTreeExpanderChild :: forall (m :: * -> *) o. (MonadIO m, IsTreeExpander o) => o -> m ()
clearTreeExpanderChild o
obj = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe Widget -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"child" (Maybe Widget
forall a. Maybe a
Nothing :: Maybe Gtk.Widget.Widget)

#if defined(ENABLE_OVERLOADING)
data TreeExpanderChildPropertyInfo
instance AttrInfo TreeExpanderChildPropertyInfo where
    type AttrAllowedOps TreeExpanderChildPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint TreeExpanderChildPropertyInfo = IsTreeExpander
    type AttrSetTypeConstraint TreeExpanderChildPropertyInfo = Gtk.Widget.IsWidget
    type AttrTransferTypeConstraint TreeExpanderChildPropertyInfo = Gtk.Widget.IsWidget
    type AttrTransferType TreeExpanderChildPropertyInfo = Gtk.Widget.Widget
    type AttrGetType TreeExpanderChildPropertyInfo = (Maybe Gtk.Widget.Widget)
    type AttrLabel TreeExpanderChildPropertyInfo = "child"
    type AttrOrigin TreeExpanderChildPropertyInfo = TreeExpander
    attrGet = getTreeExpanderChild
    attrSet = setTreeExpanderChild
    attrTransfer _ v = do
        unsafeCastTo Gtk.Widget.Widget v
    attrConstruct = constructTreeExpanderChild
    attrClear = clearTreeExpanderChild
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.child"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#g:attr:child"
        })
#endif

-- VVV Prop "item"
   -- Type: TInterface (Name {namespace = "GObject", name = "Object"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

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

#if defined(ENABLE_OVERLOADING)
data TreeExpanderItemPropertyInfo
instance AttrInfo TreeExpanderItemPropertyInfo where
    type AttrAllowedOps TreeExpanderItemPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint TreeExpanderItemPropertyInfo = IsTreeExpander
    type AttrSetTypeConstraint TreeExpanderItemPropertyInfo = (~) ()
    type AttrTransferTypeConstraint TreeExpanderItemPropertyInfo = (~) ()
    type AttrTransferType TreeExpanderItemPropertyInfo = ()
    type AttrGetType TreeExpanderItemPropertyInfo = (Maybe GObject.Object.Object)
    type AttrLabel TreeExpanderItemPropertyInfo = "item"
    type AttrOrigin TreeExpanderItemPropertyInfo = TreeExpander
    attrGet = getTreeExpanderItem
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.item"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#g:attr:item"
        })
#endif

-- VVV Prop "list-row"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TreeListRow"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just True,Just True)

-- | Get the value of the “@list-row@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' treeExpander #listRow
-- @
getTreeExpanderListRow :: (MonadIO m, IsTreeExpander o) => o -> m (Maybe Gtk.TreeListRow.TreeListRow)
getTreeExpanderListRow :: forall (m :: * -> *) o.
(MonadIO m, IsTreeExpander o) =>
o -> m (Maybe TreeListRow)
getTreeExpanderListRow o
obj = IO (Maybe TreeListRow) -> m (Maybe TreeListRow)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe TreeListRow) -> m (Maybe TreeListRow))
-> IO (Maybe TreeListRow) -> m (Maybe TreeListRow)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr TreeListRow -> TreeListRow)
-> IO (Maybe TreeListRow)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"list-row" ManagedPtr TreeListRow -> TreeListRow
Gtk.TreeListRow.TreeListRow

-- | Set the value of the “@list-row@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' treeExpander [ #listRow 'Data.GI.Base.Attributes.:=' value ]
-- @
setTreeExpanderListRow :: (MonadIO m, IsTreeExpander o, Gtk.TreeListRow.IsTreeListRow a) => o -> a -> m ()
setTreeExpanderListRow :: forall (m :: * -> *) o a.
(MonadIO m, IsTreeExpander o, IsTreeListRow a) =>
o -> a -> m ()
setTreeExpanderListRow o
obj a
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 -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"list-row" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)

-- | Construct a `GValueConstruct` with valid value for the “@list-row@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructTreeExpanderListRow :: (IsTreeExpander o, MIO.MonadIO m, Gtk.TreeListRow.IsTreeListRow a) => a -> m (GValueConstruct o)
constructTreeExpanderListRow :: forall o (m :: * -> *) a.
(IsTreeExpander o, MonadIO m, IsTreeListRow a) =>
a -> m (GValueConstruct o)
constructTreeExpanderListRow a
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 -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"list-row" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

-- | Set the value of the “@list-row@” property to `Nothing`.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.clear' #listRow
-- @
clearTreeExpanderListRow :: (MonadIO m, IsTreeExpander o) => o -> m ()
clearTreeExpanderListRow :: forall (m :: * -> *) o. (MonadIO m, IsTreeExpander o) => o -> m ()
clearTreeExpanderListRow o
obj = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe TreeListRow -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"list-row" (Maybe TreeListRow
forall a. Maybe a
Nothing :: Maybe Gtk.TreeListRow.TreeListRow)

#if defined(ENABLE_OVERLOADING)
data TreeExpanderListRowPropertyInfo
instance AttrInfo TreeExpanderListRowPropertyInfo where
    type AttrAllowedOps TreeExpanderListRowPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint TreeExpanderListRowPropertyInfo = IsTreeExpander
    type AttrSetTypeConstraint TreeExpanderListRowPropertyInfo = Gtk.TreeListRow.IsTreeListRow
    type AttrTransferTypeConstraint TreeExpanderListRowPropertyInfo = Gtk.TreeListRow.IsTreeListRow
    type AttrTransferType TreeExpanderListRowPropertyInfo = Gtk.TreeListRow.TreeListRow
    type AttrGetType TreeExpanderListRowPropertyInfo = (Maybe Gtk.TreeListRow.TreeListRow)
    type AttrLabel TreeExpanderListRowPropertyInfo = "list-row"
    type AttrOrigin TreeExpanderListRowPropertyInfo = TreeExpander
    attrGet = getTreeExpanderListRow
    attrSet = setTreeExpanderListRow
    attrTransfer _ v = do
        unsafeCastTo Gtk.TreeListRow.TreeListRow v
    attrConstruct = constructTreeExpanderListRow
    attrClear = clearTreeExpanderListRow
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.listRow"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#g:attr:listRow"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList TreeExpander
type instance O.AttributeList TreeExpander = TreeExpanderAttributeList
type TreeExpanderAttributeList = ('[ '("accessibleRole", Gtk.Accessible.AccessibleAccessibleRolePropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("child", TreeExpanderChildPropertyInfo), '("cssClasses", Gtk.Widget.WidgetCssClassesPropertyInfo), '("cssName", Gtk.Widget.WidgetCssNamePropertyInfo), '("cursor", Gtk.Widget.WidgetCursorPropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("focusable", Gtk.Widget.WidgetFocusablePropertyInfo), '("halign", Gtk.Widget.WidgetHalignPropertyInfo), '("hasDefault", Gtk.Widget.WidgetHasDefaultPropertyInfo), '("hasFocus", Gtk.Widget.WidgetHasFocusPropertyInfo), '("hasTooltip", Gtk.Widget.WidgetHasTooltipPropertyInfo), '("heightRequest", Gtk.Widget.WidgetHeightRequestPropertyInfo), '("hexpand", Gtk.Widget.WidgetHexpandPropertyInfo), '("hexpandSet", Gtk.Widget.WidgetHexpandSetPropertyInfo), '("item", TreeExpanderItemPropertyInfo), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("listRow", TreeExpanderListRowPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("overflow", Gtk.Widget.WidgetOverflowPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo)] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
treeExpanderChild :: AttrLabelProxy "child"
treeExpanderChild = AttrLabelProxy

treeExpanderItem :: AttrLabelProxy "item"
treeExpanderItem = AttrLabelProxy

treeExpanderListRow :: AttrLabelProxy "listRow"
treeExpanderListRow = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList TreeExpander = TreeExpanderSignalList
type TreeExpanderSignalList = ('[ '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo)] :: [(Symbol, *)])

#endif

-- method TreeExpander::new
-- method type : Constructor
-- Args: []
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Gtk" , name = "TreeExpander" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_expander_new" gtk_tree_expander_new :: 
    IO (Ptr TreeExpander)

-- | Creates a new @GtkTreeExpander@
treeExpanderNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m TreeExpander
    -- ^ __Returns:__ a new @GtkTreeExpander@
treeExpanderNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m TreeExpander
treeExpanderNew  = IO TreeExpander -> m TreeExpander
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreeExpander -> m TreeExpander)
-> IO TreeExpander -> m TreeExpander
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeExpander
result <- IO (Ptr TreeExpander)
gtk_tree_expander_new
    Text -> Ptr TreeExpander -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"treeExpanderNew" Ptr TreeExpander
result
    TreeExpander
result' <- ((ManagedPtr TreeExpander -> TreeExpander)
-> Ptr TreeExpander -> IO TreeExpander
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeExpander -> TreeExpander
TreeExpander) Ptr TreeExpander
result
    TreeExpander -> IO TreeExpander
forall (m :: * -> *) a. Monad m => a -> m a
return TreeExpander
result'

#if defined(ENABLE_OVERLOADING)
#endif

-- method TreeExpander::get_child
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeExpander" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a `GtkTreeExpander`"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "Widget" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_expander_get_child" gtk_tree_expander_get_child :: 
    Ptr TreeExpander ->                     -- self : TInterface (Name {namespace = "Gtk", name = "TreeExpander"})
    IO (Ptr Gtk.Widget.Widget)

-- | Gets the child widget displayed by /@self@/.
treeExpanderGetChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeExpander a) =>
    a
    -- ^ /@self@/: a @GtkTreeExpander@
    -> m (Maybe Gtk.Widget.Widget)
    -- ^ __Returns:__ The child displayed by /@self@/
treeExpanderGetChild :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeExpander a) =>
a -> m (Maybe Widget)
treeExpanderGetChild a
self = IO (Maybe Widget) -> m (Maybe Widget)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Widget) -> m (Maybe Widget))
-> IO (Maybe Widget) -> m (Maybe Widget)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeExpander
self' <- a -> IO (Ptr TreeExpander)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
result <- Ptr TreeExpander -> IO (Ptr Widget)
gtk_tree_expander_get_child Ptr TreeExpander
self'
    Maybe Widget
maybeResult <- Ptr Widget -> (Ptr Widget -> IO Widget) -> IO (Maybe Widget)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Widget
result ((Ptr Widget -> IO Widget) -> IO (Maybe Widget))
-> (Ptr Widget -> IO Widget) -> IO (Maybe Widget)
forall a b. (a -> b) -> a -> b
$ \Ptr Widget
result' -> do
        Widget
result'' <- ((ManagedPtr Widget -> Widget) -> Ptr Widget -> IO Widget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Widget -> Widget
Gtk.Widget.Widget) Ptr Widget
result'
        Widget -> IO Widget
forall (m :: * -> *) a. Monad m => a -> m a
return Widget
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe Widget -> IO (Maybe Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Widget
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeExpanderGetChildMethodInfo
instance (signature ~ (m (Maybe Gtk.Widget.Widget)), MonadIO m, IsTreeExpander a) => O.OverloadedMethod TreeExpanderGetChildMethodInfo a signature where
    overloadedMethod = treeExpanderGetChild

instance O.OverloadedMethodInfo TreeExpanderGetChildMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.treeExpanderGetChild",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#v:treeExpanderGetChild"
        })


#endif

-- method TreeExpander::get_item
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeExpander" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a `GtkTreeExpander`"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "GObject" , name = "Object" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_expander_get_item" gtk_tree_expander_get_item :: 
    Ptr TreeExpander ->                     -- self : TInterface (Name {namespace = "Gtk", name = "TreeExpander"})
    IO (Ptr GObject.Object.Object)

-- | Forwards the item set on the @GtkTreeListRow@ that /@self@/ is managing.
-- 
-- This call is essentially equivalent to calling:
-- 
-- 
-- === /c code/
-- >gtk_tree_list_row_get_item (gtk_tree_expander_get_list_row (@self));
treeExpanderGetItem ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeExpander a) =>
    a
    -- ^ /@self@/: a @GtkTreeExpander@
    -> m (Maybe GObject.Object.Object)
    -- ^ __Returns:__ The item of the row
treeExpanderGetItem :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeExpander a) =>
a -> m (Maybe Object)
treeExpanderGetItem a
self = IO (Maybe Object) -> m (Maybe Object)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Object) -> m (Maybe Object))
-> IO (Maybe Object) -> m (Maybe Object)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeExpander
self' <- a -> IO (Ptr TreeExpander)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Object
result <- Ptr TreeExpander -> IO (Ptr Object)
gtk_tree_expander_get_item Ptr TreeExpander
self'
    Maybe Object
maybeResult <- Ptr Object -> (Ptr Object -> IO Object) -> IO (Maybe Object)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Object
result ((Ptr Object -> IO Object) -> IO (Maybe Object))
-> (Ptr Object -> IO Object) -> IO (Maybe Object)
forall a b. (a -> b) -> a -> b
$ \Ptr Object
result' -> do
        Object
result'' <- ((ManagedPtr Object -> Object) -> Ptr Object -> IO Object
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Object -> Object
GObject.Object.Object) Ptr Object
result'
        Object -> IO Object
forall (m :: * -> *) a. Monad m => a -> m a
return Object
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe Object -> IO (Maybe Object)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Object
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeExpanderGetItemMethodInfo
instance (signature ~ (m (Maybe GObject.Object.Object)), MonadIO m, IsTreeExpander a) => O.OverloadedMethod TreeExpanderGetItemMethodInfo a signature where
    overloadedMethod = treeExpanderGetItem

instance O.OverloadedMethodInfo TreeExpanderGetItemMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.treeExpanderGetItem",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#v:treeExpanderGetItem"
        })


#endif

-- method TreeExpander::get_list_row
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeExpander" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a `GtkTreeExpander`"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Gtk" , name = "TreeListRow" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_expander_get_list_row" gtk_tree_expander_get_list_row :: 
    Ptr TreeExpander ->                     -- self : TInterface (Name {namespace = "Gtk", name = "TreeExpander"})
    IO (Ptr Gtk.TreeListRow.TreeListRow)

-- | Gets the list row managed by /@self@/.
treeExpanderGetListRow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeExpander a) =>
    a
    -- ^ /@self@/: a @GtkTreeExpander@
    -> m (Maybe Gtk.TreeListRow.TreeListRow)
    -- ^ __Returns:__ The list row displayed by /@self@/
treeExpanderGetListRow :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeExpander a) =>
a -> m (Maybe TreeListRow)
treeExpanderGetListRow a
self = IO (Maybe TreeListRow) -> m (Maybe TreeListRow)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TreeListRow) -> m (Maybe TreeListRow))
-> IO (Maybe TreeListRow) -> m (Maybe TreeListRow)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeExpander
self' <- a -> IO (Ptr TreeExpander)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr TreeListRow
result <- Ptr TreeExpander -> IO (Ptr TreeListRow)
gtk_tree_expander_get_list_row Ptr TreeExpander
self'
    Maybe TreeListRow
maybeResult <- Ptr TreeListRow
-> (Ptr TreeListRow -> IO TreeListRow) -> IO (Maybe TreeListRow)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeListRow
result ((Ptr TreeListRow -> IO TreeListRow) -> IO (Maybe TreeListRow))
-> (Ptr TreeListRow -> IO TreeListRow) -> IO (Maybe TreeListRow)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeListRow
result' -> do
        TreeListRow
result'' <- ((ManagedPtr TreeListRow -> TreeListRow)
-> Ptr TreeListRow -> IO TreeListRow
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeListRow -> TreeListRow
Gtk.TreeListRow.TreeListRow) Ptr TreeListRow
result'
        TreeListRow -> IO TreeListRow
forall (m :: * -> *) a. Monad m => a -> m a
return TreeListRow
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe TreeListRow -> IO (Maybe TreeListRow)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TreeListRow
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeExpanderGetListRowMethodInfo
instance (signature ~ (m (Maybe Gtk.TreeListRow.TreeListRow)), MonadIO m, IsTreeExpander a) => O.OverloadedMethod TreeExpanderGetListRowMethodInfo a signature where
    overloadedMethod = treeExpanderGetListRow

instance O.OverloadedMethodInfo TreeExpanderGetListRowMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.treeExpanderGetListRow",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#v:treeExpanderGetListRow"
        })


#endif

-- method TreeExpander::set_child
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeExpander" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a `GtkTreeExpander`"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "child"
--           , argType = TInterface Name { namespace = "Gtk" , name = "Widget" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a `GtkWidget`" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_expander_set_child" gtk_tree_expander_set_child :: 
    Ptr TreeExpander ->                     -- self : TInterface (Name {namespace = "Gtk", name = "TreeExpander"})
    Ptr Gtk.Widget.Widget ->                -- child : TInterface (Name {namespace = "Gtk", name = "Widget"})
    IO ()

-- | Sets the content widget to display.
treeExpanderSetChild ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeExpander a, Gtk.Widget.IsWidget b) =>
    a
    -- ^ /@self@/: a @GtkTreeExpander@
    -> Maybe (b)
    -- ^ /@child@/: a @GtkWidget@
    -> m ()
treeExpanderSetChild :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeExpander a, IsWidget b) =>
a -> Maybe b -> m ()
treeExpanderSetChild a
self Maybe b
child = 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 TreeExpander
self' <- a -> IO (Ptr TreeExpander)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Widget
maybeChild <- case Maybe b
child of
        Maybe b
Nothing -> Ptr Widget -> IO (Ptr Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
forall a. Ptr a
nullPtr
        Just b
jChild -> do
            Ptr Widget
jChild' <- b -> IO (Ptr Widget)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jChild
            Ptr Widget -> IO (Ptr Widget)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Widget
jChild'
    Ptr TreeExpander -> Ptr Widget -> IO ()
gtk_tree_expander_set_child Ptr TreeExpander
self' Ptr Widget
maybeChild
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
child b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeExpanderSetChildMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsTreeExpander a, Gtk.Widget.IsWidget b) => O.OverloadedMethod TreeExpanderSetChildMethodInfo a signature where
    overloadedMethod = treeExpanderSetChild

instance O.OverloadedMethodInfo TreeExpanderSetChildMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.treeExpanderSetChild",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#v:treeExpanderSetChild"
        })


#endif

-- method TreeExpander::set_list_row
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeExpander" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a `GtkTreeExpander` widget"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "list_row"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeListRow" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a `GtkTreeListRow`" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_expander_set_list_row" gtk_tree_expander_set_list_row :: 
    Ptr TreeExpander ->                     -- self : TInterface (Name {namespace = "Gtk", name = "TreeExpander"})
    Ptr Gtk.TreeListRow.TreeListRow ->      -- list_row : TInterface (Name {namespace = "Gtk", name = "TreeListRow"})
    IO ()

-- | Sets the tree list row that this expander should manage.
treeExpanderSetListRow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeExpander a, Gtk.TreeListRow.IsTreeListRow b) =>
    a
    -- ^ /@self@/: a @GtkTreeExpander@ widget
    -> Maybe (b)
    -- ^ /@listRow@/: a @GtkTreeListRow@
    -> m ()
treeExpanderSetListRow :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeExpander a, IsTreeListRow b) =>
a -> Maybe b -> m ()
treeExpanderSetListRow a
self Maybe b
listRow = 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 TreeExpander
self' <- a -> IO (Ptr TreeExpander)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr TreeListRow
maybeListRow <- case Maybe b
listRow of
        Maybe b
Nothing -> Ptr TreeListRow -> IO (Ptr TreeListRow)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeListRow
forall a. Ptr a
nullPtr
        Just b
jListRow -> do
            Ptr TreeListRow
jListRow' <- b -> IO (Ptr TreeListRow)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jListRow
            Ptr TreeListRow -> IO (Ptr TreeListRow)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeListRow
jListRow'
    Ptr TreeExpander -> Ptr TreeListRow -> IO ()
gtk_tree_expander_set_list_row Ptr TreeExpander
self' Ptr TreeListRow
maybeListRow
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
listRow b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeExpanderSetListRowMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsTreeExpander a, Gtk.TreeListRow.IsTreeListRow b) => O.OverloadedMethod TreeExpanderSetListRowMethodInfo a signature where
    overloadedMethod = treeExpanderSetListRow

instance O.OverloadedMethodInfo TreeExpanderSetListRowMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.TreeExpander.treeExpanderSetListRow",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.5/docs/GI-Gtk-Objects-TreeExpander.html#v:treeExpanderSetListRow"
        })


#endif