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.TreeModelFilter

Contents

Description

A TreeModel which hides parts of an underlying tree model

  • Module available since Gtk+ version 2.4

Synopsis

Detail

A TreeModelFilter is a tree model which wraps another tree model, and can do the following things:

  • Filter specific rows, based on a function that examines each row indicating whether the row should be shown or not, or based on the return value of a visibility function, which is passed the TreeIter of the row and returns a Boolean indicating whether the row should be shown or not.
  • Set a different root node, also known as a "virtual root". You can pass in a TreePath indicating the root node for the filter at construction time.

Class Hierarchy

 | GObject
 | +----TreeModelFilter
 | +----TypedTreeModelFilter

Types

Constructors

treeModelFilterNewSource

Arguments

:: (TreeModelClass (childModel row), TypedTreeModelClass childModel) 
=> childModel row

childModel - A TreeModel.

-> TreePath

root - A TreePath or [].

-> IO (TypedTreeModelFilter row) 

Creates a new TreeModel, with childModel as the child model and root as the virtual root.

Methods

treeModelFilterSetVisibleFuncSource

Arguments

:: TreeModelFilterClass self 
=> self 
-> (TreeIter -> IO Bool)

func - The visible function

-> IO () 

Sets the visible function used when filtering the rows to be func. The function should return True if the given row should be visible and False otherwise. The passed-in iterator is an iterator of the child model, not of the TreeModelFilter model that is passed in as the first argument to this function.

If the condition calculated by the function changes over time (e.g. because it depends on some global parameters), you must call treeModelFilterRefilter to keep the visibility information of the model up to date.

treeModelFilterSetVisibleColumnSource

Arguments

:: (TreeModelFilterClass (self row), TypedTreeModelClass self) 
=> self row 
-> ColumnId row Bool

column - A column of Booleans that determines if a row is visible

-> IO () 

Sets column of the child model to be the column where the filter model should look for visibility information. A row containing True means that this row should be shown.

treeModelFilterGetModelSource

Arguments

:: TreeModelFilterClass self 
=> self 
-> IO (Maybe TreeModel)

returns a TreeModel.

Returns a pointer to the child model of filter.

treeModelFilterConvertChildIterToIter :: TreeModelFilterClass self => self -> TreeIter -> IO TreeIterSource

Return an iterator in the sorted model that points to the row pointed to by the given iter from the unfiltered model.

treeModelFilterConvertIterToChildIter :: TreeModelFilterClass self => self -> TreeIter -> IO TreeIterSource

Return an iterator in the unfiltered model that points to the row pointed to by the given iter from the filtered model.

treeModelFilterConvertChildPathToPath :: TreeModelFilterClass self => self -> TreePath -> IO TreePathSource

Converts the given path to a path relative to the given filtered model.

  • The given path points to a row in the child model. The returned path will point to the same row in the filtered model.

treeModelFilterConvertPathToChildPath :: TreeModelFilterClass self => self -> TreePath -> IO TreePathSource

Converts path in the filtered model to a path on the unfiltered model on which the given TreeModelFilter is based. That is, the given path points to a location in the given TreeModelFilter. The returned path will point to the same location in the underlying unfiltered model.

treeModelFilterRefilter :: TreeModelFilterClass self => self -> IO ()Source

Emits rowChanged for each row in the child model, which causes the filter to re-evaluate whether a row is visible or not.

treeModelFilterClearCacheSource

Arguments

:: TreeModelFilterClass self 
=> self

filter - the filter model

-> IO () 

This function should almost never be called. It clears the filter of any cached iterators that haven't been reffed with treeModelRefNode. This might be useful if the child model being filtered is static (and doesn't change often) and there has been a lot of unreffed access to nodes. As a side effect of this function, all unreffed iters will be invalid.

Attributes

treeModelFilterChildModel :: TreeModelFilterClass self => ReadAttr self TreeModelSource

The model for the filtermodel to filter.

treeModelFilterVirtualRoot :: TreeModelFilterClass self => ReadAttr self TreePathSource

The virtual root (relative to the child model) for this filtermodel.