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

-- * Exported types
    Toolbar(..)                             ,
    ToolbarK                                ,
    toToolbar                               ,
    noToolbar                               ,


 -- * Methods
-- ** toolbarGetDropIndex
    toolbarGetDropIndex                     ,


-- ** toolbarGetIconSize
    toolbarGetIconSize                      ,


-- ** toolbarGetItemIndex
    toolbarGetItemIndex                     ,


-- ** toolbarGetNItems
    toolbarGetNItems                        ,


-- ** toolbarGetNthItem
    toolbarGetNthItem                       ,


-- ** toolbarGetReliefStyle
    toolbarGetReliefStyle                   ,


-- ** toolbarGetShowArrow
    toolbarGetShowArrow                     ,


-- ** toolbarGetStyle
    toolbarGetStyle                         ,


-- ** toolbarInsert
    toolbarInsert                           ,


-- ** toolbarNew
    toolbarNew                              ,


-- ** toolbarSetDropHighlightItem
    toolbarSetDropHighlightItem             ,


-- ** toolbarSetIconSize
    toolbarSetIconSize                      ,


-- ** toolbarSetShowArrow
    toolbarSetShowArrow                     ,


-- ** toolbarSetStyle
    toolbarSetStyle                         ,


-- ** toolbarUnsetIconSize
    toolbarUnsetIconSize                    ,


-- ** toolbarUnsetStyle
    toolbarUnsetStyle                       ,




 -- * Properties
-- ** IconSize
    ToolbarIconSizePropertyInfo             ,
    constructToolbarIconSize                ,
    getToolbarIconSize                      ,
    setToolbarIconSize                      ,


-- ** IconSizeSet
    ToolbarIconSizeSetPropertyInfo          ,
    constructToolbarIconSizeSet             ,
    getToolbarIconSizeSet                   ,
    setToolbarIconSizeSet                   ,


-- ** ShowArrow
    ToolbarShowArrowPropertyInfo            ,
    constructToolbarShowArrow               ,
    getToolbarShowArrow                     ,
    setToolbarShowArrow                     ,


-- ** ToolbarStyle
    ToolbarToolbarStylePropertyInfo         ,
    constructToolbarToolbarStyle            ,
    getToolbarToolbarStyle                  ,
    setToolbarToolbarStyle                  ,




 -- * Signals
-- ** FocusHomeOrEnd
    ToolbarFocusHomeOrEndCallback           ,
    ToolbarFocusHomeOrEndCallbackC          ,
    ToolbarFocusHomeOrEndSignalInfo         ,
    afterToolbarFocusHomeOrEnd              ,
    mkToolbarFocusHomeOrEndCallback         ,
    noToolbarFocusHomeOrEndCallback         ,
    onToolbarFocusHomeOrEnd                 ,
    toolbarFocusHomeOrEndCallbackWrapper    ,
    toolbarFocusHomeOrEndClosure            ,


-- ** OrientationChanged
    ToolbarOrientationChangedCallback       ,
    ToolbarOrientationChangedCallbackC      ,
    ToolbarOrientationChangedSignalInfo     ,
    afterToolbarOrientationChanged          ,
    mkToolbarOrientationChangedCallback     ,
    noToolbarOrientationChangedCallback     ,
    onToolbarOrientationChanged             ,
    toolbarOrientationChangedCallbackWrapper,
    toolbarOrientationChangedClosure        ,


-- ** PopupContextMenu
    ToolbarPopupContextMenuCallback         ,
    ToolbarPopupContextMenuCallbackC        ,
    ToolbarPopupContextMenuSignalInfo       ,
    afterToolbarPopupContextMenu            ,
    mkToolbarPopupContextMenuCallback       ,
    noToolbarPopupContextMenuCallback       ,
    onToolbarPopupContextMenu               ,
    toolbarPopupContextMenuCallbackWrapper  ,
    toolbarPopupContextMenuClosure          ,


-- ** StyleChanged
    ToolbarStyleChangedCallback             ,
    ToolbarStyleChangedCallbackC            ,
    ToolbarStyleChangedSignalInfo           ,
    afterToolbarStyleChanged                ,
    mkToolbarStyleChangedCallback           ,
    noToolbarStyleChangedCallback           ,
    onToolbarStyleChanged                   ,
    toolbarStyleChangedCallbackWrapper      ,
    toolbarStyleChangedClosure              ,




    ) where

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

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

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

newtype Toolbar = Toolbar (ForeignPtr Toolbar)
foreign import ccall "gtk_toolbar_get_type"
    c_gtk_toolbar_get_type :: IO GType

type instance ParentTypes Toolbar = ToolbarParentTypes
type ToolbarParentTypes = '[Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable, Orientable, ToolShell]

instance GObject Toolbar where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_toolbar_get_type
    

class GObject o => ToolbarK o
instance (GObject o, IsDescendantOf Toolbar o) => ToolbarK o

toToolbar :: ToolbarK o => o -> IO Toolbar
toToolbar = unsafeCastTo Toolbar

noToolbar :: Maybe Toolbar
noToolbar = Nothing

-- signal Toolbar::focus-home-or-end
type ToolbarFocusHomeOrEndCallback =
    Bool ->
    IO Bool

noToolbarFocusHomeOrEndCallback :: Maybe ToolbarFocusHomeOrEndCallback
noToolbarFocusHomeOrEndCallback = Nothing

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

foreign import ccall "wrapper"
    mkToolbarFocusHomeOrEndCallback :: ToolbarFocusHomeOrEndCallbackC -> IO (FunPtr ToolbarFocusHomeOrEndCallbackC)

toolbarFocusHomeOrEndClosure :: ToolbarFocusHomeOrEndCallback -> IO Closure
toolbarFocusHomeOrEndClosure cb = newCClosure =<< mkToolbarFocusHomeOrEndCallback wrapped
    where wrapped = toolbarFocusHomeOrEndCallbackWrapper cb

toolbarFocusHomeOrEndCallbackWrapper ::
    ToolbarFocusHomeOrEndCallback ->
    Ptr () ->
    CInt ->
    Ptr () ->
    IO CInt
toolbarFocusHomeOrEndCallbackWrapper _cb _ focus_home _ = do
    let focus_home' = (/= 0) focus_home
    result <- _cb  focus_home'
    let result' = (fromIntegral . fromEnum) result
    return result'

onToolbarFocusHomeOrEnd :: (GObject a, MonadIO m) => a -> ToolbarFocusHomeOrEndCallback -> m SignalHandlerId
onToolbarFocusHomeOrEnd obj cb = liftIO $ connectToolbarFocusHomeOrEnd obj cb SignalConnectBefore
afterToolbarFocusHomeOrEnd :: (GObject a, MonadIO m) => a -> ToolbarFocusHomeOrEndCallback -> m SignalHandlerId
afterToolbarFocusHomeOrEnd obj cb = connectToolbarFocusHomeOrEnd obj cb SignalConnectAfter

connectToolbarFocusHomeOrEnd :: (GObject a, MonadIO m) =>
                                a -> ToolbarFocusHomeOrEndCallback -> SignalConnectMode -> m SignalHandlerId
connectToolbarFocusHomeOrEnd obj cb after = liftIO $ do
    cb' <- mkToolbarFocusHomeOrEndCallback (toolbarFocusHomeOrEndCallbackWrapper cb)
    connectSignalFunPtr obj "focus-home-or-end" cb' after

-- signal Toolbar::orientation-changed
type ToolbarOrientationChangedCallback =
    Orientation ->
    IO ()

noToolbarOrientationChangedCallback :: Maybe ToolbarOrientationChangedCallback
noToolbarOrientationChangedCallback = Nothing

type ToolbarOrientationChangedCallbackC =
    Ptr () ->                               -- object
    CUInt ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkToolbarOrientationChangedCallback :: ToolbarOrientationChangedCallbackC -> IO (FunPtr ToolbarOrientationChangedCallbackC)

toolbarOrientationChangedClosure :: ToolbarOrientationChangedCallback -> IO Closure
toolbarOrientationChangedClosure cb = newCClosure =<< mkToolbarOrientationChangedCallback wrapped
    where wrapped = toolbarOrientationChangedCallbackWrapper cb

toolbarOrientationChangedCallbackWrapper ::
    ToolbarOrientationChangedCallback ->
    Ptr () ->
    CUInt ->
    Ptr () ->
    IO ()
toolbarOrientationChangedCallbackWrapper _cb _ orientation _ = do
    let orientation' = (toEnum . fromIntegral) orientation
    _cb  orientation'

onToolbarOrientationChanged :: (GObject a, MonadIO m) => a -> ToolbarOrientationChangedCallback -> m SignalHandlerId
onToolbarOrientationChanged obj cb = liftIO $ connectToolbarOrientationChanged obj cb SignalConnectBefore
afterToolbarOrientationChanged :: (GObject a, MonadIO m) => a -> ToolbarOrientationChangedCallback -> m SignalHandlerId
afterToolbarOrientationChanged obj cb = connectToolbarOrientationChanged obj cb SignalConnectAfter

connectToolbarOrientationChanged :: (GObject a, MonadIO m) =>
                                    a -> ToolbarOrientationChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectToolbarOrientationChanged obj cb after = liftIO $ do
    cb' <- mkToolbarOrientationChangedCallback (toolbarOrientationChangedCallbackWrapper cb)
    connectSignalFunPtr obj "orientation-changed" cb' after

-- signal Toolbar::popup-context-menu
type ToolbarPopupContextMenuCallback =
    Int32 ->
    Int32 ->
    Int32 ->
    IO Bool

noToolbarPopupContextMenuCallback :: Maybe ToolbarPopupContextMenuCallback
noToolbarPopupContextMenuCallback = Nothing

type ToolbarPopupContextMenuCallbackC =
    Ptr () ->                               -- object
    Int32 ->
    Int32 ->
    Int32 ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkToolbarPopupContextMenuCallback :: ToolbarPopupContextMenuCallbackC -> IO (FunPtr ToolbarPopupContextMenuCallbackC)

toolbarPopupContextMenuClosure :: ToolbarPopupContextMenuCallback -> IO Closure
toolbarPopupContextMenuClosure cb = newCClosure =<< mkToolbarPopupContextMenuCallback wrapped
    where wrapped = toolbarPopupContextMenuCallbackWrapper cb

toolbarPopupContextMenuCallbackWrapper ::
    ToolbarPopupContextMenuCallback ->
    Ptr () ->
    Int32 ->
    Int32 ->
    Int32 ->
    Ptr () ->
    IO CInt
toolbarPopupContextMenuCallbackWrapper _cb _ x y button _ = do
    result <- _cb  x y button
    let result' = (fromIntegral . fromEnum) result
    return result'

onToolbarPopupContextMenu :: (GObject a, MonadIO m) => a -> ToolbarPopupContextMenuCallback -> m SignalHandlerId
onToolbarPopupContextMenu obj cb = liftIO $ connectToolbarPopupContextMenu obj cb SignalConnectBefore
afterToolbarPopupContextMenu :: (GObject a, MonadIO m) => a -> ToolbarPopupContextMenuCallback -> m SignalHandlerId
afterToolbarPopupContextMenu obj cb = connectToolbarPopupContextMenu obj cb SignalConnectAfter

connectToolbarPopupContextMenu :: (GObject a, MonadIO m) =>
                                  a -> ToolbarPopupContextMenuCallback -> SignalConnectMode -> m SignalHandlerId
connectToolbarPopupContextMenu obj cb after = liftIO $ do
    cb' <- mkToolbarPopupContextMenuCallback (toolbarPopupContextMenuCallbackWrapper cb)
    connectSignalFunPtr obj "popup-context-menu" cb' after

-- signal Toolbar::style-changed
type ToolbarStyleChangedCallback =
    ToolbarStyle ->
    IO ()

noToolbarStyleChangedCallback :: Maybe ToolbarStyleChangedCallback
noToolbarStyleChangedCallback = Nothing

type ToolbarStyleChangedCallbackC =
    Ptr () ->                               -- object
    CUInt ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkToolbarStyleChangedCallback :: ToolbarStyleChangedCallbackC -> IO (FunPtr ToolbarStyleChangedCallbackC)

toolbarStyleChangedClosure :: ToolbarStyleChangedCallback -> IO Closure
toolbarStyleChangedClosure cb = newCClosure =<< mkToolbarStyleChangedCallback wrapped
    where wrapped = toolbarStyleChangedCallbackWrapper cb

toolbarStyleChangedCallbackWrapper ::
    ToolbarStyleChangedCallback ->
    Ptr () ->
    CUInt ->
    Ptr () ->
    IO ()
toolbarStyleChangedCallbackWrapper _cb _ style _ = do
    let style' = (toEnum . fromIntegral) style
    _cb  style'

onToolbarStyleChanged :: (GObject a, MonadIO m) => a -> ToolbarStyleChangedCallback -> m SignalHandlerId
onToolbarStyleChanged obj cb = liftIO $ connectToolbarStyleChanged obj cb SignalConnectBefore
afterToolbarStyleChanged :: (GObject a, MonadIO m) => a -> ToolbarStyleChangedCallback -> m SignalHandlerId
afterToolbarStyleChanged obj cb = connectToolbarStyleChanged obj cb SignalConnectAfter

connectToolbarStyleChanged :: (GObject a, MonadIO m) =>
                              a -> ToolbarStyleChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectToolbarStyleChanged obj cb after = liftIO $ do
    cb' <- mkToolbarStyleChangedCallback (toolbarStyleChangedCallbackWrapper cb)
    connectSignalFunPtr obj "style-changed" cb' after

-- VVV Prop "icon-size"
   -- Type: TInterface "Gtk" "IconSize"
   -- Flags: [PropertyReadable,PropertyWritable]

getToolbarIconSize :: (MonadIO m, ToolbarK o) => o -> m IconSize
getToolbarIconSize obj = liftIO $ getObjectPropertyEnum obj "icon-size"

setToolbarIconSize :: (MonadIO m, ToolbarK o) => o -> IconSize -> m ()
setToolbarIconSize obj val = liftIO $ setObjectPropertyEnum obj "icon-size" val

constructToolbarIconSize :: IconSize -> IO ([Char], GValue)
constructToolbarIconSize val = constructObjectPropertyEnum "icon-size" val

data ToolbarIconSizePropertyInfo
instance AttrInfo ToolbarIconSizePropertyInfo where
    type AttrAllowedOps ToolbarIconSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolbarIconSizePropertyInfo = (~) IconSize
    type AttrBaseTypeConstraint ToolbarIconSizePropertyInfo = ToolbarK
    type AttrGetType ToolbarIconSizePropertyInfo = IconSize
    type AttrLabel ToolbarIconSizePropertyInfo = "Toolbar::icon-size"
    attrGet _ = getToolbarIconSize
    attrSet _ = setToolbarIconSize
    attrConstruct _ = constructToolbarIconSize

-- VVV Prop "icon-size-set"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getToolbarIconSizeSet :: (MonadIO m, ToolbarK o) => o -> m Bool
getToolbarIconSizeSet obj = liftIO $ getObjectPropertyBool obj "icon-size-set"

setToolbarIconSizeSet :: (MonadIO m, ToolbarK o) => o -> Bool -> m ()
setToolbarIconSizeSet obj val = liftIO $ setObjectPropertyBool obj "icon-size-set" val

constructToolbarIconSizeSet :: Bool -> IO ([Char], GValue)
constructToolbarIconSizeSet val = constructObjectPropertyBool "icon-size-set" val

data ToolbarIconSizeSetPropertyInfo
instance AttrInfo ToolbarIconSizeSetPropertyInfo where
    type AttrAllowedOps ToolbarIconSizeSetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolbarIconSizeSetPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ToolbarIconSizeSetPropertyInfo = ToolbarK
    type AttrGetType ToolbarIconSizeSetPropertyInfo = Bool
    type AttrLabel ToolbarIconSizeSetPropertyInfo = "Toolbar::icon-size-set"
    attrGet _ = getToolbarIconSizeSet
    attrSet _ = setToolbarIconSizeSet
    attrConstruct _ = constructToolbarIconSizeSet

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

getToolbarShowArrow :: (MonadIO m, ToolbarK o) => o -> m Bool
getToolbarShowArrow obj = liftIO $ getObjectPropertyBool obj "show-arrow"

setToolbarShowArrow :: (MonadIO m, ToolbarK o) => o -> Bool -> m ()
setToolbarShowArrow obj val = liftIO $ setObjectPropertyBool obj "show-arrow" val

constructToolbarShowArrow :: Bool -> IO ([Char], GValue)
constructToolbarShowArrow val = constructObjectPropertyBool "show-arrow" val

data ToolbarShowArrowPropertyInfo
instance AttrInfo ToolbarShowArrowPropertyInfo where
    type AttrAllowedOps ToolbarShowArrowPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolbarShowArrowPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint ToolbarShowArrowPropertyInfo = ToolbarK
    type AttrGetType ToolbarShowArrowPropertyInfo = Bool
    type AttrLabel ToolbarShowArrowPropertyInfo = "Toolbar::show-arrow"
    attrGet _ = getToolbarShowArrow
    attrSet _ = setToolbarShowArrow
    attrConstruct _ = constructToolbarShowArrow

-- VVV Prop "toolbar-style"
   -- Type: TInterface "Gtk" "ToolbarStyle"
   -- Flags: [PropertyReadable,PropertyWritable]

getToolbarToolbarStyle :: (MonadIO m, ToolbarK o) => o -> m ToolbarStyle
getToolbarToolbarStyle obj = liftIO $ getObjectPropertyEnum obj "toolbar-style"

setToolbarToolbarStyle :: (MonadIO m, ToolbarK o) => o -> ToolbarStyle -> m ()
setToolbarToolbarStyle obj val = liftIO $ setObjectPropertyEnum obj "toolbar-style" val

constructToolbarToolbarStyle :: ToolbarStyle -> IO ([Char], GValue)
constructToolbarToolbarStyle val = constructObjectPropertyEnum "toolbar-style" val

data ToolbarToolbarStylePropertyInfo
instance AttrInfo ToolbarToolbarStylePropertyInfo where
    type AttrAllowedOps ToolbarToolbarStylePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ToolbarToolbarStylePropertyInfo = (~) ToolbarStyle
    type AttrBaseTypeConstraint ToolbarToolbarStylePropertyInfo = ToolbarK
    type AttrGetType ToolbarToolbarStylePropertyInfo = ToolbarStyle
    type AttrLabel ToolbarToolbarStylePropertyInfo = "Toolbar::toolbar-style"
    attrGet _ = getToolbarToolbarStyle
    attrSet _ = setToolbarToolbarStyle
    attrConstruct _ = constructToolbarToolbarStyle

type instance AttributeList Toolbar = ToolbarAttributeList
type ToolbarAttributeList = ('[ '("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), '("icon-size", ToolbarIconSizePropertyInfo), '("icon-size-set", ToolbarIconSizeSetPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("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), '("orientation", OrientableOrientationPropertyInfo), '("parent", WidgetParentPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("show-arrow", ToolbarShowArrowPropertyInfo), '("style", WidgetStylePropertyInfo), '("toolbar-style", ToolbarToolbarStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

data ToolbarFocusHomeOrEndSignalInfo
instance SignalInfo ToolbarFocusHomeOrEndSignalInfo where
    type HaskellCallbackType ToolbarFocusHomeOrEndSignalInfo = ToolbarFocusHomeOrEndCallback
    connectSignal _ = connectToolbarFocusHomeOrEnd

data ToolbarOrientationChangedSignalInfo
instance SignalInfo ToolbarOrientationChangedSignalInfo where
    type HaskellCallbackType ToolbarOrientationChangedSignalInfo = ToolbarOrientationChangedCallback
    connectSignal _ = connectToolbarOrientationChanged

data ToolbarPopupContextMenuSignalInfo
instance SignalInfo ToolbarPopupContextMenuSignalInfo where
    type HaskellCallbackType ToolbarPopupContextMenuSignalInfo = ToolbarPopupContextMenuCallback
    connectSignal _ = connectToolbarPopupContextMenu

data ToolbarStyleChangedSignalInfo
instance SignalInfo ToolbarStyleChangedSignalInfo where
    type HaskellCallbackType ToolbarStyleChangedSignalInfo = ToolbarStyleChangedCallback
    connectSignal _ = connectToolbarStyleChanged

type instance SignalList Toolbar = ToolbarSignalList
type ToolbarSignalList = ('[ '("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-home-or-end", ToolbarFocusHomeOrEndSignalInfo), '("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), '("orientation-changed", ToolbarOrientationChangedSignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("popup-context-menu", ToolbarPopupContextMenuSignalInfo), '("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-changed", ToolbarStyleChangedSignalInfo), '("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 Toolbar::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gtk" "Toolbar"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_toolbar_new" gtk_toolbar_new :: 
    IO (Ptr Toolbar)


toolbarNew ::
    (MonadIO m) =>
    m Toolbar
toolbarNew  = liftIO $ do
    result <- gtk_toolbar_new
    checkUnexpectedReturnNULL "gtk_toolbar_new" result
    result' <- (newObject Toolbar) result
    return result'

-- method Toolbar::get_drop_index
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Toolbar", 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" "Toolbar", 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 : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_toolbar_get_drop_index" gtk_toolbar_get_drop_index :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    Int32 ->                                -- x : TBasicType TInt32
    Int32 ->                                -- y : TBasicType TInt32
    IO Int32


toolbarGetDropIndex ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- x
    Int32 ->                                -- y
    m Int32
toolbarGetDropIndex _obj x y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_toolbar_get_drop_index _obj' x y
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_toolbar_get_icon_size" gtk_toolbar_get_icon_size :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    IO CUInt


toolbarGetIconSize ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    m IconSize
toolbarGetIconSize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_toolbar_get_icon_size _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

-- method Toolbar::get_item_index
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Toolbar", 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" "Toolbar", 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_toolbar_get_item_index" gtk_toolbar_get_item_index :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    Ptr ToolItem ->                         -- item : TInterface "Gtk" "ToolItem"
    IO Int32


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

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

foreign import ccall "gtk_toolbar_get_n_items" gtk_toolbar_get_n_items :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    IO Int32


toolbarGetNItems ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    m Int32
toolbarGetNItems _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_toolbar_get_n_items _obj'
    touchManagedPtr _obj
    return result

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


toolbarGetNthItem ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- n
    m ToolItem
toolbarGetNthItem _obj n = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_toolbar_get_nth_item _obj' n
    checkUnexpectedReturnNULL "gtk_toolbar_get_nth_item" result
    result' <- (newObject ToolItem) result
    touchManagedPtr _obj
    return result'

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


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

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

foreign import ccall "gtk_toolbar_get_show_arrow" gtk_toolbar_get_show_arrow :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    IO CInt


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

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


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

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


toolbarInsert ::
    (MonadIO m, ToolbarK a, ToolItemK b) =>
    a ->                                    -- _obj
    b ->                                    -- item
    Int32 ->                                -- pos
    m ()
toolbarInsert _obj item pos = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let item' = unsafeManagedPtrCastPtr item
    gtk_toolbar_insert _obj' item' pos
    touchManagedPtr _obj
    touchManagedPtr item
    return ()

-- method Toolbar::set_drop_highlight_item
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Toolbar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tool_item", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Toolbar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tool_item", argType = TInterface "Gtk" "ToolItem", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", 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_toolbar_set_drop_highlight_item" gtk_toolbar_set_drop_highlight_item :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    Ptr ToolItem ->                         -- tool_item : TInterface "Gtk" "ToolItem"
    Int32 ->                                -- index_ : TBasicType TInt32
    IO ()


toolbarSetDropHighlightItem ::
    (MonadIO m, ToolbarK a, ToolItemK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- tool_item
    Int32 ->                                -- index_
    m ()
toolbarSetDropHighlightItem _obj tool_item index_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeTool_item <- case tool_item of
        Nothing -> return nullPtr
        Just jTool_item -> do
            let jTool_item' = unsafeManagedPtrCastPtr jTool_item
            return jTool_item'
    gtk_toolbar_set_drop_highlight_item _obj' maybeTool_item index_
    touchManagedPtr _obj
    whenJust tool_item touchManagedPtr
    return ()

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

foreign import ccall "gtk_toolbar_set_icon_size" gtk_toolbar_set_icon_size :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    CUInt ->                                -- icon_size : TInterface "Gtk" "IconSize"
    IO ()


toolbarSetIconSize ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    IconSize ->                             -- icon_size
    m ()
toolbarSetIconSize _obj icon_size = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let icon_size' = (fromIntegral . fromEnum) icon_size
    gtk_toolbar_set_icon_size _obj' icon_size'
    touchManagedPtr _obj
    return ()

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


toolbarSetShowArrow ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- show_arrow
    m ()
toolbarSetShowArrow _obj show_arrow = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let show_arrow' = (fromIntegral . fromEnum) show_arrow
    gtk_toolbar_set_show_arrow _obj' show_arrow'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_toolbar_set_style" gtk_toolbar_set_style :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    CUInt ->                                -- style : TInterface "Gtk" "ToolbarStyle"
    IO ()


toolbarSetStyle ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    ToolbarStyle ->                         -- style
    m ()
toolbarSetStyle _obj style = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let style' = (fromIntegral . fromEnum) style
    gtk_toolbar_set_style _obj' style'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_toolbar_unset_icon_size" gtk_toolbar_unset_icon_size :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    IO ()


toolbarUnsetIconSize ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    m ()
toolbarUnsetIconSize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_toolbar_unset_icon_size _obj'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_toolbar_unset_style" gtk_toolbar_unset_style :: 
    Ptr Toolbar ->                          -- _obj : TInterface "Gtk" "Toolbar"
    IO ()


toolbarUnsetStyle ::
    (MonadIO m, ToolbarK a) =>
    a ->                                    -- _obj
    m ()
toolbarUnsetStyle _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_toolbar_unset_style _obj'
    touchManagedPtr _obj
    return ()