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

-- * Exported types
    ToolItem(..)                            ,
    ToolItemK                               ,
    toToolItem                              ,
    noToolItem                              ,


 -- * Methods
-- ** toolItemGetEllipsizeMode
    toolItemGetEllipsizeMode                ,


-- ** toolItemGetExpand
    toolItemGetExpand                       ,


-- ** toolItemGetHomogeneous
    toolItemGetHomogeneous                  ,


-- ** toolItemGetIconSize
    toolItemGetIconSize                     ,


-- ** toolItemGetIsImportant
    toolItemGetIsImportant                  ,


-- ** toolItemGetOrientation
    toolItemGetOrientation                  ,


-- ** toolItemGetProxyMenuItem
    toolItemGetProxyMenuItem                ,


-- ** toolItemGetReliefStyle
    toolItemGetReliefStyle                  ,


-- ** toolItemGetTextAlignment
    toolItemGetTextAlignment                ,


-- ** toolItemGetTextOrientation
    toolItemGetTextOrientation              ,


-- ** toolItemGetTextSizeGroup
    toolItemGetTextSizeGroup                ,


-- ** toolItemGetToolbarStyle
    toolItemGetToolbarStyle                 ,


-- ** toolItemGetUseDragWindow
    toolItemGetUseDragWindow                ,


-- ** toolItemGetVisibleHorizontal
    toolItemGetVisibleHorizontal            ,


-- ** toolItemGetVisibleVertical
    toolItemGetVisibleVertical              ,


-- ** toolItemNew
    toolItemNew                             ,


-- ** toolItemRebuildMenu
    toolItemRebuildMenu                     ,


-- ** toolItemRetrieveProxyMenuItem
    toolItemRetrieveProxyMenuItem           ,


-- ** toolItemSetExpand
    toolItemSetExpand                       ,


-- ** toolItemSetHomogeneous
    toolItemSetHomogeneous                  ,


-- ** toolItemSetIsImportant
    toolItemSetIsImportant                  ,


-- ** toolItemSetProxyMenuItem
    toolItemSetProxyMenuItem                ,


-- ** toolItemSetTooltipMarkup
    toolItemSetTooltipMarkup                ,


-- ** toolItemSetTooltipText
    toolItemSetTooltipText                  ,


-- ** toolItemSetUseDragWindow
    toolItemSetUseDragWindow                ,


-- ** toolItemSetVisibleHorizontal
    toolItemSetVisibleHorizontal            ,


-- ** toolItemSetVisibleVertical
    toolItemSetVisibleVertical              ,


-- ** toolItemToolbarReconfigured
    toolItemToolbarReconfigured             ,




 -- * Properties
-- ** IsImportant
    ToolItemIsImportantPropertyInfo         ,
    constructToolItemIsImportant            ,
    getToolItemIsImportant                  ,
    setToolItemIsImportant                  ,


-- ** VisibleHorizontal
    ToolItemVisibleHorizontalPropertyInfo   ,
    constructToolItemVisibleHorizontal      ,
    getToolItemVisibleHorizontal            ,
    setToolItemVisibleHorizontal            ,


-- ** VisibleVertical
    ToolItemVisibleVerticalPropertyInfo     ,
    constructToolItemVisibleVertical        ,
    getToolItemVisibleVertical              ,
    setToolItemVisibleVertical              ,




 -- * Signals
-- ** CreateMenuProxy
    ToolItemCreateMenuProxyCallback         ,
    ToolItemCreateMenuProxyCallbackC        ,
    ToolItemCreateMenuProxySignalInfo       ,
    afterToolItemCreateMenuProxy            ,
    mkToolItemCreateMenuProxyCallback       ,
    noToolItemCreateMenuProxyCallback       ,
    onToolItemCreateMenuProxy               ,
    toolItemCreateMenuProxyCallbackWrapper  ,
    toolItemCreateMenuProxyClosure          ,


-- ** ToolbarReconfigured
    ToolItemToolbarReconfiguredCallback     ,
    ToolItemToolbarReconfiguredCallbackC    ,
    ToolItemToolbarReconfiguredSignalInfo   ,
    afterToolItemToolbarReconfigured        ,
    mkToolItemToolbarReconfiguredCallback   ,
    noToolItemToolbarReconfiguredCallback   ,
    onToolItemToolbarReconfigured           ,
    toolItemToolbarReconfiguredCallbackWrapper,
    toolItemToolbarReconfiguredClosure      ,




    ) 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 ToolItem = ToolItem (ForeignPtr ToolItem)
foreign import ccall "gtk_tool_item_get_type"
    c_gtk_tool_item_get_type :: IO GType

type instance ParentTypes ToolItem = ToolItemParentTypes
type ToolItemParentTypes = '[Bin, Container, Widget, GObject.Object, Atk.ImplementorIface, Activatable, Buildable]

instance GObject ToolItem where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_tool_item_get_type
    

class GObject o => ToolItemK o
instance (GObject o, IsDescendantOf ToolItem o) => ToolItemK o

toToolItem :: ToolItemK o => o -> IO ToolItem
toToolItem = unsafeCastTo ToolItem

noToolItem :: Maybe ToolItem
noToolItem = Nothing

-- signal ToolItem::create-menu-proxy
type ToolItemCreateMenuProxyCallback =
    IO Bool

noToolItemCreateMenuProxyCallback :: Maybe ToolItemCreateMenuProxyCallback
noToolItemCreateMenuProxyCallback = Nothing

type ToolItemCreateMenuProxyCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkToolItemCreateMenuProxyCallback :: ToolItemCreateMenuProxyCallbackC -> IO (FunPtr ToolItemCreateMenuProxyCallbackC)

toolItemCreateMenuProxyClosure :: ToolItemCreateMenuProxyCallback -> IO Closure
toolItemCreateMenuProxyClosure cb = newCClosure =<< mkToolItemCreateMenuProxyCallback wrapped
    where wrapped = toolItemCreateMenuProxyCallbackWrapper cb

toolItemCreateMenuProxyCallbackWrapper ::
    ToolItemCreateMenuProxyCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
toolItemCreateMenuProxyCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onToolItemCreateMenuProxy :: (GObject a, MonadIO m) => a -> ToolItemCreateMenuProxyCallback -> m SignalHandlerId
onToolItemCreateMenuProxy obj cb = liftIO $ connectToolItemCreateMenuProxy obj cb SignalConnectBefore
afterToolItemCreateMenuProxy :: (GObject a, MonadIO m) => a -> ToolItemCreateMenuProxyCallback -> m SignalHandlerId
afterToolItemCreateMenuProxy obj cb = connectToolItemCreateMenuProxy obj cb SignalConnectAfter

connectToolItemCreateMenuProxy :: (GObject a, MonadIO m) =>
                                  a -> ToolItemCreateMenuProxyCallback -> SignalConnectMode -> m SignalHandlerId
connectToolItemCreateMenuProxy obj cb after = liftIO $ do
    cb' <- mkToolItemCreateMenuProxyCallback (toolItemCreateMenuProxyCallbackWrapper cb)
    connectSignalFunPtr obj "create-menu-proxy" cb' after

-- signal ToolItem::toolbar-reconfigured
type ToolItemToolbarReconfiguredCallback =
    IO ()

noToolItemToolbarReconfiguredCallback :: Maybe ToolItemToolbarReconfiguredCallback
noToolItemToolbarReconfiguredCallback = Nothing

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

foreign import ccall "wrapper"
    mkToolItemToolbarReconfiguredCallback :: ToolItemToolbarReconfiguredCallbackC -> IO (FunPtr ToolItemToolbarReconfiguredCallbackC)

toolItemToolbarReconfiguredClosure :: ToolItemToolbarReconfiguredCallback -> IO Closure
toolItemToolbarReconfiguredClosure cb = newCClosure =<< mkToolItemToolbarReconfiguredCallback wrapped
    where wrapped = toolItemToolbarReconfiguredCallbackWrapper cb

toolItemToolbarReconfiguredCallbackWrapper ::
    ToolItemToolbarReconfiguredCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
toolItemToolbarReconfiguredCallbackWrapper _cb _ _ = do
    _cb 

onToolItemToolbarReconfigured :: (GObject a, MonadIO m) => a -> ToolItemToolbarReconfiguredCallback -> m SignalHandlerId
onToolItemToolbarReconfigured obj cb = liftIO $ connectToolItemToolbarReconfigured obj cb SignalConnectBefore
afterToolItemToolbarReconfigured :: (GObject a, MonadIO m) => a -> ToolItemToolbarReconfiguredCallback -> m SignalHandlerId
afterToolItemToolbarReconfigured obj cb = connectToolItemToolbarReconfigured obj cb SignalConnectAfter

connectToolItemToolbarReconfigured :: (GObject a, MonadIO m) =>
                                      a -> ToolItemToolbarReconfiguredCallback -> SignalConnectMode -> m SignalHandlerId
connectToolItemToolbarReconfigured obj cb after = liftIO $ do
    cb' <- mkToolItemToolbarReconfiguredCallback (toolItemToolbarReconfiguredCallbackWrapper cb)
    connectSignalFunPtr obj "toolbar-reconfigured" cb' after

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

getToolItemIsImportant :: (MonadIO m, ToolItemK o) => o -> m Bool
getToolItemIsImportant obj = liftIO $ getObjectPropertyBool obj "is-important"

setToolItemIsImportant :: (MonadIO m, ToolItemK o) => o -> Bool -> m ()
setToolItemIsImportant obj val = liftIO $ setObjectPropertyBool obj "is-important" val

constructToolItemIsImportant :: Bool -> IO ([Char], GValue)
constructToolItemIsImportant val = constructObjectPropertyBool "is-important" val

data ToolItemIsImportantPropertyInfo
instance AttrInfo ToolItemIsImportantPropertyInfo where
    type AttrAllowedOps ToolItemIsImportantPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemIsImportantPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ToolItemIsImportantPropertyInfo = ToolItemK
    type AttrGetType ToolItemIsImportantPropertyInfo = Bool
    type AttrLabel ToolItemIsImportantPropertyInfo = "ToolItem::is-important"
    attrGet _ = getToolItemIsImportant
    attrSet _ = setToolItemIsImportant
    attrConstruct _ = constructToolItemIsImportant

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

getToolItemVisibleHorizontal :: (MonadIO m, ToolItemK o) => o -> m Bool
getToolItemVisibleHorizontal obj = liftIO $ getObjectPropertyBool obj "visible-horizontal"

setToolItemVisibleHorizontal :: (MonadIO m, ToolItemK o) => o -> Bool -> m ()
setToolItemVisibleHorizontal obj val = liftIO $ setObjectPropertyBool obj "visible-horizontal" val

constructToolItemVisibleHorizontal :: Bool -> IO ([Char], GValue)
constructToolItemVisibleHorizontal val = constructObjectPropertyBool "visible-horizontal" val

data ToolItemVisibleHorizontalPropertyInfo
instance AttrInfo ToolItemVisibleHorizontalPropertyInfo where
    type AttrAllowedOps ToolItemVisibleHorizontalPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemVisibleHorizontalPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ToolItemVisibleHorizontalPropertyInfo = ToolItemK
    type AttrGetType ToolItemVisibleHorizontalPropertyInfo = Bool
    type AttrLabel ToolItemVisibleHorizontalPropertyInfo = "ToolItem::visible-horizontal"
    attrGet _ = getToolItemVisibleHorizontal
    attrSet _ = setToolItemVisibleHorizontal
    attrConstruct _ = constructToolItemVisibleHorizontal

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

getToolItemVisibleVertical :: (MonadIO m, ToolItemK o) => o -> m Bool
getToolItemVisibleVertical obj = liftIO $ getObjectPropertyBool obj "visible-vertical"

setToolItemVisibleVertical :: (MonadIO m, ToolItemK o) => o -> Bool -> m ()
setToolItemVisibleVertical obj val = liftIO $ setObjectPropertyBool obj "visible-vertical" val

constructToolItemVisibleVertical :: Bool -> IO ([Char], GValue)
constructToolItemVisibleVertical val = constructObjectPropertyBool "visible-vertical" val

data ToolItemVisibleVerticalPropertyInfo
instance AttrInfo ToolItemVisibleVerticalPropertyInfo where
    type AttrAllowedOps ToolItemVisibleVerticalPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolItemVisibleVerticalPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ToolItemVisibleVerticalPropertyInfo = ToolItemK
    type AttrGetType ToolItemVisibleVerticalPropertyInfo = Bool
    type AttrLabel ToolItemVisibleVerticalPropertyInfo = "ToolItem::visible-vertical"
    attrGet _ = getToolItemVisibleVertical
    attrSet _ = setToolItemVisibleVertical
    attrConstruct _ = constructToolItemVisibleVertical

type instance AttributeList ToolItem = ToolItemAttributeList
type ToolItemAttributeList = ('[ '("app-paintable", WidgetAppPaintablePropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("is-important", ToolItemIsImportantPropertyInfo), '("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), '("related-action", ActivatableRelatedActionPropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("use-action-appearance", ActivatableUseActionAppearancePropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("visible-horizontal", ToolItemVisibleHorizontalPropertyInfo), '("visible-vertical", ToolItemVisibleVerticalPropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

data ToolItemCreateMenuProxySignalInfo
instance SignalInfo ToolItemCreateMenuProxySignalInfo where
    type HaskellCallbackType ToolItemCreateMenuProxySignalInfo = ToolItemCreateMenuProxyCallback
    connectSignal _ = connectToolItemCreateMenuProxy

data ToolItemToolbarReconfiguredSignalInfo
instance SignalInfo ToolItemToolbarReconfiguredSignalInfo where
    type HaskellCallbackType ToolItemToolbarReconfiguredSignalInfo = ToolItemToolbarReconfiguredCallback
    connectSignal _ = connectToolItemToolbarReconfigured

type instance SignalList ToolItem = ToolItemSignalList
type ToolItemSignalList = ('[ '("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), '("create-menu-proxy", ToolItemCreateMenuProxySignalInfo), '("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), '("toolbar-reconfigured", ToolItemToolbarReconfiguredSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method ToolItem::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gtk" "ToolItem"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tool_item_new" gtk_tool_item_new :: 
    IO (Ptr ToolItem)


toolItemNew ::
    (MonadIO m) =>
    m ToolItem
toolItemNew  = liftIO $ do
    result <- gtk_tool_item_new
    checkUnexpectedReturnNULL "gtk_tool_item_new" result
    result' <- (newObject ToolItem) result
    return result'

-- method ToolItem::get_ellipsize_mode
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_ellipsize_mode" gtk_tool_item_get_ellipsize_mode :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CUInt


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

-- method ToolItem::get_expand
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_expand" gtk_tool_item_get_expand :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CInt


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

-- method ToolItem::get_homogeneous
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_homogeneous" gtk_tool_item_get_homogeneous :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CInt


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

-- method ToolItem::get_icon_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", 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_get_icon_size" gtk_tool_item_get_icon_size :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO Int32


toolItemGetIconSize ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m Int32
toolItemGetIconSize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_get_icon_size _obj'
    touchManagedPtr _obj
    return result

-- method ToolItem::get_is_important
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_is_important" gtk_tool_item_get_is_important :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CInt


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

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

foreign import ccall "gtk_tool_item_get_orientation" gtk_tool_item_get_orientation :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CUInt


toolItemGetOrientation ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m Orientation
toolItemGetOrientation _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_get_orientation _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

-- method ToolItem::get_proxy_menu_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "menu_item_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "menu_item_id", argType = TBasicType TUTF8, 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_get_proxy_menu_item" gtk_tool_item_get_proxy_menu_item :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    CString ->                              -- menu_item_id : TBasicType TUTF8
    IO (Ptr Widget)


toolItemGetProxyMenuItem ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- menu_item_id
    m Widget
toolItemGetProxyMenuItem _obj menu_item_id = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    menu_item_id' <- textToCString menu_item_id
    result <- gtk_tool_item_get_proxy_menu_item _obj' menu_item_id'
    checkUnexpectedReturnNULL "gtk_tool_item_get_proxy_menu_item" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    freeMem menu_item_id'
    return result'

-- method ToolItem::get_relief_style
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_relief_style" gtk_tool_item_get_relief_style :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CUInt


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

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

foreign import ccall "gtk_tool_item_get_text_alignment" gtk_tool_item_get_text_alignment :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CFloat


toolItemGetTextAlignment ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m Float
toolItemGetTextAlignment _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_get_text_alignment _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tool_item_get_text_orientation" gtk_tool_item_get_text_orientation :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CUInt


toolItemGetTextOrientation ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m Orientation
toolItemGetTextOrientation _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_get_text_orientation _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tool_item_get_text_size_group" gtk_tool_item_get_text_size_group :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO (Ptr SizeGroup)


toolItemGetTextSizeGroup ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m SizeGroup
toolItemGetTextSizeGroup _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_get_text_size_group _obj'
    checkUnexpectedReturnNULL "gtk_tool_item_get_text_size_group" result
    result' <- (newObject SizeGroup) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tool_item_get_toolbar_style" gtk_tool_item_get_toolbar_style :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CUInt


toolItemGetToolbarStyle ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m ToolbarStyle
toolItemGetToolbarStyle _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tool_item_get_toolbar_style _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

-- method ToolItem::get_use_drag_window
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_use_drag_window" gtk_tool_item_get_use_drag_window :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CInt


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

-- method ToolItem::get_visible_horizontal
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_visible_horizontal" gtk_tool_item_get_visible_horizontal :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CInt


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

-- method ToolItem::get_visible_vertical
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", 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_get_visible_vertical" gtk_tool_item_get_visible_vertical :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    IO CInt


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

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


toolItemRebuildMenu ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m ()
toolItemRebuildMenu _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tool_item_rebuild_menu _obj'
    touchManagedPtr _obj
    return ()

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


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

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


toolItemSetExpand ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- expand
    m ()
toolItemSetExpand _obj expand = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let expand' = (fromIntegral . fromEnum) expand
    gtk_tool_item_set_expand _obj' expand'
    touchManagedPtr _obj
    return ()

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


toolItemSetHomogeneous ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- homogeneous
    m ()
toolItemSetHomogeneous _obj homogeneous = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let homogeneous' = (fromIntegral . fromEnum) homogeneous
    gtk_tool_item_set_homogeneous _obj' homogeneous'
    touchManagedPtr _obj
    return ()

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


toolItemSetIsImportant ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- is_important
    m ()
toolItemSetIsImportant _obj is_important = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let is_important' = (fromIntegral . fromEnum) is_important
    gtk_tool_item_set_is_important _obj' is_important'
    touchManagedPtr _obj
    return ()

-- method ToolItem::set_proxy_menu_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "menu_item_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "menu_item", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "menu_item_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "menu_item", 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_set_proxy_menu_item" gtk_tool_item_set_proxy_menu_item :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    CString ->                              -- menu_item_id : TBasicType TUTF8
    Ptr Widget ->                           -- menu_item : TInterface "Gtk" "Widget"
    IO ()


toolItemSetProxyMenuItem ::
    (MonadIO m, ToolItemK a, WidgetK b) =>
    a ->                                    -- _obj
    T.Text ->                               -- menu_item_id
    b ->                                    -- menu_item
    m ()
toolItemSetProxyMenuItem _obj menu_item_id menu_item = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    menu_item_id' <- textToCString menu_item_id
    let menu_item' = unsafeManagedPtrCastPtr menu_item
    gtk_tool_item_set_proxy_menu_item _obj' menu_item_id' menu_item'
    touchManagedPtr _obj
    touchManagedPtr menu_item
    freeMem menu_item_id'
    return ()

-- method ToolItem::set_tooltip_markup
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "markup", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "markup", 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_set_tooltip_markup" gtk_tool_item_set_tooltip_markup :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    CString ->                              -- markup : TBasicType TUTF8
    IO ()


toolItemSetTooltipMarkup ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- markup
    m ()
toolItemSetTooltipMarkup _obj markup = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    markup' <- textToCString markup
    gtk_tool_item_set_tooltip_markup _obj' markup'
    touchManagedPtr _obj
    freeMem markup'
    return ()

-- method ToolItem::set_tooltip_text
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", 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_set_tooltip_text" gtk_tool_item_set_tooltip_text :: 
    Ptr ToolItem ->                         -- _obj : TInterface "Gtk" "ToolItem"
    CString ->                              -- text : TBasicType TUTF8
    IO ()


toolItemSetTooltipText ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- text
    m ()
toolItemSetTooltipText _obj text = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    text' <- textToCString text
    gtk_tool_item_set_tooltip_text _obj' text'
    touchManagedPtr _obj
    freeMem text'
    return ()

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


toolItemSetUseDragWindow ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- use_drag_window
    m ()
toolItemSetUseDragWindow _obj use_drag_window = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let use_drag_window' = (fromIntegral . fromEnum) use_drag_window
    gtk_tool_item_set_use_drag_window _obj' use_drag_window'
    touchManagedPtr _obj
    return ()

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


toolItemSetVisibleHorizontal ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- visible_horizontal
    m ()
toolItemSetVisibleHorizontal _obj visible_horizontal = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let visible_horizontal' = (fromIntegral . fromEnum) visible_horizontal
    gtk_tool_item_set_visible_horizontal _obj' visible_horizontal'
    touchManagedPtr _obj
    return ()

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


toolItemSetVisibleVertical ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- visible_vertical
    m ()
toolItemSetVisibleVertical _obj visible_vertical = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let visible_vertical' = (fromIntegral . fromEnum) visible_vertical
    gtk_tool_item_set_visible_vertical _obj' visible_vertical'
    touchManagedPtr _obj
    return ()

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


toolItemToolbarReconfigured ::
    (MonadIO m, ToolItemK a) =>
    a ->                                    -- _obj
    m ()
toolItemToolbarReconfigured _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tool_item_toolbar_reconfigured _obj'
    touchManagedPtr _obj
    return ()