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

-- * Exported types
    Assistant(..)                           ,
    AssistantK                              ,
    toAssistant                             ,
    noAssistant                             ,


 -- * Methods
-- ** assistantAddActionWidget
    assistantAddActionWidget                ,


-- ** assistantAppendPage
    assistantAppendPage                     ,


-- ** assistantCommit
    assistantCommit                         ,


-- ** assistantGetCurrentPage
    assistantGetCurrentPage                 ,


-- ** assistantGetNPages
    assistantGetNPages                      ,


-- ** assistantGetNthPage
    assistantGetNthPage                     ,


-- ** assistantGetPageComplete
    assistantGetPageComplete                ,


-- ** assistantGetPageHasPadding
    assistantGetPageHasPadding              ,


-- ** assistantGetPageHeaderImage
    assistantGetPageHeaderImage             ,


-- ** assistantGetPageSideImage
    assistantGetPageSideImage               ,


-- ** assistantGetPageTitle
    assistantGetPageTitle                   ,


-- ** assistantGetPageType
    assistantGetPageType                    ,


-- ** assistantInsertPage
    assistantInsertPage                     ,


-- ** assistantNew
    assistantNew                            ,


-- ** assistantNextPage
    assistantNextPage                       ,


-- ** assistantPrependPage
    assistantPrependPage                    ,


-- ** assistantPreviousPage
    assistantPreviousPage                   ,


-- ** assistantRemoveActionWidget
    assistantRemoveActionWidget             ,


-- ** assistantRemovePage
    assistantRemovePage                     ,


-- ** assistantSetCurrentPage
    assistantSetCurrentPage                 ,


-- ** assistantSetForwardPageFunc
    assistantSetForwardPageFunc             ,


-- ** assistantSetPageComplete
    assistantSetPageComplete                ,


-- ** assistantSetPageHasPadding
    assistantSetPageHasPadding              ,


-- ** assistantSetPageHeaderImage
    assistantSetPageHeaderImage             ,


-- ** assistantSetPageSideImage
    assistantSetPageSideImage               ,


-- ** assistantSetPageTitle
    assistantSetPageTitle                   ,


-- ** assistantSetPageType
    assistantSetPageType                    ,


-- ** assistantUpdateButtonsState
    assistantUpdateButtonsState             ,




 -- * Properties
-- ** UseHeaderBar
    AssistantUseHeaderBarPropertyInfo       ,
    constructAssistantUseHeaderBar          ,
    getAssistantUseHeaderBar                ,




 -- * Signals
-- ** Apply
    AssistantApplyCallback                  ,
    AssistantApplyCallbackC                 ,
    AssistantApplySignalInfo                ,
    afterAssistantApply                     ,
    assistantApplyCallbackWrapper           ,
    assistantApplyClosure                   ,
    mkAssistantApplyCallback                ,
    noAssistantApplyCallback                ,
    onAssistantApply                        ,


-- ** Cancel
    AssistantCancelCallback                 ,
    AssistantCancelCallbackC                ,
    AssistantCancelSignalInfo               ,
    afterAssistantCancel                    ,
    assistantCancelCallbackWrapper          ,
    assistantCancelClosure                  ,
    mkAssistantCancelCallback               ,
    noAssistantCancelCallback               ,
    onAssistantCancel                       ,


-- ** Close
    AssistantCloseCallback                  ,
    AssistantCloseCallbackC                 ,
    AssistantCloseSignalInfo                ,
    afterAssistantClose                     ,
    assistantCloseCallbackWrapper           ,
    assistantCloseClosure                   ,
    mkAssistantCloseCallback                ,
    noAssistantCloseCallback                ,
    onAssistantClose                        ,


-- ** Escape
    AssistantEscapeCallback                 ,
    AssistantEscapeCallbackC                ,
    AssistantEscapeSignalInfo               ,
    afterAssistantEscape                    ,
    assistantEscapeCallbackWrapper          ,
    assistantEscapeClosure                  ,
    mkAssistantEscapeCallback               ,
    noAssistantEscapeCallback               ,
    onAssistantEscape                       ,


-- ** Prepare
    AssistantPrepareCallback                ,
    AssistantPrepareCallbackC               ,
    AssistantPrepareSignalInfo              ,
    afterAssistantPrepare                   ,
    assistantPrepareCallbackWrapper         ,
    assistantPrepareClosure                 ,
    mkAssistantPrepareCallback              ,
    noAssistantPrepareCallback              ,
    onAssistantPrepare                      ,




    ) 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.GLib as GLib
import qualified GI.GObject as GObject
import qualified GI.GdkPixbuf as GdkPixbuf

newtype Assistant = Assistant (ForeignPtr Assistant)
foreign import ccall "gtk_assistant_get_type"
    c_gtk_assistant_get_type :: IO GType

type instance ParentTypes Assistant = AssistantParentTypes
type AssistantParentTypes = '[Window, Bin, Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable]

instance GObject Assistant where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_assistant_get_type
    

class GObject o => AssistantK o
instance (GObject o, IsDescendantOf Assistant o) => AssistantK o

toAssistant :: AssistantK o => o -> IO Assistant
toAssistant = unsafeCastTo Assistant

noAssistant :: Maybe Assistant
noAssistant = Nothing

-- signal Assistant::apply
type AssistantApplyCallback =
    IO ()

noAssistantApplyCallback :: Maybe AssistantApplyCallback
noAssistantApplyCallback = Nothing

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

foreign import ccall "wrapper"
    mkAssistantApplyCallback :: AssistantApplyCallbackC -> IO (FunPtr AssistantApplyCallbackC)

assistantApplyClosure :: AssistantApplyCallback -> IO Closure
assistantApplyClosure cb = newCClosure =<< mkAssistantApplyCallback wrapped
    where wrapped = assistantApplyCallbackWrapper cb

assistantApplyCallbackWrapper ::
    AssistantApplyCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
assistantApplyCallbackWrapper _cb _ _ = do
    _cb 

onAssistantApply :: (GObject a, MonadIO m) => a -> AssistantApplyCallback -> m SignalHandlerId
onAssistantApply obj cb = liftIO $ connectAssistantApply obj cb SignalConnectBefore
afterAssistantApply :: (GObject a, MonadIO m) => a -> AssistantApplyCallback -> m SignalHandlerId
afterAssistantApply obj cb = connectAssistantApply obj cb SignalConnectAfter

connectAssistantApply :: (GObject a, MonadIO m) =>
                         a -> AssistantApplyCallback -> SignalConnectMode -> m SignalHandlerId
connectAssistantApply obj cb after = liftIO $ do
    cb' <- mkAssistantApplyCallback (assistantApplyCallbackWrapper cb)
    connectSignalFunPtr obj "apply" cb' after

-- signal Assistant::cancel
type AssistantCancelCallback =
    IO ()

noAssistantCancelCallback :: Maybe AssistantCancelCallback
noAssistantCancelCallback = Nothing

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

foreign import ccall "wrapper"
    mkAssistantCancelCallback :: AssistantCancelCallbackC -> IO (FunPtr AssistantCancelCallbackC)

assistantCancelClosure :: AssistantCancelCallback -> IO Closure
assistantCancelClosure cb = newCClosure =<< mkAssistantCancelCallback wrapped
    where wrapped = assistantCancelCallbackWrapper cb

assistantCancelCallbackWrapper ::
    AssistantCancelCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
assistantCancelCallbackWrapper _cb _ _ = do
    _cb 

onAssistantCancel :: (GObject a, MonadIO m) => a -> AssistantCancelCallback -> m SignalHandlerId
onAssistantCancel obj cb = liftIO $ connectAssistantCancel obj cb SignalConnectBefore
afterAssistantCancel :: (GObject a, MonadIO m) => a -> AssistantCancelCallback -> m SignalHandlerId
afterAssistantCancel obj cb = connectAssistantCancel obj cb SignalConnectAfter

connectAssistantCancel :: (GObject a, MonadIO m) =>
                          a -> AssistantCancelCallback -> SignalConnectMode -> m SignalHandlerId
connectAssistantCancel obj cb after = liftIO $ do
    cb' <- mkAssistantCancelCallback (assistantCancelCallbackWrapper cb)
    connectSignalFunPtr obj "cancel" cb' after

-- signal Assistant::close
type AssistantCloseCallback =
    IO ()

noAssistantCloseCallback :: Maybe AssistantCloseCallback
noAssistantCloseCallback = Nothing

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

foreign import ccall "wrapper"
    mkAssistantCloseCallback :: AssistantCloseCallbackC -> IO (FunPtr AssistantCloseCallbackC)

assistantCloseClosure :: AssistantCloseCallback -> IO Closure
assistantCloseClosure cb = newCClosure =<< mkAssistantCloseCallback wrapped
    where wrapped = assistantCloseCallbackWrapper cb

assistantCloseCallbackWrapper ::
    AssistantCloseCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
assistantCloseCallbackWrapper _cb _ _ = do
    _cb 

onAssistantClose :: (GObject a, MonadIO m) => a -> AssistantCloseCallback -> m SignalHandlerId
onAssistantClose obj cb = liftIO $ connectAssistantClose obj cb SignalConnectBefore
afterAssistantClose :: (GObject a, MonadIO m) => a -> AssistantCloseCallback -> m SignalHandlerId
afterAssistantClose obj cb = connectAssistantClose obj cb SignalConnectAfter

connectAssistantClose :: (GObject a, MonadIO m) =>
                         a -> AssistantCloseCallback -> SignalConnectMode -> m SignalHandlerId
connectAssistantClose obj cb after = liftIO $ do
    cb' <- mkAssistantCloseCallback (assistantCloseCallbackWrapper cb)
    connectSignalFunPtr obj "close" cb' after

-- signal Assistant::escape
type AssistantEscapeCallback =
    IO ()

noAssistantEscapeCallback :: Maybe AssistantEscapeCallback
noAssistantEscapeCallback = Nothing

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

foreign import ccall "wrapper"
    mkAssistantEscapeCallback :: AssistantEscapeCallbackC -> IO (FunPtr AssistantEscapeCallbackC)

assistantEscapeClosure :: AssistantEscapeCallback -> IO Closure
assistantEscapeClosure cb = newCClosure =<< mkAssistantEscapeCallback wrapped
    where wrapped = assistantEscapeCallbackWrapper cb

assistantEscapeCallbackWrapper ::
    AssistantEscapeCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
assistantEscapeCallbackWrapper _cb _ _ = do
    _cb 

onAssistantEscape :: (GObject a, MonadIO m) => a -> AssistantEscapeCallback -> m SignalHandlerId
onAssistantEscape obj cb = liftIO $ connectAssistantEscape obj cb SignalConnectBefore
afterAssistantEscape :: (GObject a, MonadIO m) => a -> AssistantEscapeCallback -> m SignalHandlerId
afterAssistantEscape obj cb = connectAssistantEscape obj cb SignalConnectAfter

connectAssistantEscape :: (GObject a, MonadIO m) =>
                          a -> AssistantEscapeCallback -> SignalConnectMode -> m SignalHandlerId
connectAssistantEscape obj cb after = liftIO $ do
    cb' <- mkAssistantEscapeCallback (assistantEscapeCallbackWrapper cb)
    connectSignalFunPtr obj "escape" cb' after

-- signal Assistant::prepare
type AssistantPrepareCallback =
    Widget ->
    IO ()

noAssistantPrepareCallback :: Maybe AssistantPrepareCallback
noAssistantPrepareCallback = Nothing

type AssistantPrepareCallbackC =
    Ptr () ->                               -- object
    Ptr Widget ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkAssistantPrepareCallback :: AssistantPrepareCallbackC -> IO (FunPtr AssistantPrepareCallbackC)

assistantPrepareClosure :: AssistantPrepareCallback -> IO Closure
assistantPrepareClosure cb = newCClosure =<< mkAssistantPrepareCallback wrapped
    where wrapped = assistantPrepareCallbackWrapper cb

assistantPrepareCallbackWrapper ::
    AssistantPrepareCallback ->
    Ptr () ->
    Ptr Widget ->
    Ptr () ->
    IO ()
assistantPrepareCallbackWrapper _cb _ page _ = do
    page' <- (newObject Widget) page
    _cb  page'

onAssistantPrepare :: (GObject a, MonadIO m) => a -> AssistantPrepareCallback -> m SignalHandlerId
onAssistantPrepare obj cb = liftIO $ connectAssistantPrepare obj cb SignalConnectBefore
afterAssistantPrepare :: (GObject a, MonadIO m) => a -> AssistantPrepareCallback -> m SignalHandlerId
afterAssistantPrepare obj cb = connectAssistantPrepare obj cb SignalConnectAfter

connectAssistantPrepare :: (GObject a, MonadIO m) =>
                           a -> AssistantPrepareCallback -> SignalConnectMode -> m SignalHandlerId
connectAssistantPrepare obj cb after = liftIO $ do
    cb' <- mkAssistantPrepareCallback (assistantPrepareCallbackWrapper cb)
    connectSignalFunPtr obj "prepare" cb' after

-- VVV Prop "use-header-bar"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getAssistantUseHeaderBar :: (MonadIO m, AssistantK o) => o -> m Int32
getAssistantUseHeaderBar obj = liftIO $ getObjectPropertyCInt obj "use-header-bar"

constructAssistantUseHeaderBar :: Int32 -> IO ([Char], GValue)
constructAssistantUseHeaderBar val = constructObjectPropertyCInt "use-header-bar" val

data AssistantUseHeaderBarPropertyInfo
instance AttrInfo AssistantUseHeaderBarPropertyInfo where
    type AttrAllowedOps AssistantUseHeaderBarPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint AssistantUseHeaderBarPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint AssistantUseHeaderBarPropertyInfo = AssistantK
    type AttrGetType AssistantUseHeaderBarPropertyInfo = Int32
    type AttrLabel AssistantUseHeaderBarPropertyInfo = "Assistant::use-header-bar"
    attrGet _ = getAssistantUseHeaderBar
    attrSet _ = undefined
    attrConstruct _ = constructAssistantUseHeaderBar

type instance AttributeList Assistant = AssistantAttributeList
type AssistantAttributeList = ('[ '("accept-focus", WindowAcceptFocusPropertyInfo), '("app-paintable", WidgetAppPaintablePropertyInfo), '("application", WindowApplicationPropertyInfo), '("attached-to", WindowAttachedToPropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("decorated", WindowDecoratedPropertyInfo), '("default-height", WindowDefaultHeightPropertyInfo), '("default-width", WindowDefaultWidthPropertyInfo), '("deletable", WindowDeletablePropertyInfo), '("destroy-with-parent", WindowDestroyWithParentPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("focus-on-map", WindowFocusOnMapPropertyInfo), '("focus-visible", WindowFocusVisiblePropertyInfo), '("gravity", WindowGravityPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-resize-grip", WindowHasResizeGripPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("has-toplevel-focus", WindowHasToplevelFocusPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("hide-titlebar-when-maximized", WindowHideTitlebarWhenMaximizedPropertyInfo), '("icon", WindowIconPropertyInfo), '("icon-name", WindowIconNamePropertyInfo), '("is-active", WindowIsActivePropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("is-maximized", WindowIsMaximizedPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("mnemonics-visible", WindowMnemonicsVisiblePropertyInfo), '("modal", WindowModalPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("parent", WidgetParentPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("resizable", WindowResizablePropertyInfo), '("resize-grip-visible", WindowResizeGripVisiblePropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("role", WindowRolePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("screen", WindowScreenPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("skip-pager-hint", WindowSkipPagerHintPropertyInfo), '("skip-taskbar-hint", WindowSkipTaskbarHintPropertyInfo), '("startup-id", WindowStartupIdPropertyInfo), '("style", WidgetStylePropertyInfo), '("title", WindowTitlePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("transient-for", WindowTransientForPropertyInfo), '("type", WindowTypePropertyInfo), '("type-hint", WindowTypeHintPropertyInfo), '("urgency-hint", WindowUrgencyHintPropertyInfo), '("use-header-bar", AssistantUseHeaderBarPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo), '("window-position", WindowWindowPositionPropertyInfo)] :: [(Symbol, *)])

data AssistantApplySignalInfo
instance SignalInfo AssistantApplySignalInfo where
    type HaskellCallbackType AssistantApplySignalInfo = AssistantApplyCallback
    connectSignal _ = connectAssistantApply

data AssistantCancelSignalInfo
instance SignalInfo AssistantCancelSignalInfo where
    type HaskellCallbackType AssistantCancelSignalInfo = AssistantCancelCallback
    connectSignal _ = connectAssistantCancel

data AssistantCloseSignalInfo
instance SignalInfo AssistantCloseSignalInfo where
    type HaskellCallbackType AssistantCloseSignalInfo = AssistantCloseCallback
    connectSignal _ = connectAssistantClose

data AssistantEscapeSignalInfo
instance SignalInfo AssistantEscapeSignalInfo where
    type HaskellCallbackType AssistantEscapeSignalInfo = AssistantEscapeCallback
    connectSignal _ = connectAssistantEscape

data AssistantPrepareSignalInfo
instance SignalInfo AssistantPrepareSignalInfo where
    type HaskellCallbackType AssistantPrepareSignalInfo = AssistantPrepareCallback
    connectSignal _ = connectAssistantPrepare

type instance SignalList Assistant = AssistantSignalList
type AssistantSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("activate-default", WindowActivateDefaultSignalInfo), '("activate-focus", WindowActivateFocusSignalInfo), '("add", ContainerAddSignalInfo), '("apply", AssistantApplySignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("cancel", AssistantCancelSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("close", AssistantCloseSignalInfo), '("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), '("enable-debugging", WindowEnableDebuggingSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("escape", AssistantEscapeSignalInfo), '("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), '("keys-changed", WindowKeysChangedSignalInfo), '("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), '("prepare", AssistantPrepareSignalInfo), '("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", WindowSetFocusSignalInfo), '("set-focus-child", ContainerSetFocusChildSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

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

foreign import ccall "gtk_assistant_new" gtk_assistant_new :: 
    IO (Ptr Assistant)


assistantNew ::
    (MonadIO m) =>
    m Assistant
assistantNew  = liftIO $ do
    result <- gtk_assistant_new
    checkUnexpectedReturnNULL "gtk_assistant_new" result
    result' <- (newObject Assistant) result
    return result'

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


assistantAddActionWidget ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- child
    m ()
assistantAddActionWidget _obj child = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let child' = unsafeManagedPtrCastPtr child
    gtk_assistant_add_action_widget _obj' child'
    touchManagedPtr _obj
    touchManagedPtr child
    return ()

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

foreign import ccall "gtk_assistant_append_page" gtk_assistant_append_page :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO Int32


assistantAppendPage ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m Int32
assistantAppendPage _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_append_page _obj' page'
    touchManagedPtr _obj
    touchManagedPtr page
    return result

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

foreign import ccall "gtk_assistant_commit" gtk_assistant_commit :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    IO ()


assistantCommit ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    m ()
assistantCommit _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_assistant_commit _obj'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_assistant_get_current_page" gtk_assistant_get_current_page :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    IO Int32


assistantGetCurrentPage ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    m Int32
assistantGetCurrentPage _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_assistant_get_current_page _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_assistant_get_n_pages" gtk_assistant_get_n_pages :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    IO Int32


assistantGetNPages ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    m Int32
assistantGetNPages _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_assistant_get_n_pages _obj'
    touchManagedPtr _obj
    return result

-- method Assistant::get_nth_page
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_num", argType = TBasicType TInt32, 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_assistant_get_nth_page" gtk_assistant_get_nth_page :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Int32 ->                                -- page_num : TBasicType TInt32
    IO (Ptr Widget)


assistantGetNthPage ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- page_num
    m Widget
assistantGetNthPage _obj page_num = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_assistant_get_nth_page _obj' page_num
    checkUnexpectedReturnNULL "gtk_assistant_get_nth_page" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_assistant_get_page_complete" gtk_assistant_get_page_complete :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO CInt


assistantGetPageComplete ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m Bool
assistantGetPageComplete _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_get_page_complete _obj' page'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr page
    return result'

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

foreign import ccall "gtk_assistant_get_page_has_padding" gtk_assistant_get_page_has_padding :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO CInt


assistantGetPageHasPadding ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m Bool
assistantGetPageHasPadding _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_get_page_has_padding _obj' page'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr page
    return result'

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

foreign import ccall "gtk_assistant_get_page_header_image" gtk_assistant_get_page_header_image :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO (Ptr GdkPixbuf.Pixbuf)

{-# DEPRECATED assistantGetPageHeaderImage ["(Since version 3.2)","Since GTK+ 3.2, a header is no longer shown;","    add your header decoration to the page content instead."]#-}
assistantGetPageHeaderImage ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m GdkPixbuf.Pixbuf
assistantGetPageHeaderImage _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_get_page_header_image _obj' page'
    checkUnexpectedReturnNULL "gtk_assistant_get_page_header_image" result
    result' <- (newObject GdkPixbuf.Pixbuf) result
    touchManagedPtr _obj
    touchManagedPtr page
    return result'

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

foreign import ccall "gtk_assistant_get_page_side_image" gtk_assistant_get_page_side_image :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO (Ptr GdkPixbuf.Pixbuf)

{-# DEPRECATED assistantGetPageSideImage ["(Since version 3.2)","Since GTK+ 3.2, sidebar images are not","    shown anymore."]#-}
assistantGetPageSideImage ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m GdkPixbuf.Pixbuf
assistantGetPageSideImage _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_get_page_side_image _obj' page'
    checkUnexpectedReturnNULL "gtk_assistant_get_page_side_image" result
    result' <- (newObject GdkPixbuf.Pixbuf) result
    touchManagedPtr _obj
    touchManagedPtr page
    return result'

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

foreign import ccall "gtk_assistant_get_page_title" gtk_assistant_get_page_title :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO CString


assistantGetPageTitle ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m T.Text
assistantGetPageTitle _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_get_page_title _obj' page'
    checkUnexpectedReturnNULL "gtk_assistant_get_page_title" result
    result' <- cstringToText result
    touchManagedPtr _obj
    touchManagedPtr page
    return result'

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

foreign import ccall "gtk_assistant_get_page_type" gtk_assistant_get_page_type :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO CUInt


assistantGetPageType ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m AssistantPageType
assistantGetPageType _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_get_page_type _obj' page'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    touchManagedPtr page
    return result'

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

foreign import ccall "gtk_assistant_insert_page" gtk_assistant_insert_page :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    Int32 ->                                -- position : TBasicType TInt32
    IO Int32


assistantInsertPage ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    Int32 ->                                -- position
    m Int32
assistantInsertPage _obj page position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_insert_page _obj' page' position
    touchManagedPtr _obj
    touchManagedPtr page
    return result

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

foreign import ccall "gtk_assistant_next_page" gtk_assistant_next_page :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    IO ()


assistantNextPage ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    m ()
assistantNextPage _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_assistant_next_page _obj'
    touchManagedPtr _obj
    return ()

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

foreign import ccall "gtk_assistant_prepend_page" gtk_assistant_prepend_page :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    IO Int32


assistantPrependPage ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    m Int32
assistantPrependPage _obj page = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    result <- gtk_assistant_prepend_page _obj' page'
    touchManagedPtr _obj
    touchManagedPtr page
    return result

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

foreign import ccall "gtk_assistant_previous_page" gtk_assistant_previous_page :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    IO ()


assistantPreviousPage ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    m ()
assistantPreviousPage _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_assistant_previous_page _obj'
    touchManagedPtr _obj
    return ()

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


assistantRemoveActionWidget ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- child
    m ()
assistantRemoveActionWidget _obj child = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let child' = unsafeManagedPtrCastPtr child
    gtk_assistant_remove_action_widget _obj' child'
    touchManagedPtr _obj
    touchManagedPtr child
    return ()

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


assistantRemovePage ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- page_num
    m ()
assistantRemovePage _obj page_num = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_assistant_remove_page _obj' page_num
    touchManagedPtr _obj
    return ()

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


assistantSetCurrentPage ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- page_num
    m ()
assistantSetCurrentPage _obj page_num = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_assistant_set_current_page _obj' page_num
    touchManagedPtr _obj
    return ()

-- method Assistant::set_forward_page_func
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_func", argType = TInterface "Gtk" "AssistantPageFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page_func", argType = TInterface "Gtk" "AssistantPageFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_assistant_set_forward_page_func" gtk_assistant_set_forward_page_func :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    FunPtr AssistantPageFuncC ->            -- page_func : TInterface "Gtk" "AssistantPageFunc"
    Ptr () ->                               -- data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
    IO ()


assistantSetForwardPageFunc ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    Maybe (AssistantPageFunc) ->            -- page_func
    m ()
assistantSetForwardPageFunc _obj page_func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybePage_func <- case page_func of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jPage_func -> do
            jPage_func' <- mkAssistantPageFunc (assistantPageFuncWrapper Nothing jPage_func)
            return jPage_func'
    let data_ = castFunPtrToPtr maybePage_func
    let destroy = safeFreeFunPtrPtr
    gtk_assistant_set_forward_page_func _obj' maybePage_func data_ destroy
    touchManagedPtr _obj
    return ()

-- method Assistant::set_page_complete
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "complete", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "complete", 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_assistant_set_page_complete" gtk_assistant_set_page_complete :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    CInt ->                                 -- complete : TBasicType TBoolean
    IO ()


assistantSetPageComplete ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    Bool ->                                 -- complete
    m ()
assistantSetPageComplete _obj page complete = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    let complete' = (fromIntegral . fromEnum) complete
    gtk_assistant_set_page_complete _obj' page' complete'
    touchManagedPtr _obj
    touchManagedPtr page
    return ()

-- method Assistant::set_page_has_padding
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_padding", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "Assistant", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "page", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_padding", 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_assistant_set_page_has_padding" gtk_assistant_set_page_has_padding :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    CInt ->                                 -- has_padding : TBasicType TBoolean
    IO ()


assistantSetPageHasPadding ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    Bool ->                                 -- has_padding
    m ()
assistantSetPageHasPadding _obj page has_padding = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    let has_padding' = (fromIntegral . fromEnum) has_padding
    gtk_assistant_set_page_has_padding _obj' page' has_padding'
    touchManagedPtr _obj
    touchManagedPtr page
    return ()

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

foreign import ccall "gtk_assistant_set_page_header_image" gtk_assistant_set_page_header_image :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
    IO ()

{-# DEPRECATED assistantSetPageHeaderImage ["(Since version 3.2)","Since GTK+ 3.2, a header is no longer shown;","    add your header decoration to the page content instead."]#-}
assistantSetPageHeaderImage ::
    (MonadIO m, AssistantK a, WidgetK b, GdkPixbuf.PixbufK c) =>
    a ->                                    -- _obj
    b ->                                    -- page
    Maybe (c) ->                            -- pixbuf
    m ()
assistantSetPageHeaderImage _obj page pixbuf = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    maybePixbuf <- case pixbuf of
        Nothing -> return nullPtr
        Just jPixbuf -> do
            let jPixbuf' = unsafeManagedPtrCastPtr jPixbuf
            return jPixbuf'
    gtk_assistant_set_page_header_image _obj' page' maybePixbuf
    touchManagedPtr _obj
    touchManagedPtr page
    whenJust pixbuf touchManagedPtr
    return ()

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

foreign import ccall "gtk_assistant_set_page_side_image" gtk_assistant_set_page_side_image :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
    IO ()

{-# DEPRECATED assistantSetPageSideImage ["(Since version 3.2)","Since GTK+ 3.2, sidebar images are not","    shown anymore."]#-}
assistantSetPageSideImage ::
    (MonadIO m, AssistantK a, WidgetK b, GdkPixbuf.PixbufK c) =>
    a ->                                    -- _obj
    b ->                                    -- page
    Maybe (c) ->                            -- pixbuf
    m ()
assistantSetPageSideImage _obj page pixbuf = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    maybePixbuf <- case pixbuf of
        Nothing -> return nullPtr
        Just jPixbuf -> do
            let jPixbuf' = unsafeManagedPtrCastPtr jPixbuf
            return jPixbuf'
    gtk_assistant_set_page_side_image _obj' page' maybePixbuf
    touchManagedPtr _obj
    touchManagedPtr page
    whenJust pixbuf touchManagedPtr
    return ()

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


assistantSetPageTitle ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    T.Text ->                               -- title
    m ()
assistantSetPageTitle _obj page title = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    title' <- textToCString title
    gtk_assistant_set_page_title _obj' page' title'
    touchManagedPtr _obj
    touchManagedPtr page
    freeMem title'
    return ()

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

foreign import ccall "gtk_assistant_set_page_type" gtk_assistant_set_page_type :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    Ptr Widget ->                           -- page : TInterface "Gtk" "Widget"
    CUInt ->                                -- type : TInterface "Gtk" "AssistantPageType"
    IO ()


assistantSetPageType ::
    (MonadIO m, AssistantK a, WidgetK b) =>
    a ->                                    -- _obj
    b ->                                    -- page
    AssistantPageType ->                    -- type
    m ()
assistantSetPageType _obj page type_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let page' = unsafeManagedPtrCastPtr page
    let type_' = (fromIntegral . fromEnum) type_
    gtk_assistant_set_page_type _obj' page' type_'
    touchManagedPtr _obj
    touchManagedPtr page
    return ()

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

foreign import ccall "gtk_assistant_update_buttons_state" gtk_assistant_update_buttons_state :: 
    Ptr Assistant ->                        -- _obj : TInterface "Gtk" "Assistant"
    IO ()


assistantUpdateButtonsState ::
    (MonadIO m, AssistantK a) =>
    a ->                                    -- _obj
    m ()
assistantUpdateButtonsState _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_assistant_update_buttons_state _obj'
    touchManagedPtr _obj
    return ()