Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 677c1b5134368504c2e447757584d19e > files > 1088

ghc-gtk-devel-0.11.2-5.fc14.i686.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
<title>dist/build/Graphics/UI/Gtk/ModelView/TreeModel.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a>
<a name="line-2"></a><span class='hs-comment'>{-# LINE 2 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-3"></a><span class='hs-comment'>-- -*-haskell-*-</span>
<a name="line-4"></a><span class='hs-comment'>-- GIMP Toolkit (GTK) TreeModel</span>
<a name="line-5"></a><span class='hs-comment'>--</span>
<a name="line-6"></a><span class='hs-comment'>-- Author : Axel Simon</span>
<a name="line-7"></a><span class='hs-comment'>--</span>
<a name="line-8"></a><span class='hs-comment'>-- Created: 8 May 2001</span>
<a name="line-9"></a><span class='hs-comment'>--</span>
<a name="line-10"></a><span class='hs-comment'>-- Copyright (C) 1999-2007 Axel Simon</span>
<a name="line-11"></a><span class='hs-comment'>--</span>
<a name="line-12"></a><span class='hs-comment'>-- This library is free software; you can redistribute it and/or</span>
<a name="line-13"></a><span class='hs-comment'>-- modify it under the terms of the GNU Lesser General Public</span>
<a name="line-14"></a><span class='hs-comment'>-- License as published by the Free Software Foundation; either</span>
<a name="line-15"></a><span class='hs-comment'>-- version 2.1 of the License, or (at your option) any later version.</span>
<a name="line-16"></a><span class='hs-comment'>--</span>
<a name="line-17"></a><span class='hs-comment'>-- This library is distributed in the hope that it will be useful,</span>
<a name="line-18"></a><span class='hs-comment'>-- but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="line-19"></a><span class='hs-comment'>-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span>
<a name="line-20"></a><span class='hs-comment'>-- Lesser General Public License for more details.</span>
<a name="line-21"></a><span class='hs-comment'>--</span>
<a name="line-22"></a><span class='hs-comment'>-- |</span>
<a name="line-23"></a><span class='hs-comment'>-- Maintainer : gtk2hs-users@lists.sourceforge.net</span>
<a name="line-24"></a><span class='hs-comment'>-- Stability : provisional</span>
<a name="line-25"></a><span class='hs-comment'>-- Portability : portable (depends on GHC)</span>
<a name="line-26"></a><span class='hs-comment'>--</span>
<a name="line-27"></a><span class='hs-comment'>-- The tree interface used by 'TreeView'.</span>
<a name="line-28"></a><span class='hs-comment'>--</span>
<a name="line-29"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>ModelView</span><span class='hs-varop'>.</span><span class='hs-conid'>TreeModel</span> <span class='hs-layout'>(</span>
<a name="line-30"></a><span class='hs-comment'>-- * Detail</span>
<a name="line-31"></a><span class='hs-comment'>--</span>
<a name="line-32"></a><span class='hs-comment'>-- | The 'TreeModel' interface defines a generic storage object for use by the</span>
<a name="line-33"></a><span class='hs-comment'>-- 'TreeView' and similar widgets. Specifically, the functions in defined here</span>
<a name="line-34"></a><span class='hs-comment'>-- are used by Gtk's widgets to access the stored data. Thus, rather than</span>
<a name="line-35"></a><span class='hs-comment'>-- calling these functions, an application programmer has to implement them.</span>
<a name="line-36"></a><span class='hs-comment'>-- While the module "Graphics.UI.Gtk.ModelView.CustomStore" provides the</span>
<a name="line-37"></a><span class='hs-comment'>-- necessary functions to implement the 'TreeMode' interface, it is often</span>
<a name="line-38"></a><span class='hs-comment'>-- sufficient to use the wo implementations that come with Gtk2Hs, namely are</span>
<a name="line-39"></a><span class='hs-comment'>-- 'ListStore' and 'TreeStore'.</span>
<a name="line-40"></a><span class='hs-comment'>--</span>
<a name="line-41"></a><span class='hs-comment'>-- The model is represented as a hierarchical tree of values. It is important</span>
<a name="line-42"></a><span class='hs-comment'>-- to note that this interface only provides a way of examining a model and</span>
<a name="line-43"></a><span class='hs-comment'>-- observing changes. The implementation of each individual model decides how</span>
<a name="line-44"></a><span class='hs-comment'>-- and if changes are made.</span>
<a name="line-45"></a><span class='hs-comment'>--</span>
<a name="line-46"></a><span class='hs-comment'>-- Two generic models are provided that implement the 'TreeModel' interface:</span>
<a name="line-47"></a><span class='hs-comment'>-- the 'TreeStore' and the 'ListStore'. To use these, the developer simply</span>
<a name="line-48"></a><span class='hs-comment'>-- inserts data into these models as necessary. These models provide the data</span>
<a name="line-49"></a><span class='hs-comment'>-- structure as well as the 'TreeModel' interface. In fact, they implement</span>
<a name="line-50"></a><span class='hs-comment'>-- other interfaces, making drag and drop and storing data trivial.</span>
<a name="line-51"></a><span class='hs-comment'>--</span>
<a name="line-52"></a><span class='hs-comment'>-- A 'TreeModel' stores records of the same type. Each record is referred to</span>
<a name="line-53"></a><span class='hs-comment'>-- as row, just like in a relational database. Defining how the information of</span>
<a name="line-54"></a><span class='hs-comment'>-- a row is displayed can be done in two ways: If the widget displays data</span>
<a name="line-55"></a><span class='hs-comment'>-- using 'Graphics.UI.Gtk.ModelView.CellRenderer.CellRenderer' or one of its</span>
<a name="line-56"></a><span class='hs-comment'>-- derivatives, it is possible to state how a row is mapped to the attributes</span>
<a name="line-57"></a><span class='hs-comment'>-- of a renderer using the</span>
<a name="line-58"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.CellLayout.cellLayoutSetAttributes' function.</span>
<a name="line-59"></a><span class='hs-comment'>-- Some widgets do not use</span>
<a name="line-60"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.CellRenderer.CellRenderer's to display their</span>
<a name="line-61"></a><span class='hs-comment'>-- data. In this case an extraction function can be defined that maps a row to</span>
<a name="line-62"></a><span class='hs-comment'>-- one of a few basic types (like 'String's or 'Int's). This extraction</span>
<a name="line-63"></a><span class='hs-comment'>-- function is associated with a 'ColumnId' using</span>
<a name="line-64"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.CustomStore.treeModelSetColumn'. The latter can</span>
<a name="line-65"></a><span class='hs-comment'>-- be set in the widget for the property that should be set. The widget then</span>
<a name="line-66"></a><span class='hs-comment'>-- uses the function 'treeModelGetValue' and the 'ColumnId' to extract the</span>
<a name="line-67"></a><span class='hs-comment'>-- value from the model. As the name suggests, using 'ColumnId's creates a</span>
<a name="line-68"></a><span class='hs-comment'>-- view of the data as if each row were divided into a well-defined set of</span>
<a name="line-69"></a><span class='hs-comment'>-- columns, again, like a relational database.</span>
<a name="line-70"></a><span class='hs-comment'>--</span>
<a name="line-71"></a><span class='hs-comment'>-- Models are accessed on a node level of granularity. There are two index</span>
<a name="line-72"></a><span class='hs-comment'>-- types used to reference a particular node in a model. They are the</span>
<a name="line-73"></a><span class='hs-comment'>-- 'TreePath' and the 'TreeIter'. Most of the interface consists of operations</span>
<a name="line-74"></a><span class='hs-comment'>-- on a 'TreeIter'.</span>
<a name="line-75"></a><span class='hs-comment'>--</span>
<a name="line-76"></a><span class='hs-comment'>-- A path is essentially a potential node. It is a location on a model that</span>
<a name="line-77"></a><span class='hs-comment'>-- may or may not actually correspond to a node on a specific model. A</span>
<a name="line-78"></a><span class='hs-comment'>-- 'TreePath' is in fact a synonym for a list of 'Int's and hence are easy to</span>
<a name="line-79"></a><span class='hs-comment'>-- manipulate. Each number refers to the offset at that level. Thus, the path</span>
<a name="line-80"></a><span class='hs-comment'>-- @[0]@ refers to the root node and the path @[2,4]@ refers to the fifth</span>
<a name="line-81"></a><span class='hs-comment'>-- child of the third node.</span>
<a name="line-82"></a><span class='hs-comment'>--</span>
<a name="line-83"></a><span class='hs-comment'>-- By contrast, a 'TreeIter' is a reference to a specific node on a specific</span>
<a name="line-84"></a><span class='hs-comment'>-- model. It is an abstract data type filled in by the model. One can convert</span>
<a name="line-85"></a><span class='hs-comment'>-- a path to an iterator by calling 'treeModelGetIter'. These iterators are</span>
<a name="line-86"></a><span class='hs-comment'>-- the primary way of accessing a model and are similar to the iterators used</span>
<a name="line-87"></a><span class='hs-comment'>-- by 'TextBuffer'. The model interface defines a set of operations using them</span>
<a name="line-88"></a><span class='hs-comment'>-- for navigating the model. Iterators are expected to always be valid for as</span>
<a name="line-89"></a><span class='hs-comment'>-- long as the model is unchanged (and doesn't emit a signal).</span>
<a name="line-90"></a><span class='hs-comment'>--</span>
<a name="line-91"></a>
<a name="line-92"></a><span class='hs-comment'>-- * Class Hierarchy</span>
<a name="line-93"></a><span class='hs-comment'>-- |</span>
<a name="line-94"></a><span class='hs-comment'>-- @</span>
<a name="line-95"></a><span class='hs-comment'>-- | GInterface</span>
<a name="line-96"></a><span class='hs-comment'>-- | +----TreeModel</span>
<a name="line-97"></a><span class='hs-comment'>-- | +--------TypedTreeModel</span>
<a name="line-98"></a><span class='hs-comment'>-- @</span>
<a name="line-99"></a>
<a name="line-100"></a><span class='hs-comment'>-- * Types</span>
<a name="line-101"></a>  <span class='hs-conid'>TreeModel</span><span class='hs-layout'>,</span>
<a name="line-102"></a>  <span class='hs-conid'>TreeModelClass</span><span class='hs-layout'>,</span>
<a name="line-103"></a>  <span class='hs-varid'>castToTreeModel</span><span class='hs-layout'>,</span> <span class='hs-varid'>gTypeTreeModel</span><span class='hs-layout'>,</span>
<a name="line-104"></a>  <span class='hs-varid'>toTreeModel</span><span class='hs-layout'>,</span>
<a name="line-105"></a>
<a name="line-106"></a>  <span class='hs-conid'>TypedTreeModel</span><span class='hs-layout'>,</span>
<a name="line-107"></a>  <span class='hs-conid'>TypedTreeModelClass</span><span class='hs-layout'>,</span>
<a name="line-108"></a>  <span class='hs-varid'>toTypedTreeModel</span><span class='hs-layout'>,</span>
<a name="line-109"></a>
<a name="line-110"></a>  <span class='hs-conid'>TreeIter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-111"></a>  <span class='hs-conid'>TreePath</span><span class='hs-layout'>,</span>
<a name="line-112"></a>
<a name="line-113"></a>  <span class='hs-conid'>ColumnId</span><span class='hs-layout'>,</span>
<a name="line-114"></a>
<a name="line-115"></a><span class='hs-comment'>-- * Constructors</span>
<a name="line-116"></a>  <span class='hs-varid'>makeColumnIdInt</span><span class='hs-layout'>,</span>
<a name="line-117"></a>  <span class='hs-varid'>makeColumnIdBool</span><span class='hs-layout'>,</span>
<a name="line-118"></a>  <span class='hs-varid'>makeColumnIdString</span><span class='hs-layout'>,</span>
<a name="line-119"></a>  <span class='hs-varid'>makeColumnIdPixbuf</span><span class='hs-layout'>,</span>
<a name="line-120"></a>  <span class='hs-varid'>invalidColumnId</span><span class='hs-layout'>,</span>
<a name="line-121"></a>
<a name="line-122"></a><span class='hs-comment'>-- * Methods</span>
<a name="line-123"></a>  <span class='hs-varid'>columnIdToNumber</span><span class='hs-layout'>,</span>
<a name="line-124"></a>  <span class='hs-varid'>stringToTreePath</span><span class='hs-layout'>,</span>
<a name="line-125"></a>  <span class='hs-varid'>treeModelGetFlags</span><span class='hs-layout'>,</span>
<a name="line-126"></a>  <span class='hs-varid'>treeModelGetIter</span><span class='hs-layout'>,</span>
<a name="line-127"></a>  <span class='hs-varid'>treeModelGetIterFromString</span><span class='hs-layout'>,</span>
<a name="line-128"></a>  <span class='hs-varid'>treeModelGetIterFirst</span><span class='hs-layout'>,</span>
<a name="line-129"></a>  <span class='hs-varid'>treeModelGetPath</span><span class='hs-layout'>,</span>
<a name="line-130"></a>  <span class='hs-varid'>treeModelGetValue</span><span class='hs-layout'>,</span>
<a name="line-131"></a>  <span class='hs-varid'>treeModelIterNext</span><span class='hs-layout'>,</span>
<a name="line-132"></a>  <span class='hs-varid'>treeModelIterChildren</span><span class='hs-layout'>,</span>
<a name="line-133"></a>  <span class='hs-varid'>treeModelIterHasChild</span><span class='hs-layout'>,</span>
<a name="line-134"></a>  <span class='hs-varid'>treeModelIterNChildren</span><span class='hs-layout'>,</span>
<a name="line-135"></a>  <span class='hs-varid'>treeModelIterNthChild</span><span class='hs-layout'>,</span>
<a name="line-136"></a>  <span class='hs-varid'>treeModelIterParent</span><span class='hs-layout'>,</span>
<a name="line-137"></a>  <span class='hs-varid'>treeModelForeach</span><span class='hs-layout'>,</span>
<a name="line-138"></a>
<a name="line-139"></a>  <span class='hs-varid'>treeModelGetStringFromIter</span><span class='hs-layout'>,</span>
<a name="line-140"></a>
<a name="line-141"></a>  <span class='hs-varid'>treeModelRefNode</span><span class='hs-layout'>,</span>
<a name="line-142"></a>  <span class='hs-varid'>treeModelUnrefNode</span><span class='hs-layout'>,</span>
<a name="line-143"></a>  <span class='hs-varid'>treeModelRowChanged</span><span class='hs-layout'>,</span>
<a name="line-144"></a>  <span class='hs-varid'>treeModelRowInserted</span><span class='hs-layout'>,</span>
<a name="line-145"></a>  <span class='hs-varid'>treeModelRowHasChildToggled</span><span class='hs-layout'>,</span>
<a name="line-146"></a>  <span class='hs-varid'>treeModelRowDeleted</span><span class='hs-layout'>,</span>
<a name="line-147"></a>  <span class='hs-varid'>treeModelRowsReordered</span><span class='hs-layout'>,</span>
<a name="line-148"></a>
<a name="line-149"></a><span class='hs-comment'>-- * Signals</span>
<a name="line-150"></a>  <span class='hs-varid'>rowChanged</span><span class='hs-layout'>,</span>
<a name="line-151"></a>  <span class='hs-varid'>rowInserted</span><span class='hs-layout'>,</span>
<a name="line-152"></a>  <span class='hs-varid'>rowHasChildToggled</span><span class='hs-layout'>,</span>
<a name="line-153"></a>  <span class='hs-varid'>rowDeleted</span><span class='hs-layout'>,</span>
<a name="line-154"></a>  <span class='hs-varid'>rowsReordered</span><span class='hs-layout'>,</span>
<a name="line-155"></a>
<a name="line-156"></a>  <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-157"></a>
<a name="line-158"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>liftM</span><span class='hs-layout'>)</span>
<a name="line-159"></a>
<a name="line-160"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>FFI</span>
<a name="line-161"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>Flags</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span><span class='hs-layout'>)</span>
<a name="line-162"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>UTFString</span>
<a name="line-163"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Signals</span>
<a name="line-164"></a><span class='hs-comment'>{-# LINE 163 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-165"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span>
<a name="line-166"></a><span class='hs-comment'>{-# LINE 164 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-167"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>StoreValue</span> <span class='hs-layout'>(</span><span class='hs-conid'>TMType</span><span class='hs-layout'>,</span> <span class='hs-conid'>GenericValue</span><span class='hs-layout'>,</span>
<a name="line-168"></a>      <span class='hs-varid'>valueGetGenericValue</span><span class='hs-layout'>)</span>
<a name="line-169"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>GValue</span> <span class='hs-layout'>(</span><span class='hs-conid'>GValue</span><span class='hs-layout'>(</span><span class='hs-conid'>GValue</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>allocaGValue</span><span class='hs-layout'>)</span>
<a name="line-170"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>ModelView</span><span class='hs-varop'>.</span><span class='hs-conid'>CustomStore</span> <span class='hs-layout'>(</span><span class='hs-conid'>TreeModelFlags</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-171"></a>                                                  <span class='hs-varid'>treeModelGetRow</span><span class='hs-layout'>)</span>
<a name="line-172"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Graphics</span><span class='hs-varop'>.</span><span class='hs-conid'>UI</span><span class='hs-varop'>.</span><span class='hs-conid'>Gtk</span><span class='hs-varop'>.</span><span class='hs-conid'>ModelView</span><span class='hs-varop'>.</span><span class='hs-conid'>Types</span> <span class='hs-layout'>(</span><span class='hs-conid'>TypedTreeModel</span><span class='hs-layout'>,</span>
<a name="line-173"></a>                                             <span class='hs-conid'>TypedTreeModelClass</span><span class='hs-layout'>,</span>
<a name="line-174"></a>                                             <span class='hs-varid'>toTypedTreeModel</span><span class='hs-layout'>,</span>
<a name="line-175"></a>                                             <span class='hs-conid'>TreeIter</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-176"></a>                                             <span class='hs-varid'>receiveTreeIter</span><span class='hs-layout'>,</span>
<a name="line-177"></a>                                             <span class='hs-varid'>peekTreeIter</span><span class='hs-layout'>,</span>
<a name="line-178"></a>                                             <span class='hs-conid'>TreePath</span><span class='hs-layout'>,</span>
<a name="line-179"></a>                                             <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-180"></a>                                             <span class='hs-varid'>withTreePath</span><span class='hs-layout'>,</span>
<a name="line-181"></a>                                             <span class='hs-varid'>fromTreePath</span><span class='hs-layout'>,</span>
<a name="line-182"></a>                                             <span class='hs-varid'>peekTreePath</span><span class='hs-layout'>,</span>
<a name="line-183"></a>                                             <span class='hs-varid'>stringToTreePath</span><span class='hs-layout'>,</span>
<a name="line-184"></a>                                             <span class='hs-conid'>ColumnId</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span>
<a name="line-185"></a>                                             <span class='hs-conid'>ColumnAccess</span><span class='hs-layout'>(</span><span class='hs-keyglyph'>..</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-186"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>System</span><span class='hs-varop'>.</span><span class='hs-conid'>Glib</span><span class='hs-varop'>.</span><span class='hs-conid'>GValueTypes</span> <span class='hs-layout'>(</span> <span class='hs-varid'>valueGetInt</span><span class='hs-layout'>,</span> <span class='hs-varid'>valueGetBool</span><span class='hs-layout'>,</span>
<a name="line-187"></a>                                     <span class='hs-varid'>valueGetString</span><span class='hs-layout'>,</span> <span class='hs-varid'>valueGetGObject</span> <span class='hs-layout'>)</span>
<a name="line-188"></a>
<a name="line-189"></a><span class='hs-comment'>{-# LINE 186 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-190"></a>
<a name="line-191"></a><span class='hs-comment'>--------------------</span>
<a name="line-192"></a><span class='hs-comment'>-- Constructors</span>
<a name="line-193"></a>
<a name="line-194"></a>
<a name="line-195"></a><a name="makeColumnIdInt"></a><span class='hs-comment'>-- | Create a 'ColumnId' to extract an integer.</span>
<a name="line-196"></a><span class='hs-definition'>makeColumnIdInt</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-conid'>Int</span>
<a name="line-197"></a><span class='hs-definition'>makeColumnIdInt</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>valueGetInt</span> <span class='hs-conid'>CAInt</span>
<a name="line-198"></a>
<a name="line-199"></a><a name="makeColumnIdBool"></a><span class='hs-comment'>-- | Create a 'ColumnId' to extract an Boolean.</span>
<a name="line-200"></a><span class='hs-definition'>makeColumnIdBool</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-conid'>Bool</span>
<a name="line-201"></a><span class='hs-definition'>makeColumnIdBool</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>valueGetBool</span> <span class='hs-conid'>CABool</span>
<a name="line-202"></a>
<a name="line-203"></a><a name="makeColumnIdString"></a><span class='hs-comment'>-- | Create a 'ColumnId' to extract an string.</span>
<a name="line-204"></a><span class='hs-definition'>makeColumnIdString</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-conid'>String</span>
<a name="line-205"></a><span class='hs-definition'>makeColumnIdString</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>valueGetString</span> <span class='hs-conid'>CAString</span>
<a name="line-206"></a>
<a name="line-207"></a><a name="makeColumnIdPixbuf"></a><span class='hs-comment'>-- | Create a 'ColumnId' to extract an 'Pixbuf'.</span>
<a name="line-208"></a><span class='hs-definition'>makeColumnIdPixbuf</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-conid'>Pixbuf</span>
<a name="line-209"></a><span class='hs-definition'>makeColumnIdPixbuf</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>valueGetGObject</span> <span class='hs-conid'>CAPixbuf</span>
<a name="line-210"></a>
<a name="line-211"></a><a name="columnIdToNumber"></a><span class='hs-comment'>-- | Convert a 'ColumnId' to a bare number.</span>
<a name="line-212"></a><span class='hs-definition'>columnIdToNumber</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-varid'>ty</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
<a name="line-213"></a><span class='hs-definition'>columnIdToNumber</span> <span class='hs-layout'>(</span><span class='hs-conid'>ColumnId</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>i</span>
<a name="line-214"></a>
<a name="line-215"></a><a name="invalidColumnId"></a><span class='hs-comment'>-- | The invalid 'ColumnId'. Widgets use this value if no column id has</span>
<a name="line-216"></a><span class='hs-comment'>-- been set.</span>
<a name="line-217"></a><span class='hs-definition'>invalidColumnId</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-varid'>ty</span>
<a name="line-218"></a><span class='hs-definition'>invalidColumnId</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>ColumnId</span> <span class='hs-layout'>(</span><span class='hs-varid'>error</span> <span class='hs-str'>"invalidColumnId: no GValue extractor"</span><span class='hs-layout'>)</span>
<a name="line-219"></a>  <span class='hs-layout'>(</span><span class='hs-varid'>error</span> <span class='hs-str'>"invalidColumnId: no access type"</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-comment'>-</span><span class='hs-num'>1</span><span class='hs-layout'>)</span>
<a name="line-220"></a>
<a name="line-221"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Eq</span> <span class='hs-layout'>(</span><span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-varid'>ty</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-222"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>ColumnId</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>i1</span><span class='hs-layout'>)</span> <span class='hs-varop'>==</span> <span class='hs-layout'>(</span><span class='hs-conid'>ColumnId</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>i2</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>i1</span><span class='hs-varop'>==</span><span class='hs-varid'>i2</span>
<a name="line-223"></a>
<a name="line-224"></a><span class='hs-keyword'>instance</span> <span class='hs-conid'>Show</span> <span class='hs-layout'>(</span><span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-varid'>ty</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-225"></a>  <span class='hs-varid'>show</span> <span class='hs-layout'>(</span><span class='hs-conid'>ColumnId</span> <span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>show</span> <span class='hs-varid'>i</span>
<a name="line-226"></a>
<a name="line-227"></a>
<a name="line-228"></a><span class='hs-comment'>--------------------</span>
<a name="line-229"></a><span class='hs-comment'>-- Methods</span>
<a name="line-230"></a>
<a name="line-231"></a><a name="treeModelGetFlags"></a><span class='hs-comment'>-- %hash d:35ea</span>
<a name="line-232"></a><span class='hs-comment'>-- | Returns a set of flags supported by this interface.</span>
<a name="line-233"></a><span class='hs-comment'>--</span>
<a name="line-234"></a><span class='hs-comment'>-- The flags supported should not</span>
<a name="line-235"></a><span class='hs-comment'>-- change during the lifecycle of the tree_model.</span>
<a name="line-236"></a><span class='hs-comment'>--</span>
<a name="line-237"></a><span class='hs-definition'>treeModelGetFlags</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>TreeModelFlags</span><span class='hs-keyglyph'>]</span>
<a name="line-238"></a><span class='hs-definition'>treeModelGetFlags</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-239"></a>  <span class='hs-varid'>liftM</span> <span class='hs-layout'>(</span><span class='hs-varid'>toFlags</span> <span class='hs-varop'>.</span> <span class='hs-varid'>fromIntegral</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span>
<a name="line-240"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_get_flags</span> <span class='hs-varid'>argPtr1</span><span class='hs-layout'>)</span>
<a name="line-241"></a><span class='hs-comment'>{-# LINE 237 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-242"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-243"></a>
<a name="line-244"></a><a name="treeModelGetIterFromString"></a><span class='hs-comment'>-- %hash c:35a1 d:49a2</span>
<a name="line-245"></a><span class='hs-comment'>-- | Turn a 'String' into a 'TreeIter'.</span>
<a name="line-246"></a><span class='hs-comment'>--</span>
<a name="line-247"></a><span class='hs-comment'>-- * Returns @Nothing@ if the string is not a colon separated list of numbers</span>
<a name="line-248"></a><span class='hs-comment'>-- that references a valid node.</span>
<a name="line-249"></a><span class='hs-comment'>--</span>
<a name="line-250"></a><span class='hs-definition'>treeModelGetIterFromString</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-251"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>String</span> <span class='hs-comment'>-- ^ @pathString@ - A string representation of a 'TreePath'.</span>
<a name="line-252"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span>
<a name="line-253"></a><span class='hs-definition'>treeModelGetIterFromString</span> <span class='hs-varid'>self</span> <span class='hs-varid'>pathString</span> <span class='hs-keyglyph'>=</span>
<a name="line-254"></a>  <span class='hs-varid'>receiveTreeIter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-255"></a>  <span class='hs-varid'>withUTFString</span> <span class='hs-varid'>pathString</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>pathStringPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-256"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_get_iter_from_string</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-257"></a><span class='hs-comment'>{-# LINE 252 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-258"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-259"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-260"></a>    <span class='hs-varid'>pathStringPtr</span>
<a name="line-261"></a>
<a name="line-262"></a><a name="treeModelGetIter"></a><span class='hs-comment'>-- %hash c:4cd2 d:ad96</span>
<a name="line-263"></a><span class='hs-comment'>-- | Turn a 'TreePath' into a 'TreeIter'.</span>
<a name="line-264"></a><span class='hs-comment'>--</span>
<a name="line-265"></a><span class='hs-comment'>-- Returns @Nothing@ if the given 'TreePath' was invalid. The empty list</span>
<a name="line-266"></a><span class='hs-comment'>-- is always invalid. The root node of a tree can be accessed by passing</span>
<a name="line-267"></a><span class='hs-comment'>-- @[0]@ as @path@.</span>
<a name="line-268"></a><span class='hs-comment'>--</span>
<a name="line-269"></a><span class='hs-definition'>treeModelGetIter</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-270"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreePath</span> <span class='hs-comment'>-- ^ @path@ - The 'TreePath'.</span>
<a name="line-271"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span>
<a name="line-272"></a><span class='hs-definition'>treeModelGetIter</span> <span class='hs-keyword'>_</span> <span class='hs-conid'>[]</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>return</span> <span class='hs-conid'>Nothing</span>
<a name="line-273"></a><span class='hs-definition'>treeModelGetIter</span> <span class='hs-varid'>self</span> <span class='hs-varid'>path</span> <span class='hs-keyglyph'>=</span>
<a name="line-274"></a>  <span class='hs-varid'>receiveTreeIter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-275"></a>  <span class='hs-varid'>withTreePath</span> <span class='hs-varid'>path</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>path</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-276"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-layout'>(</span><span class='hs-conid'>NativeTreePath</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_get_iter</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-277"></a><span class='hs-comment'>{-# LINE 271 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-278"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-279"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-280"></a>    <span class='hs-varid'>path</span>
<a name="line-281"></a>
<a name="line-282"></a><a name="treeModelGetIterFirst"></a><span class='hs-comment'>-- %hash c:103f d:8041</span>
<a name="line-283"></a><span class='hs-comment'>-- | Retrieves an 'TreeIter' to the first entry.</span>
<a name="line-284"></a><span class='hs-comment'>--</span>
<a name="line-285"></a><span class='hs-comment'>-- Returns @Nothing@ if the table is empty.</span>
<a name="line-286"></a><span class='hs-comment'>--</span>
<a name="line-287"></a><span class='hs-definition'>treeModelGetIterFirst</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-288"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span>
<a name="line-289"></a><span class='hs-definition'>treeModelGetIterFirst</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=</span>
<a name="line-290"></a>  <span class='hs-varid'>receiveTreeIter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-291"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_get_iter_first</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-292"></a><span class='hs-comment'>{-# LINE 285 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-293"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-294"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-295"></a>
<a name="line-296"></a><a name="treeModelGetPath"></a><span class='hs-comment'>-- %hash c:ec20 d:d43e</span>
<a name="line-297"></a><span class='hs-comment'>-- | Turn an abstract 'TreeIter' into a 'TreePath'.</span>
<a name="line-298"></a><span class='hs-comment'>--</span>
<a name="line-299"></a><span class='hs-comment'>-- In case the given 'TreeIter' was invalid, an empty list is returned.</span>
<a name="line-300"></a><span class='hs-comment'>--</span>
<a name="line-301"></a><span class='hs-definition'>treeModelGetPath</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-302"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>TreePath</span>
<a name="line-303"></a><span class='hs-definition'>treeModelGetPath</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span>
<a name="line-304"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-305"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_get_path</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-306"></a><span class='hs-comment'>{-# LINE 298 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-307"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-308"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-309"></a>  <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>fromTreePath</span>
<a name="line-310"></a>
<a name="line-311"></a><a name="treeModelGetValue"></a><span class='hs-comment'>-- | Read the value of at a specific column and 'TreeIter'.</span>
<a name="line-312"></a><span class='hs-comment'>--</span>
<a name="line-313"></a><span class='hs-definition'>treeModelGetValue</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-314"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span>
<a name="line-315"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>ColumnId</span> <span class='hs-varid'>row</span> <span class='hs-varid'>ty</span> <span class='hs-comment'>-- ^ @column@ - The column to lookup the value at.</span>
<a name="line-316"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-varid'>ty</span>
<a name="line-317"></a><span class='hs-definition'>treeModelGetValue</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-layout'>(</span><span class='hs-conid'>ColumnId</span> <span class='hs-varid'>getter</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>colId</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span>
<a name="line-318"></a>  <span class='hs-varid'>allocaGValue</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>gVal</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-319"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-320"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-layout'>(</span><span class='hs-conid'>GValue</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_get_value</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-321"></a><span class='hs-comment'>{-# LINE 312 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-322"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-323"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-324"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>colId</span><span class='hs-layout'>)</span>
<a name="line-325"></a>    <span class='hs-varid'>gVal</span>
<a name="line-326"></a>  <span class='hs-varid'>getter</span> <span class='hs-varid'>gVal</span>
<a name="line-327"></a>
<a name="line-328"></a><a name="treeModelIterNext"></a><span class='hs-comment'>-- %hash c:5c12 d:d7db</span>
<a name="line-329"></a><span class='hs-comment'>-- | Retrieve an iterator to the node following it at the current level. If</span>
<a name="line-330"></a><span class='hs-comment'>-- there is no next node, @Nothing@ is returned.</span>
<a name="line-331"></a><span class='hs-comment'>--</span>
<a name="line-332"></a><span class='hs-definition'>treeModelIterNext</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span>
<a name="line-333"></a><span class='hs-definition'>treeModelIterNext</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span>
<a name="line-334"></a>  <span class='hs-varid'>receiveTreeIter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-335"></a>  <span class='hs-varid'>poke</span> <span class='hs-varid'>iterPtr</span> <span class='hs-varid'>iter</span>
<a name="line-336"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_iter_next</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-337"></a><span class='hs-comment'>{-# LINE 327 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-338"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-339"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-340"></a>
<a name="line-341"></a><a name="treeModelIterChildren"></a><span class='hs-comment'>-- %hash c:7eba d:27e8</span>
<a name="line-342"></a><span class='hs-comment'>-- | Retrieve an iterator to the first child of @parent@. If @parent@ has no</span>
<a name="line-343"></a><span class='hs-comment'>-- children, @Nothing@.</span>
<a name="line-344"></a><span class='hs-comment'>--</span>
<a name="line-345"></a><span class='hs-definition'>treeModelIterChildren</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-346"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @parent@ - a pointer to the parent</span>
<a name="line-347"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span>
<a name="line-348"></a><span class='hs-definition'>treeModelIterChildren</span> <span class='hs-varid'>self</span> <span class='hs-varid'>parent</span> <span class='hs-keyglyph'>=</span>
<a name="line-349"></a>  <span class='hs-varid'>receiveTreeIter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-350"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>parent</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>parentPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-351"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_iter_children</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-352"></a><span class='hs-comment'>{-# LINE 341 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-353"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-354"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-355"></a>    <span class='hs-varid'>parentPtr</span>
<a name="line-356"></a>
<a name="line-357"></a><a name="treeModelIterHasChild"></a><span class='hs-comment'>-- %hash c:dcc3</span>
<a name="line-358"></a><span class='hs-comment'>-- | Returns @True@ if @iter@ has children, @False@ otherwise.</span>
<a name="line-359"></a><span class='hs-comment'>--</span>
<a name="line-360"></a><span class='hs-definition'>treeModelIterHasChild</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-361"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - The 'TreeIter' to test for children.</span>
<a name="line-362"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span> <span class='hs-comment'>-- ^ returns @True@ if @iter@ has children.</span>
<a name="line-363"></a><span class='hs-definition'>treeModelIterHasChild</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span>
<a name="line-364"></a>  <span class='hs-varid'>liftM</span> <span class='hs-varid'>toBool</span> <span class='hs-varop'>$</span>
<a name="line-365"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-366"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_iter_has_child</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-367"></a><span class='hs-comment'>{-# LINE 355 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-368"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-369"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-370"></a>
<a name="line-371"></a><a name="treeModelIterNChildren"></a><span class='hs-comment'>-- %hash c:eed</span>
<a name="line-372"></a><span class='hs-comment'>-- | Returns the number of children that @iter@ has. As a special case, if</span>
<a name="line-373"></a><span class='hs-comment'>-- @iter@ is @Nothing@, then the number of toplevel nodes is returned.</span>
<a name="line-374"></a><span class='hs-comment'>--</span>
<a name="line-375"></a><span class='hs-definition'>treeModelIterNChildren</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-376"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - The 'TreeIter', or @Nothing@.</span>
<a name="line-377"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ returns The number of children of @iter@.</span>
<a name="line-378"></a><span class='hs-definition'>treeModelIterNChildren</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span>
<a name="line-379"></a>  <span class='hs-varid'>liftM</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varop'>$</span>
<a name="line-380"></a>  <span class='hs-varid'>maybeWith</span> <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-381"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_iter_n_children</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-382"></a><span class='hs-comment'>{-# LINE 369 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-383"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-384"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-385"></a>
<a name="line-386"></a><a name="treeModelIterNthChild"></a><span class='hs-comment'>-- %hash c:6950 d:6f4d</span>
<a name="line-387"></a><span class='hs-comment'>-- | Retrieve the @n@th child of @parent@, counting from zero. If @n@ is too</span>
<a name="line-388"></a><span class='hs-comment'>-- big or @parent@ has no children, @Nothing@ is returned. If @Nothing@ is</span>
<a name="line-389"></a><span class='hs-comment'>-- specified for the @parent@ argument, the function will return the @n@th</span>
<a name="line-390"></a><span class='hs-comment'>-- root node.</span>
<a name="line-391"></a><span class='hs-comment'>--</span>
<a name="line-392"></a><span class='hs-definition'>treeModelIterNthChild</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-393"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @parent@ - The 'TreeIter' to get the child from, or</span>
<a name="line-394"></a>                   <span class='hs-comment'>-- @Nothing@.</span>
<a name="line-395"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-comment'>-- ^ @n@ - Then index of the desired child.</span>
<a name="line-396"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span>
<a name="line-397"></a><span class='hs-definition'>treeModelIterNthChild</span> <span class='hs-varid'>self</span> <span class='hs-varid'>parent</span> <span class='hs-varid'>n</span> <span class='hs-keyglyph'>=</span>
<a name="line-398"></a>  <span class='hs-varid'>receiveTreeIter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-399"></a>  <span class='hs-varid'>maybeWith</span> <span class='hs-varid'>with</span> <span class='hs-varid'>parent</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>parentPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-400"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_iter_nth_child</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-401"></a><span class='hs-comment'>{-# LINE 387 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-402"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-403"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-404"></a>    <span class='hs-varid'>parentPtr</span>
<a name="line-405"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>n</span><span class='hs-layout'>)</span>
<a name="line-406"></a>
<a name="line-407"></a><a name="treeModelIterParent"></a><span class='hs-comment'>-- %hash c:8f01 d:70ff</span>
<a name="line-408"></a><span class='hs-comment'>-- | Retrieve the parent of this iterator.</span>
<a name="line-409"></a><span class='hs-comment'>--</span>
<a name="line-410"></a><span class='hs-definition'>treeModelIterParent</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-411"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span>
<a name="line-412"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span>
<a name="line-413"></a><span class='hs-definition'>treeModelIterParent</span> <span class='hs-varid'>self</span> <span class='hs-varid'>child</span> <span class='hs-keyglyph'>=</span>
<a name="line-414"></a>  <span class='hs-varid'>receiveTreeIter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iterPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-415"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>child</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>childPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-416"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_iter_parent</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-417"></a><span class='hs-comment'>{-# LINE 402 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-418"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-419"></a>    <span class='hs-varid'>iterPtr</span>
<a name="line-420"></a>    <span class='hs-varid'>childPtr</span>
<a name="line-421"></a>
<a name="line-422"></a><a name="treeModelForeach"></a><span class='hs-comment'>-- %hash c:154f d:a6d</span>
<a name="line-423"></a><span class='hs-comment'>-- | Maps a function over each node in model in a depth-first fashion. If it</span>
<a name="line-424"></a><span class='hs-comment'>-- returns @True@, then the tree ceases to be walked, and 'treeModelForeach'</span>
<a name="line-425"></a><span class='hs-comment'>-- returns.</span>
<a name="line-426"></a><span class='hs-comment'>--</span>
<a name="line-427"></a><span class='hs-definition'>treeModelForeach</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-428"></a><span class='hs-definition'>treeModelForeach</span> <span class='hs-varid'>self</span> <span class='hs-varid'>fun</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-429"></a>  <span class='hs-varid'>fPtr</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>mkTreeModelForeachFunc</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>iterPtr</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-430"></a>    <span class='hs-comment'>-- make a deep copy of the iterator. This makes it possible to store this</span>
<a name="line-431"></a>    <span class='hs-comment'>-- iterator in Haskell land somewhere. The TreeModel parameter is not</span>
<a name="line-432"></a>    <span class='hs-comment'>-- passed to the function due to performance reasons. But since it is</span>
<a name="line-433"></a>    <span class='hs-comment'>-- a constant this does not matter.</span>
<a name="line-434"></a>    <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peek</span> <span class='hs-varid'>iterPtr</span>
<a name="line-435"></a>    <span class='hs-varid'>liftM</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromIntegral</span><span class='hs-varop'>.</span><span class='hs-varid'>fromBool</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>fun</span> <span class='hs-varid'>iter</span>
<a name="line-436"></a>    <span class='hs-layout'>)</span>
<a name="line-437"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_foreach</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-438"></a><span class='hs-comment'>{-# LINE 422 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-439"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-440"></a>    <span class='hs-varid'>fPtr</span>
<a name="line-441"></a>    <span class='hs-varid'>nullPtr</span>
<a name="line-442"></a>  <span class='hs-varid'>freeHaskellFunPtr</span> <span class='hs-varid'>fPtr</span>
<a name="line-443"></a>
<a name="line-444"></a><a name="TreeModelForeachFunc"></a><span class='hs-keyword'>type</span> <span class='hs-conid'>TreeModelForeachFunc</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-445"></a><span class='hs-comment'>{-# LINE 428 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-446"></a>
<a name="line-447"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-str'>"wrapper"</span> <span class='hs-varid'>mkTreeModelForeachFunc</span> <span class='hs-keyglyph'>::</span>
<a name="line-448"></a>  <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-449"></a>  <span class='hs-conid'>IO</span> <span class='hs-conid'>TreeModelForeachFunc</span>
<a name="line-450"></a>
<a name="line-451"></a>
<a name="line-452"></a><a name="treeModelGetStringFromIter"></a><span class='hs-comment'>-- %hash c:f04a d:94fd</span>
<a name="line-453"></a><span class='hs-comment'>-- | Generates a string representation of the iter. This string is a \':\'</span>
<a name="line-454"></a><span class='hs-comment'>-- separated list of numbers. For example, \"4:10:0:3\" would be an acceptable</span>
<a name="line-455"></a><span class='hs-comment'>-- return value for this string.</span>
<a name="line-456"></a><span class='hs-comment'>--</span>
<a name="line-457"></a><span class='hs-comment'>-- * Available since Gtk+ version 2.2</span>
<a name="line-458"></a><span class='hs-comment'>--</span>
<a name="line-459"></a><span class='hs-definition'>treeModelGetStringFromIter</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-460"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - An 'TreeIter'.</span>
<a name="line-461"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>String</span> <span class='hs-comment'>-- ^ the returned string representation</span>
<a name="line-462"></a><span class='hs-definition'>treeModelGetStringFromIter</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iter</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-463"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_get_string_from_iter</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-464"></a><span class='hs-comment'>{-# LINE 446 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-465"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-466"></a>    <span class='hs-varid'>iter</span>
<a name="line-467"></a>  <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>readUTFString</span>
<a name="line-468"></a>
<a name="line-469"></a>
<a name="line-470"></a><a name="treeModelRefNode"></a><span class='hs-comment'>-- %hash c:228e d:304e</span>
<a name="line-471"></a><span class='hs-comment'>-- | Lets the tree ref the node. This is an optional method for models to</span>
<a name="line-472"></a><span class='hs-comment'>-- implement. To be more specific, models may ignore this call as it exists</span>
<a name="line-473"></a><span class='hs-comment'>-- primarily for performance reasons.</span>
<a name="line-474"></a><span class='hs-comment'>--</span>
<a name="line-475"></a><span class='hs-comment'>-- This function is primarily meant as a way for views to let caching model</span>
<a name="line-476"></a><span class='hs-comment'>-- know when nodes are being displayed (and hence, whether or not to cache that</span>
<a name="line-477"></a><span class='hs-comment'>-- node.) For example, a file-system based model would not want to keep the</span>
<a name="line-478"></a><span class='hs-comment'>-- entire file-hierarchy in memory, just the sections that are currently being</span>
<a name="line-479"></a><span class='hs-comment'>-- displayed by every current view.</span>
<a name="line-480"></a><span class='hs-comment'>--</span>
<a name="line-481"></a><span class='hs-comment'>-- A model should be expected to be able to get an iter independent of its</span>
<a name="line-482"></a><span class='hs-comment'>-- reffed state.</span>
<a name="line-483"></a><span class='hs-comment'>--</span>
<a name="line-484"></a><span class='hs-definition'>treeModelRefNode</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-485"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - The 'TreeIter'.</span>
<a name="line-486"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-487"></a><span class='hs-definition'>treeModelRefNode</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iter</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-488"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_ref_node</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-489"></a><span class='hs-comment'>{-# LINE 470 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-490"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-491"></a>    <span class='hs-varid'>iter</span>
<a name="line-492"></a>
<a name="line-493"></a><a name="treeModelUnrefNode"></a><span class='hs-comment'>-- %hash c:f5d7 d:22a6</span>
<a name="line-494"></a><span class='hs-comment'>-- | Lets the tree unref the node. This is an optional method for models to</span>
<a name="line-495"></a><span class='hs-comment'>-- implement. To be more specific, models may ignore this call as it exists</span>
<a name="line-496"></a><span class='hs-comment'>-- primarily for performance reasons.</span>
<a name="line-497"></a><span class='hs-comment'>--</span>
<a name="line-498"></a><span class='hs-comment'>-- For more information on what this means, see 'treeModelRefNode'. Please</span>
<a name="line-499"></a><span class='hs-comment'>-- note that nodes that are deleted are not unreffed.</span>
<a name="line-500"></a><span class='hs-comment'>--</span>
<a name="line-501"></a><span class='hs-definition'>treeModelUnrefNode</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-502"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - The 'TreeIter'.</span>
<a name="line-503"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-504"></a><span class='hs-definition'>treeModelUnrefNode</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iter</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-505"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg2</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_unref_node</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-506"></a><span class='hs-comment'>{-# LINE 486 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-507"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-508"></a>    <span class='hs-varid'>iter</span>
<a name="line-509"></a>
<a name="line-510"></a><a name="treeModelRowChanged"></a><span class='hs-comment'>-- %hash c:8d25 d:a7c9</span>
<a name="line-511"></a><span class='hs-comment'>-- | Emits the 'rowChanged' signal on the model.</span>
<a name="line-512"></a><span class='hs-comment'>--</span>
<a name="line-513"></a><span class='hs-comment'>-- * This function is only necessary to implement a custom tree model. When</span>
<a name="line-514"></a><span class='hs-comment'>-- using 'Graphics.UI.Gtk.ModelView.ListStore' or</span>
<a name="line-515"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.TreeStore', this function is called</span>
<a name="line-516"></a><span class='hs-comment'>-- automatically.</span>
<a name="line-517"></a><span class='hs-comment'>--</span>
<a name="line-518"></a><span class='hs-definition'>treeModelRowChanged</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-519"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreePath</span> <span class='hs-comment'>-- ^ @path@ - A 'TreePath' pointing to the changed row</span>
<a name="line-520"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - A valid 'TreeIter' pointing to the changed row</span>
<a name="line-521"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-522"></a><span class='hs-definition'>treeModelRowChanged</span> <span class='hs-varid'>self</span> <span class='hs-varid'>path</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span>
<a name="line-523"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iter</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-524"></a>  <span class='hs-varid'>withTreePath</span> <span class='hs-varid'>path</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>path</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-525"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>NativeTreePath</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_row_changed</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-526"></a><span class='hs-comment'>{-# LINE 505 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-527"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-528"></a>    <span class='hs-varid'>path</span>
<a name="line-529"></a>    <span class='hs-varid'>iter</span>
<a name="line-530"></a>
<a name="line-531"></a><a name="treeModelRowInserted"></a><span class='hs-comment'>-- %hash c:f809 d:57af</span>
<a name="line-532"></a><span class='hs-comment'>-- | Emits the 'rowInserted' signal on the model.</span>
<a name="line-533"></a><span class='hs-comment'>--</span>
<a name="line-534"></a><span class='hs-comment'>-- * This function is only necessary to implement a custom tree model. When</span>
<a name="line-535"></a><span class='hs-comment'>-- using 'Graphics.UI.Gtk.ModelView.ListStore' or</span>
<a name="line-536"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.TreeStore', this function is called</span>
<a name="line-537"></a><span class='hs-comment'>-- automatically.</span>
<a name="line-538"></a><span class='hs-comment'>--</span>
<a name="line-539"></a><span class='hs-definition'>treeModelRowInserted</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-540"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreePath</span> <span class='hs-comment'>-- ^ @path@ - A 'TreePath' pointing to the inserted row</span>
<a name="line-541"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - A valid 'TreeIter' pointing to the inserted row</span>
<a name="line-542"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-543"></a><span class='hs-definition'>treeModelRowInserted</span> <span class='hs-varid'>self</span> <span class='hs-varid'>path</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span>
<a name="line-544"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iter</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-545"></a>  <span class='hs-varid'>withTreePath</span> <span class='hs-varid'>path</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>path</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-546"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>NativeTreePath</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_row_inserted</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-547"></a><span class='hs-comment'>{-# LINE 525 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-548"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-549"></a>    <span class='hs-varid'>path</span>
<a name="line-550"></a>    <span class='hs-varid'>iter</span>
<a name="line-551"></a>
<a name="line-552"></a><a name="treeModelRowHasChildToggled"></a><span class='hs-comment'>-- %hash c:e917 d:6534</span>
<a name="line-553"></a><span class='hs-comment'>-- | Emits the 'rowHasChildToggled' signal on the model. This should be</span>
<a name="line-554"></a><span class='hs-comment'>-- called by models after the child state of a node changes.</span>
<a name="line-555"></a><span class='hs-comment'>--</span>
<a name="line-556"></a><span class='hs-comment'>-- * This function is only necessary to implement a custom tree model. When</span>
<a name="line-557"></a><span class='hs-comment'>-- using 'Graphics.UI.Gtk.ModelView.ListStore' or</span>
<a name="line-558"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.TreeStore', this function is called</span>
<a name="line-559"></a><span class='hs-comment'>-- automatically.</span>
<a name="line-560"></a><span class='hs-comment'>--</span>
<a name="line-561"></a><span class='hs-definition'>treeModelRowHasChildToggled</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-562"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreePath</span> <span class='hs-comment'>-- ^ @path@ - A 'TreePath' pointing to the changed row</span>
<a name="line-563"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - A valid 'TreeIter' pointing to the changed row</span>
<a name="line-564"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-565"></a><span class='hs-definition'>treeModelRowHasChildToggled</span> <span class='hs-varid'>self</span> <span class='hs-varid'>path</span> <span class='hs-varid'>iter</span> <span class='hs-keyglyph'>=</span>
<a name="line-566"></a>  <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iter</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-567"></a>  <span class='hs-varid'>withTreePath</span> <span class='hs-varid'>path</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>path</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-568"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>NativeTreePath</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg3</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_row_has_child_toggled</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span><span class='hs-layout'>)</span>
<a name="line-569"></a><span class='hs-comment'>{-# LINE 546 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-570"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-571"></a>    <span class='hs-varid'>path</span>
<a name="line-572"></a>    <span class='hs-varid'>iter</span>
<a name="line-573"></a>
<a name="line-574"></a><a name="treeModelRowDeleted"></a><span class='hs-comment'>-- %hash c:c0a2 d:7ca6</span>
<a name="line-575"></a><span class='hs-comment'>-- | Emits the 'rowDeleted' signal on the model. This should be called by</span>
<a name="line-576"></a><span class='hs-comment'>-- models after a row has been removed. The location pointed to by @path@</span>
<a name="line-577"></a><span class='hs-comment'>-- should be the location that the row previously was at. It may not be a</span>
<a name="line-578"></a><span class='hs-comment'>-- valid location anymore.</span>
<a name="line-579"></a><span class='hs-comment'>--</span>
<a name="line-580"></a><span class='hs-comment'>-- * This function is only necessary to implement a custom tree model. When</span>
<a name="line-581"></a><span class='hs-comment'>-- using 'Graphics.UI.Gtk.ModelView.ListStore' or</span>
<a name="line-582"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.TreeStore', this function is called</span>
<a name="line-583"></a><span class='hs-comment'>-- automatically.</span>
<a name="line-584"></a><span class='hs-comment'>--</span>
<a name="line-585"></a><span class='hs-definition'>treeModelRowDeleted</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-586"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreePath</span> <span class='hs-comment'>-- ^ @path@ - A 'TreePath' pointing to the previous location of</span>
<a name="line-587"></a>             <span class='hs-comment'>-- the deleted row.</span>
<a name="line-588"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-589"></a><span class='hs-definition'>treeModelRowDeleted</span> <span class='hs-varid'>self</span> <span class='hs-varid'>path</span> <span class='hs-keyglyph'>=</span>
<a name="line-590"></a>  <span class='hs-varid'>withTreePath</span> <span class='hs-varid'>path</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>path</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-591"></a>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>NativeTreePath</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_row_deleted</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span>
<a name="line-592"></a><span class='hs-comment'>{-# LINE 568 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-593"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-594"></a>    <span class='hs-varid'>path</span>
<a name="line-595"></a>
<a name="line-596"></a><a name="treeModelRowsReordered"></a><span class='hs-comment'>-- %hash c:f0f3 d:a8c5</span>
<a name="line-597"></a><span class='hs-comment'>-- | Emits the 'rowsReordered' signal on the model. This should be called by</span>
<a name="line-598"></a><span class='hs-comment'>-- models when their rows have been reordered. The length of @newOrder@ must</span>
<a name="line-599"></a><span class='hs-comment'>-- be equal to the value returned by @treeModelIterNChildren self iter@.</span>
<a name="line-600"></a><span class='hs-comment'>--</span>
<a name="line-601"></a><span class='hs-comment'>-- * This function is only necessary to implement a custom tree model. When</span>
<a name="line-602"></a><span class='hs-comment'>-- using 'Graphics.UI.Gtk.ModelView.ListStore' or</span>
<a name="line-603"></a><span class='hs-comment'>-- 'Graphics.UI.Gtk.ModelView.TreeStore', this function is called</span>
<a name="line-604"></a><span class='hs-comment'>-- automatically.</span>
<a name="line-605"></a><span class='hs-comment'>--</span>
<a name="line-606"></a><span class='hs-definition'>treeModelRowsReordered</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>self</span>
<a name="line-607"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreePath</span> <span class='hs-comment'>-- ^ @path@ - A 'TreePath' pointing to the tree node whose</span>
<a name="line-608"></a>             <span class='hs-comment'>-- children have been reordered</span>
<a name="line-609"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span> <span class='hs-comment'>-- ^ @iter@ - A valid 'TreeIter' pointing to the node whose</span>
<a name="line-610"></a>                   <span class='hs-comment'>-- children have been reordered, or @Nothing@ if</span>
<a name="line-611"></a>                   <span class='hs-comment'>-- @path@ is @[]@.</span>
<a name="line-612"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Int</span><span class='hs-keyglyph'>]</span> <span class='hs-comment'>-- ^ @newOrder@ - a list of integers giving the previous position</span>
<a name="line-613"></a>            <span class='hs-comment'>-- of each node at this hierarchy level.</span>
<a name="line-614"></a>
<a name="line-615"></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span>
<a name="line-616"></a><span class='hs-definition'>treeModelRowsReordered</span> <span class='hs-varid'>self</span> <span class='hs-varid'>path</span> <span class='hs-varid'>iter</span> <span class='hs-varid'>array</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-617"></a>  <span class='hs-varid'>n</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>treeModelIterNChildren</span> <span class='hs-varid'>self</span> <span class='hs-varid'>iter</span>
<a name="line-618"></a>  <span class='hs-keyword'>let</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>length</span> <span class='hs-varid'>array</span>
<a name="line-619"></a>  <span class='hs-keyword'>if</span> <span class='hs-varid'>n</span><span class='hs-varop'>/=</span><span class='hs-varid'>l</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>error</span> <span class='hs-layout'>(</span><span class='hs-str'>"treeModelRowsReordered: passed-in array is of size "</span>
<a name="line-620"></a>                      <span class='hs-varop'>++</span><span class='hs-varid'>show</span> <span class='hs-varid'>l</span><span class='hs-varop'>++</span><span class='hs-str'>" but there are "</span><span class='hs-varop'>++</span><span class='hs-varid'>show</span> <span class='hs-varid'>n</span><span class='hs-varop'>++</span>
<a name="line-621"></a>                      <span class='hs-str'>" children at path "</span><span class='hs-varop'>++</span><span class='hs-varid'>show</span> <span class='hs-varid'>path</span><span class='hs-layout'>)</span> <span class='hs-keyword'>else</span>
<a name="line-622"></a>    <span class='hs-varid'>withTreePath</span> <span class='hs-varid'>path</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>path</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-623"></a>    <span class='hs-varid'>maybeWith</span> <span class='hs-varid'>with</span> <span class='hs-varid'>iter</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>iter</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-624"></a>    <span class='hs-varid'>withArray</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-varid'>array</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>newOrderPtr</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-625"></a>    <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-layout'>(</span><span class='hs-conid'>TreeModel</span> <span class='hs-varid'>arg1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>NativeTreePath</span> <span class='hs-varid'>arg2</span><span class='hs-layout'>)</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>withForeignPtr</span> <span class='hs-varid'>arg1</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>argPtr1</span> <span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>gtk_tree_model_rows_reordered</span> <span class='hs-varid'>argPtr1</span> <span class='hs-varid'>arg2</span> <span class='hs-varid'>arg3</span> <span class='hs-varid'>arg4</span><span class='hs-layout'>)</span>
<a name="line-626"></a><span class='hs-comment'>{-# LINE 601 "./Graphics/UI/Gtk/ModelView/TreeModel.chs" #-}</span>
<a name="line-627"></a>      <span class='hs-layout'>(</span><span class='hs-varid'>toTreeModel</span> <span class='hs-varid'>self</span><span class='hs-layout'>)</span>
<a name="line-628"></a>      <span class='hs-varid'>path</span>
<a name="line-629"></a>      <span class='hs-varid'>iter</span>
<a name="line-630"></a>      <span class='hs-varid'>newOrderPtr</span>
<a name="line-631"></a>
<a name="line-632"></a><span class='hs-comment'>--------------------</span>
<a name="line-633"></a><span class='hs-comment'>-- Signals</span>
<a name="line-634"></a>
<a name="line-635"></a><a name="rowChanged"></a><span class='hs-comment'>-- %hash c:50c7 d:8da5</span>
<a name="line-636"></a><span class='hs-comment'>-- | This signal is emitted when a row in the model has changed.</span>
<a name="line-637"></a><span class='hs-comment'>--</span>
<a name="line-638"></a><span class='hs-definition'>rowChanged</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-conid'>Signal</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>TreePath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-639"></a><span class='hs-definition'>rowChanged</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Signal</span> <span class='hs-layout'>(</span><span class='hs-varid'>connect_BOXED_BOXED__NONE</span> <span class='hs-str'>"row_changed"</span> <span class='hs-varid'>peekTreePath</span> <span class='hs-varid'>peekTreeIter</span><span class='hs-layout'>)</span>
<a name="line-640"></a>
<a name="line-641"></a><a name="rowInserted"></a><span class='hs-comment'>-- %hash c:f31a d:3c6b</span>
<a name="line-642"></a><span class='hs-comment'>-- | This signal is emitted when a new row has been inserted in the model.</span>
<a name="line-643"></a><span class='hs-comment'>--</span>
<a name="line-644"></a><span class='hs-comment'>--</span>
<a name="line-645"></a><span class='hs-definition'>rowInserted</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-conid'>Signal</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>TreePath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-646"></a><span class='hs-definition'>rowInserted</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Signal</span> <span class='hs-layout'>(</span><span class='hs-varid'>connect_BOXED_BOXED__NONE</span> <span class='hs-str'>"row_inserted"</span> <span class='hs-varid'>peekTreePath</span> <span class='hs-varid'>peekTreeIter</span><span class='hs-layout'>)</span>
<a name="line-647"></a>
<a name="line-648"></a><a name="rowHasChildToggled"></a><span class='hs-comment'>-- %hash c:7279 d:5ef</span>
<a name="line-649"></a><span class='hs-comment'>-- | This signal is emitted when a row has gotten the first child row or lost</span>
<a name="line-650"></a><span class='hs-comment'>-- its last child row.</span>
<a name="line-651"></a><span class='hs-comment'>--</span>
<a name="line-652"></a><span class='hs-definition'>rowHasChildToggled</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-conid'>Signal</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>TreePath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-653"></a><span class='hs-definition'>rowHasChildToggled</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Signal</span> <span class='hs-layout'>(</span><span class='hs-varid'>connect_BOXED_BOXED__NONE</span> <span class='hs-str'>"row_has_child_toggled"</span> <span class='hs-varid'>peekTreePath</span> <span class='hs-varid'>peekTreeIter</span><span class='hs-layout'>)</span>
<a name="line-654"></a>
<a name="line-655"></a><a name="rowDeleted"></a><span class='hs-comment'>-- %hash c:f669 d:367f</span>
<a name="line-656"></a><span class='hs-comment'>-- | This signal is emitted when a row has been deleted.</span>
<a name="line-657"></a><span class='hs-comment'>--</span>
<a name="line-658"></a><span class='hs-comment'>-- Note that no iterator is passed to the signal handler, since the row is</span>
<a name="line-659"></a><span class='hs-comment'>-- already deleted.</span>
<a name="line-660"></a><span class='hs-comment'>--</span>
<a name="line-661"></a><span class='hs-comment'>-- Implementations of 'TreeModel' must emit row-deleted /before/ removing the</span>
<a name="line-662"></a><span class='hs-comment'>-- node from its internal data structures. This is because models and views</span>
<a name="line-663"></a><span class='hs-comment'>-- which access and monitor this model might have references on the node which</span>
<a name="line-664"></a><span class='hs-comment'>-- need to be released in the 'rowDeleted' handler.</span>
<a name="line-665"></a><span class='hs-comment'>--</span>
<a name="line-666"></a><span class='hs-definition'>rowDeleted</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-conid'>Signal</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>TreePath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-667"></a><span class='hs-definition'>rowDeleted</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Signal</span> <span class='hs-layout'>(</span><span class='hs-varid'>connect_BOXED__NONE</span> <span class='hs-str'>"row_deleted"</span> <span class='hs-varid'>peekTreePath</span><span class='hs-layout'>)</span>
<a name="line-668"></a>
<a name="line-669"></a><a name="rowsReordered"></a><span class='hs-comment'>-- %hash c:46dd d:b2e5</span>
<a name="line-670"></a><span class='hs-comment'>-- | This signal is emitted when the children of a node in the 'TreeModel'</span>
<a name="line-671"></a><span class='hs-comment'>-- have been reordered. See 'treeModelRowsReordered' for more information</span>
<a name="line-672"></a><span class='hs-comment'>-- about the parameters that this signal carries.</span>
<a name="line-673"></a><span class='hs-comment'>--</span>
<a name="line-674"></a><span class='hs-comment'>-- Note that this signal is /not/ emitted when rows are reordered by DND,</span>
<a name="line-675"></a><span class='hs-comment'>-- since this is implemented by removing and then reinserting the row.</span>
<a name="line-676"></a><span class='hs-comment'>--</span>
<a name="line-677"></a><span class='hs-definition'>rowsReordered</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>TreeModelClass</span> <span class='hs-varid'>self</span> <span class='hs-keyglyph'>=&gt;</span>
<a name="line-678"></a>                 <span class='hs-conid'>Signal</span> <span class='hs-varid'>self</span> <span class='hs-layout'>(</span><span class='hs-conid'>TreePath</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Maybe</span> <span class='hs-conid'>TreeIter</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Int</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span>
<a name="line-679"></a><span class='hs-definition'>rowsReordered</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Signal</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>after</span> <span class='hs-varid'>model</span> <span class='hs-varid'>user</span> <span class='hs-keyglyph'>-&gt;</span>
<a name="line-680"></a>  <span class='hs-varid'>connect_BOXED_BOXED_PTR__NONE</span> <span class='hs-str'>"rows_reordered"</span> <span class='hs-varid'>peekTreePath</span>
<a name="line-681"></a>    <span class='hs-layout'>(</span><span class='hs-varid'>maybePeek</span> <span class='hs-varid'>peekTreeIter</span><span class='hs-layout'>)</span> <span class='hs-varid'>after</span> <span class='hs-varid'>model</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>path</span> <span class='hs-varid'>iter</span> <span class='hs-varid'>arrayPtr</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>do</span>
<a name="line-682"></a>      <span class='hs-varid'>n</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>treeModelIterNChildren</span> <span class='hs-varid'>model</span> <span class='hs-varid'>iter</span>
<a name="line-683"></a>      <span class='hs-comment'>-- hopefully the model is never buggy, otherwise this can segfault</span>
<a name="line-684"></a>      <span class='hs-varid'>newOrder</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>peekArray</span> <span class='hs-varid'>n</span> <span class='hs-varid'>arrayPtr</span>
<a name="line-685"></a>      <span class='hs-varid'>user</span> <span class='hs-varid'>path</span> <span class='hs-varid'>iter</span> <span class='hs-layout'>(</span><span class='hs-varid'>map</span> <span class='hs-varid'>fromIntegral</span> <span class='hs-layout'>(</span><span class='hs-varid'>newOrder</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-686"></a>
<a name="line-687"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_get_flags"</span>
<a name="line-688"></a>  <span class='hs-varid'>gtk_tree_model_get_flags</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-689"></a>
<a name="line-690"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_get_iter_from_string"</span>
<a name="line-691"></a>  <span class='hs-varid'>gtk_tree_model_get_iter_from_string</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-692"></a>
<a name="line-693"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_get_iter"</span>
<a name="line-694"></a>  <span class='hs-varid'>gtk_tree_model_get_iter</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-695"></a>
<a name="line-696"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_get_iter_first"</span>
<a name="line-697"></a>  <span class='hs-varid'>gtk_tree_model_get_iter_first</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-698"></a>
<a name="line-699"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_get_path"</span>
<a name="line-700"></a>  <span class='hs-varid'>gtk_tree_model_get_path</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-701"></a>
<a name="line-702"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_get_value"</span>
<a name="line-703"></a>  <span class='hs-varid'>gtk_tree_model_get_value</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>GValue</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-704"></a>
<a name="line-705"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_iter_next"</span>
<a name="line-706"></a>  <span class='hs-varid'>gtk_tree_model_iter_next</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-707"></a>
<a name="line-708"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_iter_children"</span>
<a name="line-709"></a>  <span class='hs-varid'>gtk_tree_model_iter_children</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-710"></a>
<a name="line-711"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_iter_has_child"</span>
<a name="line-712"></a>  <span class='hs-varid'>gtk_tree_model_iter_has_child</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-713"></a>
<a name="line-714"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_iter_n_children"</span>
<a name="line-715"></a>  <span class='hs-varid'>gtk_tree_model_iter_n_children</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-716"></a>
<a name="line-717"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_iter_nth_child"</span>
<a name="line-718"></a>  <span class='hs-varid'>gtk_tree_model_iter_nth_child</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>CInt</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-719"></a>
<a name="line-720"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_iter_parent"</span>
<a name="line-721"></a>  <span class='hs-varid'>gtk_tree_model_iter_parent</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-722"></a>
<a name="line-723"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_foreach"</span>
<a name="line-724"></a>  <span class='hs-varid'>gtk_tree_model_foreach</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>FunPtr</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-725"></a>
<a name="line-726"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_get_string_from_iter"</span>
<a name="line-727"></a>  <span class='hs-varid'>gtk_tree_model_get_string_from_iter</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CChar</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-728"></a>
<a name="line-729"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_ref_node"</span>
<a name="line-730"></a>  <span class='hs-varid'>gtk_tree_model_ref_node</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-731"></a>
<a name="line-732"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_unref_node"</span>
<a name="line-733"></a>  <span class='hs-varid'>gtk_tree_model_unref_node</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-734"></a>
<a name="line-735"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_row_changed"</span>
<a name="line-736"></a>  <span class='hs-varid'>gtk_tree_model_row_changed</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-737"></a>
<a name="line-738"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_row_inserted"</span>
<a name="line-739"></a>  <span class='hs-varid'>gtk_tree_model_row_inserted</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-740"></a>
<a name="line-741"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_row_has_child_toggled"</span>
<a name="line-742"></a>  <span class='hs-varid'>gtk_tree_model_row_has_child_toggled</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-743"></a>
<a name="line-744"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_row_deleted"</span>
<a name="line-745"></a>  <span class='hs-varid'>gtk_tree_model_row_deleted</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-746"></a>
<a name="line-747"></a><span class='hs-keyword'>foreign</span> <span class='hs-keyword'>import</span> <span class='hs-keyword'>ccall</span> <span class='hs-keyword'>safe</span> <span class='hs-str'>"gtk_tree_model_rows_reordered"</span>
<a name="line-748"></a>  <span class='hs-varid'>gtk_tree_model_rows_reordered</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeModel</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>NativeTreePath</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>TreeIter</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-conid'>Ptr</span> <span class='hs-conid'>CInt</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IO</span> <span class='hs-conid'>()</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
</pre></body>
</html>