gi-gtk-3.0.28: GI/Gtk/Objects/TreeStore.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
The 'GI.Gtk.Objects.TreeStore.TreeStore' object is a list model for use with a 'GI.Gtk.Objects.TreeView.TreeView'
widget. It implements the 'GI.Gtk.Interfaces.TreeModel.TreeModel' interface, and consequentially,
can use all of the methods available there. It also implements the
'GI.Gtk.Interfaces.TreeSortable.TreeSortable' interface so it can be sorted by the view. Finally,
it also implements the tree
[drag and drop][gtk3-GtkTreeView-drag-and-drop]
interfaces.
= GtkTreeStore as GtkBuildable
The GtkTreeStore implementation of the 'GI.Gtk.Interfaces.Buildable.Buildable' interface allows
to specify the model columns with a \<columns> element that may contain
multiple \<column> elements, each specifying one model column. The “type”
attribute specifies the data type for the column.
An example of a UI Definition fragment for a tree store:
>
><object class="GtkTreeStore">
> <columns>
> <column type="gchararray"/>
> <column type="gchararray"/>
> <column type="gint"/>
> </columns>
></object>
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gtk.Objects.TreeStore
(
-- * Exported types
TreeStore(..) ,
IsTreeStore ,
toTreeStore ,
noTreeStore ,
-- * Methods
-- ** append #method:append#
#if ENABLE_OVERLOADING
TreeStoreAppendMethodInfo ,
#endif
treeStoreAppend ,
-- ** clear #method:clear#
#if ENABLE_OVERLOADING
TreeStoreClearMethodInfo ,
#endif
treeStoreClear ,
-- ** insert #method:insert#
#if ENABLE_OVERLOADING
TreeStoreInsertMethodInfo ,
#endif
treeStoreInsert ,
-- ** insertAfter #method:insertAfter#
#if ENABLE_OVERLOADING
TreeStoreInsertAfterMethodInfo ,
#endif
treeStoreInsertAfter ,
-- ** insertBefore #method:insertBefore#
#if ENABLE_OVERLOADING
TreeStoreInsertBeforeMethodInfo ,
#endif
treeStoreInsertBefore ,
-- ** insertWithValues #method:insertWithValues#
#if ENABLE_OVERLOADING
TreeStoreInsertWithValuesMethodInfo ,
#endif
treeStoreInsertWithValues ,
-- ** isAncestor #method:isAncestor#
#if ENABLE_OVERLOADING
TreeStoreIsAncestorMethodInfo ,
#endif
treeStoreIsAncestor ,
-- ** iterDepth #method:iterDepth#
#if ENABLE_OVERLOADING
TreeStoreIterDepthMethodInfo ,
#endif
treeStoreIterDepth ,
-- ** iterIsValid #method:iterIsValid#
#if ENABLE_OVERLOADING
TreeStoreIterIsValidMethodInfo ,
#endif
treeStoreIterIsValid ,
-- ** moveAfter #method:moveAfter#
#if ENABLE_OVERLOADING
TreeStoreMoveAfterMethodInfo ,
#endif
treeStoreMoveAfter ,
-- ** moveBefore #method:moveBefore#
#if ENABLE_OVERLOADING
TreeStoreMoveBeforeMethodInfo ,
#endif
treeStoreMoveBefore ,
-- ** new #method:new#
treeStoreNew ,
-- ** prepend #method:prepend#
#if ENABLE_OVERLOADING
TreeStorePrependMethodInfo ,
#endif
treeStorePrepend ,
-- ** remove #method:remove#
#if ENABLE_OVERLOADING
TreeStoreRemoveMethodInfo ,
#endif
treeStoreRemove ,
-- ** set #method:set#
#if ENABLE_OVERLOADING
TreeStoreSetMethodInfo ,
#endif
treeStoreSet ,
-- ** setColumnTypes #method:setColumnTypes#
#if ENABLE_OVERLOADING
TreeStoreSetColumnTypesMethodInfo ,
#endif
treeStoreSetColumnTypes ,
-- ** setValue #method:setValue#
#if ENABLE_OVERLOADING
TreeStoreSetValueMethodInfo ,
#endif
treeStoreSetValue ,
-- ** swap #method:swap#
#if ENABLE_OVERLOADING
TreeStoreSwapMethodInfo ,
#endif
treeStoreSwap ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.TreeDragDest as Gtk.TreeDragDest
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.TreeDragSource as Gtk.TreeDragSource
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.TreeModel as Gtk.TreeModel
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.TreeSortable as Gtk.TreeSortable
import {-# SOURCE #-} qualified GI.Gtk.Structs.TreeIter as Gtk.TreeIter
-- | Memory-managed wrapper type.
newtype TreeStore = TreeStore (ManagedPtr TreeStore)
foreign import ccall "gtk_tree_store_get_type"
c_gtk_tree_store_get_type :: IO GType
instance GObject TreeStore where
gobjectType = c_gtk_tree_store_get_type
-- | Type class for types which can be safely cast to `TreeStore`, for instance with `toTreeStore`.
class (GObject o, O.IsDescendantOf TreeStore o) => IsTreeStore o
instance (GObject o, O.IsDescendantOf TreeStore o) => IsTreeStore o
instance O.HasParentTypes TreeStore
type instance O.ParentTypes TreeStore = '[GObject.Object.Object, Gtk.Buildable.Buildable, Gtk.TreeDragDest.TreeDragDest, Gtk.TreeDragSource.TreeDragSource, Gtk.TreeModel.TreeModel, Gtk.TreeSortable.TreeSortable]
-- | Cast to `TreeStore`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toTreeStore :: (MonadIO m, IsTreeStore o) => o -> m TreeStore
toTreeStore = liftIO . unsafeCastTo TreeStore
-- | A convenience alias for `Nothing` :: `Maybe` `TreeStore`.
noTreeStore :: Maybe TreeStore
noTreeStore = Nothing
#if ENABLE_OVERLOADING
type family ResolveTreeStoreMethod (t :: Symbol) (o :: *) :: * where
ResolveTreeStoreMethod "addChild" o = Gtk.Buildable.BuildableAddChildMethodInfo
ResolveTreeStoreMethod "append" o = TreeStoreAppendMethodInfo
ResolveTreeStoreMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveTreeStoreMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveTreeStoreMethod "clear" o = TreeStoreClearMethodInfo
ResolveTreeStoreMethod "constructChild" o = Gtk.Buildable.BuildableConstructChildMethodInfo
ResolveTreeStoreMethod "customFinished" o = Gtk.Buildable.BuildableCustomFinishedMethodInfo
ResolveTreeStoreMethod "customTagEnd" o = Gtk.Buildable.BuildableCustomTagEndMethodInfo
ResolveTreeStoreMethod "customTagStart" o = Gtk.Buildable.BuildableCustomTagStartMethodInfo
ResolveTreeStoreMethod "dragDataDelete" o = Gtk.TreeDragSource.TreeDragSourceDragDataDeleteMethodInfo
ResolveTreeStoreMethod "dragDataGet" o = Gtk.TreeDragSource.TreeDragSourceDragDataGetMethodInfo
ResolveTreeStoreMethod "dragDataReceived" o = Gtk.TreeDragDest.TreeDragDestDragDataReceivedMethodInfo
ResolveTreeStoreMethod "filterNew" o = Gtk.TreeModel.TreeModelFilterNewMethodInfo
ResolveTreeStoreMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveTreeStoreMethod "foreach" o = Gtk.TreeModel.TreeModelForeachMethodInfo
ResolveTreeStoreMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveTreeStoreMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveTreeStoreMethod "hasDefaultSortFunc" o = Gtk.TreeSortable.TreeSortableHasDefaultSortFuncMethodInfo
ResolveTreeStoreMethod "insert" o = TreeStoreInsertMethodInfo
ResolveTreeStoreMethod "insertAfter" o = TreeStoreInsertAfterMethodInfo
ResolveTreeStoreMethod "insertBefore" o = TreeStoreInsertBeforeMethodInfo
ResolveTreeStoreMethod "insertWithValues" o = TreeStoreInsertWithValuesMethodInfo
ResolveTreeStoreMethod "isAncestor" o = TreeStoreIsAncestorMethodInfo
ResolveTreeStoreMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveTreeStoreMethod "iterChildren" o = Gtk.TreeModel.TreeModelIterChildrenMethodInfo
ResolveTreeStoreMethod "iterDepth" o = TreeStoreIterDepthMethodInfo
ResolveTreeStoreMethod "iterHasChild" o = Gtk.TreeModel.TreeModelIterHasChildMethodInfo
ResolveTreeStoreMethod "iterIsValid" o = TreeStoreIterIsValidMethodInfo
ResolveTreeStoreMethod "iterNChildren" o = Gtk.TreeModel.TreeModelIterNChildrenMethodInfo
ResolveTreeStoreMethod "iterNext" o = Gtk.TreeModel.TreeModelIterNextMethodInfo
ResolveTreeStoreMethod "iterNthChild" o = Gtk.TreeModel.TreeModelIterNthChildMethodInfo
ResolveTreeStoreMethod "iterParent" o = Gtk.TreeModel.TreeModelIterParentMethodInfo
ResolveTreeStoreMethod "iterPrevious" o = Gtk.TreeModel.TreeModelIterPreviousMethodInfo
ResolveTreeStoreMethod "moveAfter" o = TreeStoreMoveAfterMethodInfo
ResolveTreeStoreMethod "moveBefore" o = TreeStoreMoveBeforeMethodInfo
ResolveTreeStoreMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveTreeStoreMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveTreeStoreMethod "parserFinished" o = Gtk.Buildable.BuildableParserFinishedMethodInfo
ResolveTreeStoreMethod "prepend" o = TreeStorePrependMethodInfo
ResolveTreeStoreMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveTreeStoreMethod "refNode" o = Gtk.TreeModel.TreeModelRefNodeMethodInfo
ResolveTreeStoreMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveTreeStoreMethod "remove" o = TreeStoreRemoveMethodInfo
ResolveTreeStoreMethod "rowChanged" o = Gtk.TreeModel.TreeModelRowChangedMethodInfo
ResolveTreeStoreMethod "rowDeleted" o = Gtk.TreeModel.TreeModelRowDeletedMethodInfo
ResolveTreeStoreMethod "rowDraggable" o = Gtk.TreeDragSource.TreeDragSourceRowDraggableMethodInfo
ResolveTreeStoreMethod "rowDropPossible" o = Gtk.TreeDragDest.TreeDragDestRowDropPossibleMethodInfo
ResolveTreeStoreMethod "rowHasChildToggled" o = Gtk.TreeModel.TreeModelRowHasChildToggledMethodInfo
ResolveTreeStoreMethod "rowInserted" o = Gtk.TreeModel.TreeModelRowInsertedMethodInfo
ResolveTreeStoreMethod "rowsReordered" o = Gtk.TreeModel.TreeModelRowsReorderedMethodInfo
ResolveTreeStoreMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveTreeStoreMethod "set" o = TreeStoreSetMethodInfo
ResolveTreeStoreMethod "sortColumnChanged" o = Gtk.TreeSortable.TreeSortableSortColumnChangedMethodInfo
ResolveTreeStoreMethod "sortNewWithModel" o = Gtk.TreeModel.TreeModelSortNewWithModelMethodInfo
ResolveTreeStoreMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveTreeStoreMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveTreeStoreMethod "swap" o = TreeStoreSwapMethodInfo
ResolveTreeStoreMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveTreeStoreMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveTreeStoreMethod "unrefNode" o = Gtk.TreeModel.TreeModelUnrefNodeMethodInfo
ResolveTreeStoreMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveTreeStoreMethod "getColumnType" o = Gtk.TreeModel.TreeModelGetColumnTypeMethodInfo
ResolveTreeStoreMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveTreeStoreMethod "getFlags" o = Gtk.TreeModel.TreeModelGetFlagsMethodInfo
ResolveTreeStoreMethod "getInternalChild" o = Gtk.Buildable.BuildableGetInternalChildMethodInfo
ResolveTreeStoreMethod "getIter" o = Gtk.TreeModel.TreeModelGetIterMethodInfo
ResolveTreeStoreMethod "getIterFirst" o = Gtk.TreeModel.TreeModelGetIterFirstMethodInfo
ResolveTreeStoreMethod "getIterFromString" o = Gtk.TreeModel.TreeModelGetIterFromStringMethodInfo
ResolveTreeStoreMethod "getNColumns" o = Gtk.TreeModel.TreeModelGetNColumnsMethodInfo
ResolveTreeStoreMethod "getName" o = Gtk.Buildable.BuildableGetNameMethodInfo
ResolveTreeStoreMethod "getPath" o = Gtk.TreeModel.TreeModelGetPathMethodInfo
ResolveTreeStoreMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveTreeStoreMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveTreeStoreMethod "getSortColumnId" o = Gtk.TreeSortable.TreeSortableGetSortColumnIdMethodInfo
ResolveTreeStoreMethod "getStringFromIter" o = Gtk.TreeModel.TreeModelGetStringFromIterMethodInfo
ResolveTreeStoreMethod "getValue" o = Gtk.TreeModel.TreeModelGetValueMethodInfo
ResolveTreeStoreMethod "setBuildableProperty" o = Gtk.Buildable.BuildableSetBuildablePropertyMethodInfo
ResolveTreeStoreMethod "setColumnTypes" o = TreeStoreSetColumnTypesMethodInfo
ResolveTreeStoreMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveTreeStoreMethod "setDefaultSortFunc" o = Gtk.TreeSortable.TreeSortableSetDefaultSortFuncMethodInfo
ResolveTreeStoreMethod "setName" o = Gtk.Buildable.BuildableSetNameMethodInfo
ResolveTreeStoreMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveTreeStoreMethod "setSortColumnId" o = Gtk.TreeSortable.TreeSortableSetSortColumnIdMethodInfo
ResolveTreeStoreMethod "setSortFunc" o = Gtk.TreeSortable.TreeSortableSetSortFuncMethodInfo
ResolveTreeStoreMethod "setValue" o = TreeStoreSetValueMethodInfo
ResolveTreeStoreMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTreeStoreMethod t TreeStore, O.MethodInfo info TreeStore p) => OL.IsLabel t (TreeStore -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList TreeStore
type instance O.AttributeList TreeStore = TreeStoreAttributeList
type TreeStoreAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList TreeStore = TreeStoreSignalList
type TreeStoreSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo), '("rowChanged", Gtk.TreeModel.TreeModelRowChangedSignalInfo), '("rowDeleted", Gtk.TreeModel.TreeModelRowDeletedSignalInfo), '("rowHasChildToggled", Gtk.TreeModel.TreeModelRowHasChildToggledSignalInfo), '("rowInserted", Gtk.TreeModel.TreeModelRowInsertedSignalInfo), '("sortColumnChanged", Gtk.TreeSortable.TreeSortableSortColumnChangedSignalInfo)] :: [(Symbol, *)])
#endif
-- method TreeStore::new
-- method type : Constructor
-- Args : [Arg {argCName = "n_columns", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of columns in the tree store", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 0 (TBasicType TGType), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an array of #GType types for the columns, from first to last", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_columns", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "number of columns in the tree store", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreeStore"}))
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_newv" gtk_tree_store_newv ::
Int32 -> -- n_columns : TBasicType TInt
Ptr CGType -> -- types : TCArray False (-1) 0 (TBasicType TGType)
IO (Ptr TreeStore)
{- |
Non vararg creation function. Used primarily by language bindings.
-}
treeStoreNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
[GType]
{- ^ /@types@/: an array of 'GType' types for the columns, from first to last -}
-> m TreeStore
{- ^ __Returns:__ a new 'GI.Gtk.Objects.TreeStore.TreeStore' -}
treeStoreNew types = liftIO $ do
let nColumns = fromIntegral $ length types
types' <- (packMapStorableArray gtypeToCGType) types
result <- gtk_tree_store_newv nColumns types'
checkUnexpectedReturnNULL "treeStoreNew" result
result' <- (wrapObject TreeStore) result
freeMem types'
return result'
#if ENABLE_OVERLOADING
#endif
-- method TreeStore::append
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An unset #GtkTreeIter to set to the appended row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_append" gtk_tree_store_append ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- parent : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO ()
{- |
Appends a new row to /@treeStore@/. If /@parent@/ is non-'Nothing', then it will append the
new row after the last child of /@parent@/, otherwise it will append a row to
the top level. /@iter@/ will be changed to point to this new row. The row will
be empty after this function is called. To fill in values, you need to call
@/gtk_tree_store_set()/@ or 'GI.Gtk.Objects.TreeStore.treeStoreSetValue'.
-}
treeStoreAppend ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@parent@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> m (Gtk.TreeIter.TreeIter)
treeStoreAppend treeStore parent = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter <- callocBoxedBytes 32 :: IO (Ptr Gtk.TreeIter.TreeIter)
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- unsafeManagedPtrGetPtr jParent
return jParent'
gtk_tree_store_append treeStore' iter maybeParent
iter' <- (wrapBoxed Gtk.TreeIter.TreeIter) iter
touchManagedPtr treeStore
whenJust parent touchManagedPtr
return iter'
#if ENABLE_OVERLOADING
data TreeStoreAppendMethodInfo
instance (signature ~ (Maybe (Gtk.TreeIter.TreeIter) -> m (Gtk.TreeIter.TreeIter)), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreAppendMethodInfo a signature where
overloadedMethod _ = treeStoreAppend
#endif
-- method TreeStore::clear
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_clear" gtk_tree_store_clear ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
IO ()
{- |
Removes all rows from /@treeStore@/
-}
treeStoreClear ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: a 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> m ()
treeStoreClear treeStore = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
gtk_tree_store_clear treeStore'
touchManagedPtr treeStore
return ()
#if ENABLE_OVERLOADING
data TreeStoreClearMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreClearMethodInfo a signature where
overloadedMethod _ = treeStoreClear
#endif
-- method TreeStore::insert
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An unset #GtkTreeIter to set to the new row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "position to insert the new row, or -1 for last", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_insert" gtk_tree_store_insert ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- parent : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Int32 -> -- position : TBasicType TInt
IO ()
{- |
Creates a new row at /@position@/. If parent is non-'Nothing', then the row will be
made a child of /@parent@/. Otherwise, the row will be created at the toplevel.
If /@position@/ is -1 or is larger than the number of rows at that level, then
the new row will be inserted to the end of the list. /@iter@/ will be changed
to point to this new row. The row will be empty after this function is
called. To fill in values, you need to call @/gtk_tree_store_set()/@ or
'GI.Gtk.Objects.TreeStore.treeStoreSetValue'.
-}
treeStoreInsert ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@parent@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> Int32
{- ^ /@position@/: position to insert the new row, or -1 for last -}
-> m (Gtk.TreeIter.TreeIter)
treeStoreInsert treeStore parent position = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter <- callocBoxedBytes 32 :: IO (Ptr Gtk.TreeIter.TreeIter)
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- unsafeManagedPtrGetPtr jParent
return jParent'
gtk_tree_store_insert treeStore' iter maybeParent position
iter' <- (wrapBoxed Gtk.TreeIter.TreeIter) iter
touchManagedPtr treeStore
whenJust parent touchManagedPtr
return iter'
#if ENABLE_OVERLOADING
data TreeStoreInsertMethodInfo
instance (signature ~ (Maybe (Gtk.TreeIter.TreeIter) -> Int32 -> m (Gtk.TreeIter.TreeIter)), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreInsertMethodInfo a signature where
overloadedMethod _ = treeStoreInsert
#endif
-- method TreeStore::insert_after
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An unset #GtkTreeIter to set to the new row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_insert_after" gtk_tree_store_insert_after ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- parent : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- sibling : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO ()
{- |
Inserts a new row after /@sibling@/. If /@sibling@/ is 'Nothing', then the row will be
prepended to /@parent@/ ’s children. If /@parent@/ and /@sibling@/ are 'Nothing', then
the row will be prepended to the toplevel. If both /@sibling@/ and /@parent@/ are
set, then /@parent@/ must be the parent of /@sibling@/. When /@sibling@/ is set,
/@parent@/ is optional.
/@iter@/ will be changed to point to this new row. The row will be empty after
this function is called. To fill in values, you need to call
@/gtk_tree_store_set()/@ or 'GI.Gtk.Objects.TreeStore.treeStoreSetValue'.
-}
treeStoreInsertAfter ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@parent@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@sibling@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> m (Gtk.TreeIter.TreeIter)
treeStoreInsertAfter treeStore parent sibling = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter <- callocBoxedBytes 32 :: IO (Ptr Gtk.TreeIter.TreeIter)
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- unsafeManagedPtrGetPtr jParent
return jParent'
maybeSibling <- case sibling of
Nothing -> return nullPtr
Just jSibling -> do
jSibling' <- unsafeManagedPtrGetPtr jSibling
return jSibling'
gtk_tree_store_insert_after treeStore' iter maybeParent maybeSibling
iter' <- (wrapBoxed Gtk.TreeIter.TreeIter) iter
touchManagedPtr treeStore
whenJust parent touchManagedPtr
whenJust sibling touchManagedPtr
return iter'
#if ENABLE_OVERLOADING
data TreeStoreInsertAfterMethodInfo
instance (signature ~ (Maybe (Gtk.TreeIter.TreeIter) -> Maybe (Gtk.TreeIter.TreeIter) -> m (Gtk.TreeIter.TreeIter)), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreInsertAfterMethodInfo a signature where
overloadedMethod _ = treeStoreInsertAfter
#endif
-- method TreeStore::insert_before
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An unset #GtkTreeIter to set to the new row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_insert_before" gtk_tree_store_insert_before ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- parent : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- sibling : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO ()
{- |
Inserts a new row before /@sibling@/. If /@sibling@/ is 'Nothing', then the row will
be appended to /@parent@/ ’s children. If /@parent@/ and /@sibling@/ are 'Nothing', then
the row will be appended to the toplevel. If both /@sibling@/ and /@parent@/ are
set, then /@parent@/ must be the parent of /@sibling@/. When /@sibling@/ is set,
/@parent@/ is optional.
/@iter@/ will be changed to point to this new row. The row will be empty after
this function is called. To fill in values, you need to call
@/gtk_tree_store_set()/@ or 'GI.Gtk.Objects.TreeStore.treeStoreSetValue'.
-}
treeStoreInsertBefore ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@parent@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@sibling@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> m (Gtk.TreeIter.TreeIter)
treeStoreInsertBefore treeStore parent sibling = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter <- callocBoxedBytes 32 :: IO (Ptr Gtk.TreeIter.TreeIter)
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- unsafeManagedPtrGetPtr jParent
return jParent'
maybeSibling <- case sibling of
Nothing -> return nullPtr
Just jSibling -> do
jSibling' <- unsafeManagedPtrGetPtr jSibling
return jSibling'
gtk_tree_store_insert_before treeStore' iter maybeParent maybeSibling
iter' <- (wrapBoxed Gtk.TreeIter.TreeIter) iter
touchManagedPtr treeStore
whenJust parent touchManagedPtr
whenJust sibling touchManagedPtr
return iter'
#if ENABLE_OVERLOADING
data TreeStoreInsertBeforeMethodInfo
instance (signature ~ (Maybe (Gtk.TreeIter.TreeIter) -> Maybe (Gtk.TreeIter.TreeIter) -> m (Gtk.TreeIter.TreeIter)), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreInsertBeforeMethodInfo a signature where
overloadedMethod _ = treeStoreInsertBefore
#endif
-- method TreeStore::insert_with_values
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An unset #GtkTreeIter to set the new row, or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "position to insert the new row, or -1 for last", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "columns", argType = TCArray False (-1) 6 (TBasicType TInt), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an array of column numbers", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "values", argType = TCArray False (-1) 6 (TInterface (Name {namespace = "GObject", name = "Value"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an array of GValues", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of the @columns and @values arrays", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_values", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of the @columns and @values arrays", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of the @columns and @values arrays", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_insert_with_valuesv" gtk_tree_store_insert_with_valuesv ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- parent : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Int32 -> -- position : TBasicType TInt
Ptr Int32 -> -- columns : TCArray False (-1) 6 (TBasicType TInt)
Ptr GValue -> -- values : TCArray False (-1) 6 (TInterface (Name {namespace = "GObject", name = "Value"}))
Int32 -> -- n_values : TBasicType TInt
IO ()
{- |
A variant of @/gtk_tree_store_insert_with_values()/@ which takes
the columns and values as two arrays, instead of varargs. This
function is mainly intended for language bindings.
/Since: 2.10/
-}
treeStoreInsertWithValues ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@parent@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> Int32
{- ^ /@position@/: position to insert the new row, or -1 for last -}
-> [Int32]
{- ^ /@columns@/: an array of column numbers -}
-> [GValue]
{- ^ /@values@/: an array of GValues -}
-> m (Gtk.TreeIter.TreeIter)
treeStoreInsertWithValues treeStore parent position columns values = liftIO $ do
let nValues = fromIntegral $ length values
let columns_expected_length_ = fromIntegral $ length columns
when (columns_expected_length_ /= nValues) $
error "Gtk.treeStoreInsertWithValues : length of 'columns' does not agree with that of 'values'."
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter <- callocBoxedBytes 32 :: IO (Ptr Gtk.TreeIter.TreeIter)
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- unsafeManagedPtrGetPtr jParent
return jParent'
columns' <- packStorableArray columns
values' <- mapM unsafeManagedPtrGetPtr values
values'' <- packBlockArray 24 values'
gtk_tree_store_insert_with_valuesv treeStore' iter maybeParent position columns' values'' nValues
iter' <- (wrapBoxed Gtk.TreeIter.TreeIter) iter
touchManagedPtr treeStore
whenJust parent touchManagedPtr
mapM_ touchManagedPtr values
freeMem columns'
freeMem values''
return iter'
#if ENABLE_OVERLOADING
data TreeStoreInsertWithValuesMethodInfo
instance (signature ~ (Maybe (Gtk.TreeIter.TreeIter) -> Int32 -> [Int32] -> [GValue] -> m (Gtk.TreeIter.TreeIter)), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreInsertWithValuesMethodInfo a signature where
overloadedMethod _ = treeStoreInsertWithValues
#endif
-- method TreeStore::is_ancestor
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "descendant", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_is_ancestor" gtk_tree_store_is_ancestor ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- descendant : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO CInt
{- |
Returns 'True' if /@iter@/ is an ancestor of /@descendant@/. That is, /@iter@/ is the
parent (or grandparent or great-grandparent) of /@descendant@/.
-}
treeStoreIsAncestor ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter' -}
-> Gtk.TreeIter.TreeIter
{- ^ /@descendant@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter' -}
-> m Bool
{- ^ __Returns:__ 'True', if /@iter@/ is an ancestor of /@descendant@/ -}
treeStoreIsAncestor treeStore iter descendant = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
descendant' <- unsafeManagedPtrGetPtr descendant
result <- gtk_tree_store_is_ancestor treeStore' iter' descendant'
let result' = (/= 0) result
touchManagedPtr treeStore
touchManagedPtr iter
touchManagedPtr descendant
return result'
#if ENABLE_OVERLOADING
data TreeStoreIsAncestorMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> Gtk.TreeIter.TreeIter -> m Bool), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreIsAncestorMethodInfo a signature where
overloadedMethod _ = treeStoreIsAncestor
#endif
-- method TreeStore::iter_depth
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_iter_depth" gtk_tree_store_iter_depth ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO Int32
{- |
Returns the depth of /@iter@/. This will be 0 for anything on the root level, 1
for anything down a level, etc.
-}
treeStoreIterDepth ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter' -}
-> m Int32
{- ^ __Returns:__ The depth of /@iter@/ -}
treeStoreIterDepth treeStore iter = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
result <- gtk_tree_store_iter_depth treeStore' iter'
touchManagedPtr treeStore
touchManagedPtr iter
return result
#if ENABLE_OVERLOADING
data TreeStoreIterDepthMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> m Int32), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreIterDepthMethodInfo a signature where
overloadedMethod _ = treeStoreIterDepth
#endif
-- method TreeStore::iter_is_valid
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_iter_is_valid" gtk_tree_store_iter_is_valid ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO CInt
{- |
WARNING: This function is slow. Only use it for debugging and\/or testing
purposes.
Checks if the given iter is a valid iter for this 'GI.Gtk.Objects.TreeStore.TreeStore'.
/Since: 2.2/
-}
treeStoreIterIsValid ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore'. -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A 'GI.Gtk.Structs.TreeIter.TreeIter'. -}
-> m Bool
{- ^ __Returns:__ 'True' if the iter is valid, 'False' if the iter is invalid. -}
treeStoreIterIsValid treeStore iter = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
result <- gtk_tree_store_iter_is_valid treeStore' iter'
let result' = (/= 0) result
touchManagedPtr treeStore
touchManagedPtr iter
return result'
#if ENABLE_OVERLOADING
data TreeStoreIterIsValidMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> m Bool), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreIterIsValidMethodInfo a signature where
overloadedMethod _ = treeStoreIterIsValid
#endif
-- method TreeStore::move_after
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_move_after" gtk_tree_store_move_after ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- position : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO ()
{- |
Moves /@iter@/ in /@treeStore@/ to the position after /@position@/. /@iter@/ and
/@position@/ should be in the same level. Note that this function only
works with unsorted stores. If /@position@/ is 'Nothing', /@iter@/ will be moved
to the start of the level.
/Since: 2.2/
-}
treeStoreMoveAfter ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore'. -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A 'GI.Gtk.Structs.TreeIter.TreeIter'. -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@position@/: A 'GI.Gtk.Structs.TreeIter.TreeIter'. -}
-> m ()
treeStoreMoveAfter treeStore iter position = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
maybePosition <- case position of
Nothing -> return nullPtr
Just jPosition -> do
jPosition' <- unsafeManagedPtrGetPtr jPosition
return jPosition'
gtk_tree_store_move_after treeStore' iter' maybePosition
touchManagedPtr treeStore
touchManagedPtr iter
whenJust position touchManagedPtr
return ()
#if ENABLE_OVERLOADING
data TreeStoreMoveAfterMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> Maybe (Gtk.TreeIter.TreeIter) -> m ()), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreMoveAfterMethodInfo a signature where
overloadedMethod _ = treeStoreMoveAfter
#endif
-- method TreeStore::move_before
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "position", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter or %NULL.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_move_before" gtk_tree_store_move_before ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- position : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO ()
{- |
Moves /@iter@/ in /@treeStore@/ to the position before /@position@/. /@iter@/ and
/@position@/ should be in the same level. Note that this function only
works with unsorted stores. If /@position@/ is 'Nothing', /@iter@/ will be
moved to the end of the level.
/Since: 2.2/
-}
treeStoreMoveBefore ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore'. -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A 'GI.Gtk.Structs.TreeIter.TreeIter'. -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@position@/: A 'GI.Gtk.Structs.TreeIter.TreeIter' or 'Nothing'. -}
-> m ()
treeStoreMoveBefore treeStore iter position = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
maybePosition <- case position of
Nothing -> return nullPtr
Just jPosition -> do
jPosition' <- unsafeManagedPtrGetPtr jPosition
return jPosition'
gtk_tree_store_move_before treeStore' iter' maybePosition
touchManagedPtr treeStore
touchManagedPtr iter
whenJust position touchManagedPtr
return ()
#if ENABLE_OVERLOADING
data TreeStoreMoveBeforeMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> Maybe (Gtk.TreeIter.TreeIter) -> m ()), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreMoveBeforeMethodInfo a signature where
overloadedMethod _ = treeStoreMoveBefore
#endif
-- method TreeStore::prepend
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An unset #GtkTreeIter to set to the prepended row", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_prepend" gtk_tree_store_prepend ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- parent : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO ()
{- |
Prepends a new row to /@treeStore@/. If /@parent@/ is non-'Nothing', then it will prepend
the new row before the first child of /@parent@/, otherwise it will prepend a row
to the top level. /@iter@/ will be changed to point to this new row. The row
will be empty after this function is called. To fill in values, you need to
call @/gtk_tree_store_set()/@ or 'GI.Gtk.Objects.TreeStore.treeStoreSetValue'.
-}
treeStorePrepend ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Maybe (Gtk.TreeIter.TreeIter)
{- ^ /@parent@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter', or 'Nothing' -}
-> m (Gtk.TreeIter.TreeIter)
treeStorePrepend treeStore parent = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter <- callocBoxedBytes 32 :: IO (Ptr Gtk.TreeIter.TreeIter)
maybeParent <- case parent of
Nothing -> return nullPtr
Just jParent -> do
jParent' <- unsafeManagedPtrGetPtr jParent
return jParent'
gtk_tree_store_prepend treeStore' iter maybeParent
iter' <- (wrapBoxed Gtk.TreeIter.TreeIter) iter
touchManagedPtr treeStore
whenJust parent touchManagedPtr
return iter'
#if ENABLE_OVERLOADING
data TreeStorePrependMethodInfo
instance (signature ~ (Maybe (Gtk.TreeIter.TreeIter) -> m (Gtk.TreeIter.TreeIter)), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStorePrependMethodInfo a signature where
overloadedMethod _ = treeStorePrepend
#endif
-- method TreeStore::remove
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_remove" gtk_tree_store_remove ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO CInt
{- |
Removes /@iter@/ from /@treeStore@/. After being removed, /@iter@/ is set to the
next valid row at that level, or invalidated if it previously pointed to the
last one.
-}
treeStoreRemove ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter' -}
-> m Bool
{- ^ __Returns:__ 'True' if /@iter@/ is still valid, 'False' if not. -}
treeStoreRemove treeStore iter = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
result <- gtk_tree_store_remove treeStore' iter'
let result' = (/= 0) result
touchManagedPtr treeStore
touchManagedPtr iter
return result'
#if ENABLE_OVERLOADING
data TreeStoreRemoveMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> m Bool), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreRemoveMethodInfo a signature where
overloadedMethod _ = treeStoreRemove
#endif
-- method TreeStore::set_column_types
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_columns", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of columns for the tree store", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "types", argType = TCArray False (-1) 1 (TBasicType TGType), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "An array of #GType types, one for each column", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_columns", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Number of columns for the tree store", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_set_column_types" gtk_tree_store_set_column_types ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Int32 -> -- n_columns : TBasicType TInt
Ptr CGType -> -- types : TCArray False (-1) 1 (TBasicType TGType)
IO ()
{- |
This function is meant primarily for @/GObjects/@ that inherit from
'GI.Gtk.Objects.TreeStore.TreeStore', and should only be used when constructing a new
'GI.Gtk.Objects.TreeStore.TreeStore'. It will not function after a row has been added,
or a method on the 'GI.Gtk.Interfaces.TreeModel.TreeModel' interface is called.
-}
treeStoreSetColumnTypes ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> [GType]
{- ^ /@types@/: An array of 'GType' types, one for each column -}
-> m ()
treeStoreSetColumnTypes treeStore types = liftIO $ do
let nColumns = fromIntegral $ length types
treeStore' <- unsafeManagedPtrCastPtr treeStore
types' <- (packMapStorableArray gtypeToCGType) types
gtk_tree_store_set_column_types treeStore' nColumns types'
touchManagedPtr treeStore
freeMem types'
return ()
#if ENABLE_OVERLOADING
data TreeStoreSetColumnTypesMethodInfo
instance (signature ~ ([GType] -> m ()), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreSetColumnTypesMethodInfo a signature where
overloadedMethod _ = treeStoreSetColumnTypes
#endif
-- method TreeStore::set_value
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter for the row being modified", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "column number to modify", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface (Name {namespace = "GObject", name = "Value"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "new value for the cell", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_set_value" gtk_tree_store_set_value ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Int32 -> -- column : TBasicType TInt
Ptr GValue -> -- value : TInterface (Name {namespace = "GObject", name = "Value"})
IO ()
{- |
Sets the data in the cell specified by /@iter@/ and /@column@/.
The type of /@value@/ must be convertible to the type of the
column.
-}
treeStoreSetValue ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: a 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter' for the row being modified -}
-> Int32
{- ^ /@column@/: column number to modify -}
-> GValue
{- ^ /@value@/: new value for the cell -}
-> m ()
treeStoreSetValue treeStore iter column value = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
value' <- unsafeManagedPtrGetPtr value
gtk_tree_store_set_value treeStore' iter' column value'
touchManagedPtr treeStore
touchManagedPtr iter
touchManagedPtr value
return ()
#if ENABLE_OVERLOADING
data TreeStoreSetValueMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> Int32 -> GValue -> m ()), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreSetValueMethodInfo a signature where
overloadedMethod _ = treeStoreSetValue
#endif
-- method TreeStore::set
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iter", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A valid #GtkTreeIter for the row being modified", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "columns", argType = TCArray False (-1) 4 (TBasicType TInt), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an array of column numbers", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "values", argType = TCArray False (-1) 4 (TInterface (Name {namespace = "GObject", name = "Value"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an array of GValues", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of the @columns and @values arrays", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_values", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of the @columns and @values arrays", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of the @columns and @values arrays", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_set_valuesv" gtk_tree_store_set_valuesv ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Int32 -> -- columns : TCArray False (-1) 4 (TBasicType TInt)
Ptr GValue -> -- values : TCArray False (-1) 4 (TInterface (Name {namespace = "GObject", name = "Value"}))
Int32 -> -- n_values : TBasicType TInt
IO ()
{- |
A variant of @/gtk_tree_store_set_valist()/@ which takes
the columns and values as two arrays, instead of varargs. This
function is mainly intended for language bindings or in case
the number of columns to change is not known until run-time.
/Since: 2.12/
-}
treeStoreSet ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore' -}
-> Gtk.TreeIter.TreeIter
{- ^ /@iter@/: A valid 'GI.Gtk.Structs.TreeIter.TreeIter' for the row being modified -}
-> [Int32]
{- ^ /@columns@/: an array of column numbers -}
-> [GValue]
{- ^ /@values@/: an array of GValues -}
-> m ()
treeStoreSet treeStore iter columns values = liftIO $ do
let nValues = fromIntegral $ length values
let columns_expected_length_ = fromIntegral $ length columns
when (columns_expected_length_ /= nValues) $
error "Gtk.treeStoreSet : length of 'columns' does not agree with that of 'values'."
treeStore' <- unsafeManagedPtrCastPtr treeStore
iter' <- unsafeManagedPtrGetPtr iter
columns' <- packStorableArray columns
values' <- mapM unsafeManagedPtrGetPtr values
values'' <- packBlockArray 24 values'
gtk_tree_store_set_valuesv treeStore' iter' columns' values'' nValues
touchManagedPtr treeStore
touchManagedPtr iter
mapM_ touchManagedPtr values
freeMem columns'
freeMem values''
return ()
#if ENABLE_OVERLOADING
data TreeStoreSetMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> [Int32] -> [GValue] -> m ()), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreSetMethodInfo a signature where
overloadedMethod _ = treeStoreSet
#endif
-- method TreeStore::swap
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_store", argType = TInterface (Name {namespace = "Gtk", name = "TreeStore"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeStore.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeIter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface (Name {namespace = "Gtk", name = "TreeIter"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Another #GtkTreeIter.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "gtk_tree_store_swap" gtk_tree_store_swap ::
Ptr TreeStore -> -- tree_store : TInterface (Name {namespace = "Gtk", name = "TreeStore"})
Ptr Gtk.TreeIter.TreeIter -> -- a : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
Ptr Gtk.TreeIter.TreeIter -> -- b : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
IO ()
{- |
Swaps /@a@/ and /@b@/ in the same level of /@treeStore@/. Note that this function
only works with unsorted stores.
/Since: 2.2/
-}
treeStoreSwap ::
(B.CallStack.HasCallStack, MonadIO m, IsTreeStore a) =>
a
{- ^ /@treeStore@/: A 'GI.Gtk.Objects.TreeStore.TreeStore'. -}
-> Gtk.TreeIter.TreeIter
{- ^ /@a@/: A 'GI.Gtk.Structs.TreeIter.TreeIter'. -}
-> Gtk.TreeIter.TreeIter
{- ^ /@b@/: Another 'GI.Gtk.Structs.TreeIter.TreeIter'. -}
-> m ()
treeStoreSwap treeStore a b = liftIO $ do
treeStore' <- unsafeManagedPtrCastPtr treeStore
a' <- unsafeManagedPtrGetPtr a
b' <- unsafeManagedPtrGetPtr b
gtk_tree_store_swap treeStore' a' b'
touchManagedPtr treeStore
touchManagedPtr a
touchManagedPtr b
return ()
#if ENABLE_OVERLOADING
data TreeStoreSwapMethodInfo
instance (signature ~ (Gtk.TreeIter.TreeIter -> Gtk.TreeIter.TreeIter -> m ()), MonadIO m, IsTreeStore a) => O.MethodInfo TreeStoreSwapMethodInfo a signature where
overloadedMethod _ = treeStoreSwap
#endif