{- |
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.ToolItemGroup
    ( 

-- * Exported types
    ToolItemGroup(..)                       ,
    ToolItemGroupK                          ,
    toToolItemGroup                         ,
    noToolItemGroup                         ,


 -- * Methods
-- ** toolItemGroupGetCollapsed
    toolItemGroupGetCollapsed               ,


-- ** toolItemGroupGetDropItem
    toolItemGroupGetDropItem                ,


-- ** toolItemGroupGetEllipsize
    toolItemGroupGetEllipsize               ,


-- ** toolItemGroupGetHeaderRelief
    toolItemGroupGetHeaderRelief            ,


-- ** toolItemGroupGetItemPosition
    toolItemGroupGetItemPosition            ,


-- ** toolItemGroupGetLabel
    toolItemGroupGetLabel                   ,


-- ** toolItemGroupGetLabelWidget
    toolItemGroupGetLabelWidget             ,


-- ** toolItemGroupGetNItems
    toolItemGroupGetNItems                  ,


-- ** toolItemGroupGetNthItem
    toolItemGroupGetNthItem                 ,


-- ** toolItemGroupInsert
    toolItemGroupInsert                     ,


-- ** toolItemGroupNew
    toolItemGroupNew                        ,


-- ** toolItemGroupSetCollapsed
    toolItemGroupSetCollapsed               ,


-- ** toolItemGroupSetEllipsize
    toolItemGroupSetEllipsize               ,


-- ** toolItemGroupSetHeaderRelief
    toolItemGroupSetHeaderRelief            ,


-- ** toolItemGroupSetItemPosition
    toolItemGroupSetItemPosition            ,


-- ** toolItemGroupSetLabel
    toolItemGroupSetLabel                   ,


-- ** toolItemGroupSetLabelWidget
    toolItemGroupSetLabelWidget             ,




 -- * Properties
-- ** Collapsed
    ToolItemGroupCollapsedPropertyInfo      ,
    constructToolItemGroupCollapsed         ,
    getToolItemGroupCollapsed               ,
    setToolItemGroupCollapsed               ,


-- ** Ellipsize
    ToolItemGroupEllipsizePropertyInfo      ,
    constructToolItemGroupEllipsize         ,
    getToolItemGroupEllipsize               ,
    setToolItemGroupEllipsize               ,


-- ** HeaderRelief
    ToolItemGroupHeaderReliefPropertyInfo   ,
    constructToolItemGroupHeaderRelief      ,
    getToolItemGroupHeaderRelief            ,
    setToolItemGroupHeaderRelief            ,


-- ** Label
    ToolItemGroupLabelPropertyInfo          ,
    constructToolItemGroupLabel             ,
    getToolItemGroupLabel                   ,
    setToolItemGroupLabel                   ,


-- ** LabelWidget
    ToolItemGroupLabelWidgetPropertyInfo    ,
    constructToolItemGroupLabelWidget       ,
    getToolItemGroupLabelWidget             ,
    setToolItemGroupLabelWidget             ,




    ) 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
import qualified GI.Pango as Pango

newtype ToolItemGroup = ToolItemGroup (ForeignPtr ToolItemGroup)
foreign import ccall "gtk_tool_item_group_get_type"
    c_gtk_tool_item_group_get_type :: IO GType

type instance ParentTypes ToolItemGroup = ToolItemGroupParentTypes
type ToolItemGroupParentTypes = '[Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable, ToolShell]

instance GObject ToolItemGroup where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_tool_item_group_get_type
    

class GObject o => ToolItemGroupK o
instance (GObject o, IsDescendantOf ToolItemGroup o) => ToolItemGroupK o

toToolItemGroup :: ToolItemGroupK o => o -> IO ToolItemGroup
toToolItemGroup = unsafeCastTo ToolItemGroup

noToolItemGroup :: Maybe ToolItemGroup
noToolItemGroup = Nothing

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

getToolItemGroupCollapsed :: (MonadIO m, ToolItemGroupK o) => o -> m Bool
getToolItemGroupCollapsed obj = liftIO $ getObjectPropertyBool obj "collapsed"

setToolItemGroupCollapsed :: (MonadIO m, ToolItemGroupK o) => o -> Bool -> m ()
setToolItemGroupCollapsed obj val = liftIO $ setObjectPropertyBool obj "collapsed" val

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

data ToolItemGroupCollapsedPropertyInfo
instance AttrInfo ToolItemGroupCollapsedPropertyInfo where
    type AttrAllowedOps ToolItemGroupCollapsedPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemGroupCollapsedPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ToolItemGroupCollapsedPropertyInfo = ToolItemGroupK
    type AttrGetType ToolItemGroupCollapsedPropertyInfo = Bool
    type AttrLabel ToolItemGroupCollapsedPropertyInfo = "ToolItemGroup::collapsed"
    attrGet _ = getToolItemGroupCollapsed
    attrSet _ = setToolItemGroupCollapsed
    attrConstruct _ = constructToolItemGroupCollapsed

-- VVV Prop "ellipsize"
   -- Type: TInterface "Pango" "EllipsizeMode"
   -- Flags: [PropertyReadable,PropertyWritable]

getToolItemGroupEllipsize :: (MonadIO m, ToolItemGroupK o) => o -> m Pango.EllipsizeMode
getToolItemGroupEllipsize obj = liftIO $ getObjectPropertyEnum obj "ellipsize"

setToolItemGroupEllipsize :: (MonadIO m, ToolItemGroupK o) => o -> Pango.EllipsizeMode -> m ()
setToolItemGroupEllipsize obj val = liftIO $ setObjectPropertyEnum obj "ellipsize" val

constructToolItemGroupEllipsize :: Pango.EllipsizeMode -> IO ([Char], GValue)
constructToolItemGroupEllipsize val = constructObjectPropertyEnum "ellipsize" val

data ToolItemGroupEllipsizePropertyInfo
instance AttrInfo ToolItemGroupEllipsizePropertyInfo where
    type AttrAllowedOps ToolItemGroupEllipsizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemGroupEllipsizePropertyInfo = (~) Pango.EllipsizeMode
    type AttrBaseTypeConstraint ToolItemGroupEllipsizePropertyInfo = ToolItemGroupK
    type AttrGetType ToolItemGroupEllipsizePropertyInfo = Pango.EllipsizeMode
    type AttrLabel ToolItemGroupEllipsizePropertyInfo = "ToolItemGroup::ellipsize"
    attrGet _ = getToolItemGroupEllipsize
    attrSet _ = setToolItemGroupEllipsize
    attrConstruct _ = constructToolItemGroupEllipsize

-- VVV Prop "header-relief"
   -- Type: TInterface "Gtk" "ReliefStyle"
   -- Flags: [PropertyReadable,PropertyWritable]

getToolItemGroupHeaderRelief :: (MonadIO m, ToolItemGroupK o) => o -> m ReliefStyle
getToolItemGroupHeaderRelief obj = liftIO $ getObjectPropertyEnum obj "header-relief"

setToolItemGroupHeaderRelief :: (MonadIO m, ToolItemGroupK o) => o -> ReliefStyle -> m ()
setToolItemGroupHeaderRelief obj val = liftIO $ setObjectPropertyEnum obj "header-relief" val

constructToolItemGroupHeaderRelief :: ReliefStyle -> IO ([Char], GValue)
constructToolItemGroupHeaderRelief val = constructObjectPropertyEnum "header-relief" val

data ToolItemGroupHeaderReliefPropertyInfo
instance AttrInfo ToolItemGroupHeaderReliefPropertyInfo where
    type AttrAllowedOps ToolItemGroupHeaderReliefPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemGroupHeaderReliefPropertyInfo = (~) ReliefStyle
    type AttrBaseTypeConstraint ToolItemGroupHeaderReliefPropertyInfo = ToolItemGroupK
    type AttrGetType ToolItemGroupHeaderReliefPropertyInfo = ReliefStyle
    type AttrLabel ToolItemGroupHeaderReliefPropertyInfo = "ToolItemGroup::header-relief"
    attrGet _ = getToolItemGroupHeaderRelief
    attrSet _ = setToolItemGroupHeaderRelief
    attrConstruct _ = constructToolItemGroupHeaderRelief

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

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

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

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

data ToolItemGroupLabelPropertyInfo
instance AttrInfo ToolItemGroupLabelPropertyInfo where
    type AttrAllowedOps ToolItemGroupLabelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemGroupLabelPropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint ToolItemGroupLabelPropertyInfo = ToolItemGroupK
    type AttrGetType ToolItemGroupLabelPropertyInfo = T.Text
    type AttrLabel ToolItemGroupLabelPropertyInfo = "ToolItemGroup::label"
    attrGet _ = getToolItemGroupLabel
    attrSet _ = setToolItemGroupLabel
    attrConstruct _ = constructToolItemGroupLabel

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

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

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

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

data ToolItemGroupLabelWidgetPropertyInfo
instance AttrInfo ToolItemGroupLabelWidgetPropertyInfo where
    type AttrAllowedOps ToolItemGroupLabelWidgetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemGroupLabelWidgetPropertyInfo = WidgetK
    type AttrBaseTypeConstraint ToolItemGroupLabelWidgetPropertyInfo = ToolItemGroupK
    type AttrGetType ToolItemGroupLabelWidgetPropertyInfo = Widget
    type AttrLabel ToolItemGroupLabelWidgetPropertyInfo = "ToolItemGroup::label-widget"
    attrGet _ = getToolItemGroupLabelWidget
    attrSet _ = setToolItemGroupLabelWidget
    attrConstruct _ = constructToolItemGroupLabelWidget

type instance AttributeList ToolItemGroup = ToolItemGroupAttributeList
type ToolItemGroupAttributeList = ('[ '("app-paintable", WidgetAppPaintablePropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("collapsed", ToolItemGroupCollapsedPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("ellipsize", ToolItemGroupEllipsizePropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("header-relief", ToolItemGroupHeaderReliefPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("label", ToolItemGroupLabelPropertyInfo), '("label-widget", ToolItemGroupLabelWidgetPropertyInfo), '("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), '("scale-factor", WidgetScaleFactorPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

type instance SignalList ToolItemGroup = ToolItemGroupSignalList
type ToolItemGroupSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("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 ToolItemGroup::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" "ToolItemGroup"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_item_group_new" gtk_tool_item_group_new :: 
    CString ->                              -- label : TBasicType TUTF8
    IO (Ptr ToolItemGroup)


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

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

foreign import ccall "gtk_tool_item_group_get_collapsed" gtk_tool_item_group_get_collapsed :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    IO CInt


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

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

foreign import ccall "gtk_tool_item_group_get_drop_item" gtk_tool_item_group_get_drop_item :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    Int32 ->                                -- x : TBasicType TInt32
    Int32 ->                                -- y : TBasicType TInt32
    IO (Ptr ToolItem)


toolItemGroupGetDropItem ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- x
    Int32 ->                                -- y
    m ToolItem
toolItemGroupGetDropItem _obj x y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_group_get_drop_item _obj' x y
    checkUnexpectedReturnNULL "gtk_tool_item_group_get_drop_item" result
    result' <- (newObject ToolItem) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tool_item_group_get_ellipsize" gtk_tool_item_group_get_ellipsize :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    IO CUInt


toolItemGroupGetEllipsize ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    m Pango.EllipsizeMode
toolItemGroupGetEllipsize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_group_get_ellipsize _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tool_item_group_get_header_relief" gtk_tool_item_group_get_header_relief :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    IO CUInt


toolItemGroupGetHeaderRelief ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    m ReliefStyle
toolItemGroupGetHeaderRelief _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_group_get_header_relief _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tool_item_group_get_item_position" gtk_tool_item_group_get_item_position :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    Ptr ToolItem ->                         -- item : TInterface "Gtk" "ToolItem"
    IO Int32


toolItemGroupGetItemPosition ::
    (MonadIO m, ToolItemGroupK a, ToolItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- item
    m Int32
toolItemGroupGetItemPosition _obj item = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let item' = unsafeManagedPtrCastPtr item
    result <- gtk_tool_item_group_get_item_position _obj' item'
    touchManagedPtr _obj
    touchManagedPtr item
    return result

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

foreign import ccall "gtk_tool_item_group_get_label" gtk_tool_item_group_get_label :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    IO CString


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

-- method ToolItemGroup::get_label_widget
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", 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_tool_item_group_get_label_widget" gtk_tool_item_group_get_label_widget :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    IO (Ptr Widget)


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

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

foreign import ccall "gtk_tool_item_group_get_n_items" gtk_tool_item_group_get_n_items :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    IO Word32


toolItemGroupGetNItems ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    m Word32
toolItemGroupGetNItems _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_group_get_n_items _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_tool_item_group_get_nth_item" gtk_tool_item_group_get_nth_item :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    Word32 ->                               -- index : TBasicType TUInt32
    IO (Ptr ToolItem)


toolItemGroupGetNthItem ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    Word32 ->                               -- index
    m ToolItem
toolItemGroupGetNthItem _obj index = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_group_get_nth_item _obj' index
    checkUnexpectedReturnNULL "gtk_tool_item_group_get_nth_item" result
    result' <- (newObject ToolItem) result
    touchManagedPtr _obj
    return result'

-- method ToolItemGroup::insert
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", 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_tool_item_group_insert" gtk_tool_item_group_insert :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    Ptr ToolItem ->                         -- item : TInterface "Gtk" "ToolItem"
    Int32 ->                                -- position : TBasicType TInt32
    IO ()


toolItemGroupInsert ::
    (MonadIO m, ToolItemGroupK a, ToolItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- item
    Int32 ->                                -- position
    m ()
toolItemGroupInsert _obj item position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let item' = unsafeManagedPtrCastPtr item
    gtk_tool_item_group_insert _obj' item' position
    touchManagedPtr _obj
    touchManagedPtr item
    return ()

-- method ToolItemGroup::set_collapsed
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "collapsed", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "collapsed", 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_tool_item_group_set_collapsed" gtk_tool_item_group_set_collapsed :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    CInt ->                                 -- collapsed : TBasicType TBoolean
    IO ()


toolItemGroupSetCollapsed ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- collapsed
    m ()
toolItemGroupSetCollapsed _obj collapsed = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let collapsed' = (fromIntegral . fromEnum) collapsed
    gtk_tool_item_group_set_collapsed _obj' collapsed'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_tool_item_group_set_ellipsize" gtk_tool_item_group_set_ellipsize :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    CUInt ->                                -- ellipsize : TInterface "Pango" "EllipsizeMode"
    IO ()


toolItemGroupSetEllipsize ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    Pango.EllipsizeMode ->                  -- ellipsize
    m ()
toolItemGroupSetEllipsize _obj ellipsize = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let ellipsize' = (fromIntegral . fromEnum) ellipsize
    gtk_tool_item_group_set_ellipsize _obj' ellipsize'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_tool_item_group_set_header_relief" gtk_tool_item_group_set_header_relief :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    CUInt ->                                -- style : TInterface "Gtk" "ReliefStyle"
    IO ()


toolItemGroupSetHeaderRelief ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    ReliefStyle ->                          -- style
    m ()
toolItemGroupSetHeaderRelief _obj style = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let style' = (fromIntegral . fromEnum) style
    gtk_tool_item_group_set_header_relief _obj' style'
    touchManagedPtr _obj
    return ()

-- method ToolItemGroup::set_item_position
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItemGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "item", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", 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_tool_item_group_set_item_position" gtk_tool_item_group_set_item_position :: 
    Ptr ToolItemGroup ->                    -- _obj : TInterface "Gtk" "ToolItemGroup"
    Ptr ToolItem ->                         -- item : TInterface "Gtk" "ToolItem"
    Int32 ->                                -- position : TBasicType TInt32
    IO ()


toolItemGroupSetItemPosition ::
    (MonadIO m, ToolItemGroupK a, ToolItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- item
    Int32 ->                                -- position
    m ()
toolItemGroupSetItemPosition _obj item position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let item' = unsafeManagedPtrCastPtr item
    gtk_tool_item_group_set_item_position _obj' item' position
    touchManagedPtr _obj
    touchManagedPtr item
    return ()

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

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


toolItemGroupSetLabel ::
    (MonadIO m, ToolItemGroupK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- label
    m ()
toolItemGroupSetLabel _obj label = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    label' <- textToCString label
    gtk_tool_item_group_set_label _obj' label'
    touchManagedPtr _obj
    freeMem label'
    return ()

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

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


toolItemGroupSetLabelWidget ::
    (MonadIO m, ToolItemGroupK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- label_widget
    m ()
toolItemGroupSetLabelWidget _obj label_widget = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let label_widget' = unsafeManagedPtrCastPtr label_widget
    gtk_tool_item_group_set_label_widget _obj' label_widget'
    touchManagedPtr _obj
    touchManagedPtr label_widget
    return ()