Graphics.UI.Gtk.ModelView.TreeSelection

gtk-0.12.4: Binding to the Gtk+ graphical user interface library.

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

Graphics.UI.Gtk.ModelView.TreeSelection

Contents

- Detail
- Class Hierarchy
- Types
- Methods
- Attributes
- Signals
- Deprecated

Description

The selection object for `TreeView`

Synopsis

- data TreeSelection
- class GObjectClass o => TreeSelectionClass o
- castToTreeSelection :: GObjectClass obj => obj -> TreeSelection
- gTypeTreeSelection :: GType
- 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
- treeSelectionSelectionChanged :: TreeSelectionClass self => Signal self (IO ())
- 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 `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

Eq TreeSelection |
Ord TreeSelection |
GObjectClass TreeSelection |
TreeSelectionClass TreeSelection |

class GObjectClass o => TreeSelectionClass o

Instances

TreeSelectionClass TreeSelection |

castToTreeSelection :: GObjectClass obj => obj -> TreeSelection

gTypeTreeSelection :: GType

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

Arguments

:: 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 `TreeRowReference`s. To do this, you can use `treeRowReferenceNew`.
- Available since Gtk+ version 2.2

treeSelectionCountSelectedRows

Arguments

:: 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

Arguments

:: 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

Arguments

:: 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

treeSelectionSelectionChanged :: TreeSelectionClass self => Signal self (IO ())

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.

# Deprecated

onSelectionChanged :: TreeSelectionClass self => self -> IO () -> IO (ConnectId self)

afterSelectionChanged :: TreeSelectionClass self => self -> IO () -> IO (ConnectId self)