gi-gtk-3.0.43: Gtk bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | None
Language | Haskell2010

GI.Gtk.Structs.TreeRowReference

Contents

- Exported types
- Methods
  - copy
  - deleted
  - free
  - getModel
  - getPath
  - inserted
  - new
  - newProxy
  - valid

Description

A GtkTreeRowReference tracks model changes so that it always refers to the same row (a `TreePath` refers to a position, not a fixed row). Create a new GtkTreeRowReference with `treeRowReferenceNew`.

Synopsis

- newtype TreeRowReference = TreeRowReference (ManagedPtr TreeRowReference)
- treeRowReferenceCopy :: (HasCallStack, MonadIO m) => TreeRowReference -> m TreeRowReference
- treeRowReferenceDeleted :: (HasCallStack, MonadIO m, IsObject a) => a -> TreePath -> m ()
- treeRowReferenceFree :: (HasCallStack, MonadIO m) => Maybe TreeRowReference -> m ()
- treeRowReferenceGetModel :: (HasCallStack, MonadIO m) => TreeRowReference -> m TreeModel
- treeRowReferenceGetPath :: (HasCallStack, MonadIO m) => TreeRowReference -> m (Maybe TreePath)
- treeRowReferenceInserted :: (HasCallStack, MonadIO m, IsObject a) => a -> TreePath -> m ()
- treeRowReferenceNew :: (HasCallStack, MonadIO m, IsTreeModel a) => a -> TreePath -> m TreeRowReference
- treeRowReferenceNewProxy :: (HasCallStack, MonadIO m, IsObject a, IsTreeModel b) => a -> b -> TreePath -> m TreeRowReference
- treeRowReferenceValid :: (HasCallStack, MonadIO m) => Maybe TreeRowReference -> m Bool

# Exported types

newtype TreeRowReference Source #

Memory-managed wrapper type.

Constructors

TreeRowReference (ManagedPtr TreeRowReference) |

#### Instances

Instances details

Eq TreeRowReference Source # |
Instance details Defined in GI.Gtk.Structs.TreeRowReference Methods (==) :: TreeRowReference -> TreeRowReference -> Bool Source # (/=) :: TreeRowReference -> TreeRowReference -> Bool Source #
GBoxed TreeRowReference Source # |
Instance details Defined in GI.Gtk.Structs.TreeRowReference
ManagedPtrNewtype TreeRowReference Source # |
Instance details Defined in GI.Gtk.Structs.TreeRowReference Methods toManagedPtr :: TreeRowReference -> ManagedPtr TreeRowReference Source #
TypedObject TreeRowReference Source # |
Instance details Defined in GI.Gtk.Structs.TreeRowReference Methods glibType :: IO GType Source #
HasParentTypes TreeRowReference Source # |
Instance details Defined in GI.Gtk.Structs.TreeRowReference
IsGValue (Maybe TreeRowReference) Source # | Convert `TreeRowReference` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.Gtk.Structs.TreeRowReference Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe TreeRowReference -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe TreeRowReference) Source #
type ParentTypes TreeRowReference Source # |
Instance details Defined in GI.Gtk.Structs.TreeRowReference type ParentTypes TreeRowReference = '[] :: [Type]

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

copy, free, valid.

#### Getters

getModel, getPath.

#### Setters

None.

## copy

treeRowReferenceCopy Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> TreeRowReference | `reference`: a `TreeRowReference`
-> m TreeRowReference | Returns: a copy of `reference`

Copies a `TreeRowReference`.

Since: 2.2

## deleted

treeRowReferenceDeleted Source #

Arguments

:: (HasCallStack, MonadIO m, IsObject a) |
=> a | `proxy`: a `Object`
-> TreePath | `path`: the path position that was deleted
-> m () |

Lets a set of row reference created by `treeRowReferenceNewProxy` know that the model emitted the TreeModel::rowDeleted signal.

## free

treeRowReferenceFree Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Maybe TreeRowReference | `reference`: a `TreeRowReference`, or `Nothing`
-> m () |

Free’s `reference`. `reference` may be `Nothing`

## getModel

treeRowReferenceGetModel Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> TreeRowReference | `reference`: a `TreeRowReference`
-> m TreeModel | Returns: the model

Returns the model that the row reference is monitoring.

Since: 2.8

## getPath

treeRowReferenceGetPath Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> TreeRowReference | `reference`: a `TreeRowReference`
-> m (Maybe TreePath) | Returns: a current path, or `Nothing`

Returns a path that the row reference currently points to, or `Nothing` if the path pointed to is no longer valid.

## inserted

treeRowReferenceInserted Source #

Arguments

:: (HasCallStack, MonadIO m, IsObject a) |
=> a | `proxy`: a `Object`
-> TreePath | `path`: the row position that was inserted
-> m () |

Lets a set of row reference created by `treeRowReferenceNewProxy` know that the model emitted the TreeModel::rowInserted signal.

## new

treeRowReferenceNew Source #

Arguments

:: (HasCallStack, MonadIO m, IsTreeModel a) |
=> a | `model`: a `TreeModel`
-> TreePath | `path`: a valid `TreePath`-struct to monitor
-> m TreeRowReference | Returns: a newly allocated `TreeRowReference`, or `Nothing`

Creates a row reference based on `path`.

This reference will keep pointing to the node pointed to by `path`, so long as it exists. Any changes that occur on `model` are propagated, and the path is updated appropriately. If `path` isn’t a valid path in `model`, then `Nothing` is returned.

## newProxy

treeRowReferenceNewProxy Source #

Arguments

:: (HasCallStack, MonadIO m, IsObject a, IsTreeModel b) |
=> a | `proxy`: a proxy `Object`
-> b | `model`: a `TreeModel`
-> TreePath | `path`: a valid `TreePath`-struct to monitor
-> m TreeRowReference | Returns: a newly allocated `TreeRowReference`, or `Nothing`

You do not need to use this function.

Creates a row reference based on `path`.

This reference will keep pointing to the node pointed to by `path`, so long as it exists. If `path` isn’t a valid path in `model`, then `Nothing` is returned. However, unlike references created with `treeRowReferenceNew`, it does not listen to the model for changes. The creator of the row reference must do this explicitly using `treeRowReferenceInserted`, `treeRowReferenceDeleted`, `gtk_tree_row_reference_reordered()`.

These functions must be called exactly once per proxy when the corresponding signal on the model is emitted. This single call updates all row references for that proxy. Since built-in GTK+ objects like `TreeView` already use this mechanism internally, using them as the proxy object will produce unpredictable results. Further more, passing the same object as `model` and `proxy` doesn’t work for reasons of internal implementation.

This type of row reference is primarily meant by structures that need to carefully monitor exactly when a row reference updates itself, and is not generally needed by most applications.

## valid

treeRowReferenceValid Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Maybe TreeRowReference | `reference`: a `TreeRowReference`, or `Nothing`
-> m Bool | Returns: `True` if `reference` points to a valid path

Returns `True` if the `reference` is non-`Nothing` and refers to a current valid path.