gi-gtk-hs-0.3.12: A wrapper for gi-gtk, adding a few more idiomatic API parts on top
Stabilityprovisional
Portabilityportable (depends on GHC)
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.GI.Gtk.ModelView.CellLayout

Description

An interface for packing cells

  • Module available since Gtk+ version 2.4
Synopsis

Detail

CellLayout is an interface which is implemented by all objects which provide a TreeViewColumn API for packing cells, setting attributes and data funcs.

Class Hierarchy

|  Interface CellLayout
|   +----TreeViewColumn
|   +----CellView
|   +----IconView
|   +----EntryCompletion
|   +----ComboBox
|   +----ComboBoxEntry

cellLayoutSetAttributes Source #

Arguments

:: (MonadIO m, IsCellLayout self, IsCellRenderer cell, IsTreeModel (model row), IsTypedTreeModel model) 
=> self 
-> cell

cell - A CellRenderer.

-> model row

model - A model containing rows of type row.

-> (row -> [AttrOp cell 'AttrSet])

Function to set attributes on the cell renderer.

-> m () 

Adds an attribute mapping to the renderer cell. The column is the ColumnId of the model to get a value from, and the attribute is the parameter on cell to be set from the value. So for example if column 2 of the model contains strings, you could have the "text" attribute of a CellRendererText get its values from column 2.

cellLayoutAddColumnAttribute :: (MonadIO m, IsCellLayout self, IsCellRenderer cell) => self -> cell -- ^ cell - A CellRenderer. -> ReadWriteAttr cell a v -- ^ attribute - An attribute of a renderer. -> ColumnId row v -- ^ column - The virtual column of the model from which to -- retrieve the attribute. -> m () cellLayoutAddColumnAttribute self cell attr column = cellLayoutAddAttribute self cell (T.pack $ show attr) (columnIdToNumber column)

Specify how a row of the model defines the attributes of the CellRenderer cell. This is a convenience wrapper around cellLayoutSetAttributeFunc in that it sets the cells of the cell with the data retrieved from the model.

  • Note on using TreeModelSort and TreeModelFilter: These two models wrap another model, the so-called child model, instead of storing their own data. This raises the problem that the data of cell renderers must be set using the child model, while the TreeIters that the view works with refer to the model that encapsulates the child model. For convenience, this function transparently translates an iterator to the child model before extracting the data using e.g. treeModelSortConvertIterToChildIter. Hence, it is possible to install the encapsulating model in the view and to pass the child model to this function.

cellLayoutSetDataFunction Source #

Arguments

:: (MonadIO m, IsCellLayout self, IsCellRenderer cell, IsTreeModel (model row), IsTypedTreeModel model) 
=> self 
-> cell

cell - A CellRenderer.

-> model row

model - A model containing rows of type row.

-> (row -> IO ())

Function to set data on the cell renderer.

-> m () 

Like cellLayoutSetAttributes, but allows any IO action to be used

cellLayoutSetDataFunc' Source #

Arguments

:: (MonadIO m, IsCellLayout self, IsCellRenderer cell, IsTreeModel model) 
=> self 
-> cell

cell - A CellRenderer.

-> model

model - A model from which to draw data.

-> (TreeIter -> IO ())

Function to set attributes on the cell renderer.

-> m () 

Install a function that looks up a row in the model and sets the attributes of the CellRenderer cell using the row's content.

convertIterFromParentToChildModel Source #

Arguments

:: TreeIter

the iterator

-> TreeModel

the model that we got from the all back

-> TreeModel

the model that we actually want

-> IO TreeIter