|
|
|
|
|
Description |
This module provides all object for a widget displaying data organized
in a table.
- There are two flavors: A simple list organizes
data in rows and a tree which provides the possibility to impose a
hierarchical structure on the entries of one column.
- The widget is composed of two parts: A database holding rows of data and
the widget object itself which displays items based on the database.
Several widgets may use a single storage object. The data in the database
may be what is directly displayed like strings and images or it may be
some meta information like the padding or color of an item. Several
attributes in the storage object may be used to display one column
in the widget. In contrast each row in the store corresponds to a row
in the widget.
- The widget that displays the data and can be inserted like any other
into a container is called TreeView. This widget is itself
a container for TreeViewColumns which has a title at the top
of the column. Each TreeViewColumn in turn can contain
several Renderer. There are currently three
Renderer, one for each of the following items:
text, Pixbuf and ToggleButton.
- The database is called store, specifically for simple lists it is
ListStore and for hierachical data it is called
TreeStore. A store is created from a skeleton.
'' Attributes can be added to an empty
ListSkel or TreeSkel skeleton which yields
a functions to access the attribute and an Association.
After the skeleton is turned into a store by calling either
newListStore or newTreeStore,
Associations can be inserted together with an appropriate
Renderer into a TreeViewColumn.
TODO
- Figure out if properties in the store have priority over global
properties when both are set.
|
|
Synopsis |
|
|
|
|
ListStore |
|
data ListSkel |
A skeleton of a ListStore database.
- This datastructure describes what columns the database will have when
it is finally created by newListStore.
|
|
|
emptyListSkel :: IO ListSkel |
Returns an empty ListSkel.
|
|
listSkelAddAttribute :: CellRendererClass cr => ListSkel -> Attribute cr argTy -> IO (Association cr, TreeIter -> IO argTy, TreeIter -> argTy -> IO ()) |
Reserve a new column in
ListSkel to hold values for the given attribute.
- The type of the column is determined by the given Attribute
of the ViewColumn which should be stored here. It is possible
to associate this column with several ViewColumns.
|
|
newListStore :: ListSkel -> IO ListStore |
Create a new ListStore database.
- This method throws an exception if the skeleton has been used before.
|
|
TreeStore |
|
data TreeSkel |
A skeleton of a TreeStore database.
- This datastructure describes what columns the database will have when
it is finally created by newTreeStore
|
|
|
emptyTreeSkel :: IO TreeSkel |
Returns an empty TreeSkel.
|
|
treeSkelAddAttribute :: CellRendererClass r => TreeSkel -> Attribute r argTy -> IO (Association r, TreeIter -> IO argTy, TreeIter -> argTy -> IO ()) |
Reserve a new column in
TreeSkel to hold values for the given attribute.
- The type of the column is determined by the given Attribute
of the ViewColumn which should be stored here. It is possible
to associate this column with several ViewColumns.
|
|
newTreeStore :: TreeSkel -> IO TreeStore |
Create a new TreeStore database.
- This method throws an exception if the skeleton has been used before.
|
|
Widget |
|
data Association cr |
An abstract link between a store and a view.
|
|
|
data Renderer cr |
|
|
treeViewColumnNewText :: TreeViewColumn -> Bool -> Bool -> IO (Renderer CellRendererText) |
Create a new rederer showing text.
|
|
treeViewColumnNewPixbuf :: TreeViewColumn -> Bool -> Bool -> IO (Renderer CellRendererPixbuf) |
Create a new renderer showing a Pixbuf.
|
|
treeViewColumnNewToggle :: TreeViewColumn -> Bool -> Bool -> IO (Renderer CellRendererToggle) |
Create a new renderer showing a ToggleButton.
|
|
treeViewColumnAssociate :: CellRendererClass r => Renderer r -> [Association r] -> IO () |
Create a link between the store and this model.
|
|
treeViewGetPathAtPos :: TreeViewClass tv => tv -> Point -> IO (Maybe (TreePath, TreeViewColumn, Point)) |
Map a pixel to the specific cell.
- Finds the path at the Point (x, y). The
coordinates x and y are relative to the top left
corner of the TreeView drawing window. As such, coordinates
in a mouse click event can be used directly to determine the cell
which the user clicked on. This is therefore a way to realize for
popup menus.
- The returned point is the input point relative to the cell's upper
left corner. The whole TreeView is divided between all cells.
The returned point is relative to the rectangle this cell occupies
within the TreeView.
|
|
CellRenderer |
|
cellRendererSetAttribute :: CellRendererClass cr => Renderer cr -> Attribute cr val -> val -> IO () |
Set an Attribute globally.
|
|
cellRendererGetAttribute :: CellRendererClass cr => Renderer cr -> Attribute cr val -> IO val |
Get an global Attribute.
|
|
CellRendererText |
|
onEdited :: TreeModelClass tm => Renderer CellRendererText -> tm -> (TreeIter -> String -> IO ()) -> IO (ConnectId CellRendererText) |
Emitted when the user finished editing a cell.
- This signal is not emitted when editing is disabled (see
cellEditable) or when the user aborts editing.
|
|
afterEdited :: TreeModelClass tm => Renderer CellRendererText -> tm -> (TreeIter -> String -> IO ()) -> IO (ConnectId CellRendererText) |
|
TreeModel |
|
type TreePath = [Int] |
A simple way of addressing nodes.
These integer lists are used to address nodes in a hierarchical
ListStore structure.
|
|
treeModelGetIter :: TreeModelClass tm => tm -> TreePath -> IO (Maybe TreeIter) |
Turn a TreePath into an abstract TreeIterator.
|
|
treeModelGetPath :: TreeModelClass tm => tm -> TreeIter -> IO TreePath |
Turn an abstract TreeIter into a TreePath.
|
|
Produced by Haddock version 0.6 |