packages feed

gi-gtk-0.3.18.13: GI/Gtk/Objects/ListStore.hs


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

-- * Exported types
    ListStore(..)                           ,
    ListStoreK                              ,
    toListStore                             ,
    noListStore                             ,


 -- * Methods
-- ** listStoreAppend
    ListStoreAppendMethodInfo               ,
    listStoreAppend                         ,


-- ** listStoreClear
    ListStoreClearMethodInfo                ,
    listStoreClear                          ,


-- ** listStoreInsert
    ListStoreInsertMethodInfo               ,
    listStoreInsert                         ,


-- ** listStoreInsertAfter
    ListStoreInsertAfterMethodInfo          ,
    listStoreInsertAfter                    ,


-- ** listStoreInsertBefore
    ListStoreInsertBeforeMethodInfo         ,
    listStoreInsertBefore                   ,


-- ** listStoreInsertWithValuesv
    ListStoreInsertWithValuesvMethodInfo    ,
    listStoreInsertWithValuesv              ,


-- ** listStoreIterIsValid
    ListStoreIterIsValidMethodInfo          ,
    listStoreIterIsValid                    ,


-- ** listStoreMoveAfter
    ListStoreMoveAfterMethodInfo            ,
    listStoreMoveAfter                      ,


-- ** listStoreMoveBefore
    ListStoreMoveBeforeMethodInfo           ,
    listStoreMoveBefore                     ,


-- ** listStoreNew
    listStoreNew                            ,


-- ** listStorePrepend
    ListStorePrependMethodInfo              ,
    listStorePrepend                        ,


-- ** listStoreRemove
    ListStoreRemoveMethodInfo               ,
    listStoreRemove                         ,


-- ** listStoreReorder
    ListStoreReorderMethodInfo              ,
    listStoreReorder                        ,


-- ** listStoreSet
    ListStoreSetMethodInfo                  ,
    listStoreSet                            ,


-- ** listStoreSetColumnTypes
    ListStoreSetColumnTypesMethodInfo       ,
    listStoreSetColumnTypes                 ,


-- ** listStoreSetValue
    ListStoreSetValueMethodInfo             ,
    listStoreSetValue                       ,


-- ** listStoreSwap
    ListStoreSwapMethodInfo                 ,
    listStoreSwap                           ,




    ) 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.GObject as GObject

newtype ListStore = ListStore (ForeignPtr ListStore)
foreign import ccall "gtk_list_store_get_type"
    c_gtk_list_store_get_type :: IO GType

type instance ParentTypes ListStore = ListStoreParentTypes
type ListStoreParentTypes = '[GObject.Object, Buildable, TreeDragDest, TreeDragSource, TreeModel, TreeSortable]

instance GObject ListStore where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gtk_list_store_get_type
    

class GObject o => ListStoreK o
instance (GObject o, IsDescendantOf ListStore o) => ListStoreK o

toListStore :: ListStoreK o => o -> IO ListStore
toListStore = unsafeCastTo ListStore

noListStore :: Maybe ListStore
noListStore = Nothing

type family ResolveListStoreMethod (t :: Symbol) (o :: *) :: * where
    ResolveListStoreMethod "addChild" o = BuildableAddChildMethodInfo
    ResolveListStoreMethod "append" o = ListStoreAppendMethodInfo
    ResolveListStoreMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveListStoreMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveListStoreMethod "clear" o = ListStoreClearMethodInfo
    ResolveListStoreMethod "constructChild" o = BuildableConstructChildMethodInfo
    ResolveListStoreMethod "customFinished" o = BuildableCustomFinishedMethodInfo
    ResolveListStoreMethod "customTagEnd" o = BuildableCustomTagEndMethodInfo
    ResolveListStoreMethod "customTagStart" o = BuildableCustomTagStartMethodInfo
    ResolveListStoreMethod "dragDataDelete" o = TreeDragSourceDragDataDeleteMethodInfo
    ResolveListStoreMethod "dragDataGet" o = TreeDragSourceDragDataGetMethodInfo
    ResolveListStoreMethod "dragDataReceived" o = TreeDragDestDragDataReceivedMethodInfo
    ResolveListStoreMethod "filterNew" o = TreeModelFilterNewMethodInfo
    ResolveListStoreMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveListStoreMethod "foreach" o = TreeModelForeachMethodInfo
    ResolveListStoreMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveListStoreMethod "hasDefaultSortFunc" o = TreeSortableHasDefaultSortFuncMethodInfo
    ResolveListStoreMethod "insert" o = ListStoreInsertMethodInfo
    ResolveListStoreMethod "insertAfter" o = ListStoreInsertAfterMethodInfo
    ResolveListStoreMethod "insertBefore" o = ListStoreInsertBeforeMethodInfo
    ResolveListStoreMethod "insertWithValuesv" o = ListStoreInsertWithValuesvMethodInfo
    ResolveListStoreMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveListStoreMethod "iterChildren" o = TreeModelIterChildrenMethodInfo
    ResolveListStoreMethod "iterHasChild" o = TreeModelIterHasChildMethodInfo
    ResolveListStoreMethod "iterIsValid" o = ListStoreIterIsValidMethodInfo
    ResolveListStoreMethod "iterNChildren" o = TreeModelIterNChildrenMethodInfo
    ResolveListStoreMethod "iterNext" o = TreeModelIterNextMethodInfo
    ResolveListStoreMethod "iterNthChild" o = TreeModelIterNthChildMethodInfo
    ResolveListStoreMethod "iterParent" o = TreeModelIterParentMethodInfo
    ResolveListStoreMethod "iterPrevious" o = TreeModelIterPreviousMethodInfo
    ResolveListStoreMethod "moveAfter" o = ListStoreMoveAfterMethodInfo
    ResolveListStoreMethod "moveBefore" o = ListStoreMoveBeforeMethodInfo
    ResolveListStoreMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveListStoreMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveListStoreMethod "parserFinished" o = BuildableParserFinishedMethodInfo
    ResolveListStoreMethod "prepend" o = ListStorePrependMethodInfo
    ResolveListStoreMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveListStoreMethod "refNode" o = TreeModelRefNodeMethodInfo
    ResolveListStoreMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveListStoreMethod "remove" o = ListStoreRemoveMethodInfo
    ResolveListStoreMethod "reorder" o = ListStoreReorderMethodInfo
    ResolveListStoreMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveListStoreMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveListStoreMethod "rowChanged" o = TreeModelRowChangedMethodInfo
    ResolveListStoreMethod "rowDeleted" o = TreeModelRowDeletedMethodInfo
    ResolveListStoreMethod "rowDraggable" o = TreeDragSourceRowDraggableMethodInfo
    ResolveListStoreMethod "rowDropPossible" o = TreeDragDestRowDropPossibleMethodInfo
    ResolveListStoreMethod "rowHasChildToggled" o = TreeModelRowHasChildToggledMethodInfo
    ResolveListStoreMethod "rowInserted" o = TreeModelRowInsertedMethodInfo
    ResolveListStoreMethod "rowsReordered" o = TreeModelRowsReorderedMethodInfo
    ResolveListStoreMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveListStoreMethod "set" o = ListStoreSetMethodInfo
    ResolveListStoreMethod "sortColumnChanged" o = TreeSortableSortColumnChangedMethodInfo
    ResolveListStoreMethod "sortNewWithModel" o = TreeModelSortNewWithModelMethodInfo
    ResolveListStoreMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveListStoreMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveListStoreMethod "swap" o = ListStoreSwapMethodInfo
    ResolveListStoreMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveListStoreMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveListStoreMethod "unrefNode" o = TreeModelUnrefNodeMethodInfo
    ResolveListStoreMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveListStoreMethod "getColumnType" o = TreeModelGetColumnTypeMethodInfo
    ResolveListStoreMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveListStoreMethod "getFlags" o = TreeModelGetFlagsMethodInfo
    ResolveListStoreMethod "getInternalChild" o = BuildableGetInternalChildMethodInfo
    ResolveListStoreMethod "getIter" o = TreeModelGetIterMethodInfo
    ResolveListStoreMethod "getIterFirst" o = TreeModelGetIterFirstMethodInfo
    ResolveListStoreMethod "getIterFromString" o = TreeModelGetIterFromStringMethodInfo
    ResolveListStoreMethod "getNColumns" o = TreeModelGetNColumnsMethodInfo
    ResolveListStoreMethod "getName" o = BuildableGetNameMethodInfo
    ResolveListStoreMethod "getPath" o = TreeModelGetPathMethodInfo
    ResolveListStoreMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveListStoreMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveListStoreMethod "getSortColumnId" o = TreeSortableGetSortColumnIdMethodInfo
    ResolveListStoreMethod "getStringFromIter" o = TreeModelGetStringFromIterMethodInfo
    ResolveListStoreMethod "getValue" o = TreeModelGetValueMethodInfo
    ResolveListStoreMethod "setBuildableProperty" o = BuildableSetBuildablePropertyMethodInfo
    ResolveListStoreMethod "setColumnTypes" o = ListStoreSetColumnTypesMethodInfo
    ResolveListStoreMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveListStoreMethod "setDefaultSortFunc" o = TreeSortableSetDefaultSortFuncMethodInfo
    ResolveListStoreMethod "setName" o = BuildableSetNameMethodInfo
    ResolveListStoreMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveListStoreMethod "setSortColumnId" o = TreeSortableSetSortColumnIdMethodInfo
    ResolveListStoreMethod "setSortFunc" o = TreeSortableSetSortFuncMethodInfo
    ResolveListStoreMethod "setValue" o = ListStoreSetValueMethodInfo
    ResolveListStoreMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveListStoreMethod t ListStore, MethodInfo info ListStore p) => IsLabelProxy t (ListStore -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveListStoreMethod t ListStore, MethodInfo info ListStore p) => IsLabel t (ListStore -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

type instance AttributeList ListStore = ListStoreAttributeList
type ListStoreAttributeList = ('[ ] :: [(Symbol, *)])

type instance SignalList ListStore = ListStoreSignalList
type ListStoreSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("rowChanged", TreeModelRowChangedSignalInfo), '("rowDeleted", TreeModelRowDeletedSignalInfo), '("rowHasChildToggled", TreeModelRowHasChildToggledSignalInfo), '("rowInserted", TreeModelRowInsertedSignalInfo), '("sortColumnChanged", TreeSortableSortColumnChangedSignalInfo)] :: [(Symbol, *)])

-- method ListStore::new
-- method type : Constructor
-- Args : [Arg {argCName = "n_columns", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 0 (TBasicType TGType), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_columns", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "ListStore"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_newv" gtk_list_store_newv :: 
    Int32 ->                                -- n_columns : TBasicType TInt32
    Ptr CGType ->                           -- types : TCArray False (-1) 0 (TBasicType TGType)
    IO (Ptr ListStore)


listStoreNew ::
    (MonadIO m) =>
    [GType]                                 -- types
    -> m ListStore                          -- result
listStoreNew types = liftIO $ do
    let nColumns = fromIntegral $ length types
    types' <- (packMapStorableArray gtypeToCGType) types
    result <- gtk_list_store_newv nColumns types'
    checkUnexpectedReturnNULL "gtk_list_store_newv" result
    result' <- (wrapObject ListStore) result
    freeMem types'
    return result'

-- method ListStore::append
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_append" gtk_list_store_append :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    IO ()


listStoreAppend ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> m (TreeIter)                         -- result
listStoreAppend _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    iter <- callocBoxedBytes 32 :: IO (Ptr TreeIter)
    gtk_list_store_append _obj' iter
    iter' <- (wrapBoxed TreeIter) iter
    touchManagedPtr _obj
    return iter'

data ListStoreAppendMethodInfo
instance (signature ~ (m (TreeIter)), MonadIO m, ListStoreK a) => MethodInfo ListStoreAppendMethodInfo a signature where
    overloadedMethod _ = listStoreAppend

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

foreign import ccall "gtk_list_store_clear" gtk_list_store_clear :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    IO ()


listStoreClear ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
listStoreClear _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_list_store_clear _obj'
    touchManagedPtr _obj
    return ()

data ListStoreClearMethodInfo
instance (signature ~ (m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreClearMethodInfo a signature where
    overloadedMethod _ = listStoreClear

-- method ListStore::insert
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_insert" gtk_list_store_insert :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Int32 ->                                -- position : TBasicType TInt32
    IO ()


listStoreInsert ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> Int32                                -- position
    -> m (TreeIter)                         -- result
listStoreInsert _obj position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    iter <- callocBoxedBytes 32 :: IO (Ptr TreeIter)
    gtk_list_store_insert _obj' iter position
    iter' <- (wrapBoxed TreeIter) iter
    touchManagedPtr _obj
    return iter'

data ListStoreInsertMethodInfo
instance (signature ~ (Int32 -> m (TreeIter)), MonadIO m, ListStoreK a) => MethodInfo ListStoreInsertMethodInfo a signature where
    overloadedMethod _ = listStoreInsert

-- method ListStore::insert_after
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_insert_after" gtk_list_store_insert_after :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Ptr TreeIter ->                         -- sibling : TInterface "Gtk" "TreeIter"
    IO ()


listStoreInsertAfter ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> Maybe (TreeIter)                     -- sibling
    -> m (TreeIter)                         -- result
listStoreInsertAfter _obj sibling = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    iter <- callocBoxedBytes 32 :: IO (Ptr TreeIter)
    maybeSibling <- case sibling of
        Nothing -> return nullPtr
        Just jSibling -> do
            let jSibling' = unsafeManagedPtrGetPtr jSibling
            return jSibling'
    gtk_list_store_insert_after _obj' iter maybeSibling
    iter' <- (wrapBoxed TreeIter) iter
    touchManagedPtr _obj
    whenJust sibling touchManagedPtr
    return iter'

data ListStoreInsertAfterMethodInfo
instance (signature ~ (Maybe (TreeIter) -> m (TreeIter)), MonadIO m, ListStoreK a) => MethodInfo ListStoreInsertAfterMethodInfo a signature where
    overloadedMethod _ = listStoreInsertAfter

-- method ListStore::insert_before
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_insert_before" gtk_list_store_insert_before :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Ptr TreeIter ->                         -- sibling : TInterface "Gtk" "TreeIter"
    IO ()


listStoreInsertBefore ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> Maybe (TreeIter)                     -- sibling
    -> m (TreeIter)                         -- result
listStoreInsertBefore _obj sibling = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    iter <- callocBoxedBytes 32 :: IO (Ptr TreeIter)
    maybeSibling <- case sibling of
        Nothing -> return nullPtr
        Just jSibling -> do
            let jSibling' = unsafeManagedPtrGetPtr jSibling
            return jSibling'
    gtk_list_store_insert_before _obj' iter maybeSibling
    iter' <- (wrapBoxed TreeIter) iter
    touchManagedPtr _obj
    whenJust sibling touchManagedPtr
    return iter'

data ListStoreInsertBeforeMethodInfo
instance (signature ~ (Maybe (TreeIter) -> m (TreeIter)), MonadIO m, ListStoreK a) => MethodInfo ListStoreInsertBeforeMethodInfo a signature where
    overloadedMethod _ = listStoreInsertBefore

-- method ListStore::insert_with_valuesv
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "columns", argType = TCArray False (-1) 5 (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "values", argType = TCArray False (-1) 5 (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_values", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_insert_with_valuesv" gtk_list_store_insert_with_valuesv :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Int32 ->                                -- position : TBasicType TInt32
    Ptr Int32 ->                            -- columns : TCArray False (-1) 5 (TBasicType TInt32)
    Ptr GValue ->                           -- values : TCArray False (-1) 5 (TInterface "GObject" "Value")
    Int32 ->                                -- n_values : TBasicType TInt32
    IO ()


listStoreInsertWithValuesv ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> Int32                                -- position
    -> [Int32]                              -- columns
    -> [GValue]                             -- values
    -> m (TreeIter)                         -- result
listStoreInsertWithValuesv _obj position columns values = liftIO $ do
    let nValues = fromIntegral $ length values
    let columns_expected_length_ = fromIntegral $ length columns
    when (columns_expected_length_ /= nValues) $
        error "Gtk.listStoreInsertWithValuesv : length of 'columns' does not agree with that of 'values'."
    let _obj' = unsafeManagedPtrCastPtr _obj
    iter <- callocBoxedBytes 32 :: IO (Ptr TreeIter)
    columns' <- packStorableArray columns
    let values' = map unsafeManagedPtrGetPtr values
    values'' <- packBlockArray 24 values'
    gtk_list_store_insert_with_valuesv _obj' iter position columns' values'' nValues
    iter' <- (wrapBoxed TreeIter) iter
    touchManagedPtr _obj
    mapM_ touchManagedPtr values
    freeMem columns'
    freeMem values''
    return iter'

data ListStoreInsertWithValuesvMethodInfo
instance (signature ~ (Int32 -> [Int32] -> [GValue] -> m (TreeIter)), MonadIO m, ListStoreK a) => MethodInfo ListStoreInsertWithValuesvMethodInfo a signature where
    overloadedMethod _ = listStoreInsertWithValuesv

-- method ListStore::iter_is_valid
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_iter_is_valid" gtk_list_store_iter_is_valid :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    IO CInt


listStoreIterIsValid ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> TreeIter                             -- iter
    -> m Bool                               -- result
listStoreIterIsValid _obj iter = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let iter' = unsafeManagedPtrGetPtr iter
    result <- gtk_list_store_iter_is_valid _obj' iter'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr iter
    return result'

data ListStoreIterIsValidMethodInfo
instance (signature ~ (TreeIter -> m Bool), MonadIO m, ListStoreK a) => MethodInfo ListStoreIterIsValidMethodInfo a signature where
    overloadedMethod _ = listStoreIterIsValid

-- method ListStore::move_after
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_move_after" gtk_list_store_move_after :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Ptr TreeIter ->                         -- position : TInterface "Gtk" "TreeIter"
    IO ()


listStoreMoveAfter ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> TreeIter                             -- iter
    -> Maybe (TreeIter)                     -- position
    -> m ()                                 -- result
listStoreMoveAfter _obj iter position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let iter' = unsafeManagedPtrGetPtr iter
    maybePosition <- case position of
        Nothing -> return nullPtr
        Just jPosition -> do
            let jPosition' = unsafeManagedPtrGetPtr jPosition
            return jPosition'
    gtk_list_store_move_after _obj' iter' maybePosition
    touchManagedPtr _obj
    touchManagedPtr iter
    whenJust position touchManagedPtr
    return ()

data ListStoreMoveAfterMethodInfo
instance (signature ~ (TreeIter -> Maybe (TreeIter) -> m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreMoveAfterMethodInfo a signature where
    overloadedMethod _ = listStoreMoveAfter

-- method ListStore::move_before
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_move_before" gtk_list_store_move_before :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Ptr TreeIter ->                         -- position : TInterface "Gtk" "TreeIter"
    IO ()


listStoreMoveBefore ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> TreeIter                             -- iter
    -> Maybe (TreeIter)                     -- position
    -> m ()                                 -- result
listStoreMoveBefore _obj iter position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let iter' = unsafeManagedPtrGetPtr iter
    maybePosition <- case position of
        Nothing -> return nullPtr
        Just jPosition -> do
            let jPosition' = unsafeManagedPtrGetPtr jPosition
            return jPosition'
    gtk_list_store_move_before _obj' iter' maybePosition
    touchManagedPtr _obj
    touchManagedPtr iter
    whenJust position touchManagedPtr
    return ()

data ListStoreMoveBeforeMethodInfo
instance (signature ~ (TreeIter -> Maybe (TreeIter) -> m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreMoveBeforeMethodInfo a signature where
    overloadedMethod _ = listStoreMoveBefore

-- method ListStore::prepend
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_prepend" gtk_list_store_prepend :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    IO ()


listStorePrepend ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> m (TreeIter)                         -- result
listStorePrepend _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    iter <- callocBoxedBytes 32 :: IO (Ptr TreeIter)
    gtk_list_store_prepend _obj' iter
    iter' <- (wrapBoxed TreeIter) iter
    touchManagedPtr _obj
    return iter'

data ListStorePrependMethodInfo
instance (signature ~ (m (TreeIter)), MonadIO m, ListStoreK a) => MethodInfo ListStorePrependMethodInfo a signature where
    overloadedMethod _ = listStorePrepend

-- method ListStore::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_remove" gtk_list_store_remove :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    IO CInt


listStoreRemove ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> TreeIter                             -- iter
    -> m Bool                               -- result
listStoreRemove _obj iter = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let iter' = unsafeManagedPtrGetPtr iter
    result <- gtk_list_store_remove _obj' iter'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr iter
    return result'

data ListStoreRemoveMethodInfo
instance (signature ~ (TreeIter -> m Bool), MonadIO m, ListStoreK a) => MethodInfo ListStoreRemoveMethodInfo a signature where
    overloadedMethod _ = listStoreRemove

-- method ListStore::reorder
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_order", argType = TCArray True (-1) (-1) (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_reorder" gtk_list_store_reorder :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr Int32 ->                            -- new_order : TCArray True (-1) (-1) (TBasicType TInt32)
    IO ()


listStoreReorder ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> [Int32]                              -- newOrder
    -> m ()                                 -- result
listStoreReorder _obj newOrder = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    newOrder' <- packZeroTerminatedStorableArray newOrder
    gtk_list_store_reorder _obj' newOrder'
    touchManagedPtr _obj
    freeMem newOrder'
    return ()

data ListStoreReorderMethodInfo
instance (signature ~ ([Int32] -> m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreReorderMethodInfo a signature where
    overloadedMethod _ = listStoreReorder

-- method ListStore::set_column_types
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_columns", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 1 (TBasicType TGType), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_columns", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_set_column_types" gtk_list_store_set_column_types :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Int32 ->                                -- n_columns : TBasicType TInt32
    Ptr CGType ->                           -- types : TCArray False (-1) 1 (TBasicType TGType)
    IO ()


listStoreSetColumnTypes ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> [GType]                              -- types
    -> m ()                                 -- result
listStoreSetColumnTypes _obj types = liftIO $ do
    let nColumns = fromIntegral $ length types
    let _obj' = unsafeManagedPtrCastPtr _obj
    types' <- (packMapStorableArray gtypeToCGType) types
    gtk_list_store_set_column_types _obj' nColumns types'
    touchManagedPtr _obj
    freeMem types'
    return ()

data ListStoreSetColumnTypesMethodInfo
instance (signature ~ ([GType] -> m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreSetColumnTypesMethodInfo a signature where
    overloadedMethod _ = listStoreSetColumnTypes

-- method ListStore::set_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_set_value" gtk_list_store_set_value :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Int32 ->                                -- column : TBasicType TInt32
    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
    IO ()


listStoreSetValue ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> TreeIter                             -- iter
    -> Int32                                -- column
    -> GValue                               -- value
    -> m ()                                 -- result
listStoreSetValue _obj iter column value = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let iter' = unsafeManagedPtrGetPtr iter
    let value' = unsafeManagedPtrGetPtr value
    gtk_list_store_set_value _obj' iter' column value'
    touchManagedPtr _obj
    touchManagedPtr iter
    touchManagedPtr value
    return ()

data ListStoreSetValueMethodInfo
instance (signature ~ (TreeIter -> Int32 -> GValue -> m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreSetValueMethodInfo a signature where
    overloadedMethod _ = listStoreSetValue

-- method ListStore::set
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "columns", argType = TCArray False (-1) 4 (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "values", argType = TCArray False (-1) 4 (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_values", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_set_valuesv" gtk_list_store_set_valuesv :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    Ptr Int32 ->                            -- columns : TCArray False (-1) 4 (TBasicType TInt32)
    Ptr GValue ->                           -- values : TCArray False (-1) 4 (TInterface "GObject" "Value")
    Int32 ->                                -- n_values : TBasicType TInt32
    IO ()


listStoreSet ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> TreeIter                             -- iter
    -> [Int32]                              -- columns
    -> [GValue]                             -- values
    -> m ()                                 -- result
listStoreSet _obj iter columns values = liftIO $ do
    let nValues = fromIntegral $ length values
    let columns_expected_length_ = fromIntegral $ length columns
    when (columns_expected_length_ /= nValues) $
        error "Gtk.listStoreSet : length of 'columns' does not agree with that of 'values'."
    let _obj' = unsafeManagedPtrCastPtr _obj
    let iter' = unsafeManagedPtrGetPtr iter
    columns' <- packStorableArray columns
    let values' = map unsafeManagedPtrGetPtr values
    values'' <- packBlockArray 24 values'
    gtk_list_store_set_valuesv _obj' iter' columns' values'' nValues
    touchManagedPtr _obj
    touchManagedPtr iter
    mapM_ touchManagedPtr values
    freeMem columns'
    freeMem values''
    return ()

data ListStoreSetMethodInfo
instance (signature ~ (TreeIter -> [Int32] -> [GValue] -> m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreSetMethodInfo a signature where
    overloadedMethod _ = listStoreSet

-- method ListStore::swap
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gtk" "ListStore", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_list_store_swap" gtk_list_store_swap :: 
    Ptr ListStore ->                        -- _obj : TInterface "Gtk" "ListStore"
    Ptr TreeIter ->                         -- a : TInterface "Gtk" "TreeIter"
    Ptr TreeIter ->                         -- b : TInterface "Gtk" "TreeIter"
    IO ()


listStoreSwap ::
    (MonadIO m, ListStoreK a) =>
    a                                       -- _obj
    -> TreeIter                             -- a
    -> TreeIter                             -- b
    -> m ()                                 -- result
listStoreSwap _obj a b = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let a' = unsafeManagedPtrGetPtr a
    let b' = unsafeManagedPtrGetPtr b
    gtk_list_store_swap _obj' a' b'
    touchManagedPtr _obj
    touchManagedPtr a
    touchManagedPtr b
    return ()

data ListStoreSwapMethodInfo
instance (signature ~ (TreeIter -> TreeIter -> m ()), MonadIO m, ListStoreK a) => MethodInfo ListStoreSwapMethodInfo a signature where
    overloadedMethod _ = listStoreSwap