Gtk2HsContentsIndex
Graphics.UI.Gtk.ModelView.CustomStore
Portabilityportable (depends on GHC)
Stabilityprovisional
Maintainergtk2hs-users@lists.sourceforge.net
Contents
The definition of a row-based store.
Extracting a specific datum from the row-oriented store for
Description
Allows a custom data structure to be used with the TreeView
Synopsis
data CustomTreeModel private row
data TreeModelFlags
= TreeModelItersPersist
| TreeModelListOnly
data TreeModelIface row = TreeModelIface {
treeModelIfaceGetFlags :: (IO [TreeModelFlags])
treeModelIfaceGetIter :: (TreePath -> IO (Maybe TreeIter))
treeModelIfaceGetPath :: (TreeIter -> IO TreePath)
treeModelIfaceGetRow :: (TreeIter -> IO row)
treeModelIfaceIterNext :: (TreeIter -> IO (Maybe TreeIter))
treeModelIfaceIterChildren :: (Maybe TreeIter -> IO (Maybe TreeIter))
treeModelIfaceIterHasChild :: (TreeIter -> IO Bool)
treeModelIfaceIterNChildren :: (Maybe TreeIter -> IO Int)
treeModelIfaceIterNthChild :: (Maybe TreeIter -> Int -> IO (Maybe TreeIter))
treeModelIfaceIterParent :: (TreeIter -> IO (Maybe TreeIter))
treeModelIfaceRefNode :: (TreeIter -> IO ())
treeModelIfaceUnrefNode :: (TreeIter -> IO ())
}
data DragSourceIface model row = DragSourceIface {
treeDragSourceRowDraggable :: (model row -> TreePath -> IO Bool)
treeDragSourceDragDataGet :: (model row -> TreePath -> SelectionDataM Bool)
treeDragSourceDragDataDelete :: (model row -> TreePath -> IO Bool)
}
data DragDestIface model row = DragDestIface {
treeDragDestRowDropPossible :: (model row -> TreePath -> SelectionDataM Bool)
treeDragDestDragDataReceived :: (model row -> TreePath -> SelectionDataM Bool)
}
customTreeModelNew :: (TreeModelClass (model row), TypedTreeModelClass model) => private -> (CustomTreeModel private row -> model row) -> TreeModelIface row -> Maybe (DragSourceIface model row) -> Maybe (DragDestIface model row) -> IO (model row)
treeModelGetRow :: TypedTreeModelClass model => model row -> TreeIter -> IO row
customTreeModelGetPrivate :: CustomTreeModel private row -> private
customTreeModelGetStamp :: CustomTreeModel private row -> IO CInt
customTreeModelInvalidateIters :: CustomTreeModel private row -> IO ()
data ColumnId row ty
makeColumnIdInt :: Int -> ColumnId row Int
makeColumnIdBool :: Int -> ColumnId row Bool
makeColumnIdString :: Int -> ColumnId row String
makeColumnIdPixbuf :: Int -> ColumnId row Pixbuf
columnIdToNumber :: ColumnId row ty -> Int
invalidColumnId :: ColumnId row ty
treeModelSetColumn :: TypedTreeModelClass model => model row -> ColumnId row ty -> (row -> ty) -> IO ()
The definition of a row-based store.
data CustomTreeModel private row
A CustomTreeModel is backed by a Gtk2HsStore which is an instance of the GtkTreeModel GInterface it also stores some extra per-model-type private data
show/hide Instances
data TreeModelFlags

These flags indicate various properties of a TreeModel.

Constructors
TreeModelItersPersist
TreeModelListOnly
show/hide Instances
data TreeModelIface row
Constructors
TreeModelIface
treeModelIfaceGetFlags :: (IO [TreeModelFlags])
treeModelIfaceGetIter :: (TreePath -> IO (Maybe TreeIter))
treeModelIfaceGetPath :: (TreeIter -> IO TreePath)
treeModelIfaceGetRow :: (TreeIter -> IO row)
treeModelIfaceIterNext :: (TreeIter -> IO (Maybe TreeIter))
treeModelIfaceIterChildren :: (Maybe TreeIter -> IO (Maybe TreeIter))
treeModelIfaceIterHasChild :: (TreeIter -> IO Bool)
treeModelIfaceIterNChildren :: (Maybe TreeIter -> IO Int)
treeModelIfaceIterNthChild :: (Maybe TreeIter -> Int -> IO (Maybe TreeIter))
treeModelIfaceIterParent :: (TreeIter -> IO (Maybe TreeIter))
treeModelIfaceRefNode :: (TreeIter -> IO ())
treeModelIfaceUnrefNode :: (TreeIter -> IO ())
data DragSourceIface model row
Constructors
DragSourceIface
treeDragSourceRowDraggable :: (model row -> TreePath -> IO Bool)
treeDragSourceDragDataGet :: (model row -> TreePath -> SelectionDataM Bool)
treeDragSourceDragDataDelete :: (model row -> TreePath -> IO Bool)
data DragDestIface model row
Constructors
DragDestIface
treeDragDestRowDropPossible :: (model row -> TreePath -> SelectionDataM Bool)
treeDragDestDragDataReceived :: (model row -> TreePath -> SelectionDataM Bool)
customTreeModelNew
:: (TreeModelClass (model row), TypedTreeModelClass model)
=> privateAny private data the store needs to store. Usually an IORef.
-> (CustomTreeModel private row -> model row)
-> TreeModelIface rowFunctions necessary to implement the TreeModel interface.
-> Maybe (DragSourceIface model row)Functions to enable this store to generate drag events.
-> Maybe (DragDestIface model row)Functions to enable this store to receive drag events.
-> IO (model row)
Create a new store that implements the TreeModelIface interface and optionally the DragSourceIface and the DragDestIface. If the latter two are set to Nothing a dummy interface is substituted that rejects every drag and drop.
treeModelGetRow :: TypedTreeModelClass model => model row -> TreeIter -> IO row
customTreeModelGetPrivate :: CustomTreeModel private row -> private
customTreeModelGetStamp :: CustomTreeModel private row -> IO CInt
customTreeModelInvalidateIters :: CustomTreeModel private row -> IO ()
Extracting a specific datum from the row-oriented store for
data ColumnId row ty
The type of a tree column.
show/hide Instances
Eq (ColumnId row ty)
Show (ColumnId row ty)
makeColumnIdInt :: Int -> ColumnId row Int
Create a ColumnId to extract an integer.
makeColumnIdBool :: Int -> ColumnId row Bool
Create a ColumnId to extract an Boolean.
makeColumnIdString :: Int -> ColumnId row String
Create a ColumnId to extract an string.
makeColumnIdPixbuf :: Int -> ColumnId row Pixbuf
Create a ColumnId to extract an Pixbuf.
columnIdToNumber :: ColumnId row ty -> Int
Convert a ColumnId to a bare number.
invalidColumnId :: ColumnId row ty
The invalid ColumnId. Widgets use this value if no column id has been set.
treeModelSetColumn
:: TypedTreeModelClass model
=> model rowthe store in which to allocate a new column
-> ColumnId row tythe column that should be set
-> (row -> ty)the function that sets the property
-> IO ()returns the newly assigned column
Set or update a column mapping.
Produced by Haddock version 0.8