| Gtk2Hs | Contents | Index

Graphics.UI.Gtk.ModelView.TreeSelection

Portability | portable (depends on GHC)
Stability | provisional
Maintainer | gtk2hs-users@lists.sourceforge.net

Contents

Detail
Class Hierarchy
Types
Methods
Attributes
Signals

Description
The selection object for `TreeView`
Synopsis

data TreeSelection
class GObjectClass o => TreeSelectionClass o
castToTreeSelection :: GObjectClass obj => obj -> TreeSelection
toTreeSelection :: TreeSelectionClass o => o -> TreeSelection

data SelectionMode

= SelectionNone
| SelectionSingle
| SelectionBrowse
| SelectionMultiple

type TreeSelectionCB = TreePath -> IO Bool
type TreeSelectionForeachCB = TreeIter -> IO ()
treeSelectionSetMode :: TreeSelectionClass self => self -> SelectionMode -> IO ()
treeSelectionGetMode :: TreeSelectionClass self => self -> IO SelectionMode
treeSelectionSetSelectFunction :: TreeSelectionClass self => self -> TreeSelectionCB -> IO ()
treeSelectionGetTreeView :: TreeSelectionClass self => self -> IO TreeView
treeSelectionGetSelected :: TreeSelectionClass self => self -> IO (Maybe TreeIter)
treeSelectionSelectedForeach :: TreeSelectionClass self => self -> TreeSelectionForeachCB -> IO ()
treeSelectionGetSelectedRows :: TreeSelectionClass self => self -> IO [TreePath]
treeSelectionCountSelectedRows :: TreeSelectionClass self => self -> IO Int
treeSelectionSelectPath :: TreeSelectionClass self => self -> TreePath -> IO ()
treeSelectionUnselectPath :: TreeSelectionClass self => self -> TreePath -> IO ()
treeSelectionPathIsSelected :: TreeSelectionClass self => self -> TreePath -> IO Bool
treeSelectionSelectIter :: TreeSelectionClass self => self -> TreeIter -> IO ()
treeSelectionUnselectIter :: TreeSelectionClass self => self -> TreeIter -> IO ()
treeSelectionIterIsSelected :: TreeSelectionClass self => self -> TreeIter -> IO Bool
treeSelectionSelectAll :: TreeSelectionClass self => self -> IO ()
treeSelectionUnselectAll :: TreeSelectionClass self => self -> IO ()
treeSelectionSelectRange :: TreeSelectionClass self => self -> TreePath -> TreePath -> IO ()
treeSelectionUnselectRange :: TreeSelectionClass self => self -> TreePath -> TreePath -> IO ()
treeSelectionMode :: TreeSelectionClass self => Attr self SelectionMode
onSelectionChanged :: TreeSelectionClass self => self -> IO () -> IO (ConnectId self)
afterSelectionChanged :: TreeSelectionClass self => self -> IO () -> IO (ConnectId self)

Detail

The `TreeSelection` object is a helper object to manage the selection for a `TreeView` widget. The `TreeSelection` object is automatically created when a new `TreeView` widget is created, and cannot exist independentally of this widget. The primary reason the `TreeSelection` objects exists is for cleanliness of code and API. That is, there is no conceptual reason all these functions could not be methods on the `TreeView` widget instead of a separate function.

The `TreeSelection` object is gotten from a `TreeView` by calling Graphics.UI.Gtk.TreeList.TreeView.treeViewGetSelection. It can be manipulated to check the selection status of the tree, as well as select and deselect individual rows. Selection is done completely on the `TreeView` side. As a result, multiple views of the same model can have completely different selections. Additionally, you cannot change the selection of a row on the model that is not currently displayed by the view without expanding its parents first.

One of the important things to remember when monitoring the selection of a view is that the "changed" signal is mostly a hint. That is, it may only emit one signal when a range of rows is selected. Additionally, it may on occasion emit a "changed" signal when nothing has happened (mostly as a result of programmers calling select_row on an already selected row).

Class Hierarchy

     |  GObject
     |   +----TreeSelection

Types
data TreeSelection

Instances

GObjectClass TreeSelection
TreeSelectionClass TreeSelection

class GObjectClass o => TreeSelectionClass o

Instances

TreeSelectionClass TreeSelection

castToTreeSelection :: GObjectClass obj => obj -> TreeSelection
toTreeSelection :: TreeSelectionClass o => o -> TreeSelection
data SelectionMode

Mode in which selections can be performed

- There is a deprecated entry SelectionExtended which should have the same value as SelectionMultiple. C2HS chokes on that construct.

Constructors

SelectionNone |
SelectionSingle |
SelectionBrowse |
SelectionMultiple |

Instances

Enum SelectionMode
Eq SelectionMode
Show SelectionMode

type TreeSelectionCB = TreePath -> IO Bool
Callback type for a function that is called everytime the selection changes. This function is set with `treeSelectionSetSelectFunction`.
type TreeSelectionForeachCB = TreeIter -> IO ()
Callback function type for `treeSelectionSelectedForeach`.
Methods
treeSelectionSetMode :: TreeSelectionClass self => self -> SelectionMode -> IO ()
Set single or multiple choice.
treeSelectionGetMode :: TreeSelectionClass self => self -> IO SelectionMode
Gets the selection mode.
treeSelectionSetSelectFunction :: TreeSelectionClass self => self -> TreeSelectionCB -> IO ()

Set a callback function if selection changes.

- If set, this function is called before any node is selected or unselected, giving some control over which nodes are selected. The select function should return `True` if the state of the node may be toggled, and `False` if the state of the node should be left unchanged.

treeSelectionGetTreeView :: TreeSelectionClass self => self -> IO TreeView
Retrieve the `TreeView` widget that this `TreeSelection` works on.
treeSelectionGetSelected :: TreeSelectionClass self => self -> IO (Maybe TreeIter)
Retrieves the selection of a single choice `TreeSelection`.
treeSelectionSelectedForeach :: TreeSelectionClass self => self -> TreeSelectionForeachCB -> IO ()

Execute a function for each selected node.

- Note that you cannot modify the tree or selection from within this function. Hence, `treeSelectionGetSelectedRows` might be more useful.

treeSelectionGetSelectedRows

:: TreeSelectionClass self |
=> self |
-> IO [TreePath] | returns a list containing a `TreePath` for each selected row.

Creates a list of paths of all selected rows.

- Additionally, if you are planning on modifying the model after calling this function, you may want to convert the returned list into a list of TreeRowReferences. To do this, you can use treeRowReferenceNew.
- Available since Gtk+ version 2.2

treeSelectionCountSelectedRows

:: TreeSelectionClass self |
=> self |
-> IO Int | returns The number of rows selected.

Returns the number of rows that are selected.

- Available since Gtk+ version 2.2

treeSelectionSelectPath :: TreeSelectionClass self => self -> TreePath -> IO ()
Select a specific item by `TreePath`.
treeSelectionUnselectPath :: TreeSelectionClass self => self -> TreePath -> IO ()
Deselect a specific item by `TreePath`.
treeSelectionPathIsSelected :: TreeSelectionClass self => self -> TreePath -> IO Bool
Returns True if the row at the given path is currently selected.
treeSelectionSelectIter :: TreeSelectionClass self => self -> TreeIter -> IO ()
Select a specific item by `TreeIter`.
treeSelectionUnselectIter :: TreeSelectionClass self => self -> TreeIter -> IO ()
Deselect a specific item by `TreeIter`.
treeSelectionIterIsSelected :: TreeSelectionClass self => self -> TreeIter -> IO Bool
Returns True if the row at the given iter is currently selected.
treeSelectionSelectAll :: TreeSelectionClass self => self -> IO ()
Selects all the nodes. The tree selection must be set to `SelectionMultiple` mode.
treeSelectionUnselectAll :: TreeSelectionClass self => self -> IO ()
Unselects all the nodes.
treeSelectionSelectRange

:: TreeSelectionClass self |
=> self |
-> TreePath | `startPath` - The initial node of the range.
-> TreePath | `endPath` - The final node of the range.
-> IO () |
Selects a range of nodes, determined by `startPath` and `endPath` inclusive. `selection` must be set to `SelectionMultiple` mode.

treeSelectionUnselectRange

:: TreeSelectionClass self |
=> self |
-> TreePath | `startPath` - The initial node of the range.
-> TreePath | `endPath` - The initial node of the range.
-> IO () |

Unselects a range of nodes, determined by `startPath` and `endPath` inclusive.

- Available since Gtk+ version 2.2

Attributes
treeSelectionMode :: TreeSelectionClass self => Attr self SelectionMode
'mode' property. See `treeSelectionGetMode` and `treeSelectionSetMode`
Signals
onSelectionChanged :: TreeSelectionClass self => self -> IO () -> IO (ConnectId self)
afterSelectionChanged :: TreeSelectionClass self => self -> IO () -> IO (ConnectId self)
Emitted whenever the selection has (possibly) changed. Please note that this signal is mostly a hint. It may only be emitted once when a range of rows are selected, and it may occasionally be emitted when nothing has happened.
Produced by Haddock version 2.4.2