{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.Expander
    ( 

-- * Exported types
    Expander(..)                            ,
    ExpanderK                               ,
    toExpander                              ,
    noExpander                              ,


 -- * Methods
-- ** expanderGetExpanded
    expanderGetExpanded                     ,


-- ** expanderGetLabel
    expanderGetLabel                        ,


-- ** expanderGetLabelFill
    expanderGetLabelFill                    ,


-- ** expanderGetLabelWidget
    expanderGetLabelWidget                  ,


-- ** expanderGetResizeToplevel
    expanderGetResizeToplevel               ,


-- ** expanderGetSpacing
    expanderGetSpacing                      ,


-- ** expanderGetUseMarkup
    expanderGetUseMarkup                    ,


-- ** expanderGetUseUnderline
    expanderGetUseUnderline                 ,


-- ** expanderNew
    expanderNew                             ,


-- ** expanderNewWithMnemonic
    expanderNewWithMnemonic                 ,


-- ** expanderSetExpanded
    expanderSetExpanded                     ,


-- ** expanderSetLabel
    expanderSetLabel                        ,


-- ** expanderSetLabelFill
    expanderSetLabelFill                    ,


-- ** expanderSetLabelWidget
    expanderSetLabelWidget                  ,


-- ** expanderSetResizeToplevel
    expanderSetResizeToplevel               ,


-- ** expanderSetSpacing
    expanderSetSpacing                      ,


-- ** expanderSetUseMarkup
    expanderSetUseMarkup                    ,


-- ** expanderSetUseUnderline
    expanderSetUseUnderline                 ,




 -- * Properties
-- ** Expanded
    ExpanderExpandedPropertyInfo            ,
    constructExpanderExpanded               ,
    getExpanderExpanded                     ,
    setExpanderExpanded                     ,


-- ** Label
    ExpanderLabelPropertyInfo               ,
    constructExpanderLabel                  ,
    getExpanderLabel                        ,
    setExpanderLabel                        ,


-- ** LabelFill
    ExpanderLabelFillPropertyInfo           ,
    constructExpanderLabelFill              ,
    getExpanderLabelFill                    ,
    setExpanderLabelFill                    ,


-- ** LabelWidget
    ExpanderLabelWidgetPropertyInfo         ,
    constructExpanderLabelWidget            ,
    getExpanderLabelWidget                  ,
    setExpanderLabelWidget                  ,


-- ** ResizeToplevel
    ExpanderResizeToplevelPropertyInfo      ,
    constructExpanderResizeToplevel         ,
    getExpanderResizeToplevel               ,
    setExpanderResizeToplevel               ,


-- ** Spacing
    ExpanderSpacingPropertyInfo             ,
    constructExpanderSpacing                ,
    getExpanderSpacing                      ,
    setExpanderSpacing                      ,


-- ** UseMarkup
    ExpanderUseMarkupPropertyInfo           ,
    constructExpanderUseMarkup              ,
    getExpanderUseMarkup                    ,
    setExpanderUseMarkup                    ,


-- ** UseUnderline
    ExpanderUseUnderlinePropertyInfo        ,
    constructExpanderUseUnderline           ,
    getExpanderUseUnderline                 ,
    setExpanderUseUnderline                 ,




 -- * Signals
-- ** Activate
    ExpanderActivateCallback                ,
    ExpanderActivateCallbackC               ,
    ExpanderActivateSignalInfo              ,
    afterExpanderActivate                   ,
    expanderActivateCallbackWrapper         ,
    expanderActivateClosure                 ,
    mkExpanderActivateCallback              ,
    noExpanderActivateCallback              ,
    onExpanderActivate                      ,




    ) where

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

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

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.Atk as Atk
import qualified GI.GObject as GObject

newtype Expander = Expander (ForeignPtr Expander)
foreign import ccall "gtk_expander_get_type"
    c_gtk_expander_get_type :: IO GType

type instance ParentTypes Expander = ExpanderParentTypes
type ExpanderParentTypes = '[Bin, Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable]

instance GObject Expander where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_expander_get_type
    

class GObject o => ExpanderK o
instance (GObject o, IsDescendantOf Expander o) => ExpanderK o

toExpander :: ExpanderK o => o -> IO Expander
toExpander = unsafeCastTo Expander

noExpander :: Maybe Expander
noExpander = Nothing

-- signal Expander::activate
type ExpanderActivateCallback =
    IO ()

noExpanderActivateCallback :: Maybe ExpanderActivateCallback
noExpanderActivateCallback = Nothing

type ExpanderActivateCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkExpanderActivateCallback :: ExpanderActivateCallbackC -> IO (FunPtr ExpanderActivateCallbackC)

expanderActivateClosure :: ExpanderActivateCallback -> IO Closure
expanderActivateClosure cb = newCClosure =<< mkExpanderActivateCallback wrapped
    where wrapped = expanderActivateCallbackWrapper cb

expanderActivateCallbackWrapper ::
    ExpanderActivateCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
expanderActivateCallbackWrapper _cb _ _ = do
    _cb 

onExpanderActivate :: (GObject a, MonadIO m) => a -> ExpanderActivateCallback -> m SignalHandlerId
onExpanderActivate obj cb = liftIO $ connectExpanderActivate obj cb SignalConnectBefore
afterExpanderActivate :: (GObject a, MonadIO m) => a -> ExpanderActivateCallback -> m SignalHandlerId
afterExpanderActivate obj cb = connectExpanderActivate obj cb SignalConnectAfter

connectExpanderActivate :: (GObject a, MonadIO m) =>
                           a -> ExpanderActivateCallback -> SignalConnectMode -> m SignalHandlerId
connectExpanderActivate obj cb after = liftIO $ do
    cb' <- mkExpanderActivateCallback (expanderActivateCallbackWrapper cb)
    connectSignalFunPtr obj "activate" cb' after

-- VVV Prop "expanded"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]

getExpanderExpanded :: (MonadIO m, ExpanderK o) => o -> m Bool
getExpanderExpanded obj = liftIO $ getObjectPropertyBool obj "expanded"

setExpanderExpanded :: (MonadIO m, ExpanderK o) => o -> Bool -> m ()
setExpanderExpanded obj val = liftIO $ setObjectPropertyBool obj "expanded" val

constructExpanderExpanded :: Bool -> IO ([Char], GValue)
constructExpanderExpanded val = constructObjectPropertyBool "expanded" val

data ExpanderExpandedPropertyInfo
instance AttrInfo ExpanderExpandedPropertyInfo where
    type AttrAllowedOps ExpanderExpandedPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderExpandedPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ExpanderExpandedPropertyInfo = ExpanderK
    type AttrGetType ExpanderExpandedPropertyInfo = Bool
    type AttrLabel ExpanderExpandedPropertyInfo = "Expander::expanded"
    attrGet _ = getExpanderExpanded
    attrSet _ = setExpanderExpanded
    attrConstruct _ = constructExpanderExpanded

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

getExpanderLabel :: (MonadIO m, ExpanderK o) => o -> m T.Text
getExpanderLabel obj = liftIO $ getObjectPropertyString obj "label"

setExpanderLabel :: (MonadIO m, ExpanderK o) => o -> T.Text -> m ()
setExpanderLabel obj val = liftIO $ setObjectPropertyString obj "label" val

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

data ExpanderLabelPropertyInfo
instance AttrInfo ExpanderLabelPropertyInfo where
    type AttrAllowedOps ExpanderLabelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderLabelPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint ExpanderLabelPropertyInfo = ExpanderK
    type AttrGetType ExpanderLabelPropertyInfo = T.Text
    type AttrLabel ExpanderLabelPropertyInfo = "Expander::label"
    attrGet _ = getExpanderLabel
    attrSet _ = setExpanderLabel
    attrConstruct _ = constructExpanderLabel

-- VVV Prop "label-fill"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]

getExpanderLabelFill :: (MonadIO m, ExpanderK o) => o -> m Bool
getExpanderLabelFill obj = liftIO $ getObjectPropertyBool obj "label-fill"

setExpanderLabelFill :: (MonadIO m, ExpanderK o) => o -> Bool -> m ()
setExpanderLabelFill obj val = liftIO $ setObjectPropertyBool obj "label-fill" val

constructExpanderLabelFill :: Bool -> IO ([Char], GValue)
constructExpanderLabelFill val = constructObjectPropertyBool "label-fill" val

data ExpanderLabelFillPropertyInfo
instance AttrInfo ExpanderLabelFillPropertyInfo where
    type AttrAllowedOps ExpanderLabelFillPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderLabelFillPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ExpanderLabelFillPropertyInfo = ExpanderK
    type AttrGetType ExpanderLabelFillPropertyInfo = Bool
    type AttrLabel ExpanderLabelFillPropertyInfo = "Expander::label-fill"
    attrGet _ = getExpanderLabelFill
    attrSet _ = setExpanderLabelFill
    attrConstruct _ = constructExpanderLabelFill

-- VVV Prop "label-widget"
   -- Type: TInterface "Gtk" "Widget"
   -- Flags: [PropertyReadable,PropertyWritable]

getExpanderLabelWidget :: (MonadIO m, ExpanderK o) => o -> m Widget
getExpanderLabelWidget obj = liftIO $ getObjectPropertyObject obj "label-widget" Widget

setExpanderLabelWidget :: (MonadIO m, ExpanderK o, WidgetK a) => o -> a -> m ()
setExpanderLabelWidget obj val = liftIO $ setObjectPropertyObject obj "label-widget" val

constructExpanderLabelWidget :: (WidgetK a) => a -> IO ([Char], GValue)
constructExpanderLabelWidget val = constructObjectPropertyObject "label-widget" val

data ExpanderLabelWidgetPropertyInfo
instance AttrInfo ExpanderLabelWidgetPropertyInfo where
    type AttrAllowedOps ExpanderLabelWidgetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderLabelWidgetPropertyInfo = WidgetK
    type AttrBaseTypeConstraint ExpanderLabelWidgetPropertyInfo = ExpanderK
    type AttrGetType ExpanderLabelWidgetPropertyInfo = Widget
    type AttrLabel ExpanderLabelWidgetPropertyInfo = "Expander::label-widget"
    attrGet _ = getExpanderLabelWidget
    attrSet _ = setExpanderLabelWidget
    attrConstruct _ = constructExpanderLabelWidget

-- VVV Prop "resize-toplevel"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getExpanderResizeToplevel :: (MonadIO m, ExpanderK o) => o -> m Bool
getExpanderResizeToplevel obj = liftIO $ getObjectPropertyBool obj "resize-toplevel"

setExpanderResizeToplevel :: (MonadIO m, ExpanderK o) => o -> Bool -> m ()
setExpanderResizeToplevel obj val = liftIO $ setObjectPropertyBool obj "resize-toplevel" val

constructExpanderResizeToplevel :: Bool -> IO ([Char], GValue)
constructExpanderResizeToplevel val = constructObjectPropertyBool "resize-toplevel" val

data ExpanderResizeToplevelPropertyInfo
instance AttrInfo ExpanderResizeToplevelPropertyInfo where
    type AttrAllowedOps ExpanderResizeToplevelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderResizeToplevelPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ExpanderResizeToplevelPropertyInfo = ExpanderK
    type AttrGetType ExpanderResizeToplevelPropertyInfo = Bool
    type AttrLabel ExpanderResizeToplevelPropertyInfo = "Expander::resize-toplevel"
    attrGet _ = getExpanderResizeToplevel
    attrSet _ = setExpanderResizeToplevel
    attrConstruct _ = constructExpanderResizeToplevel

-- VVV Prop "spacing"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getExpanderSpacing :: (MonadIO m, ExpanderK o) => o -> m Int32
getExpanderSpacing obj = liftIO $ getObjectPropertyCInt obj "spacing"

setExpanderSpacing :: (MonadIO m, ExpanderK o) => o -> Int32 -> m ()
setExpanderSpacing obj val = liftIO $ setObjectPropertyCInt obj "spacing" val

constructExpanderSpacing :: Int32 -> IO ([Char], GValue)
constructExpanderSpacing val = constructObjectPropertyCInt "spacing" val

data ExpanderSpacingPropertyInfo
instance AttrInfo ExpanderSpacingPropertyInfo where
    type AttrAllowedOps ExpanderSpacingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderSpacingPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint ExpanderSpacingPropertyInfo = ExpanderK
    type AttrGetType ExpanderSpacingPropertyInfo = Int32
    type AttrLabel ExpanderSpacingPropertyInfo = "Expander::spacing"
    attrGet _ = getExpanderSpacing
    attrSet _ = setExpanderSpacing
    attrConstruct _ = constructExpanderSpacing

-- VVV Prop "use-markup"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]

getExpanderUseMarkup :: (MonadIO m, ExpanderK o) => o -> m Bool
getExpanderUseMarkup obj = liftIO $ getObjectPropertyBool obj "use-markup"

setExpanderUseMarkup :: (MonadIO m, ExpanderK o) => o -> Bool -> m ()
setExpanderUseMarkup obj val = liftIO $ setObjectPropertyBool obj "use-markup" val

constructExpanderUseMarkup :: Bool -> IO ([Char], GValue)
constructExpanderUseMarkup val = constructObjectPropertyBool "use-markup" val

data ExpanderUseMarkupPropertyInfo
instance AttrInfo ExpanderUseMarkupPropertyInfo where
    type AttrAllowedOps ExpanderUseMarkupPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderUseMarkupPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ExpanderUseMarkupPropertyInfo = ExpanderK
    type AttrGetType ExpanderUseMarkupPropertyInfo = Bool
    type AttrLabel ExpanderUseMarkupPropertyInfo = "Expander::use-markup"
    attrGet _ = getExpanderUseMarkup
    attrSet _ = setExpanderUseMarkup
    attrConstruct _ = constructExpanderUseMarkup

-- VVV Prop "use-underline"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct]

getExpanderUseUnderline :: (MonadIO m, ExpanderK o) => o -> m Bool
getExpanderUseUnderline obj = liftIO $ getObjectPropertyBool obj "use-underline"

setExpanderUseUnderline :: (MonadIO m, ExpanderK o) => o -> Bool -> m ()
setExpanderUseUnderline obj val = liftIO $ setObjectPropertyBool obj "use-underline" val

constructExpanderUseUnderline :: Bool -> IO ([Char], GValue)
constructExpanderUseUnderline val = constructObjectPropertyBool "use-underline" val

data ExpanderUseUnderlinePropertyInfo
instance AttrInfo ExpanderUseUnderlinePropertyInfo where
    type AttrAllowedOps ExpanderUseUnderlinePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ExpanderUseUnderlinePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ExpanderUseUnderlinePropertyInfo = ExpanderK
    type AttrGetType ExpanderUseUnderlinePropertyInfo = Bool
    type AttrLabel ExpanderUseUnderlinePropertyInfo = "Expander::use-underline"
    attrGet _ = getExpanderUseUnderline
    attrSet _ = setExpanderUseUnderline
    attrConstruct _ = constructExpanderUseUnderline

type instance AttributeList Expander = ExpanderAttributeList
type ExpanderAttributeList = ('[ '("app-paintable", WidgetAppPaintablePropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("expanded", ExpanderExpandedPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("label", ExpanderLabelPropertyInfo), '("label-fill", ExpanderLabelFillPropertyInfo), '("label-widget", ExpanderLabelWidgetPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("parent", WidgetParentPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("resize-toplevel", ExpanderResizeToplevelPropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("spacing", ExpanderSpacingPropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("use-markup", ExpanderUseMarkupPropertyInfo), '("use-underline", ExpanderUseUnderlinePropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

data ExpanderActivateSignalInfo
instance SignalInfo ExpanderActivateSignalInfo where
    type HaskellCallbackType ExpanderActivateSignalInfo = ExpanderActivateCallback
    connectSignal _ = connectExpanderActivate

type instance SignalList Expander = ExpanderSignalList
type ExpanderSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("activate", ExpanderActivateSignalInfo), '("add", ContainerAddSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("delete-event", WidgetDeleteEventSignalInfo), '("destroy", WidgetDestroySignalInfo), '("destroy-event", WidgetDestroyEventSignalInfo), '("direction-changed", WidgetDirectionChangedSignalInfo), '("drag-begin", WidgetDragBeginSignalInfo), '("drag-data-delete", WidgetDragDataDeleteSignalInfo), '("drag-data-get", WidgetDragDataGetSignalInfo), '("drag-data-received", WidgetDragDataReceivedSignalInfo), '("drag-drop", WidgetDragDropSignalInfo), '("drag-end", WidgetDragEndSignalInfo), '("drag-failed", WidgetDragFailedSignalInfo), '("drag-leave", WidgetDragLeaveSignalInfo), '("drag-motion", WidgetDragMotionSignalInfo), '("draw", WidgetDrawSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("event", WidgetEventSignalInfo), '("event-after", WidgetEventAfterSignalInfo), '("focus", WidgetFocusSignalInfo), '("focus-in-event", WidgetFocusInEventSignalInfo), '("focus-out-event", WidgetFocusOutEventSignalInfo), '("grab-broken-event", WidgetGrabBrokenEventSignalInfo), '("grab-focus", WidgetGrabFocusSignalInfo), '("grab-notify", WidgetGrabNotifySignalInfo), '("hide", WidgetHideSignalInfo), '("hierarchy-changed", WidgetHierarchyChangedSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("popup-menu", WidgetPopupMenuSignalInfo), '("property-notify-event", WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", WidgetProximityInEventSignalInfo), '("proximity-out-event", WidgetProximityOutEventSignalInfo), '("query-tooltip", WidgetQueryTooltipSignalInfo), '("realize", WidgetRealizeSignalInfo), '("remove", ContainerRemoveSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("set-focus-child", ContainerSetFocusChildSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method Expander::new
-- method type : Constructor
-- Args : [Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Expander"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_new" gtk_expander_new :: 
    CString ->                              -- label : TBasicType TUTF8
    IO (Ptr Expander)


expanderNew ::
    (MonadIO m) =>
    T.Text ->                               -- label
    m Expander
expanderNew label = liftIO $ do
    label' <- textToCString label
    result <- gtk_expander_new label'
    checkUnexpectedReturnNULL "gtk_expander_new" result
    result' <- (newObject Expander) result
    freeMem label'
    return result'

-- method Expander::new_with_mnemonic
-- method type : Constructor
-- Args : [Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Expander"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_new_with_mnemonic" gtk_expander_new_with_mnemonic :: 
    CString ->                              -- label : TBasicType TUTF8
    IO (Ptr Expander)


expanderNewWithMnemonic ::
    (MonadIO m) =>
    Maybe (T.Text) ->                       -- label
    m Expander
expanderNewWithMnemonic label = liftIO $ do
    maybeLabel <- case label of
        Nothing -> return nullPtr
        Just jLabel -> do
            jLabel' <- textToCString jLabel
            return jLabel'
    result <- gtk_expander_new_with_mnemonic maybeLabel
    checkUnexpectedReturnNULL "gtk_expander_new_with_mnemonic" result
    result' <- (newObject Expander) result
    freeMem maybeLabel
    return result'

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

foreign import ccall "gtk_expander_get_expanded" gtk_expander_get_expanded :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO CInt


expanderGetExpanded ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m Bool
expanderGetExpanded _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_expanded _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_expander_get_label" gtk_expander_get_label :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO CString


expanderGetLabel ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m T.Text
expanderGetLabel _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_label _obj'
    checkUnexpectedReturnNULL "gtk_expander_get_label" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_expander_get_label_fill" gtk_expander_get_label_fill :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO CInt


expanderGetLabelFill ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m Bool
expanderGetLabelFill _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_label_fill _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method Expander::get_label_widget
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Widget"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_get_label_widget" gtk_expander_get_label_widget :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO (Ptr Widget)


expanderGetLabelWidget ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m Widget
expanderGetLabelWidget _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_label_widget _obj'
    checkUnexpectedReturnNULL "gtk_expander_get_label_widget" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_expander_get_resize_toplevel" gtk_expander_get_resize_toplevel :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO CInt


expanderGetResizeToplevel ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m Bool
expanderGetResizeToplevel _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_resize_toplevel _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method Expander::get_spacing
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_get_spacing" gtk_expander_get_spacing :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO Int32


expanderGetSpacing ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m Int32
expanderGetSpacing _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_spacing _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_expander_get_use_markup" gtk_expander_get_use_markup :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO CInt


expanderGetUseMarkup ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m Bool
expanderGetUseMarkup _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_use_markup _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_expander_get_use_underline" gtk_expander_get_use_underline :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    IO CInt


expanderGetUseUnderline ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    m Bool
expanderGetUseUnderline _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_expander_get_use_underline _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method Expander::set_expanded
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expanded", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expanded", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_expanded" gtk_expander_set_expanded :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    CInt ->                                 -- expanded : TBasicType TBoolean
    IO ()


expanderSetExpanded ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- expanded
    m ()
expanderSetExpanded _obj expanded = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let expanded' = (fromIntegral . fromEnum) expanded
    gtk_expander_set_expanded _obj' expanded'
    touchManagedPtr _obj
    return ()

-- method Expander::set_label
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_label" gtk_expander_set_label :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    CString ->                              -- label : TBasicType TUTF8
    IO ()


expanderSetLabel ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    Maybe (T.Text) ->                       -- label
    m ()
expanderSetLabel _obj label = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeLabel <- case label of
        Nothing -> return nullPtr
        Just jLabel -> do
            jLabel' <- textToCString jLabel
            return jLabel'
    gtk_expander_set_label _obj' maybeLabel
    touchManagedPtr _obj
    freeMem maybeLabel
    return ()

-- method Expander::set_label_fill
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label_fill", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label_fill", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_label_fill" gtk_expander_set_label_fill :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    CInt ->                                 -- label_fill : TBasicType TBoolean
    IO ()


expanderSetLabelFill ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- label_fill
    m ()
expanderSetLabelFill _obj label_fill = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let label_fill' = (fromIntegral . fromEnum) label_fill
    gtk_expander_set_label_fill _obj' label_fill'
    touchManagedPtr _obj
    return ()

-- method Expander::set_label_widget
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label_widget", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "label_widget", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_label_widget" gtk_expander_set_label_widget :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    Ptr Widget ->                           -- label_widget : TInterface "Gtk" "Widget"
    IO ()


expanderSetLabelWidget ::
    (MonadIO m, ExpanderK a, WidgetK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- label_widget
    m ()
expanderSetLabelWidget _obj label_widget = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeLabel_widget <- case label_widget of
        Nothing -> return nullPtr
        Just jLabel_widget -> do
            let jLabel_widget' = unsafeManagedPtrCastPtr jLabel_widget
            return jLabel_widget'
    gtk_expander_set_label_widget _obj' maybeLabel_widget
    touchManagedPtr _obj
    whenJust label_widget touchManagedPtr
    return ()

-- method Expander::set_resize_toplevel
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resize_toplevel", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "resize_toplevel", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_resize_toplevel" gtk_expander_set_resize_toplevel :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    CInt ->                                 -- resize_toplevel : TBasicType TBoolean
    IO ()


expanderSetResizeToplevel ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- resize_toplevel
    m ()
expanderSetResizeToplevel _obj resize_toplevel = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let resize_toplevel' = (fromIntegral . fromEnum) resize_toplevel
    gtk_expander_set_resize_toplevel _obj' resize_toplevel'
    touchManagedPtr _obj
    return ()

-- method Expander::set_spacing
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spacing", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spacing", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_spacing" gtk_expander_set_spacing :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    Int32 ->                                -- spacing : TBasicType TInt32
    IO ()


expanderSetSpacing ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- spacing
    m ()
expanderSetSpacing _obj spacing = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_expander_set_spacing _obj' spacing
    touchManagedPtr _obj
    return ()

-- method Expander::set_use_markup
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_markup", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_markup", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_use_markup" gtk_expander_set_use_markup :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    CInt ->                                 -- use_markup : TBasicType TBoolean
    IO ()


expanderSetUseMarkup ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- use_markup
    m ()
expanderSetUseMarkup _obj use_markup = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let use_markup' = (fromIntegral . fromEnum) use_markup
    gtk_expander_set_use_markup _obj' use_markup'
    touchManagedPtr _obj
    return ()

-- method Expander::set_use_underline
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_underline", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Expander", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_underline", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_expander_set_use_underline" gtk_expander_set_use_underline :: 
    Ptr Expander ->                         -- _obj : TInterface "Gtk" "Expander"
    CInt ->                                 -- use_underline : TBasicType TBoolean
    IO ()


expanderSetUseUnderline ::
    (MonadIO m, ExpanderK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- use_underline
    m ()
expanderSetUseUnderline _obj use_underline = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let use_underline' = (fromIntegral . fromEnum) use_underline
    gtk_expander_set_use_underline _obj' use_underline'
    touchManagedPtr _obj
    return ()