{-# LINE 2 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}-- -*-haskell-*--- GIMP Toolkit (GTK) Widget TreeView---- Author : Axel Simon---- Created: 9 May 2001---- Copyright (C) 2001-2005 Axel Simon---- This library is free software; you can redistribute it and/or-- modify it under the terms of the GNU Lesser General Public-- License as published by the Free Software Foundation; either-- version 2.1 of the License, or (at your option) any later version.---- This library is distributed in the hope that it will be useful,-- but WITHOUT ANY WARRANTY; without even the implied warranty of-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU-- Lesser General Public License for more details.---- TODO---- gtk_tree_view_get_bin_window is to compare the GDK window from incoming-- events. We don't marshal that window parameter, so this function is not-- bound either.---- The following functions related to drag and drop:-- treeViewSetDragDestRow, treeViewGetDragDestRow, treeViewGetDestRowAtPos-- these seem to be useful only in cases when the user wants to implement-- drag and drop himself rather than use the widget's implementation. I-- think this would be a bad idea in the first place.---- get_search_equal_func is missing: proper memory management is impossible---- gtk_tree_view_set_destroy_count_func is not meant to be useful---- expand-collapse-cursor-row needs to be bound if it is useful to expand-- and collapse rows in a user-defined manner. Would only work on Gtk 2.2-- and higher since the return parameter changed---- move_cursor, select_all, select_cursor_parent, select_cursor_row-- toggle_cursor_row, unselect_all are not bound.-- These functions are only useful to change the widgets-- behaviour for these actions. Everything else can be done with-- cursor_changed and columns_changed---- set_scroll_adjustment makes sense if the user monitors the scroll bars-- and the scroll bars can be replaced anytime (the latter is odd)---- |-- Maintainer : gtk2hs-users@lists.sourceforge.net-- Stability : provisional-- Portability : portable (depends on GHC)---- A widget for displaying both trees and lists.--moduleGraphics.UI.Gtk.ModelView.TreeView(-- * Description---- | Widget that displays any object that implements the 'TreeModel'-- interface.---- The widget supports scrolling natively. This implies that pixel-- coordinates can be given in two formats: relative to the current view's-- upper left corner or relative to the whole list's coordinates. The former-- are called widget coordinates while the letter are called tree-- coordinates.-- * Class Hierarchy-- |-- @-- | 'GObject'-- | +----'Object'-- | +----'Widget'-- | +----'Container'-- | +----TreeView-- @-- * TypesTreeView,TreeViewClass,castToTreeView,gTypeTreeView,toTreeView,Point,DragAction(..),TreeViewGridLines(..),-- * ConstructorstreeViewNew,treeViewNewWithModel,-- * MethodstreeViewGetModel,treeViewSetModel,treeViewGetSelection,treeViewGetHAdjustment,treeViewSetHAdjustment,treeViewGetVAdjustment,treeViewSetVAdjustment,treeViewGetHeadersVisible,treeViewSetHeadersVisible,treeViewColumnsAutosize,treeViewSetHeadersClickable,treeViewGetRulesHint,treeViewSetRulesHint,treeViewAppendColumn,treeViewRemoveColumn,treeViewInsertColumn,treeViewGetColumn,treeViewGetColumns,treeViewMoveColumnAfter,treeViewMoveColumnFirst,treeViewSetExpanderColumn,treeViewGetExpanderColumn,treeViewSetColumnDragFunction,treeViewScrollToPoint,treeViewScrollToCell,treeViewSetCursor,treeViewSetCursorOnCell,treeViewGetCursor,treeViewRowActivated,treeViewExpandAll,treeViewCollapseAll,treeViewExpandToPath,treeViewExpandRow,treeViewCollapseRow,treeViewMapExpandedRows,treeViewRowExpanded,treeViewGetReorderable,treeViewSetReorderable,treeViewGetPathAtPos,treeViewGetCellArea,treeViewGetBackgroundArea,treeViewGetVisibleRect,treeViewConvertBinWindowToTreeCoords,treeViewConvertBinWindowToWidgetCoords,treeViewConvertTreeToBinWindowCoords,treeViewConvertTreeToWidgetCoords,treeViewConvertWidgetToBinWindowCoords,treeViewConvertWidgetToTreeCoords,treeViewCreateRowDragIcon,treeViewGetEnableSearch,treeViewSetEnableSearch,treeViewGetSearchColumn,treeViewSetSearchColumn,treeViewSetSearchEqualFunc,treeViewGetFixedHeightMode,treeViewSetFixedHeightMode,treeViewGetHoverSelection,treeViewSetHoverSelection,treeViewGetHoverExpand,treeViewSetHoverExpand,treeViewGetHeadersClickable,treeViewGetVisibleRange,treeViewEnableModelDragDest,treeViewEnableModelDragSource,treeViewUnsetRowsDragSource,treeViewUnsetRowsDragDest,treeViewGetSearchEntry,treeViewSetSearchEntry,treeViewSetRowSeparatorFunc,treeViewGetRubberBanding,treeViewSetRubberBanding,treeViewGetEnableTreeLines,treeViewSetEnableTreeLines,treeViewGetGridLines,treeViewSetGridLines,-- * AttributestreeViewModel,treeViewHAdjustment,treeViewVAdjustment,treeViewHeadersVisible,treeViewHeadersClickable,treeViewExpanderColumn,treeViewReorderable,treeViewRulesHint,treeViewEnableSearch,treeViewSearchColumn,treeViewFixedHeightMode,treeViewHoverSelection,treeViewHoverExpand,treeViewShowExpanders,treeViewLevelIndentation,treeViewRubberBanding,treeViewEnableGridLines,treeViewEnableTreeLines,treeViewGridLines,treeViewSearchEntry,-- * SignalscolumnsChanged,cursorChanged,rowCollapsed,rowExpanded,testCollapseRow,testExpandRow,-- * DeprecatedtreeViewWidgetToTreeCoords,treeViewTreeToWidgetCoords,onColumnsChanged,afterColumnsChanged,onCursorChanged,afterCursorChanged,onRowActivated,afterRowActivated,onRowCollapsed,afterRowCollapsed,onRowExpanded,afterRowExpanded,onStartInteractiveSearch,afterStartInteractiveSearch,onTestCollapseRow,afterTestCollapseRow,onTestExpandRow,afterTestExpandRow)whereimportControl.Monad(liftM,mapM)importData.Maybe(fromMaybe)importSystem.Glib.FFIimportSystem.Glib.UTFStringimportSystem.Glib.GList(fromGList)importSystem.Glib.FlagsimportSystem.Glib.AttributesimportSystem.Glib.PropertiesimportSystem.Glib.GObject(makeNewGObject,constructNewGObject,destroyFunPtr)importGraphics.UI.Gtk.Gdk.Enums(DragAction(..))importGraphics.UI.Gtk.Gdk.Events(Modifier(..))importGraphics.UI.Gtk.General.Structs(Point,Rectangle)importGraphics.UI.Gtk.Abstract.Object(makeNewObject)importGraphics.UI.Gtk.Types{-# LINE 266 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}importGraphics.UI.Gtk.Signals{-# LINE 267 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}importGraphics.UI.Gtk.ModelView.TreeViewColumn{-# LINE 268 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}importGraphics.UI.Gtk.ModelView.TreeModel(ColumnId,columnIdToNumber,makeColumnIdString)importGraphics.UI.Gtk.ModelView.Types{-# LINE 271 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}importGraphics.UI.Gtk.General.DNDTypes(TargetList(..)){-# LINE 274 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}---------------------- Constructors-- | Creates a new 'TreeView' widget.--treeViewNew::IOTreeViewtreeViewNew=makeNewObjectmkTreeView$liftM(castPtr::PtrWidget->PtrTreeView)$gtk_tree_view_new{-# LINE 285 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}-- | Create a new 'TreeView'-- widget with @model@ as the storage model.--treeViewNewWithModel::TreeModelClassmodel=>model->IOTreeViewtreeViewNewWithModelmodel=makeNewObjectmkTreeView$liftM(castPtr::PtrWidget->PtrTreeView)$(\(TreeModelarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_new_with_modelargPtr1){-# LINE 294 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeModelmodel)---------------------- Methods-- | Returns the model that supplies the data for-- this 'TreeView'. Returns @Nothing@ if the model is unset.--treeViewGetModel::TreeViewClassself=>self->IO(MaybeTreeModel)treeViewGetModelself=maybeNull(makeNewGObjectmkTreeModel)$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_modelargPtr1){-# LINE 306 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Set the 'TreeModel' for the current View.--treeViewSetModel::(TreeViewClassself,TreeModelClassmodel)=>self->model->IO()treeViewSetModelselfmodel=(\(TreeViewarg1)(TreeModelarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_set_modelargPtr1argPtr2){-# LINE 315 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(toTreeModelmodel)-- | Retrieve a 'TreeSelection' that-- holds the current selected nodes of the View.--treeViewGetSelection::TreeViewClassself=>self->IOTreeSelectiontreeViewGetSelectionself=makeNewGObjectmkTreeSelection$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_selectionargPtr1){-# LINE 325 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Gets the 'Adjustment' currently being used for the horizontal aspect.--treeViewGetHAdjustment::TreeViewClassself=>self->IO(MaybeAdjustment)treeViewGetHAdjustmentself=maybeNull(makeNewObjectmkAdjustment)$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_hadjustmentargPtr1){-# LINE 333 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Sets the 'Adjustment' for the current horizontal aspect.--treeViewSetHAdjustment::TreeViewClassself=>self->MaybeAdjustment-- ^ @adjustment@ - The 'Adjustment' to set, or @Nothing@->IO()treeViewSetHAdjustmentselfadjustment=(\(TreeViewarg1)(Adjustmentarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_set_hadjustmentargPtr1argPtr2){-# LINE 342 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromMaybe(AdjustmentnullForeignPtr)adjustment)-- | Gets the 'Adjustment' currently being used for the vertical aspect.--treeViewGetVAdjustment::TreeViewClassself=>self->IO(MaybeAdjustment)treeViewGetVAdjustmentself=maybeNull(makeNewObjectmkAdjustment)$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_vadjustmentargPtr1){-# LINE 351 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Sets the 'Adjustment' for the current vertical aspect.--treeViewSetVAdjustment::TreeViewClassself=>self->MaybeAdjustment-- ^ @adjustment@ - The 'Adjustment' to set, or @Nothing@->IO()treeViewSetVAdjustmentselfadjustment=(\(TreeViewarg1)(Adjustmentarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_set_vadjustmentargPtr1argPtr2){-# LINE 360 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromMaybe(AdjustmentnullForeignPtr)adjustment)-- | Query if the column headers are visible.--treeViewGetHeadersVisible::TreeViewClassself=>self->IOBooltreeViewGetHeadersVisibleself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_headers_visibleargPtr1){-# LINE 369 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Set the visibility state of the column headers.--treeViewSetHeadersVisible::TreeViewClassself=>self->Bool->IO()treeViewSetHeadersVisibleselfheadersVisible=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_headers_visibleargPtr1arg2){-# LINE 376 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolheadersVisible)-- | Resize the columns to their optimal size.--treeViewColumnsAutosize::TreeViewClassself=>self->IO()treeViewColumnsAutosizeself=(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_columns_autosizeargPtr1){-# LINE 384 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Set wether the columns headers are sensitive to mouse clicks.--treeViewSetHeadersClickable::TreeViewClassself=>self->Bool->IO()treeViewSetHeadersClickableselfsetting=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_headers_clickableargPtr1arg2){-# LINE 391 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolsetting)-- | Query if visual aid for wide columns is turned on.--treeViewGetRulesHint::TreeViewClassself=>self->IOBooltreeViewGetRulesHintself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_rules_hintargPtr1){-# LINE 400 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | This function tells Gtk+ that the user interface for your application-- requires users to read across tree rows and associate cells with one-- another. By default, Gtk+ will then render the tree with alternating row-- colors. Do /not/ use it just because you prefer the appearance of the ruled-- tree; that's a question for the theme. Some themes will draw tree rows in-- alternating colors even when rules are turned off, and users who prefer that-- appearance all the time can choose those themes. You should call this-- function only as a /semantic/ hint to the theme engine that your tree makes-- alternating colors useful from a functional standpoint (since it has lots of-- columns, generally).--treeViewSetRulesHint::TreeViewClassself=>self->Bool->IO()treeViewSetRulesHintselfsetting=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_rules_hintargPtr1arg2){-# LINE 416 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolsetting)-- | Append a new column to the 'TreeView'. Returns the new number of columns.--treeViewAppendColumn::TreeViewClassself=>self->TreeViewColumn->IOInttreeViewAppendColumnselfcolumn=liftMfromIntegral$(\(TreeViewarg1)(TreeViewColumnarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_append_columnargPtr1argPtr2){-# LINE 425 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)column-- | Remove column @tvc@ from the 'TreeView'-- widget. The number of remaining columns is returned.--treeViewRemoveColumn::TreeViewClassself=>self->TreeViewColumn->IOInttreeViewRemoveColumnselfcolumn=liftMfromIntegral$(\(TreeViewarg1)(TreeViewColumnarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_remove_columnargPtr1argPtr2){-# LINE 435 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)column-- | Inserts column @tvc@ into the-- 'TreeView' widget at the position @pos@. Returns the number of-- columns after insertion. Specify -1 for @pos@ to insert the column-- at the end.--treeViewInsertColumn::TreeViewClassself=>self->TreeViewColumn->Int->IOInttreeViewInsertColumnselfcolumnposition=liftMfromIntegral$(\(TreeViewarg1)(TreeViewColumnarg2)arg3->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_insert_columnargPtr1argPtr2arg3){-# LINE 450 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)column(fromIntegralposition)-- | Retrieve a 'TreeViewColumn'.---- * Retrieve the @pos@ th columns of-- 'TreeView'. If the index is out of range Nothing is returned.--treeViewGetColumn::TreeViewClassself=>self->Int->IO(MaybeTreeViewColumn)treeViewGetColumnselfpos=dotvcPtr<-(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_columnargPtr1arg2)(toTreeViewself)(fromIntegralpos)iftvcPtr==nullPtrthenreturnNothingelseliftMJust$makeNewObjectmkTreeViewColumn(returntvcPtr)-- | Return all 'TreeViewColumn's in this 'TreeView'.--treeViewGetColumns::TreeViewClassself=>self->IO[TreeViewColumn]treeViewGetColumnsself=docolsList<-(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_columnsargPtr1)(toTreeViewself)colsPtr<-fromGListcolsListmapM(makeNewObjectmkTreeViewColumn)(mapreturncolsPtr)-- | Move a specific column.---- * Use 'treeViewMoveColumnToFront' if you want to move the column-- to the left end of the 'TreeView'.--treeViewMoveColumnAfter::TreeViewClassself=>self->TreeViewColumn->TreeViewColumn->IO()treeViewMoveColumnAfterselfcolumnbaseColumn=(\(TreeViewarg1)(TreeViewColumnarg2)(TreeViewColumnarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_tree_view_move_column_afterargPtr1argPtr2argPtr3){-# LINE 485 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)columnbaseColumn-- | Move a specific column.---- * Use 'treeViewMoveColumnAfter' if you want to move the column-- somewhere else than to the leftmost position.--treeViewMoveColumnFirst::TreeViewClassself=>self->TreeViewColumn->IO()treeViewMoveColumnFirstselfwhich=(\(TreeViewarg1)(TreeViewColumnarg2)(TreeViewColumnarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->withForeignPtrarg3$\argPtr3->gtk_tree_view_move_column_afterargPtr1argPtr2argPtr3){-# LINE 497 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)which(TreeViewColumnnullForeignPtr)-- | Set location of hierarchy controls.---- * Sets the column to draw the expander arrow at. If @col@-- is @Nothing@, then the expander arrow is always at the first-- visible column.---- If you do not want expander arrow to appear in your tree, set the-- expander column to a hidden column.--treeViewSetExpanderColumn::TreeViewClassself=>self->MaybeTreeViewColumn->IO()treeViewSetExpanderColumnselfcolumn=(\(TreeViewarg1)(TreeViewColumnarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_set_expander_columnargPtr1argPtr2){-# LINE 515 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromMaybe(TreeViewColumnnullForeignPtr)column)-- | Get location of hierarchy controls.---- * Gets the column to draw the expander arrow at. If @col@-- is @Nothing@, then the expander arrow is always at the first-- visible column.--treeViewGetExpanderColumn::TreeViewClassself=>self->IOTreeViewColumntreeViewGetExpanderColumnself=makeNewObjectmkTreeViewColumn$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_expander_columnargPtr1){-# LINE 529 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Specify where a column may be dropped.---- * Sets a user function for determining where a column may be dropped when-- dragged. This function is called on every column pair in turn at the-- beginning of a column drag to determine where a drop can take place.---- * The callback function take the 'TreeViewColumn' to be moved, the-- second and third arguments are the columns on the left and right side-- of the new location. At most one of them might be @Nothing@-- which indicates that the column is about to be dropped at the left or-- right end of the 'TreeView'.---- * The predicate @pred@ should return @True@ if it is ok-- to insert the column at this place.---- * Use @Nothing@ for the predicate if columns can be inserted-- anywhere.--treeViewSetColumnDragFunction::TreeViewClassself=>self->Maybe(TreeViewColumn->MaybeTreeViewColumn->MaybeTreeViewColumn->IOBool)->IO()treeViewSetColumnDragFunctionselfNothing=(\(TreeViewarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_column_drag_functionargPtr1arg2arg3arg4)(toTreeViewself)nullFunPtrnullPtrnullFunPtrtreeViewSetColumnDragFunctionself(Justpred)=dofPtr<-mkTreeViewColumnDropFunc$\_targetprevnext_->dotarget'<-makeNewObjectmkTreeViewColumn(returntarget)prev'<-ifprev==nullPtrthenreturnNothingelseliftMJust$makeNewObjectmkTreeViewColumn(returnprev)next'<-ifnext==nullPtrthenreturnNothingelseliftMJust$makeNewObjectmkTreeViewColumn(returnnext)res<-predtarget'prev'next'return(fromBoolres)(\(TreeViewarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_column_drag_functionargPtr1arg2arg3arg4){-# LINE 568 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)fPtr(castFunPtrToPtrfPtr)destroyFunPtrtypeTreeViewColumnDropFunc=FunPtr(((PtrTreeView)->((PtrTreeViewColumn)->((PtrTreeViewColumn)->((PtrTreeViewColumn)->((Ptr())->(IOCInt))))))){-# LINE 573 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}foreignimportccall"wrapper"mkTreeViewColumnDropFunc::(Ptr()->PtrTreeViewColumn->PtrTreeViewColumn->PtrTreeViewColumn->Ptr()->IO(CInt))->IOTreeViewColumnDropFunc-- | Scroll to a coordinate.---- * Scrolls the tree view such that the top-left corner of the-- visible area is @treeX@, @treeY@, where @treeX@-- and @treeY@ are specified in tree window coordinates.-- The 'TreeView' must be realized before this function is-- called. If it isn't, you probably want to use-- 'treeViewScrollToCell'.--treeViewScrollToPoint::TreeViewClassself=>self->Int->Int->IO()treeViewScrollToPointselftreeXtreeY=(\(TreeViewarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_tree_view_scroll_to_pointargPtr1arg2arg3){-# LINE 593 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegraltreeX)(fromIntegraltreeY)-- | Scroll to a cell.---- * Scroll to a cell as specified by @path@ and @tvc@.-- The cell is aligned within the 'TreeView' widget as-- follows: horizontally by @hor@ from left (@0.0@) to-- right (@1.0@) and vertically by @ver@ from top-- (@0.0@) to buttom (@1.0@).--treeViewScrollToCell::TreeViewClassself=>self->TreePath->TreeViewColumn->Maybe(Float,Float)->IO()treeViewScrollToCellselfpathcolumn(Just(ver,hor))=withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4arg5arg6->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_scroll_to_cellargPtr1arg2argPtr3arg4arg5arg6){-# LINE 613 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)pathcolumn1(realToFracver)(realToFrachor)treeViewScrollToCellselfpathcolumnNothing=withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4arg5arg6->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_scroll_to_cellargPtr1arg2argPtr3arg4arg5arg6){-# LINE 622 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)pathcolumn00.00.0-- | Selects a specific row.---- * Sets the current keyboard focus to be at @path@, and-- selects it. This is useful when you want to focus the user\'s-- attention on a particular row. If @focusColumn@ is given,-- then the input focus is given to the column specified by-- it. Additionally, if @focusColumn@ is specified, and-- @startEditing@ is @True@,-- then editing will be started in the-- specified cell. This function is often followed by a-- 'widgetGrabFocus' to the 'TreeView' in order-- to give keyboard focus to the widget.--treeViewSetCursor::TreeViewClassself=>self->TreePath->(Maybe(TreeViewColumn,Bool))->IO()treeViewSetCursorselfpathNothing=withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_set_cursorargPtr1arg2argPtr3arg4){-# LINE 649 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)path(TreeViewColumnnullForeignPtr)(fromBoolFalse)treeViewSetCursorselfpath(Just(focusColumn,startEditing))=withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_set_cursorargPtr1arg2argPtr3arg4){-# LINE 656 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)pathfocusColumn(fromBoolstartEditing)-- | Selects a cell in a specific row.---- * Similar to 'treeViewSetCursor' but allows a column to-- containt several 'CellRenderer's.---- * Only available in Gtk 2.2 and higher.--treeViewSetCursorOnCell::(TreeViewClassself,CellRendererClassfocusCell)=>self->TreePath->TreeViewColumn->focusCell->Bool->IO()treeViewSetCursorOnCellselfpathfocusColumnfocusCellstartEditing=withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)(CellRendererarg4)arg5->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->withForeignPtrarg4$\argPtr4->gtk_tree_view_set_cursor_on_cellargPtr1arg2argPtr3argPtr4arg5){-# LINE 678 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)pathfocusColumn(toCellRendererfocusCell)(fromBoolstartEditing)-- | Retrieves the position of the focus.---- * Returns a pair @(path, column)@.If the cursor is not currently-- set, @path@ will be @[]@. If no column is currently-- selected, @column@ will be @Nothing@.--treeViewGetCursor::TreeViewClassself=>self->IO(TreePath,MaybeTreeViewColumn)treeViewGetCursorself=alloca$\tpPtrPtr->alloca$\tvcPtrPtr->do(\(TreeViewarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_cursorargPtr1arg2arg3){-# LINE 696 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(castPtrtpPtrPtr)(castPtrtvcPtrPtr)tpPtr<-peektpPtrPtrtvcPtr<-peektvcPtrPtrtp<-fromTreePathtpPtrtvc<-iftvcPtr==nullPtrthenreturnNothingelseliftMJust$makeNewObjectmkTreeViewColumn(returntvcPtr)return(tp,tvc)-- | Emit the activated signal on a cell.--treeViewRowActivated::TreeViewClassself=>self->TreePath->TreeViewColumn->IO()treeViewRowActivatedselfpathcolumn=withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_row_activatedargPtr1arg2argPtr3){-# LINE 715 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)pathcolumn-- | Recursively expands all nodes in the tree view.--treeViewExpandAll::TreeViewClassself=>self->IO()treeViewExpandAllself=(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_expand_allargPtr1){-# LINE 724 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Recursively collapses all visible, expanded nodes in the tree view.--treeViewCollapseAll::TreeViewClassself=>self->IO()treeViewCollapseAllself=(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_collapse_allargPtr1){-# LINE 731 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Make a certain path visible.---- * This will expand all parent rows of @tp@ as necessary.---- * Only available in Gtk 2.2 and higher.--treeViewExpandToPath::TreeViewClassself=>self->TreePath->IO()treeViewExpandToPathselfpath=withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)->withForeignPtrarg1$\argPtr1->gtk_tree_view_expand_to_pathargPtr1arg2){-# LINE 744 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)path-- | Opens the row so its children are visible.--treeViewExpandRow::TreeViewClassself=>self->TreePath-- ^ @path@ - path to a row->Bool-- ^ @openAll@ - whether to recursively expand, or just expand-- immediate children->IOBool-- ^ returns @True@ if the row existed and had childrentreeViewExpandRowselfpathopenAll=liftMtoBool$withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)arg3->withForeignPtrarg1$\argPtr1->gtk_tree_view_expand_rowargPtr1arg2arg3){-# LINE 759 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)path(fromBoolopenAll)-- | Collapses a row (hides its child rows, if they exist).--treeViewCollapseRow::TreeViewClassself=>self->TreePath-- ^ @path@ - path to a row in the tree view->IOBool-- ^ returns @True@ if the row was collapsed.treeViewCollapseRowselfpath=liftMtoBool$withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)->withForeignPtrarg1$\argPtr1->gtk_tree_view_collapse_rowargPtr1arg2){-# LINE 772 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)path-- | Call function for every expaned row.--treeViewMapExpandedRows::TreeViewClassself=>self->(TreePath->IO())->IO()treeViewMapExpandedRowsselffunc=dofPtr<-mkTreeViewMappingFunc$\_tpPtr_->fromTreePathtpPtr>>=func(\(TreeViewarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_tree_view_map_expanded_rowsargPtr1arg2arg3){-# LINE 783 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)fPtrnullPtrfreeHaskellFunPtrfPtrtypeTreeViewMappingFunc=FunPtr(((PtrTreeView)->((PtrNativeTreePath)->((Ptr())->(IO()))))){-# LINE 789 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}foreignimportccall"wrapper"mkTreeViewMappingFunc::(Ptr()->PtrNativeTreePath->Ptr()->IO())->IOTreeViewMappingFunc-- | Check if row is expanded.--treeViewRowExpanded::TreeViewClassself=>self->TreePath-- ^ @path@ - A 'TreePath' to test expansion state.->IOBool-- ^ returns @True@ if @path@ is expanded.treeViewRowExpandedselfpath=liftMtoBool$withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)->withForeignPtrarg1$\argPtr1->gtk_tree_view_row_expandedargPtr1arg2){-# LINE 803 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)path-- | Query if rows can be moved around.---- * See 'treeViewSetReorderable'.--treeViewGetReorderable::TreeViewClassself=>self->IOBooltreeViewGetReorderableself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_reorderableargPtr1){-# LINE 814 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Check if rows can be moved around.---- * Set whether the user can use drag and drop (DND) to reorder the rows in-- the store. This works on both 'TreeStore' and 'ListStore' models. If @ro@-- is @True@, then the user can reorder the model by dragging and dropping-- rows. The developer can listen to these changes by connecting to the-- model's signals. If you need to control which rows may be dragged or-- where rows may be dropped, you can override the-- 'Graphics.UI.Gtk.ModelView.CustomStore.treeDragSourceRowDraggable'-- function in the default DND implementation of the model.--treeViewSetReorderable::TreeViewClassself=>self->Bool->IO()treeViewSetReorderableselfreorderable=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_reorderableargPtr1arg2){-# LINE 832 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolreorderable)-- | Map a pixel to the specific cell.---- * Finds the path at the 'Point' @(x, y)@. The-- coordinates @x@ and @y@ are relative to the top left-- corner of the 'TreeView' drawing window. As such, coordinates-- in a mouse click event can be used directly to determine the cell-- which the user clicked on. This function is useful to realize-- popup menus.---- * The returned point is the input point relative to the cell's upper-- left corner. The whole 'TreeView' is divided between all cells.-- The returned point is relative to the rectangle this cell occupies-- within the 'TreeView'.--treeViewGetPathAtPos::TreeViewClassself=>self->Point->IO(Maybe(TreePath,TreeViewColumn,Point))treeViewGetPathAtPosself(x,y)=alloca$\tpPtrPtr->alloca$\tvcPtrPtr->alloca$\xPtr->alloca$\yPtr->dores<-liftMtoBool$(\(TreeViewarg1)arg2arg3arg4arg5arg6arg7->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_path_at_posargPtr1arg2arg3arg4arg5arg6arg7){-# LINE 859 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegralx)(fromIntegraly)(castPtrtpPtrPtr)(castPtrtvcPtrPtr)xPtryPtrtpPtr<-peektpPtrPtrtvcPtr<-peektvcPtrPtrxCell<-peekxPtryCell<-peekyPtrifnotresthenreturnNothingelsedotp<-fromTreePathtpPtrtvc<-makeNewObjectmkTreeViewColumn(returntvcPtr)return(Just(tp,tvc,(fromIntegralxCell,fromIntegralyCell)))-- | Retrieve the smallest bounding box of a cell.---- * Fills the bounding rectangle in tree window coordinates for the-- cell at the row specified by @tp@ and the column specified by-- @tvc@.-- If @path@ is @Nothing@ or points to a path not-- currently displayed, the @y@ and @height@ fields of-- the 'Rectangle' will be filled with @0@. The sum of-- all cell rectangles does not cover the entire tree; there are extra-- pixels in between rows, for example.--treeViewGetCellArea::TreeViewClassself=>self->MaybeTreePath->TreeViewColumn->IORectangletreeViewGetCellAreaselfNothingtvc=alloca$\rPtr->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_get_cell_areaargPtr1arg2argPtr3arg4){-# LINE 893 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(NativeTreePathnullPtr)tvc(castPtr(rPtr::PtrRectangle))>>peekrPtrtreeViewGetCellAreaself(Justtp)tvc=withTreePathtp$\tp->alloca$\rPtr->do(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_get_cell_areaargPtr1arg2argPtr3arg4){-# LINE 902 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)tptvc(castPtr(rPtr::PtrRectangle))>>peekrPtr-- | Retrieve the largest bounding box of a cell.---- * Fills the bounding rectangle in tree window coordinates for the-- cell at the row specified by @tp@ and the column specified by-- @tvc@.-- If @path@ is @Nothing@ or points to a path not-- currently displayed, the @y@ and @height@ fields of-- the 'Rectangle' will be filled with @0@. The background-- areas tile the widget's area to cover the entire tree window -- (except for the area used for header buttons). Contrast this with-- 'treeViewGetCellArea'.--treeViewGetBackgroundArea::TreeViewClassself=>self->MaybeTreePath->TreeViewColumn->IORectangletreeViewGetBackgroundAreaselfNothingtvc=alloca$\rPtr->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_get_background_areaargPtr1arg2argPtr3arg4){-# LINE 927 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(NativeTreePathnullPtr)tvc(castPtr(rPtr::PtrRectangle))>>peekrPtrtreeViewGetBackgroundAreaself(Justtp)tvc=withTreePathtp$\tp->alloca$\rPtr->(\(TreeViewarg1)(NativeTreePatharg2)(TreeViewColumnarg3)arg4->withForeignPtrarg1$\argPtr1->withForeignPtrarg3$\argPtr3->gtk_tree_view_get_background_areaargPtr1arg2argPtr3arg4){-# LINE 935 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)tptvc(castPtr(rPtr::PtrRectangle))>>peekrPtr-- | Retrieve the currently visible area.---- * The returned rectangle gives the visible part of the tree in tree-- coordinates.--treeViewGetVisibleRect::TreeViewClassself=>self->IORectangletreeViewGetVisibleRectself=alloca$\rPtr->do(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_visible_rectargPtr1arg2){-# LINE 950 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(castPtr(rPtr::PtrRectangle))peekrPtr-- | 'treeViewTreeToWidgetCoords' has been deprecated since version 2.12 and should not be used in-- newly-written code. Due to historial reasons the name of this function is incorrect. For converting-- bin window coordinates to coordinates relative to bin window, please see-- 'treeViewConvertBinWindowToWidgetCoords'.---- Converts tree coordinates (coordinates in full scrollable area of the tree) to bin window-- coordinates.--treeViewTreeToWidgetCoords::TreeViewClassself=>self->Point-- ^ @(tx, ty)@ - tree X and Y coordinates->IOPoint-- ^ @(wx, wy)@ returns widget X and Y coordinatestreeViewTreeToWidgetCoordsself(tx,ty)=alloca$\wxPtr->alloca$\wyPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_tree_to_widget_coordsargPtr1arg2arg3arg4arg5){-# LINE 970 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegraltx)(fromIntegralty)wxPtrwyPtrwx<-peekwxPtrwy<-peekwyPtrreturn(fromIntegralwx,fromIntegralwy)-- | 'treeViewWidgetToTreeCoords' has been deprecated since version 2.12 and should not be used in-- newly-written code. Due to historial reasons the name of this function is incorrect. For converting-- coordinates relative to the widget to bin window coordinates, please see-- 'treeViewConvertWidgetToBinWindowCoords'.---- Converts bin window coordinates to coordinates for the tree (the full scrollable area of the tree).--treeViewWidgetToTreeCoords::TreeViewClassself=>self->Point-- ^ @(wx, wy)@ - widget X and Y coordinates->IOPoint-- ^ @(tx, ty)@ returns tree X and Y coordinatestreeViewWidgetToTreeCoordsself(wx,wy)=alloca$\txPtr->alloca$\tyPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_widget_to_tree_coordsargPtr1arg2arg3arg4arg5){-# LINE 993 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegralwx)(fromIntegralwy)txPtrtyPtrtx<-peektxPtrty<-peektyPtrreturn(fromIntegraltx,fromIntegralty)-- | Converts bin window coordinates to coordinates for the tree (the full scrollable area of the tree).treeViewConvertBinWindowToTreeCoords::TreeViewClassself=>self->Point-- ^ @(bx, by)@ - bin window X and Y coordinates->IOPoint-- ^ @(tx, ty)@ returns tree X and Y coordinatestreeViewConvertBinWindowToTreeCoordsself(bx,by)=alloca$\txPtr->alloca$\tyPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_convert_bin_window_to_tree_coordsargPtr1arg2arg3arg4arg5){-# LINE 1012 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegralbx)(fromIntegralby)txPtrtyPtrtx<-peektxPtrty<-peektyPtrreturn(fromIntegraltx,fromIntegralty)-- | Converts bin window coordinates (see 'treeViewGetBinWindow' to widget relative coordinates.treeViewConvertBinWindowToWidgetCoords::TreeViewClassself=>self->Point-- ^ @(bx, by)@ - bin window X and Y coordinates->IOPoint-- ^ @(wx, wy)@ returns widget X and Y coordinatestreeViewConvertBinWindowToWidgetCoordsself(bx,by)=alloca$\wxPtr->alloca$\wyPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_convert_bin_window_to_widget_coordsargPtr1arg2arg3arg4arg5){-# LINE 1029 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegralbx)(fromIntegralby)wxPtrwyPtrwx<-peekwxPtrwy<-peekwyPtrreturn(fromIntegralwx,fromIntegralwy)-- | Converts tree coordinates (coordinates in full scrollable area of the tree) to bin window-- coordinates.treeViewConvertTreeToBinWindowCoords::TreeViewClassself=>self->Point-- ^ @(tx, ty)@ - tree X and Y coordinates->IOPoint-- ^ @(bx, by)@ returns bin window X and Y coordinatestreeViewConvertTreeToBinWindowCoordsself(tx,ty)=alloca$\bxPtr->alloca$\byPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_convert_tree_to_bin_window_coordsargPtr1arg2arg3arg4arg5){-# LINE 1047 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegraltx)(fromIntegralty)bxPtrbyPtrbx<-peekbxPtrby<-peekbyPtrreturn(fromIntegralbx,fromIntegralby)-- | Converts tree coordinates (coordinates in full scrollable area of the tree) to widget coordinates.treeViewConvertTreeToWidgetCoords::TreeViewClassself=>self->Point-- ^ @(tx, ty)@ - tree X and Y coordinates->IOPoint-- ^ @(wx, wy)@ returns widget X and Y coordinatestreeViewConvertTreeToWidgetCoordsself(wx,wy)=alloca$\bxPtr->alloca$\byPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_convert_tree_to_widget_coordsargPtr1arg2arg3arg4arg5){-# LINE 1064 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegralwx)(fromIntegralwy)bxPtrbyPtrbx<-peekbxPtrby<-peekbyPtrreturn(fromIntegralbx,fromIntegralby)-- | Converts widget coordinates to coordinates for the window (see 'treeViewGetBinWindow' ).treeViewConvertWidgetToBinWindowCoords::TreeViewClassself=>self->Point-- ^ @(wx, wy)@ - widget X and Y coordinates->IOPoint-- ^ @(bx, by)@ returns bin window X and Y coordinatestreeViewConvertWidgetToBinWindowCoordsself(wx,wy)=alloca$\bxPtr->alloca$\byPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_convert_widget_to_bin_window_coordsargPtr1arg2arg3arg4arg5){-# LINE 1081 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegralwx)(fromIntegralwy)bxPtrbyPtrbx<-peekbxPtrby<-peekbyPtrreturn(fromIntegralbx,fromIntegralby)-- | Converts widget coordinates to coordinates for the tree (the full scrollable area of the tree).treeViewConvertWidgetToTreeCoords::TreeViewClassself=>self->Point-- ^ @(wx, wy)@ - bin window X and Y coordinates->IOPoint-- ^ @(tx, ty)@ returns tree X and Y coordinatestreeViewConvertWidgetToTreeCoordsself(wx,wy)=alloca$\txPtr->alloca$\tyPtr->do(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_convert_widget_to_tree_coordsargPtr1arg2arg3arg4arg5){-# LINE 1098 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegralwx)(fromIntegralwy)txPtrtyPtrtx<-peektxPtrty<-peektyPtrreturn(fromIntegraltx,fromIntegralty)-- | Creates a 'Pixmap' representation of the row at the given path. This image-- can be used for a drag icon.--treeViewCreateRowDragIcon::TreeViewClassself=>self->TreePath->IOPixmaptreeViewCreateRowDragIconselfpath=constructNewGObjectmkPixmap$withTreePathpath$\path->(\(TreeViewarg1)(NativeTreePatharg2)->withForeignPtrarg1$\argPtr1->gtk_tree_view_create_row_drag_iconargPtr1arg2){-# LINE 1118 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)path-- | Returns whether or not the tree allows to start interactive searching by-- typing in text.---- * If enabled, the user can type in text which will set the cursor to-- the first matching entry.--treeViewGetEnableSearch::TreeViewClassself=>self->IOBooltreeViewGetEnableSearchself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_enable_searchargPtr1){-# LINE 1131 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | If this is set, then the user can type in text to search-- through the tree interactively (this is sometimes called \"typeahead-- find\").---- Note that even if this is @False@, the user can still initiate a search-- using the \"start-interactive-search\" key binding. In any case,-- a predicate that compares a row of the model with the text the user-- has typed must be set using 'treeViewSetSearchEqualFunc'.--treeViewSetEnableSearch::TreeViewClassself=>self->Bool->IO()treeViewSetEnableSearchselfenableSearch=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_enable_searchargPtr1arg2){-# LINE 1145 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolenableSearch)-- %hash c:ecc5 d:bed6-- | Gets the column searched on by the interactive search code.--treeViewGetSearchColumn::TreeViewClassself=>self->IO(ColumnIdrowString)-- ^ returns the column the interactive search code searches in.treeViewGetSearchColumnself=liftM(makeColumnIdString.fromIntegral)$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_search_columnargPtr1){-# LINE 1156 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- %hash c:d0d0-- | Sets @column@ as the column where the interactive search code should-- search in.---- If the sort column is set, users can use the \"start-interactive-search\"-- key binding to bring up search popup. The enable-search property controls-- whether simply typing text will also start an interactive search.---- Note that @column@ refers to a column of the model. Furthermore, the-- search column is not used if a comparison function is set, see-- 'treeViewSetSearchEqualFunc'.--treeViewSetSearchColumn::TreeViewClassself=>self->(ColumnIdrowString)-- ^ @column@ - the column of the model to search in, or -1 to disable-- searching->IO()treeViewSetSearchColumnselfcolumn=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_search_columnargPtr1arg2){-# LINE 1176 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromIntegral(columnIdToNumbercolumn))-- | Set the predicate to test for equality.---- * The predicate must returns @True@ if the text entered by the user-- and the row of the model match. Calling this function will overwrite-- the 'treeViewSearchColumn' (which isn't used anyway when a comparison-- function is installed).--treeViewSetSearchEqualFunc::TreeViewClassself=>self->Maybe(String->TreeIter->IOBool)->IO()treeViewSetSearchEqualFuncself(Justpred)=dofPtr<-mkTreeViewSearchEqualFunc(\__keyPtriterPtr_->dokey<-peekUTFStringkeyPtriter<-peekiterPtrliftM(fromBool.not)$predkeyiter)(\(TreeViewarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_search_equal_funcargPtr1arg2arg3arg4)(toTreeViewself)fPtr(castFunPtrToPtrfPtr)destroyFunPtr(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_search_columnargPtr1arg2)(toTreeViewself)0treeViewSetSearchEqualFuncselfNothing=do(\(TreeViewarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_search_equal_funcargPtr1arg2arg3arg4)(toTreeViewself)nullFunPtrnullPtrnullFunPtr(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_search_columnargPtr1arg2)(toTreeViewself)(-1)typeTreeViewSearchEqualFunc=FunPtr(((PtrTreeModel)->(CInt->((PtrCChar)->((PtrTreeIter)->((Ptr())->(IOCInt))))))){-# LINE 1204 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}foreignimportccall"wrapper"mkTreeViewSearchEqualFunc::(PtrTreeModel->(CInt)->CString->PtrTreeIter->Ptr()->IO(CInt))->IOTreeViewSearchEqualFunc-- helper to marshal native tree paths to TreePathsreadNTP::PtrTreePath->IOTreePathreadNTPptr=peekTreePath(castPtrptr)-- | Returns whether fixed height mode is turned on for the tree view.---- * Available since Gtk+ version 2.6--treeViewGetFixedHeightMode::TreeViewClassself=>self->IOBool-- ^ returns @True@ if the tree view is in fixed height modetreeViewGetFixedHeightModeself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_fixed_height_modeargPtr1){-# LINE 1223 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Enables or disables the fixed height mode of the tree view. Fixed height-- mode speeds up 'TreeView' by assuming that all rows have the same height.-- Only enable this option if all rows are the same height and all columns are-- of type 'TreeViewColumnFixed'.---- * Available since Gtk+ version 2.6--treeViewSetFixedHeightMode::TreeViewClassself=>self->Bool-- ^ @enable@ - @True@ to enable fixed height mode->IO()treeViewSetFixedHeightModeselfenable=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_fixed_height_modeargPtr1arg2){-# LINE 1237 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolenable)-- | Returns whether hover selection mode is turned on for @treeView@.---- * Available since Gtk+ version 2.6--treeViewGetHoverSelection::TreeViewClassself=>self->IOBool-- ^ returns @True@ if the tree view is in hover selection modetreeViewGetHoverSelectionself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_hover_selectionargPtr1){-# LINE 1249 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Enables of disables the hover selection mode of the tree view. Hover-- selection makes the selected row follow the pointer. Currently, this works-- only for the selection modes 'SelectionSingle' and 'SelectionBrowse'.---- * Available since Gtk+ version 2.6--treeViewSetHoverSelection::TreeViewClassself=>self->Bool-- ^ @hover@ - @True@ to enable hover selection mode->IO()treeViewSetHoverSelectionselfhover=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_hover_selectionargPtr1arg2){-# LINE 1262 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolhover)-- | Returns whether hover expansion mode is turned on for the tree view.---- * Available since Gtk+ version 2.6--treeViewGetHoverExpand::TreeViewClassself=>self->IOBool-- ^ returns @True@ if the tree view is in hover expansion modetreeViewGetHoverExpandself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_hover_expandargPtr1){-# LINE 1274 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- | Enables of disables the hover expansion mode of the tree view. Hover-- expansion makes rows expand or collaps if the pointer moves over them.---- * Available since Gtk+ version 2.6--treeViewSetHoverExpand::TreeViewClassself=>self->Bool-- ^ @expand@ - @True@ to enable hover selection mode->IO()treeViewSetHoverExpandselfexpand=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_hover_expandargPtr1arg2){-# LINE 1286 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolexpand)-- %hash c:88cb d:65c9-- | Returns whether all header columns are clickable.---- * Available since Gtk+ version 2.10--treeViewGetHeadersClickable::TreeViewClassself=>self->IOBool-- ^ returns @True@ if all header columns are clickable, otherwise-- @False@treeViewGetHeadersClickableself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_headers_clickableargPtr1){-# LINE 1303 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- %hash c:1d81 d:3587-- | Return the first and last visible path.-- Note that there may be invisible paths in between.---- * Available since Gtk+ version 2.8--treeViewGetVisibleRange::TreeViewClassself=>self->IO(TreePath,TreePath)-- ^ the first and the last node that is visibletreeViewGetVisibleRangeself=alloca$\startPtr->alloca$\endPtr->dovalid<-liftMtoBool$(\(TreeViewarg1)arg2arg3->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_visible_rangeargPtr1arg2arg3){-# LINE 1318 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(castPtrstartPtr)(castPtrendPtr)ifnotvalidthenreturn([],[])elsedostartTPPtr<-peekstartPtrendTPPtr<-peekendPtrstartPath<-fromTreePathstartTPPtrendPath<-fromTreePathendTPPtrreturn(startPath,endPath)-- %hash c:61e1 d:3a0a-- | Turns @treeView@ into a drop destination for automatic DND.--treeViewEnableModelDragDest::TreeViewClassself=>self->TargetList-- ^ @targets@ - the list of targets that the-- the view will support->[DragAction]-- ^ @actions@ - flags denoting the possible actions-- for a drop into this widget->IO()treeViewEnableModelDragDestselftargetsactions=alloca$\nTargetsPtr->dotlPtr<-(\(TargetListarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_target_table_new_from_listargPtr1arg2)targetsnTargetsPtrnTargets<-peeknTargetsPtr(\(TreeViewarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_tree_view_enable_model_drag_destargPtr1arg2arg3arg4){-# LINE 1343 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)tlPtrnTargets((fromIntegral.fromFlags)actions)gtk_target_table_freetlPtrnTargets-- %hash c:1df9 d:622-- | Turns @treeView@ into a drag source for automatic DND.--treeViewEnableModelDragSource::TreeViewClassself=>self->[Modifier]-- ^ @startButtonMask@ - Mask of allowed buttons-- to start drag->TargetList-- ^ @targets@ - the list of targets that the-- the view will support->[DragAction]-- ^ @actions@ - flags denoting the possible actions-- for a drag from this widget->IO()treeViewEnableModelDragSourceselfstartButtonMasktargetsactions=alloca$\nTargetsPtr->dotlPtr<-(\(TargetListarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_target_table_new_from_listargPtr1arg2)targetsnTargetsPtrnTargets<-peeknTargetsPtr(\(TreeViewarg1)arg2arg3arg4arg5->withForeignPtrarg1$\argPtr1->gtk_tree_view_enable_model_drag_sourceargPtr1arg2arg3arg4arg5){-# LINE 1365 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)((fromIntegral.fromFlags)startButtonMask)tlPtrnTargets((fromIntegral.fromFlags)actions)gtk_target_table_freetlPtrnTargets-- %hash c:5201 d:f3be-- | Undoes the effect of 'treeViewEnableModelDragSource'.--treeViewUnsetRowsDragSource::TreeViewClassself=>self->IO()treeViewUnsetRowsDragSourceself=(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_unset_rows_drag_sourceargPtr1){-# LINE 1378 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- %hash c:e31e d:323d-- | Undoes the effect of 'treeViewEnableModelDragDest'.--treeViewUnsetRowsDragDest::TreeViewClassself=>self->IO()treeViewUnsetRowsDragDestself=(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_unset_rows_drag_destargPtr1){-# LINE 1386 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- %hash c:3355 d:3bbe-- | Returns the 'Entry' which is currently in use as interactive search entry-- for @treeView@. In case the built-in entry is being used, @Nothing@ will be-- returned.---- * Available since Gtk+ version 2.10--treeViewGetSearchEntry::TreeViewClassself=>self->IO(MaybeEntry)-- ^ returns the entry currently in use as search entry.treeViewGetSearchEntryself=doePtr<-(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_search_entryargPtr1){-# LINE 1399 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)ifePtr==nullPtrthenreturnNothingelseliftMJust$makeNewObjectmkEntry(returnePtr)-- %hash c:5e11 d:8ec5-- | Sets the entry which the interactive search code will use for this-- @treeView@. This is useful when you want to provide a search entry in our-- interface at all time at a fixed position. Passing @Nothing@ for @entry@-- will make the interactive search code use the built-in popup entry again.---- * Available since Gtk+ version 2.10--treeViewSetSearchEntry::(TreeViewClassself,EntryClassentry)=>self->(Maybeentry)-- ^ @entry@ - the entry the interactive search code of @treeView@-- should use or @Nothing@->IO()treeViewSetSearchEntryself(Justentry)=(\(TreeViewarg1)(Entryarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_set_search_entryargPtr1argPtr2){-# LINE 1418 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(toEntryentry)treeViewSetSearchEntryselfNothing=(\(TreeViewarg1)(Entryarg2)->withForeignPtrarg1$\argPtr1->withForeignPtrarg2$\argPtr2->gtk_tree_view_set_search_entryargPtr1argPtr2){-# LINE 1422 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(EntrynullForeignPtr)-- %hash c:6326 d:a050-- | Sets the row separator function, which is used to determine whether a row-- should be drawn as a separator. If the row separator function is @Nothing@,-- no separators are drawn. This is the default value.---- * Available since Gtk+ version 2.6--treeViewSetRowSeparatorFunc::TreeViewClassself=>self->Maybe(TreeIter->IOBool)-- ^ @func@ - a callback function that-- returns @True@ if the given row of-- the model should be drawn as separator->IO()treeViewSetRowSeparatorFuncselfNothing=(\(TreeViewarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_row_separator_funcargPtr1arg2arg3arg4){-# LINE 1441 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)nullFunPtrnullPtrnullFunPtrtreeViewSetRowSeparatorFuncself(Justfunc)=dofuncPtr<-mkTreeViewRowSeparatorFunc$\_tiPtr_->doti<-peekTreeItertiPtrliftMfromBool$functi(\(TreeViewarg1)arg2arg3arg4->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_row_separator_funcargPtr1arg2arg3arg4){-# LINE 1447 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)funcPtr(castFunPtrToPtrfuncPtr)destroyFunPtrtypeTreeViewRowSeparatorFunc=FunPtr(((PtrTreeModel)->((PtrTreeIter)->((Ptr())->(IOCInt))))){-# LINE 1450 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}foreignimportccall"wrapper"mkTreeViewRowSeparatorFunc::(PtrTreeModel->PtrTreeIter->Ptr()->IO(CInt))->IOTreeViewRowSeparatorFunc-- %hash c:778a d:eacd-- | Returns whether rubber banding is turned on for @treeView@. If the-- selection mode is 'SelectionMultiple', rubber banding will allow the user to-- select multiple rows by dragging the mouse.---- * Available since Gtk+ version 2.10--treeViewGetRubberBanding::TreeViewClassself=>self->IOBool-- ^ returns @True@ if rubber banding in @treeView@ is enabled.treeViewGetRubberBandingself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_rubber_bandingargPtr1){-# LINE 1468 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- %hash c:4a69 d:93aa-- | Enables or disables rubber banding in @treeView@. If the selection mode-- is 'SelectionMultiple', rubber banding will allow the user to select-- multiple rows by dragging the mouse.---- * Available since Gtk+ version 2.10--treeViewSetRubberBanding::TreeViewClassself=>self->Bool-- ^ @enable@ - @True@ to enable rubber banding->IO()treeViewSetRubberBandingselfenable=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_rubber_bandingargPtr1arg2){-# LINE 1482 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolenable)-- %hash c:c8f8 d:c47-- | Returns whether or not tree lines are drawn in @treeView@.---- * Available since Gtk+ version 2.10--treeViewGetEnableTreeLines::TreeViewClassself=>self->IOBool-- ^ returns @True@ if tree lines are drawn in @treeView@, @False@-- otherwise.treeViewGetEnableTreeLinesself=liftMtoBool$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_enable_tree_linesargPtr1){-# LINE 1496 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- %hash c:205d d:1df9-- | Sets whether to draw lines interconnecting the expanders in @treeView@.-- This does not have any visible effects for lists.---- * Available since Gtk+ version 2.10--treeViewSetEnableTreeLines::TreeViewClassself=>self->Bool-- ^ @enabled@ - @True@ to enable tree line drawing, @False@-- otherwise.->IO()treeViewSetEnableTreeLinesselfenabled=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_enable_tree_linesargPtr1arg2){-# LINE 1510 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)(fromBoolenabled)-- | Grid lines.dataTreeViewGridLines=TreeViewGridLinesNone|TreeViewGridLinesHorizontal|TreeViewGridLinesVertical|TreeViewGridLinesBothderiving(Enum){-# LINE 1515 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}-- %hash c:cd40 d:fe96-- | Returns which grid lines are enabled in @treeView@.---- * Available since Gtk+ version 2.10--treeViewGetGridLines::TreeViewClassself=>self->IOTreeViewGridLines-- ^ returns a 'TreeViewGridLines' value indicating-- which grid lines are enabled.treeViewGetGridLinesself=liftM(toEnum.fromIntegral)$(\(TreeViewarg1)->withForeignPtrarg1$\argPtr1->gtk_tree_view_get_grid_linesargPtr1){-# LINE 1527 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)-- %hash c:74b0 d:79f0-- | Sets which grid lines to draw in @treeView@.---- * Available since Gtk+ version 2.10--treeViewSetGridLines::TreeViewClassself=>self->TreeViewGridLines-- ^ @gridLines@ - a 'TreeViewGridLines' value-- indicating which grid lines to enable.->IO()treeViewSetGridLinesselfgridLines=(\(TreeViewarg1)arg2->withForeignPtrarg1$\argPtr1->gtk_tree_view_set_grid_linesargPtr1arg2){-# LINE 1540 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}(toTreeViewself)((fromIntegral.fromEnum)gridLines)---------------------- Attributes-- | The model for the tree view.--treeViewModel::(TreeViewClassself,TreeModelClassmodel)=>ReadWriteAttrself(MaybeTreeModel)modeltreeViewModel=newAttrtreeViewGetModeltreeViewSetModel-- | Horizontal Adjustment for the widget.--treeViewHAdjustment::TreeViewClassself=>Attrself(MaybeAdjustment)treeViewHAdjustment=newAttrtreeViewGetHAdjustmenttreeViewSetHAdjustment-- | Vertical Adjustment for the widget.--treeViewVAdjustment::TreeViewClassself=>Attrself(MaybeAdjustment)treeViewVAdjustment=newAttrtreeViewGetVAdjustmenttreeViewSetVAdjustment-- | Show the column header buttons.---- Default value: @True@--treeViewHeadersVisible::TreeViewClassself=>AttrselfBooltreeViewHeadersVisible=newAttrtreeViewGetHeadersVisibletreeViewSetHeadersVisible-- | Column headers respond to click events.---- Default value: @False@--treeViewHeadersClickable::TreeViewClassself=>AttrselfBooltreeViewHeadersClickable=newAttrFromBoolProperty"headers-clickable"-- | Set the column for the expander column.--treeViewExpanderColumn::TreeViewClassself=>ReadWriteAttrselfTreeViewColumn(MaybeTreeViewColumn)treeViewExpanderColumn=newAttrtreeViewGetExpanderColumntreeViewSetExpanderColumn-- | View is reorderable.---- Default value: @False@--treeViewReorderable::TreeViewClassself=>AttrselfBooltreeViewReorderable=newAttrtreeViewGetReorderabletreeViewSetReorderable-- | Set a hint to the theme engine to draw rows in alternating colors.---- Default value: @False@--treeViewRulesHint::TreeViewClassself=>AttrselfBooltreeViewRulesHint=newAttrtreeViewGetRulesHinttreeViewSetRulesHint-- | View allows user to search through columns interactively.---- Default value: @True@--treeViewEnableSearch::TreeViewClassself=>AttrselfBooltreeViewEnableSearch=newAttrtreeViewGetEnableSearchtreeViewSetEnableSearch-- %hash c:e732-- | Model column to search through when searching through code.---- Allowed values: >= -1---- Default value: -1--treeViewSearchColumn::TreeViewClassself=>Attrself(ColumnIdrowString)treeViewSearchColumn=newAttrtreeViewGetSearchColumntreeViewSetSearchColumn-- %hash c:c7ff d:24d1-- | Setting the 'treeViewFixedHeightMode' property to @True@ speeds up 'TreeView'-- by assuming that all rows have the same height. Only enable this option if-- all rows are the same height. Please see 'treeViewSetFixedHeightMode' for-- more information on this option.---- Default value: @False@---- * Available since Gtk+ version 2.4--treeViewFixedHeightMode::TreeViewClassself=>AttrselfBooltreeViewFixedHeightMode=newAttrFromBoolProperty"fixed-height-mode"-- %hash c:2026 d:839a-- | Enables of disables the hover selection mode of @treeView@. Hover-- selection makes the selected row follow the pointer. Currently, this works-- only for the selection modes 'SelectionSingle' and 'SelectionBrowse'.---- This mode is primarily intended for 'TreeView's in popups, e.g. in-- 'ComboBox' or 'EntryCompletion'.---- Default value: @False@---- * Available since Gtk+ version 2.6--treeViewHoverSelection::TreeViewClassself=>AttrselfBooltreeViewHoverSelection=newAttrFromBoolProperty"hover-selection"-- %hash c:c694 d:3f15-- | Enables of disables the hover expansion mode of @treeView@. Hover-- expansion makes rows expand or collaps if the pointer moves over them.---- This mode is primarily intended for 'TreeView's in popups, e.g. in-- 'ComboBox' or 'EntryCompletion'.---- Default value: @False@---- * Available since Gtk+ version 2.6--treeViewHoverExpand::TreeViewClassself=>AttrselfBooltreeViewHoverExpand=newAttrFromBoolProperty"hover-expand"-- %hash c:b409 d:2ed2-- | View has expanders.---- Default value: @True@--treeViewShowExpanders::TreeViewClassself=>AttrselfBooltreeViewShowExpanders=newAttrFromBoolProperty"show-expanders"-- %hash c:f0e5 d:9017-- | Extra indentation for each level.---- Allowed values: >= 0---- Default value: 0--treeViewLevelIndentation::TreeViewClassself=>AttrselfInttreeViewLevelIndentation=newAttrFromIntProperty"level-indentation"-- %hash c:a647 d:9e53-- | Whether to enable selection of multiple items by dragging the mouse-- pointer.---- Default value: @False@--treeViewRubberBanding::TreeViewClassself=>AttrselfBooltreeViewRubberBanding=newAttrFromBoolProperty"rubber-banding"-- %hash c:e926 d:86a8-- | Whether grid lines should be drawn in the tree view.---- Default value: 'TreeViewGridLinesNone'--treeViewEnableGridLines::TreeViewClassself=>AttrselfTreeViewGridLinestreeViewEnableGridLines=newAttrFromEnumProperty"enable-grid-lines"gtk_tree_view_grid_lines_get_type{-# LINE 1713 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}-- %hash c:a7eb d:4c53-- | Whether tree lines should be drawn in the tree view.---- Default value: @False@--treeViewEnableTreeLines::TreeViewClassself=>AttrselfBooltreeViewEnableTreeLines=newAttrFromBoolProperty"enable-tree-lines"-- %hash c:688c d:cbcd-- | \'gridLines\' property. See 'treeViewGetGridLines' and-- 'treeViewSetGridLines'--treeViewGridLines::TreeViewClassself=>AttrselfTreeViewGridLinestreeViewGridLines=newAttrtreeViewGetGridLinestreeViewSetGridLines-- %hash c:9cbe d:2962-- | \'searchEntry\' property. See 'treeViewGetSearchEntry' and-- 'treeViewSetSearchEntry'--treeViewSearchEntry::(TreeViewClassself,EntryClassentry)=>ReadWriteAttrself(MaybeEntry)(Maybeentry)treeViewSearchEntry=newAttrtreeViewGetSearchEntrytreeViewSetSearchEntry---------------------- Signals-- %hash c:9fc5 d:3e66-- | The given row is about to be expanded (show its children nodes). Use this-- signal if you need to control the expandability of individual rows.--testExpandRow::TreeViewClassself=>Signalself(TreeIter->TreePath->IOBool)testExpandRow=Signal(connect_BOXED_BOXED__BOOL"test-expand-row"peekreadNTP)-- %hash c:20de d:96a3-- | The given row is about to be collapsed (hide its children nodes). Use-- this signal if you need to control the collapsibility of individual rows.--testCollapseRow::TreeViewClassself=>Signalself(TreeIter->TreePath->IOBool)testCollapseRow=Signal(connect_BOXED_BOXED__BOOL"test-collapse-row"peekreadNTP)-- %hash c:16dc d:b113-- | The given row has been expanded (child nodes are shown).--rowExpanded::TreeViewClassself=>Signalself(TreeIter->TreePath->IO())rowExpanded=Signal(connect_BOXED_BOXED__NONE"row-expanded"peekreadNTP)-- %hash c:9ee6 d:325e-- | The given row has been collapsed (child nodes are hidden).--rowCollapsed::TreeViewClassself=>Signalself(TreeIter->TreePath->IO())rowCollapsed=Signal(connect_BOXED_BOXED__NONE"row-collapsed"peekreadNTP)-- %hash c:4350 d:4f94-- | The number of columns of the treeview has changed.--columnsChanged::TreeViewClassself=>Signalself(IO())columnsChanged=Signal(connect_NONE__NONE"columns-changed")-- %hash c:6487 d:5b57-- | The position of the cursor (focused cell) has changed.--cursorChanged::TreeViewClassself=>Signalself(IO())cursorChanged=Signal(connect_NONE__NONE"cursor-changed")---------------------- Deprecated Signals-- | The user has dragged a column to another position.--onColumnsChanged,afterColumnsChanged::TreeViewClassself=>self->IO()->IO(ConnectIdself)onColumnsChanged=connect_NONE__NONE"columns_changed"FalseafterColumnsChanged=connect_NONE__NONE"columns_changed"True-- | The cursor in the tree has moved.--onCursorChanged,afterCursorChanged::TreeViewClassself=>self->IO()->IO(ConnectIdself)onCursorChanged=connect_NONE__NONE"cursor_changed"FalseafterCursorChanged=connect_NONE__NONE"cursor_changed"True-- | A row was activated.---- * Activation usually means the user has pressed return on a row.--onRowActivated,afterRowActivated::TreeViewClassself=>self->(TreePath->TreeViewColumn->IO())->IO(ConnectIdself)onRowActivated=connect_BOXED_OBJECT__NONE"row_activated"readNTPFalseafterRowActivated=connect_BOXED_OBJECT__NONE"row_activated"readNTPTrue-- | Children of this node were hidden.--onRowCollapsed,afterRowCollapsed::TreeViewClassself=>self->(TreeIter->TreePath->IO())->IO(ConnectIdself)onRowCollapsed=connect_BOXED_BOXED__NONE"row_collapsed"peekreadNTPFalseafterRowCollapsed=connect_BOXED_BOXED__NONE"row_collapsed"peekreadNTPTrue-- | Children of this node are made visible.--onRowExpanded,afterRowExpanded::TreeViewClassself=>self->(TreeIter->TreePath->IO())->IO(ConnectIdself)onRowExpanded=connect_BOXED_BOXED__NONE"row_expanded"peekreadNTPFalseafterRowExpanded=connect_BOXED_BOXED__NONE"row_expanded"peekreadNTPTrue-- | The user wants to search interactively.---- * Connect to this signal if you want to provide you own search facility.-- Note that you must handle all keyboard input yourself.--onStartInteractiveSearch,afterStartInteractiveSearch::TreeViewClassself=>self->IO()->IO(ConnectIdself)onStartInteractiveSearchselffun=connect_NONE__BOOL"start_interactive_search"Falseself(fun>>returnTrue)afterStartInteractiveSearchselffun=connect_NONE__BOOL"start_interactive_search"Trueself(fun>>returnTrue){-# LINE 1861 "./Graphics/UI/Gtk/ModelView/TreeView.chs" #-}-- | Determine if this row should be collapsed.---- * If the application connects to this function and returns @False@,-- the specifc row will not be altered.--onTestCollapseRow,afterTestCollapseRow::TreeViewClassself=>self->(TreeIter->TreePath->IOBool)->IO(ConnectIdself)onTestCollapseRow=connect_BOXED_BOXED__BOOL"test_collapse_row"peekreadNTPFalseafterTestCollapseRow=connect_BOXED_BOXED__BOOL"test_collapse_row"peekreadNTPTrue-- | Determine if this row should be expanded.---- * If the application connects to this function and returns @False@,-- the specifc row will not be altered.--onTestExpandRow,afterTestExpandRow::TreeViewClassself=>self->(TreeIter->TreePath->IOBool)->IO(ConnectIdself)onTestExpandRow=connect_BOXED_BOXED__BOOL"test_expand_row"peekreadNTPFalseafterTestExpandRow=connect_BOXED_BOXED__BOOL"test_expand_row"peekreadNTPTrueforeignimportccallsafe"gtk_tree_view_new"gtk_tree_view_new::(IO(PtrWidget))foreignimportccallsafe"gtk_tree_view_new_with_model"gtk_tree_view_new_with_model::((PtrTreeModel)->(IO(PtrWidget)))foreignimportccallunsafe"gtk_tree_view_get_model"gtk_tree_view_get_model::((PtrTreeView)->(IO(PtrTreeModel)))foreignimportccallsafe"gtk_tree_view_set_model"gtk_tree_view_set_model::((PtrTreeView)->((PtrTreeModel)->(IO())))foreignimportccallunsafe"gtk_tree_view_get_selection"gtk_tree_view_get_selection::((PtrTreeView)->(IO(PtrTreeSelection)))foreignimportccallunsafe"gtk_tree_view_get_hadjustment"gtk_tree_view_get_hadjustment::((PtrTreeView)->(IO(PtrAdjustment)))foreignimportccallsafe"gtk_tree_view_set_hadjustment"gtk_tree_view_set_hadjustment::((PtrTreeView)->((PtrAdjustment)->(IO())))foreignimportccallunsafe"gtk_tree_view_get_vadjustment"gtk_tree_view_get_vadjustment::((PtrTreeView)->(IO(PtrAdjustment)))foreignimportccallsafe"gtk_tree_view_set_vadjustment"gtk_tree_view_set_vadjustment::((PtrTreeView)->((PtrAdjustment)->(IO())))foreignimportccallunsafe"gtk_tree_view_get_headers_visible"gtk_tree_view_get_headers_visible::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_headers_visible"gtk_tree_view_set_headers_visible::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_columns_autosize"gtk_tree_view_columns_autosize::((PtrTreeView)->(IO()))foreignimportccallsafe"gtk_tree_view_set_headers_clickable"gtk_tree_view_set_headers_clickable::((PtrTreeView)->(CInt->(IO())))foreignimportccallunsafe"gtk_tree_view_get_rules_hint"gtk_tree_view_get_rules_hint::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_rules_hint"gtk_tree_view_set_rules_hint::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_append_column"gtk_tree_view_append_column::((PtrTreeView)->((PtrTreeViewColumn)->(IOCInt)))foreignimportccallsafe"gtk_tree_view_remove_column"gtk_tree_view_remove_column::((PtrTreeView)->((PtrTreeViewColumn)->(IOCInt)))foreignimportccallsafe"gtk_tree_view_insert_column"gtk_tree_view_insert_column::((PtrTreeView)->((PtrTreeViewColumn)->(CInt->(IOCInt))))foreignimportccallunsafe"gtk_tree_view_get_column"gtk_tree_view_get_column::((PtrTreeView)->(CInt->(IO(PtrTreeViewColumn))))foreignimportccallunsafe"gtk_tree_view_get_columns"gtk_tree_view_get_columns::((PtrTreeView)->(IO(Ptr())))foreignimportccallsafe"gtk_tree_view_move_column_after"gtk_tree_view_move_column_after::((PtrTreeView)->((PtrTreeViewColumn)->((PtrTreeViewColumn)->(IO()))))foreignimportccallunsafe"gtk_tree_view_set_expander_column"gtk_tree_view_set_expander_column::((PtrTreeView)->((PtrTreeViewColumn)->(IO())))foreignimportccallunsafe"gtk_tree_view_get_expander_column"gtk_tree_view_get_expander_column::((PtrTreeView)->(IO(PtrTreeViewColumn)))foreignimportccallsafe"gtk_tree_view_set_column_drag_function"gtk_tree_view_set_column_drag_function::((PtrTreeView)->((FunPtr((PtrTreeView)->((PtrTreeViewColumn)->((PtrTreeViewColumn)->((PtrTreeViewColumn)->((Ptr())->(IOCInt)))))))->((Ptr())->((FunPtr((Ptr())->(IO())))->(IO())))))foreignimportccallsafe"gtk_tree_view_scroll_to_point"gtk_tree_view_scroll_to_point::((PtrTreeView)->(CInt->(CInt->(IO()))))foreignimportccallsafe"gtk_tree_view_scroll_to_cell"gtk_tree_view_scroll_to_cell::((PtrTreeView)->((PtrNativeTreePath)->((PtrTreeViewColumn)->(CInt->(CFloat->(CFloat->(IO())))))))foreignimportccallsafe"gtk_tree_view_set_cursor"gtk_tree_view_set_cursor::((PtrTreeView)->((PtrNativeTreePath)->((PtrTreeViewColumn)->(CInt->(IO())))))foreignimportccallsafe"gtk_tree_view_set_cursor_on_cell"gtk_tree_view_set_cursor_on_cell::((PtrTreeView)->((PtrNativeTreePath)->((PtrTreeViewColumn)->((PtrCellRenderer)->(CInt->(IO()))))))foreignimportccallunsafe"gtk_tree_view_get_cursor"gtk_tree_view_get_cursor::((PtrTreeView)->((PtrNativeTreePath)->((PtrTreeViewColumn)->(IO()))))foreignimportccallsafe"gtk_tree_view_row_activated"gtk_tree_view_row_activated::((PtrTreeView)->((PtrNativeTreePath)->((PtrTreeViewColumn)->(IO()))))foreignimportccallsafe"gtk_tree_view_expand_all"gtk_tree_view_expand_all::((PtrTreeView)->(IO()))foreignimportccallsafe"gtk_tree_view_collapse_all"gtk_tree_view_collapse_all::((PtrTreeView)->(IO()))foreignimportccallsafe"gtk_tree_view_expand_to_path"gtk_tree_view_expand_to_path::((PtrTreeView)->((PtrNativeTreePath)->(IO())))foreignimportccallsafe"gtk_tree_view_expand_row"gtk_tree_view_expand_row::((PtrTreeView)->((PtrNativeTreePath)->(CInt->(IOCInt))))foreignimportccallsafe"gtk_tree_view_collapse_row"gtk_tree_view_collapse_row::((PtrTreeView)->((PtrNativeTreePath)->(IOCInt)))foreignimportccallsafe"gtk_tree_view_map_expanded_rows"gtk_tree_view_map_expanded_rows::((PtrTreeView)->((FunPtr((PtrTreeView)->((PtrNativeTreePath)->((Ptr())->(IO())))))->((Ptr())->(IO()))))foreignimportccallunsafe"gtk_tree_view_row_expanded"gtk_tree_view_row_expanded::((PtrTreeView)->((PtrNativeTreePath)->(IOCInt)))foreignimportccallunsafe"gtk_tree_view_get_reorderable"gtk_tree_view_get_reorderable::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_reorderable"gtk_tree_view_set_reorderable::((PtrTreeView)->(CInt->(IO())))foreignimportccallunsafe"gtk_tree_view_get_path_at_pos"gtk_tree_view_get_path_at_pos::((PtrTreeView)->(CInt->(CInt->((PtrNativeTreePath)->((PtrTreeViewColumn)->((PtrCInt)->((PtrCInt)->(IOCInt))))))))foreignimportccallunsafe"gtk_tree_view_get_cell_area"gtk_tree_view_get_cell_area::((PtrTreeView)->((PtrNativeTreePath)->((PtrTreeViewColumn)->((Ptr())->(IO())))))foreignimportccallunsafe"gtk_tree_view_get_background_area"gtk_tree_view_get_background_area::((PtrTreeView)->((PtrNativeTreePath)->((PtrTreeViewColumn)->((Ptr())->(IO())))))foreignimportccallunsafe"gtk_tree_view_get_visible_rect"gtk_tree_view_get_visible_rect::((PtrTreeView)->((Ptr())->(IO())))foreignimportccallunsafe"gtk_tree_view_tree_to_widget_coords"gtk_tree_view_tree_to_widget_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_widget_to_tree_coords"gtk_tree_view_widget_to_tree_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_convert_bin_window_to_tree_coords"gtk_tree_view_convert_bin_window_to_tree_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_convert_bin_window_to_widget_coords"gtk_tree_view_convert_bin_window_to_widget_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_convert_tree_to_bin_window_coords"gtk_tree_view_convert_tree_to_bin_window_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_convert_tree_to_widget_coords"gtk_tree_view_convert_tree_to_widget_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_convert_widget_to_bin_window_coords"gtk_tree_view_convert_widget_to_bin_window_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_convert_widget_to_tree_coords"gtk_tree_view_convert_widget_to_tree_coords::((PtrTreeView)->(CInt->(CInt->((PtrCInt)->((PtrCInt)->(IO()))))))foreignimportccallunsafe"gtk_tree_view_create_row_drag_icon"gtk_tree_view_create_row_drag_icon::((PtrTreeView)->((PtrNativeTreePath)->(IO(PtrPixmap))))foreignimportccallunsafe"gtk_tree_view_get_enable_search"gtk_tree_view_get_enable_search::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_enable_search"gtk_tree_view_set_enable_search::((PtrTreeView)->(CInt->(IO())))foreignimportccallunsafe"gtk_tree_view_get_search_column"gtk_tree_view_get_search_column::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_search_column"gtk_tree_view_set_search_column::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_set_search_equal_func"gtk_tree_view_set_search_equal_func::((PtrTreeView)->((FunPtr((PtrTreeModel)->(CInt->((PtrCChar)->((PtrTreeIter)->((Ptr())->(IOCInt)))))))->((Ptr())->((FunPtr((Ptr())->(IO())))->(IO())))))foreignimportccallsafe"gtk_tree_view_get_fixed_height_mode"gtk_tree_view_get_fixed_height_mode::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_fixed_height_mode"gtk_tree_view_set_fixed_height_mode::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_get_hover_selection"gtk_tree_view_get_hover_selection::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_hover_selection"gtk_tree_view_set_hover_selection::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_get_hover_expand"gtk_tree_view_get_hover_expand::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_hover_expand"gtk_tree_view_set_hover_expand::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_get_headers_clickable"gtk_tree_view_get_headers_clickable::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_get_visible_range"gtk_tree_view_get_visible_range::((PtrTreeView)->((PtrNativeTreePath)->((PtrNativeTreePath)->(IOCInt))))foreignimportccallunsafe"gtk_target_table_new_from_list"gtk_target_table_new_from_list::((PtrTargetList)->((PtrCInt)->(IO(Ptr()))))foreignimportccallsafe"gtk_tree_view_enable_model_drag_dest"gtk_tree_view_enable_model_drag_dest::((PtrTreeView)->((Ptr())->(CInt->(CInt->(IO())))))foreignimportccallunsafe"gtk_target_table_free"gtk_target_table_free::((Ptr())->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_enable_model_drag_source"gtk_tree_view_enable_model_drag_source::((PtrTreeView)->(CInt->((Ptr())->(CInt->(CInt->(IO()))))))foreignimportccallsafe"gtk_tree_view_unset_rows_drag_source"gtk_tree_view_unset_rows_drag_source::((PtrTreeView)->(IO()))foreignimportccallsafe"gtk_tree_view_unset_rows_drag_dest"gtk_tree_view_unset_rows_drag_dest::((PtrTreeView)->(IO()))foreignimportccallsafe"gtk_tree_view_get_search_entry"gtk_tree_view_get_search_entry::((PtrTreeView)->(IO(PtrEntry)))foreignimportccallsafe"gtk_tree_view_set_search_entry"gtk_tree_view_set_search_entry::((PtrTreeView)->((PtrEntry)->(IO())))foreignimportccallsafe"gtk_tree_view_set_row_separator_func"gtk_tree_view_set_row_separator_func::((PtrTreeView)->((FunPtr((PtrTreeModel)->((PtrTreeIter)->((Ptr())->(IOCInt)))))->((Ptr())->((FunPtr((Ptr())->(IO())))->(IO())))))foreignimportccallsafe"gtk_tree_view_get_rubber_banding"gtk_tree_view_get_rubber_banding::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_rubber_banding"gtk_tree_view_set_rubber_banding::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_get_enable_tree_lines"gtk_tree_view_get_enable_tree_lines::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_enable_tree_lines"gtk_tree_view_set_enable_tree_lines::((PtrTreeView)->(CInt->(IO())))foreignimportccallsafe"gtk_tree_view_get_grid_lines"gtk_tree_view_get_grid_lines::((PtrTreeView)->(IOCInt))foreignimportccallsafe"gtk_tree_view_set_grid_lines"gtk_tree_view_set_grid_lines::((PtrTreeView)->(CInt->(IO())))foreignimportccallunsafe"gtk_tree_view_grid_lines_get_type"gtk_tree_view_grid_lines_get_type::CUInt