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

-- * Exported types
    Statusbar(..)                           ,
    StatusbarK                              ,
    toStatusbar                             ,
    noStatusbar                             ,


 -- * Methods
-- ** statusbarGetContextId
    statusbarGetContextId                   ,


-- ** statusbarGetMessageArea
    statusbarGetMessageArea                 ,


-- ** statusbarNew
    statusbarNew                            ,


-- ** statusbarPop
    statusbarPop                            ,


-- ** statusbarPush
    statusbarPush                           ,


-- ** statusbarRemove
    statusbarRemove                         ,


-- ** statusbarRemoveAll
    statusbarRemoveAll                      ,




 -- * Signals
-- ** TextPopped
    StatusbarTextPoppedCallback             ,
    StatusbarTextPoppedCallbackC            ,
    StatusbarTextPoppedSignalInfo           ,
    afterStatusbarTextPopped                ,
    mkStatusbarTextPoppedCallback           ,
    noStatusbarTextPoppedCallback           ,
    onStatusbarTextPopped                   ,
    statusbarTextPoppedCallbackWrapper      ,
    statusbarTextPoppedClosure              ,


-- ** TextPushed
    StatusbarTextPushedCallback             ,
    StatusbarTextPushedCallbackC            ,
    StatusbarTextPushedSignalInfo           ,
    afterStatusbarTextPushed                ,
    mkStatusbarTextPushedCallback           ,
    noStatusbarTextPushedCallback           ,
    onStatusbarTextPushed                   ,
    statusbarTextPushedCallbackWrapper      ,
    statusbarTextPushedClosure              ,




    ) 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 Statusbar = Statusbar (ForeignPtr Statusbar)
foreign import ccall "gtk_statusbar_get_type"
    c_gtk_statusbar_get_type :: IO GType

type instance ParentTypes Statusbar = StatusbarParentTypes
type StatusbarParentTypes = '[Box, Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable, Orientable]

instance GObject Statusbar where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_statusbar_get_type
    

class GObject o => StatusbarK o
instance (GObject o, IsDescendantOf Statusbar o) => StatusbarK o

toStatusbar :: StatusbarK o => o -> IO Statusbar
toStatusbar = unsafeCastTo Statusbar

noStatusbar :: Maybe Statusbar
noStatusbar = Nothing

-- signal Statusbar::text-popped
type StatusbarTextPoppedCallback =
    Word32 ->
    T.Text ->
    IO ()

noStatusbarTextPoppedCallback :: Maybe StatusbarTextPoppedCallback
noStatusbarTextPoppedCallback = Nothing

type StatusbarTextPoppedCallbackC =
    Ptr () ->                               -- object
    Word32 ->
    CString ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkStatusbarTextPoppedCallback :: StatusbarTextPoppedCallbackC -> IO (FunPtr StatusbarTextPoppedCallbackC)

statusbarTextPoppedClosure :: StatusbarTextPoppedCallback -> IO Closure
statusbarTextPoppedClosure cb = newCClosure =<< mkStatusbarTextPoppedCallback wrapped
    where wrapped = statusbarTextPoppedCallbackWrapper cb

statusbarTextPoppedCallbackWrapper ::
    StatusbarTextPoppedCallback ->
    Ptr () ->
    Word32 ->
    CString ->
    Ptr () ->
    IO ()
statusbarTextPoppedCallbackWrapper _cb _ context_id text _ = do
    text' <- cstringToText text
    _cb  context_id text'

onStatusbarTextPopped :: (GObject a, MonadIO m) => a -> StatusbarTextPoppedCallback -> m SignalHandlerId
onStatusbarTextPopped obj cb = liftIO $ connectStatusbarTextPopped obj cb SignalConnectBefore
afterStatusbarTextPopped :: (GObject a, MonadIO m) => a -> StatusbarTextPoppedCallback -> m SignalHandlerId
afterStatusbarTextPopped obj cb = connectStatusbarTextPopped obj cb SignalConnectAfter

connectStatusbarTextPopped :: (GObject a, MonadIO m) =>
                              a -> StatusbarTextPoppedCallback -> SignalConnectMode -> m SignalHandlerId
connectStatusbarTextPopped obj cb after = liftIO $ do
    cb' <- mkStatusbarTextPoppedCallback (statusbarTextPoppedCallbackWrapper cb)
    connectSignalFunPtr obj "text-popped" cb' after

-- signal Statusbar::text-pushed
type StatusbarTextPushedCallback =
    Word32 ->
    T.Text ->
    IO ()

noStatusbarTextPushedCallback :: Maybe StatusbarTextPushedCallback
noStatusbarTextPushedCallback = Nothing

type StatusbarTextPushedCallbackC =
    Ptr () ->                               -- object
    Word32 ->
    CString ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkStatusbarTextPushedCallback :: StatusbarTextPushedCallbackC -> IO (FunPtr StatusbarTextPushedCallbackC)

statusbarTextPushedClosure :: StatusbarTextPushedCallback -> IO Closure
statusbarTextPushedClosure cb = newCClosure =<< mkStatusbarTextPushedCallback wrapped
    where wrapped = statusbarTextPushedCallbackWrapper cb

statusbarTextPushedCallbackWrapper ::
    StatusbarTextPushedCallback ->
    Ptr () ->
    Word32 ->
    CString ->
    Ptr () ->
    IO ()
statusbarTextPushedCallbackWrapper _cb _ context_id text _ = do
    text' <- cstringToText text
    _cb  context_id text'

onStatusbarTextPushed :: (GObject a, MonadIO m) => a -> StatusbarTextPushedCallback -> m SignalHandlerId
onStatusbarTextPushed obj cb = liftIO $ connectStatusbarTextPushed obj cb SignalConnectBefore
afterStatusbarTextPushed :: (GObject a, MonadIO m) => a -> StatusbarTextPushedCallback -> m SignalHandlerId
afterStatusbarTextPushed obj cb = connectStatusbarTextPushed obj cb SignalConnectAfter

connectStatusbarTextPushed :: (GObject a, MonadIO m) =>
                              a -> StatusbarTextPushedCallback -> SignalConnectMode -> m SignalHandlerId
connectStatusbarTextPushed obj cb after = liftIO $ do
    cb' <- mkStatusbarTextPushedCallback (statusbarTextPushedCallbackWrapper cb)
    connectSignalFunPtr obj "text-pushed" cb' after

type instance AttributeList Statusbar = StatusbarAttributeList
type StatusbarAttributeList = ('[ '("app-paintable", WidgetAppPaintablePropertyInfo), '("baseline-position", BoxBaselinePositionPropertyInfo), '("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), '("homogeneous", BoxHomogeneousPropertyInfo), '("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), '("spacing", BoxSpacingPropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

data StatusbarTextPoppedSignalInfo
instance SignalInfo StatusbarTextPoppedSignalInfo where
    type HaskellCallbackType StatusbarTextPoppedSignalInfo = StatusbarTextPoppedCallback
    connectSignal _ = connectStatusbarTextPopped

data StatusbarTextPushedSignalInfo
instance SignalInfo StatusbarTextPushedSignalInfo where
    type HaskellCallbackType StatusbarTextPushedSignalInfo = StatusbarTextPushedCallback
    connectSignal _ = connectStatusbarTextPushed

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

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

foreign import ccall "gtk_statusbar_new" gtk_statusbar_new :: 
    IO (Ptr Statusbar)


statusbarNew ::
    (MonadIO m) =>
    m Statusbar
statusbarNew  = liftIO $ do
    result <- gtk_statusbar_new
    checkUnexpectedReturnNULL "gtk_statusbar_new" result
    result' <- (newObject Statusbar) result
    return result'

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

foreign import ccall "gtk_statusbar_get_context_id" gtk_statusbar_get_context_id :: 
    Ptr Statusbar ->                        -- _obj : TInterface "Gtk" "Statusbar"
    CString ->                              -- context_description : TBasicType TUTF8
    IO Word32


statusbarGetContextId ::
    (MonadIO m, StatusbarK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- context_description
    m Word32
statusbarGetContextId _obj context_description = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    context_description' <- textToCString context_description
    result <- gtk_statusbar_get_context_id _obj' context_description'
    touchManagedPtr _obj
    freeMem context_description'
    return result

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

foreign import ccall "gtk_statusbar_get_message_area" gtk_statusbar_get_message_area :: 
    Ptr Statusbar ->                        -- _obj : TInterface "Gtk" "Statusbar"
    IO (Ptr Box)


statusbarGetMessageArea ::
    (MonadIO m, StatusbarK a) =>
    a ->                                    -- _obj
    m Box
statusbarGetMessageArea _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_statusbar_get_message_area _obj'
    checkUnexpectedReturnNULL "gtk_statusbar_get_message_area" result
    result' <- (newObject Box) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_statusbar_pop" gtk_statusbar_pop :: 
    Ptr Statusbar ->                        -- _obj : TInterface "Gtk" "Statusbar"
    Word32 ->                               -- context_id : TBasicType TUInt32
    IO ()


statusbarPop ::
    (MonadIO m, StatusbarK a) =>
    a ->                                    -- _obj
    Word32 ->                               -- context_id
    m ()
statusbarPop _obj context_id = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_statusbar_pop _obj' context_id
    touchManagedPtr _obj
    return ()

-- method Statusbar::push
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Statusbar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context_id", argType = TBasicType TUInt32, 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" "Statusbar", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context_id", argType = TBasicType TUInt32, 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 TUInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_statusbar_push" gtk_statusbar_push :: 
    Ptr Statusbar ->                        -- _obj : TInterface "Gtk" "Statusbar"
    Word32 ->                               -- context_id : TBasicType TUInt32
    CString ->                              -- text : TBasicType TUTF8
    IO Word32


statusbarPush ::
    (MonadIO m, StatusbarK a) =>
    a ->                                    -- _obj
    Word32 ->                               -- context_id
    T.Text ->                               -- text
    m Word32
statusbarPush _obj context_id text = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    text' <- textToCString text
    result <- gtk_statusbar_push _obj' context_id text'
    touchManagedPtr _obj
    freeMem text'
    return result

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

foreign import ccall "gtk_statusbar_remove" gtk_statusbar_remove :: 
    Ptr Statusbar ->                        -- _obj : TInterface "Gtk" "Statusbar"
    Word32 ->                               -- context_id : TBasicType TUInt32
    Word32 ->                               -- message_id : TBasicType TUInt32
    IO ()


statusbarRemove ::
    (MonadIO m, StatusbarK a) =>
    a ->                                    -- _obj
    Word32 ->                               -- context_id
    Word32 ->                               -- message_id
    m ()
statusbarRemove _obj context_id message_id = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_statusbar_remove _obj' context_id message_id
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_statusbar_remove_all" gtk_statusbar_remove_all :: 
    Ptr Statusbar ->                        -- _obj : TInterface "Gtk" "Statusbar"
    Word32 ->                               -- context_id : TBasicType TUInt32
    IO ()


statusbarRemoveAll ::
    (MonadIO m, StatusbarK a) =>
    a ->                                    -- _obj
    Word32 ->                               -- context_id
    m ()
statusbarRemoveAll _obj context_id = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_statusbar_remove_all _obj' context_id
    touchManagedPtr _obj
    return ()