gtk3-0.12.5.6: Binding to the Gtk+ graphical user interface library.

Portabilityportable (depends on GHC)
Stabilityprovisional
Maintainergtk2hs-users@lists.sourceforge.net
Safe HaskellNone

Graphics.UI.Gtk.ModelView.TreeStore

Contents

Description

Standard model to store hierarchical data.

Synopsis

Types

data TreeStore a Source

A store for hierarchical data.

Constructors

treeStoreNew :: Forest a -> IO (TreeStore a)Source

Create a new list store.

  • The given rose tree determines the initial content and may be the empty list. Each Tree in the forest corresponds to one top-level node.

treeStoreNewDNDSource

Arguments

:: Forest a

the inital tree stored in this model

-> Maybe (DragSourceIface TreeStore a)

an optional interface for drags

-> Maybe (DragDestIface TreeStore a)

an optional interface to handle drops

-> IO (TreeStore a) 

Create a new list store.

  • In addition to treeStoreNew, this function takes an two interfaces to implement user-defined drag-and-drop functionality.

Implementation of Interfaces

treeStoreDefaultDragSourceIface :: DragSourceIface TreeStore rowSource

Default drag functions for TreeStore. These functions allow the rows of the model to serve as drag source. Any row is allowed to be dragged and the data set in the SelectionDataM object is set with treeSetRowDragData, i.e. it contains the model and the TreePath to the row.

treeStoreDefaultDragDestIface :: DragDestIface TreeStore rowSource

Default drop functions for TreeStore. These functions accept a row and insert the row into the new location if it is dragged into a tree view that uses the same model.

Methods

treeStoreGetValue :: TreeStore a -> TreePath -> IO aSource

Extract one node from the current model. Fails if the given TreePath refers to a non-existent node.

treeStoreGetTree :: TreeStore a -> TreePath -> IO (Tree a)Source

Extract a subtree from the current model. Fails if the given TreePath refers to a non-existent node.

treeStoreLookup :: TreeStore a -> TreePath -> IO (Maybe (Tree a))Source

Extract a subtree from the current model. Like treeStoreGetTree but returns Nothing if the path refers to a non-existant node.

treeStoreSetValue :: TreeStore a -> TreePath -> a -> IO ()Source

Set a node in the store.

treeStoreInsertSource

Arguments

:: TreeStore a

the store

-> TreePath

path - the position of the parent

-> Int

pos - the index of the new tree

-> a

the value to be inserted

-> IO () 

Insert a single node into the store.

  • This function inserts a single node without children into the tree. Its arguments are similar to those of treeStoreInsert.

treeStoreInsertTreeSource

Arguments

:: TreeStore a

the store

-> TreePath

path - the position of the parent

-> Int

pos - the index of the new tree

-> Tree a

the value to be inserted

-> IO () 

Insert a node into the store.

treeStoreInsertForestSource

Arguments

:: TreeStore a

the store

-> TreePath

path - the position of the parent

-> Int

pos - the index of the new tree

-> Forest a

the list of trees to be inserted

-> IO () 

Insert nodes into the store.

  • The given list of nodes is inserted into given parent at pos. If the parent existed, the function returns Just path where path is the position of the newly inserted elements. If pos is negative or greater or equal to the number of children of the node at path, the new nodes are appended to the list.

treeStoreRemove :: TreeStore a -> TreePath -> IO BoolSource

Remove a node from the store.

  • The node denoted by the path is removed, along with all its children. The function returns True if the given node was found.

treeStoreChange :: TreeStore a -> TreePath -> (a -> a) -> IO BoolSource

Change a node in the store.

  • Returns True if the node was found. For a monadic version, see treeStoreChangeM.

treeStoreChangeM :: TreeStore a -> TreePath -> (a -> IO a) -> IO BoolSource

Change a node in the store.

  • Returns True if the node was found. For a purely functional version, see treeStoreChange.