{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)

Widget that displays any object that implements the 'GI.Gtk.Interfaces.TreeModel.TreeModel' interface.

Please refer to the
[tree widget conceptual overview][TreeWidget]
for an overview of all the objects and data types related
to the tree widget and how they work together.

Several different coordinate systems are exposed in the GtkTreeView API.
These are:

<<https://developer.gnome.org/gtk3/stable/tree-view-coordinates.png>>

Coordinate systems in GtkTreeView API:

* Widget coordinates: Coordinates relative to the widget (usually @widget->window@).
* Bin window coordinates: Coordinates relative to the window that GtkTreeView renders to.
* Tree coordinates: Coordinates relative to the entire scrollable area of GtkTreeView. These
coordinates start at (0, 0) for row 0 of the tree.


Several functions are available for converting between the different
coordinate systems.  The most common translations are between widget and bin
window coordinates and between bin window and tree coordinates. For the
former you can use 'GI.Gtk.Objects.TreeView.treeViewConvertWidgetToBinWindowCoords'
(and vice versa), for the latter 'GI.Gtk.Objects.TreeView.treeViewConvertBinWindowToTreeCoords'
(and vice versa).

= GtkTreeView as GtkBuildable

The GtkTreeView implementation of the GtkBuildable interface accepts
'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' objects as \<child> elements and exposes the internal
'GI.Gtk.Objects.TreeSelection.TreeSelection' in UI definitions.

An example of a UI definition fragment with GtkTreeView:
>
><object class="GtkTreeView" id="treeview">
>  <property name="model">liststore1</property>
>  <child>
>    <object class="GtkTreeViewColumn" id="test-column">
>      <property name="title">Test</property>
>      <child>
>        <object class="GtkCellRendererText" id="test-renderer"/>
>        <attributes>
>          <attribute name="text">1</attribute>
>        </attributes>
>      </child>
>    </object>
>  </child>
>  <child internal-child="selection">
>    <object class="GtkTreeSelection" id="selection">
>      <signal name="changed" handler="on_treeview_selection_changed"/>
>    </object>
>  </child>
></object>


= CSS nodes


=== /plain code/
>
>treeview.view
>├── header
>│   ├── <column header>
>┊   ┊
>│   ╰── <column header>
>│
>╰── [rubberband]


GtkTreeView has a main CSS node with name treeview and style class .view.
It has a subnode with name header, which is the parent for all the column
header widgets\' CSS nodes.
For rubberband selection, a subnode with name rubberband is used.
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.Gtk.Objects.TreeView
    (

-- * Exported types
    TreeView(..)                            ,
    IsTreeView                              ,
    toTreeView                              ,
    noTreeView                              ,


 -- * Methods
-- ** appendColumn #method:appendColumn#

#if ENABLE_OVERLOADING
    TreeViewAppendColumnMethodInfo          ,
#endif
    treeViewAppendColumn                    ,


-- ** collapseAll #method:collapseAll#

#if ENABLE_OVERLOADING
    TreeViewCollapseAllMethodInfo           ,
#endif
    treeViewCollapseAll                     ,


-- ** collapseRow #method:collapseRow#

#if ENABLE_OVERLOADING
    TreeViewCollapseRowMethodInfo           ,
#endif
    treeViewCollapseRow                     ,


-- ** columnsAutosize #method:columnsAutosize#

#if ENABLE_OVERLOADING
    TreeViewColumnsAutosizeMethodInfo       ,
#endif
    treeViewColumnsAutosize                 ,


-- ** convertBinWindowToTreeCoords #method:convertBinWindowToTreeCoords#

#if ENABLE_OVERLOADING
    TreeViewConvertBinWindowToTreeCoordsMethodInfo,
#endif
    treeViewConvertBinWindowToTreeCoords    ,


-- ** convertBinWindowToWidgetCoords #method:convertBinWindowToWidgetCoords#

#if ENABLE_OVERLOADING
    TreeViewConvertBinWindowToWidgetCoordsMethodInfo,
#endif
    treeViewConvertBinWindowToWidgetCoords  ,


-- ** convertTreeToBinWindowCoords #method:convertTreeToBinWindowCoords#

#if ENABLE_OVERLOADING
    TreeViewConvertTreeToBinWindowCoordsMethodInfo,
#endif
    treeViewConvertTreeToBinWindowCoords    ,


-- ** convertTreeToWidgetCoords #method:convertTreeToWidgetCoords#

#if ENABLE_OVERLOADING
    TreeViewConvertTreeToWidgetCoordsMethodInfo,
#endif
    treeViewConvertTreeToWidgetCoords       ,


-- ** convertWidgetToBinWindowCoords #method:convertWidgetToBinWindowCoords#

#if ENABLE_OVERLOADING
    TreeViewConvertWidgetToBinWindowCoordsMethodInfo,
#endif
    treeViewConvertWidgetToBinWindowCoords  ,


-- ** convertWidgetToTreeCoords #method:convertWidgetToTreeCoords#

#if ENABLE_OVERLOADING
    TreeViewConvertWidgetToTreeCoordsMethodInfo,
#endif
    treeViewConvertWidgetToTreeCoords       ,


-- ** createRowDragIcon #method:createRowDragIcon#

#if ENABLE_OVERLOADING
    TreeViewCreateRowDragIconMethodInfo     ,
#endif
    treeViewCreateRowDragIcon               ,


-- ** enableModelDragDest #method:enableModelDragDest#

#if ENABLE_OVERLOADING
    TreeViewEnableModelDragDestMethodInfo   ,
#endif
    treeViewEnableModelDragDest             ,


-- ** enableModelDragSource #method:enableModelDragSource#

#if ENABLE_OVERLOADING
    TreeViewEnableModelDragSourceMethodInfo ,
#endif
    treeViewEnableModelDragSource           ,


-- ** expandAll #method:expandAll#

#if ENABLE_OVERLOADING
    TreeViewExpandAllMethodInfo             ,
#endif
    treeViewExpandAll                       ,


-- ** expandRow #method:expandRow#

#if ENABLE_OVERLOADING
    TreeViewExpandRowMethodInfo             ,
#endif
    treeViewExpandRow                       ,


-- ** expandToPath #method:expandToPath#

#if ENABLE_OVERLOADING
    TreeViewExpandToPathMethodInfo          ,
#endif
    treeViewExpandToPath                    ,


-- ** getActivateOnSingleClick #method:getActivateOnSingleClick#

#if ENABLE_OVERLOADING
    TreeViewGetActivateOnSingleClickMethodInfo,
#endif
    treeViewGetActivateOnSingleClick        ,


-- ** getBackgroundArea #method:getBackgroundArea#

#if ENABLE_OVERLOADING
    TreeViewGetBackgroundAreaMethodInfo     ,
#endif
    treeViewGetBackgroundArea               ,


-- ** getBinWindow #method:getBinWindow#

#if ENABLE_OVERLOADING
    TreeViewGetBinWindowMethodInfo          ,
#endif
    treeViewGetBinWindow                    ,


-- ** getCellArea #method:getCellArea#

#if ENABLE_OVERLOADING
    TreeViewGetCellAreaMethodInfo           ,
#endif
    treeViewGetCellArea                     ,


-- ** getColumn #method:getColumn#

#if ENABLE_OVERLOADING
    TreeViewGetColumnMethodInfo             ,
#endif
    treeViewGetColumn                       ,


-- ** getColumns #method:getColumns#

#if ENABLE_OVERLOADING
    TreeViewGetColumnsMethodInfo            ,
#endif
    treeViewGetColumns                      ,


-- ** getCursor #method:getCursor#

#if ENABLE_OVERLOADING
    TreeViewGetCursorMethodInfo             ,
#endif
    treeViewGetCursor                       ,


-- ** getDestRowAtPos #method:getDestRowAtPos#

#if ENABLE_OVERLOADING
    TreeViewGetDestRowAtPosMethodInfo       ,
#endif
    treeViewGetDestRowAtPos                 ,


-- ** getDragDestRow #method:getDragDestRow#

#if ENABLE_OVERLOADING
    TreeViewGetDragDestRowMethodInfo        ,
#endif
    treeViewGetDragDestRow                  ,


-- ** getEnableSearch #method:getEnableSearch#

#if ENABLE_OVERLOADING
    TreeViewGetEnableSearchMethodInfo       ,
#endif
    treeViewGetEnableSearch                 ,


-- ** getEnableTreeLines #method:getEnableTreeLines#

#if ENABLE_OVERLOADING
    TreeViewGetEnableTreeLinesMethodInfo    ,
#endif
    treeViewGetEnableTreeLines              ,


-- ** getExpanderColumn #method:getExpanderColumn#

#if ENABLE_OVERLOADING
    TreeViewGetExpanderColumnMethodInfo     ,
#endif
    treeViewGetExpanderColumn               ,


-- ** getFixedHeightMode #method:getFixedHeightMode#

#if ENABLE_OVERLOADING
    TreeViewGetFixedHeightModeMethodInfo    ,
#endif
    treeViewGetFixedHeightMode              ,


-- ** getGridLines #method:getGridLines#

#if ENABLE_OVERLOADING
    TreeViewGetGridLinesMethodInfo          ,
#endif
    treeViewGetGridLines                    ,


-- ** getHadjustment #method:getHadjustment#

#if ENABLE_OVERLOADING
    TreeViewGetHadjustmentMethodInfo        ,
#endif
    treeViewGetHadjustment                  ,


-- ** getHeadersClickable #method:getHeadersClickable#

#if ENABLE_OVERLOADING
    TreeViewGetHeadersClickableMethodInfo   ,
#endif
    treeViewGetHeadersClickable             ,


-- ** getHeadersVisible #method:getHeadersVisible#

#if ENABLE_OVERLOADING
    TreeViewGetHeadersVisibleMethodInfo     ,
#endif
    treeViewGetHeadersVisible               ,


-- ** getHoverExpand #method:getHoverExpand#

#if ENABLE_OVERLOADING
    TreeViewGetHoverExpandMethodInfo        ,
#endif
    treeViewGetHoverExpand                  ,


-- ** getHoverSelection #method:getHoverSelection#

#if ENABLE_OVERLOADING
    TreeViewGetHoverSelectionMethodInfo     ,
#endif
    treeViewGetHoverSelection               ,


-- ** getLevelIndentation #method:getLevelIndentation#

#if ENABLE_OVERLOADING
    TreeViewGetLevelIndentationMethodInfo   ,
#endif
    treeViewGetLevelIndentation             ,


-- ** getModel #method:getModel#

#if ENABLE_OVERLOADING
    TreeViewGetModelMethodInfo              ,
#endif
    treeViewGetModel                        ,


-- ** getNColumns #method:getNColumns#

#if ENABLE_OVERLOADING
    TreeViewGetNColumnsMethodInfo           ,
#endif
    treeViewGetNColumns                     ,


-- ** getPathAtPos #method:getPathAtPos#

#if ENABLE_OVERLOADING
    TreeViewGetPathAtPosMethodInfo          ,
#endif
    treeViewGetPathAtPos                    ,


-- ** getReorderable #method:getReorderable#

#if ENABLE_OVERLOADING
    TreeViewGetReorderableMethodInfo        ,
#endif
    treeViewGetReorderable                  ,


-- ** getRubberBanding #method:getRubberBanding#

#if ENABLE_OVERLOADING
    TreeViewGetRubberBandingMethodInfo      ,
#endif
    treeViewGetRubberBanding                ,


-- ** getRulesHint #method:getRulesHint#

#if ENABLE_OVERLOADING
    TreeViewGetRulesHintMethodInfo          ,
#endif
    treeViewGetRulesHint                    ,


-- ** getSearchColumn #method:getSearchColumn#

#if ENABLE_OVERLOADING
    TreeViewGetSearchColumnMethodInfo       ,
#endif
    treeViewGetSearchColumn                 ,


-- ** getSearchEntry #method:getSearchEntry#

#if ENABLE_OVERLOADING
    TreeViewGetSearchEntryMethodInfo        ,
#endif
    treeViewGetSearchEntry                  ,


-- ** getSelection #method:getSelection#

#if ENABLE_OVERLOADING
    TreeViewGetSelectionMethodInfo          ,
#endif
    treeViewGetSelection                    ,


-- ** getShowExpanders #method:getShowExpanders#

#if ENABLE_OVERLOADING
    TreeViewGetShowExpandersMethodInfo      ,
#endif
    treeViewGetShowExpanders                ,


-- ** getTooltipColumn #method:getTooltipColumn#

#if ENABLE_OVERLOADING
    TreeViewGetTooltipColumnMethodInfo      ,
#endif
    treeViewGetTooltipColumn                ,


-- ** getTooltipContext #method:getTooltipContext#

#if ENABLE_OVERLOADING
    TreeViewGetTooltipContextMethodInfo     ,
#endif
    treeViewGetTooltipContext               ,


-- ** getVadjustment #method:getVadjustment#

#if ENABLE_OVERLOADING
    TreeViewGetVadjustmentMethodInfo        ,
#endif
    treeViewGetVadjustment                  ,


-- ** getVisibleRange #method:getVisibleRange#

#if ENABLE_OVERLOADING
    TreeViewGetVisibleRangeMethodInfo       ,
#endif
    treeViewGetVisibleRange                 ,


-- ** getVisibleRect #method:getVisibleRect#

#if ENABLE_OVERLOADING
    TreeViewGetVisibleRectMethodInfo        ,
#endif
    treeViewGetVisibleRect                  ,


-- ** insertColumn #method:insertColumn#

#if ENABLE_OVERLOADING
    TreeViewInsertColumnMethodInfo          ,
#endif
    treeViewInsertColumn                    ,


-- ** insertColumnWithDataFunc #method:insertColumnWithDataFunc#

#if ENABLE_OVERLOADING
    TreeViewInsertColumnWithDataFuncMethodInfo,
#endif
    treeViewInsertColumnWithDataFunc        ,


-- ** isBlankAtPos #method:isBlankAtPos#

#if ENABLE_OVERLOADING
    TreeViewIsBlankAtPosMethodInfo          ,
#endif
    treeViewIsBlankAtPos                    ,


-- ** isRubberBandingActive #method:isRubberBandingActive#

#if ENABLE_OVERLOADING
    TreeViewIsRubberBandingActiveMethodInfo ,
#endif
    treeViewIsRubberBandingActive           ,


-- ** mapExpandedRows #method:mapExpandedRows#

#if ENABLE_OVERLOADING
    TreeViewMapExpandedRowsMethodInfo       ,
#endif
    treeViewMapExpandedRows                 ,


-- ** moveColumnAfter #method:moveColumnAfter#

#if ENABLE_OVERLOADING
    TreeViewMoveColumnAfterMethodInfo       ,
#endif
    treeViewMoveColumnAfter                 ,


-- ** new #method:new#

    treeViewNew                             ,


-- ** newWithModel #method:newWithModel#

    treeViewNewWithModel                    ,


-- ** removeColumn #method:removeColumn#

#if ENABLE_OVERLOADING
    TreeViewRemoveColumnMethodInfo          ,
#endif
    treeViewRemoveColumn                    ,


-- ** rowActivated #method:rowActivated#

#if ENABLE_OVERLOADING
    TreeViewRowActivatedMethodInfo          ,
#endif
    treeViewRowActivated                    ,


-- ** rowExpanded #method:rowExpanded#

#if ENABLE_OVERLOADING
    TreeViewRowExpandedMethodInfo           ,
#endif
    treeViewRowExpanded                     ,


-- ** scrollToCell #method:scrollToCell#

#if ENABLE_OVERLOADING
    TreeViewScrollToCellMethodInfo          ,
#endif
    treeViewScrollToCell                    ,


-- ** scrollToPoint #method:scrollToPoint#

#if ENABLE_OVERLOADING
    TreeViewScrollToPointMethodInfo         ,
#endif
    treeViewScrollToPoint                   ,


-- ** setActivateOnSingleClick #method:setActivateOnSingleClick#

#if ENABLE_OVERLOADING
    TreeViewSetActivateOnSingleClickMethodInfo,
#endif
    treeViewSetActivateOnSingleClick        ,


-- ** setColumnDragFunction #method:setColumnDragFunction#

#if ENABLE_OVERLOADING
    TreeViewSetColumnDragFunctionMethodInfo ,
#endif
    treeViewSetColumnDragFunction           ,


-- ** setCursor #method:setCursor#

#if ENABLE_OVERLOADING
    TreeViewSetCursorMethodInfo             ,
#endif
    treeViewSetCursor                       ,


-- ** setCursorOnCell #method:setCursorOnCell#

#if ENABLE_OVERLOADING
    TreeViewSetCursorOnCellMethodInfo       ,
#endif
    treeViewSetCursorOnCell                 ,


-- ** setDestroyCountFunc #method:setDestroyCountFunc#

#if ENABLE_OVERLOADING
    TreeViewSetDestroyCountFuncMethodInfo   ,
#endif
    treeViewSetDestroyCountFunc             ,


-- ** setDragDestRow #method:setDragDestRow#

#if ENABLE_OVERLOADING
    TreeViewSetDragDestRowMethodInfo        ,
#endif
    treeViewSetDragDestRow                  ,


-- ** setEnableSearch #method:setEnableSearch#

#if ENABLE_OVERLOADING
    TreeViewSetEnableSearchMethodInfo       ,
#endif
    treeViewSetEnableSearch                 ,


-- ** setEnableTreeLines #method:setEnableTreeLines#

#if ENABLE_OVERLOADING
    TreeViewSetEnableTreeLinesMethodInfo    ,
#endif
    treeViewSetEnableTreeLines              ,


-- ** setExpanderColumn #method:setExpanderColumn#

#if ENABLE_OVERLOADING
    TreeViewSetExpanderColumnMethodInfo     ,
#endif
    treeViewSetExpanderColumn               ,


-- ** setFixedHeightMode #method:setFixedHeightMode#

#if ENABLE_OVERLOADING
    TreeViewSetFixedHeightModeMethodInfo    ,
#endif
    treeViewSetFixedHeightMode              ,


-- ** setGridLines #method:setGridLines#

#if ENABLE_OVERLOADING
    TreeViewSetGridLinesMethodInfo          ,
#endif
    treeViewSetGridLines                    ,


-- ** setHadjustment #method:setHadjustment#

#if ENABLE_OVERLOADING
    TreeViewSetHadjustmentMethodInfo        ,
#endif
    treeViewSetHadjustment                  ,


-- ** setHeadersClickable #method:setHeadersClickable#

#if ENABLE_OVERLOADING
    TreeViewSetHeadersClickableMethodInfo   ,
#endif
    treeViewSetHeadersClickable             ,


-- ** setHeadersVisible #method:setHeadersVisible#

#if ENABLE_OVERLOADING
    TreeViewSetHeadersVisibleMethodInfo     ,
#endif
    treeViewSetHeadersVisible               ,


-- ** setHoverExpand #method:setHoverExpand#

#if ENABLE_OVERLOADING
    TreeViewSetHoverExpandMethodInfo        ,
#endif
    treeViewSetHoverExpand                  ,


-- ** setHoverSelection #method:setHoverSelection#

#if ENABLE_OVERLOADING
    TreeViewSetHoverSelectionMethodInfo     ,
#endif
    treeViewSetHoverSelection               ,


-- ** setLevelIndentation #method:setLevelIndentation#

#if ENABLE_OVERLOADING
    TreeViewSetLevelIndentationMethodInfo   ,
#endif
    treeViewSetLevelIndentation             ,


-- ** setModel #method:setModel#

#if ENABLE_OVERLOADING
    TreeViewSetModelMethodInfo              ,
#endif
    treeViewSetModel                        ,


-- ** setReorderable #method:setReorderable#

#if ENABLE_OVERLOADING
    TreeViewSetReorderableMethodInfo        ,
#endif
    treeViewSetReorderable                  ,


-- ** setRowSeparatorFunc #method:setRowSeparatorFunc#

#if ENABLE_OVERLOADING
    TreeViewSetRowSeparatorFuncMethodInfo   ,
#endif
    treeViewSetRowSeparatorFunc             ,


-- ** setRubberBanding #method:setRubberBanding#

#if ENABLE_OVERLOADING
    TreeViewSetRubberBandingMethodInfo      ,
#endif
    treeViewSetRubberBanding                ,


-- ** setRulesHint #method:setRulesHint#

#if ENABLE_OVERLOADING
    TreeViewSetRulesHintMethodInfo          ,
#endif
    treeViewSetRulesHint                    ,


-- ** setSearchColumn #method:setSearchColumn#

#if ENABLE_OVERLOADING
    TreeViewSetSearchColumnMethodInfo       ,
#endif
    treeViewSetSearchColumn                 ,


-- ** setSearchEntry #method:setSearchEntry#

#if ENABLE_OVERLOADING
    TreeViewSetSearchEntryMethodInfo        ,
#endif
    treeViewSetSearchEntry                  ,


-- ** setSearchEqualFunc #method:setSearchEqualFunc#

#if ENABLE_OVERLOADING
    TreeViewSetSearchEqualFuncMethodInfo    ,
#endif
    treeViewSetSearchEqualFunc              ,


-- ** setSearchPositionFunc #method:setSearchPositionFunc#

#if ENABLE_OVERLOADING
    TreeViewSetSearchPositionFuncMethodInfo ,
#endif
    treeViewSetSearchPositionFunc           ,


-- ** setShowExpanders #method:setShowExpanders#

#if ENABLE_OVERLOADING
    TreeViewSetShowExpandersMethodInfo      ,
#endif
    treeViewSetShowExpanders                ,


-- ** setTooltipCell #method:setTooltipCell#

#if ENABLE_OVERLOADING
    TreeViewSetTooltipCellMethodInfo        ,
#endif
    treeViewSetTooltipCell                  ,


-- ** setTooltipColumn #method:setTooltipColumn#

#if ENABLE_OVERLOADING
    TreeViewSetTooltipColumnMethodInfo      ,
#endif
    treeViewSetTooltipColumn                ,


-- ** setTooltipRow #method:setTooltipRow#

#if ENABLE_OVERLOADING
    TreeViewSetTooltipRowMethodInfo         ,
#endif
    treeViewSetTooltipRow                   ,


-- ** setVadjustment #method:setVadjustment#

#if ENABLE_OVERLOADING
    TreeViewSetVadjustmentMethodInfo        ,
#endif
    treeViewSetVadjustment                  ,


-- ** unsetRowsDragDest #method:unsetRowsDragDest#

#if ENABLE_OVERLOADING
    TreeViewUnsetRowsDragDestMethodInfo     ,
#endif
    treeViewUnsetRowsDragDest               ,


-- ** unsetRowsDragSource #method:unsetRowsDragSource#

#if ENABLE_OVERLOADING
    TreeViewUnsetRowsDragSourceMethodInfo   ,
#endif
    treeViewUnsetRowsDragSource             ,




 -- * Properties
-- ** activateOnSingleClick #attr:activateOnSingleClick#
{- | The activate-on-single-click property specifies whether the \"row-activated\" signal
will be emitted after a single click.

/Since: 3.8/
-}
#if ENABLE_OVERLOADING
    TreeViewActivateOnSingleClickPropertyInfo,
#endif
    constructTreeViewActivateOnSingleClick  ,
    getTreeViewActivateOnSingleClick        ,
    setTreeViewActivateOnSingleClick        ,
#if ENABLE_OVERLOADING
    treeViewActivateOnSingleClick           ,
#endif


-- ** enableGridLines #attr:enableGridLines#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewEnableGridLinesPropertyInfo     ,
#endif
    constructTreeViewEnableGridLines        ,
    getTreeViewEnableGridLines              ,
    setTreeViewEnableGridLines              ,
#if ENABLE_OVERLOADING
    treeViewEnableGridLines                 ,
#endif


-- ** enableSearch #attr:enableSearch#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewEnableSearchPropertyInfo        ,
#endif
    constructTreeViewEnableSearch           ,
    getTreeViewEnableSearch                 ,
    setTreeViewEnableSearch                 ,
#if ENABLE_OVERLOADING
    treeViewEnableSearch                    ,
#endif


-- ** enableTreeLines #attr:enableTreeLines#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewEnableTreeLinesPropertyInfo     ,
#endif
    constructTreeViewEnableTreeLines        ,
    getTreeViewEnableTreeLines              ,
    setTreeViewEnableTreeLines              ,
#if ENABLE_OVERLOADING
    treeViewEnableTreeLines                 ,
#endif


-- ** expanderColumn #attr:expanderColumn#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewExpanderColumnPropertyInfo      ,
#endif
    constructTreeViewExpanderColumn         ,
    getTreeViewExpanderColumn               ,
    setTreeViewExpanderColumn               ,
#if ENABLE_OVERLOADING
    treeViewExpanderColumn                  ,
#endif


-- ** fixedHeightMode #attr:fixedHeightMode#
{- | Setting the ::fixed-height-mode property to 'True' speeds up
'GI.Gtk.Objects.TreeView.TreeView' by assuming that all rows have the same height.
Only enable this option if all rows are the same height.
Please see 'GI.Gtk.Objects.TreeView.treeViewSetFixedHeightMode' for more
information on this option.

/Since: 2.4/
-}
#if ENABLE_OVERLOADING
    TreeViewFixedHeightModePropertyInfo     ,
#endif
    constructTreeViewFixedHeightMode        ,
    getTreeViewFixedHeightMode              ,
    setTreeViewFixedHeightMode              ,
#if ENABLE_OVERLOADING
    treeViewFixedHeightMode                 ,
#endif


-- ** headersClickable #attr:headersClickable#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewHeadersClickablePropertyInfo    ,
#endif
    constructTreeViewHeadersClickable       ,
    getTreeViewHeadersClickable             ,
    setTreeViewHeadersClickable             ,
#if ENABLE_OVERLOADING
    treeViewHeadersClickable                ,
#endif


-- ** headersVisible #attr:headersVisible#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewHeadersVisiblePropertyInfo      ,
#endif
    constructTreeViewHeadersVisible         ,
    getTreeViewHeadersVisible               ,
    setTreeViewHeadersVisible               ,
#if ENABLE_OVERLOADING
    treeViewHeadersVisible                  ,
#endif


-- ** hoverExpand #attr:hoverExpand#
{- | Enables or disables the hover expansion mode of /@treeView@/.
Hover expansion makes rows expand or collapse if the pointer moves
over them.

This mode is primarily intended for treeviews in popups, e.g.
in 'GI.Gtk.Objects.ComboBox.ComboBox' or 'GI.Gtk.Objects.EntryCompletion.EntryCompletion'.

/Since: 2.6/
-}
#if ENABLE_OVERLOADING
    TreeViewHoverExpandPropertyInfo         ,
#endif
    constructTreeViewHoverExpand            ,
    getTreeViewHoverExpand                  ,
    setTreeViewHoverExpand                  ,
#if ENABLE_OVERLOADING
    treeViewHoverExpand                     ,
#endif


-- ** hoverSelection #attr:hoverSelection#
{- | Enables or disables the hover selection mode of /@treeView@/.
Hover selection makes the selected row follow the pointer.
Currently, this works only for the selection modes
'GI.Gtk.Enums.SelectionModeSingle' and 'GI.Gtk.Enums.SelectionModeBrowse'.

This mode is primarily intended for treeviews in popups, e.g.
in 'GI.Gtk.Objects.ComboBox.ComboBox' or 'GI.Gtk.Objects.EntryCompletion.EntryCompletion'.

/Since: 2.6/
-}
#if ENABLE_OVERLOADING
    TreeViewHoverSelectionPropertyInfo      ,
#endif
    constructTreeViewHoverSelection         ,
    getTreeViewHoverSelection               ,
    setTreeViewHoverSelection               ,
#if ENABLE_OVERLOADING
    treeViewHoverSelection                  ,
#endif


-- ** levelIndentation #attr:levelIndentation#
{- | Extra indentation for each level.

/Since: 2.12/
-}
#if ENABLE_OVERLOADING
    TreeViewLevelIndentationPropertyInfo    ,
#endif
    constructTreeViewLevelIndentation       ,
    getTreeViewLevelIndentation             ,
    setTreeViewLevelIndentation             ,
#if ENABLE_OVERLOADING
    treeViewLevelIndentation                ,
#endif


-- ** model #attr:model#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewModelPropertyInfo               ,
#endif
    clearTreeViewModel                      ,
    constructTreeViewModel                  ,
    getTreeViewModel                        ,
    setTreeViewModel                        ,
#if ENABLE_OVERLOADING
    treeViewModel                           ,
#endif


-- ** reorderable #attr:reorderable#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewReorderablePropertyInfo         ,
#endif
    constructTreeViewReorderable            ,
    getTreeViewReorderable                  ,
    setTreeViewReorderable                  ,
#if ENABLE_OVERLOADING
    treeViewReorderable                     ,
#endif


-- ** rubberBanding #attr:rubberBanding#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewRubberBandingPropertyInfo       ,
#endif
    constructTreeViewRubberBanding          ,
    getTreeViewRubberBanding                ,
    setTreeViewRubberBanding                ,
#if ENABLE_OVERLOADING
    treeViewRubberBanding                   ,
#endif


-- ** rulesHint #attr:rulesHint#
{- | Sets a hint to the theme to draw rows in alternating colors.
-}
#if ENABLE_OVERLOADING
    TreeViewRulesHintPropertyInfo           ,
#endif
    constructTreeViewRulesHint              ,
    getTreeViewRulesHint                    ,
    setTreeViewRulesHint                    ,
#if ENABLE_OVERLOADING
    treeViewRulesHint                       ,
#endif


-- ** searchColumn #attr:searchColumn#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewSearchColumnPropertyInfo        ,
#endif
    constructTreeViewSearchColumn           ,
    getTreeViewSearchColumn                 ,
    setTreeViewSearchColumn                 ,
#if ENABLE_OVERLOADING
    treeViewSearchColumn                    ,
#endif


-- ** showExpanders #attr:showExpanders#
{- | 'True' if the view has expanders.

/Since: 2.12/
-}
#if ENABLE_OVERLOADING
    TreeViewShowExpandersPropertyInfo       ,
#endif
    constructTreeViewShowExpanders          ,
    getTreeViewShowExpanders                ,
    setTreeViewShowExpanders                ,
#if ENABLE_OVERLOADING
    treeViewShowExpanders                   ,
#endif


-- ** tooltipColumn #attr:tooltipColumn#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
    TreeViewTooltipColumnPropertyInfo       ,
#endif
    constructTreeViewTooltipColumn          ,
    getTreeViewTooltipColumn                ,
    setTreeViewTooltipColumn                ,
#if ENABLE_OVERLOADING
    treeViewTooltipColumn                   ,
#endif




 -- * Signals
-- ** columnsChanged #signal:columnsChanged#

    C_TreeViewColumnsChangedCallback        ,
    TreeViewColumnsChangedCallback          ,
#if ENABLE_OVERLOADING
    TreeViewColumnsChangedSignalInfo        ,
#endif
    afterTreeViewColumnsChanged             ,
    genClosure_TreeViewColumnsChanged       ,
    mk_TreeViewColumnsChangedCallback       ,
    noTreeViewColumnsChangedCallback        ,
    onTreeViewColumnsChanged                ,
    wrap_TreeViewColumnsChangedCallback     ,


-- ** cursorChanged #signal:cursorChanged#

    C_TreeViewCursorChangedCallback         ,
    TreeViewCursorChangedCallback           ,
#if ENABLE_OVERLOADING
    TreeViewCursorChangedSignalInfo         ,
#endif
    afterTreeViewCursorChanged              ,
    genClosure_TreeViewCursorChanged        ,
    mk_TreeViewCursorChangedCallback        ,
    noTreeViewCursorChangedCallback         ,
    onTreeViewCursorChanged                 ,
    wrap_TreeViewCursorChangedCallback      ,


-- ** expandCollapseCursorRow #signal:expandCollapseCursorRow#

    C_TreeViewExpandCollapseCursorRowCallback,
    TreeViewExpandCollapseCursorRowCallback ,
#if ENABLE_OVERLOADING
    TreeViewExpandCollapseCursorRowSignalInfo,
#endif
    afterTreeViewExpandCollapseCursorRow    ,
    genClosure_TreeViewExpandCollapseCursorRow,
    mk_TreeViewExpandCollapseCursorRowCallback,
    noTreeViewExpandCollapseCursorRowCallback,
    onTreeViewExpandCollapseCursorRow       ,
    wrap_TreeViewExpandCollapseCursorRowCallback,


-- ** moveCursor #signal:moveCursor#

    C_TreeViewMoveCursorCallback            ,
    TreeViewMoveCursorCallback              ,
#if ENABLE_OVERLOADING
    TreeViewMoveCursorSignalInfo            ,
#endif
    afterTreeViewMoveCursor                 ,
    genClosure_TreeViewMoveCursor           ,
    mk_TreeViewMoveCursorCallback           ,
    noTreeViewMoveCursorCallback            ,
    onTreeViewMoveCursor                    ,
    wrap_TreeViewMoveCursorCallback         ,


-- ** rowActivated #signal:rowActivated#

    C_TreeViewRowActivatedCallback          ,
    TreeViewRowActivatedCallback            ,
#if ENABLE_OVERLOADING
    TreeViewRowActivatedSignalInfo          ,
#endif
    afterTreeViewRowActivated               ,
    genClosure_TreeViewRowActivated         ,
    mk_TreeViewRowActivatedCallback         ,
    noTreeViewRowActivatedCallback          ,
    onTreeViewRowActivated                  ,
    wrap_TreeViewRowActivatedCallback       ,


-- ** rowCollapsed #signal:rowCollapsed#

    C_TreeViewRowCollapsedCallback          ,
    TreeViewRowCollapsedCallback            ,
#if ENABLE_OVERLOADING
    TreeViewRowCollapsedSignalInfo          ,
#endif
    afterTreeViewRowCollapsed               ,
    genClosure_TreeViewRowCollapsed         ,
    mk_TreeViewRowCollapsedCallback         ,
    noTreeViewRowCollapsedCallback          ,
    onTreeViewRowCollapsed                  ,
    wrap_TreeViewRowCollapsedCallback       ,


-- ** rowExpanded #signal:rowExpanded#

    C_TreeViewRowExpandedCallback           ,
    TreeViewRowExpandedCallback             ,
#if ENABLE_OVERLOADING
    TreeViewRowExpandedSignalInfo           ,
#endif
    afterTreeViewRowExpanded                ,
    genClosure_TreeViewRowExpanded          ,
    mk_TreeViewRowExpandedCallback          ,
    noTreeViewRowExpandedCallback           ,
    onTreeViewRowExpanded                   ,
    wrap_TreeViewRowExpandedCallback        ,


-- ** selectAll #signal:selectAll#

    C_TreeViewSelectAllCallback             ,
    TreeViewSelectAllCallback               ,
#if ENABLE_OVERLOADING
    TreeViewSelectAllSignalInfo             ,
#endif
    afterTreeViewSelectAll                  ,
    genClosure_TreeViewSelectAll            ,
    mk_TreeViewSelectAllCallback            ,
    noTreeViewSelectAllCallback             ,
    onTreeViewSelectAll                     ,
    wrap_TreeViewSelectAllCallback          ,


-- ** selectCursorParent #signal:selectCursorParent#

    C_TreeViewSelectCursorParentCallback    ,
    TreeViewSelectCursorParentCallback      ,
#if ENABLE_OVERLOADING
    TreeViewSelectCursorParentSignalInfo    ,
#endif
    afterTreeViewSelectCursorParent         ,
    genClosure_TreeViewSelectCursorParent   ,
    mk_TreeViewSelectCursorParentCallback   ,
    noTreeViewSelectCursorParentCallback    ,
    onTreeViewSelectCursorParent            ,
    wrap_TreeViewSelectCursorParentCallback ,


-- ** selectCursorRow #signal:selectCursorRow#

    C_TreeViewSelectCursorRowCallback       ,
    TreeViewSelectCursorRowCallback         ,
#if ENABLE_OVERLOADING
    TreeViewSelectCursorRowSignalInfo       ,
#endif
    afterTreeViewSelectCursorRow            ,
    genClosure_TreeViewSelectCursorRow      ,
    mk_TreeViewSelectCursorRowCallback      ,
    noTreeViewSelectCursorRowCallback       ,
    onTreeViewSelectCursorRow               ,
    wrap_TreeViewSelectCursorRowCallback    ,


-- ** startInteractiveSearch #signal:startInteractiveSearch#

    C_TreeViewStartInteractiveSearchCallback,
    TreeViewStartInteractiveSearchCallback  ,
#if ENABLE_OVERLOADING
    TreeViewStartInteractiveSearchSignalInfo,
#endif
    afterTreeViewStartInteractiveSearch     ,
    genClosure_TreeViewStartInteractiveSearch,
    mk_TreeViewStartInteractiveSearchCallback,
    noTreeViewStartInteractiveSearchCallback,
    onTreeViewStartInteractiveSearch        ,
    wrap_TreeViewStartInteractiveSearchCallback,


-- ** testCollapseRow #signal:testCollapseRow#

    C_TreeViewTestCollapseRowCallback       ,
    TreeViewTestCollapseRowCallback         ,
#if ENABLE_OVERLOADING
    TreeViewTestCollapseRowSignalInfo       ,
#endif
    afterTreeViewTestCollapseRow            ,
    genClosure_TreeViewTestCollapseRow      ,
    mk_TreeViewTestCollapseRowCallback      ,
    noTreeViewTestCollapseRowCallback       ,
    onTreeViewTestCollapseRow               ,
    wrap_TreeViewTestCollapseRowCallback    ,


-- ** testExpandRow #signal:testExpandRow#

    C_TreeViewTestExpandRowCallback         ,
    TreeViewTestExpandRowCallback           ,
#if ENABLE_OVERLOADING
    TreeViewTestExpandRowSignalInfo         ,
#endif
    afterTreeViewTestExpandRow              ,
    genClosure_TreeViewTestExpandRow        ,
    mk_TreeViewTestExpandRowCallback        ,
    noTreeViewTestExpandRowCallback         ,
    onTreeViewTestExpandRow                 ,
    wrap_TreeViewTestExpandRowCallback      ,


-- ** toggleCursorRow #signal:toggleCursorRow#

    C_TreeViewToggleCursorRowCallback       ,
    TreeViewToggleCursorRowCallback         ,
#if ENABLE_OVERLOADING
    TreeViewToggleCursorRowSignalInfo       ,
#endif
    afterTreeViewToggleCursorRow            ,
    genClosure_TreeViewToggleCursorRow      ,
    mk_TreeViewToggleCursorRowCallback      ,
    noTreeViewToggleCursorRowCallback       ,
    onTreeViewToggleCursorRow               ,
    wrap_TreeViewToggleCursorRowCallback    ,


-- ** unselectAll #signal:unselectAll#

    C_TreeViewUnselectAllCallback           ,
    TreeViewUnselectAllCallback             ,
#if ENABLE_OVERLOADING
    TreeViewUnselectAllSignalInfo           ,
#endif
    afterTreeViewUnselectAll                ,
    genClosure_TreeViewUnselectAll          ,
    mk_TreeViewUnselectAllCallback          ,
    noTreeViewUnselectAllCallback           ,
    onTreeViewUnselectAll                   ,
    wrap_TreeViewUnselectAllCallback        ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.Atk.Interfaces.ImplementorIface as Atk.ImplementorIface
import qualified GI.Cairo.Structs.Surface as Cairo.Surface
import qualified GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gdk.Flags as Gdk.Flags
import qualified GI.Gdk.Objects.Window as Gdk.Window
import qualified GI.Gdk.Structs.Rectangle as Gdk.Rectangle
import qualified GI.Gtk.Callbacks as Gtk.Callbacks
import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Scrollable as Gtk.Scrollable
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.TreeModel as Gtk.TreeModel
import {-# SOURCE #-} qualified GI.Gtk.Objects.Adjustment as Gtk.Adjustment
import {-# SOURCE #-} qualified GI.Gtk.Objects.CellRenderer as Gtk.CellRenderer
import {-# SOURCE #-} qualified GI.Gtk.Objects.Container as Gtk.Container
import {-# SOURCE #-} qualified GI.Gtk.Objects.Entry as Gtk.Entry
import {-# SOURCE #-} qualified GI.Gtk.Objects.Tooltip as Gtk.Tooltip
import {-# SOURCE #-} qualified GI.Gtk.Objects.TreeSelection as Gtk.TreeSelection
import {-# SOURCE #-} qualified GI.Gtk.Objects.TreeViewColumn as Gtk.TreeViewColumn
import {-# SOURCE #-} qualified GI.Gtk.Objects.Widget as Gtk.Widget
import {-# SOURCE #-} qualified GI.Gtk.Structs.TargetEntry as Gtk.TargetEntry
import {-# SOURCE #-} qualified GI.Gtk.Structs.TreeIter as Gtk.TreeIter
import {-# SOURCE #-} qualified GI.Gtk.Structs.TreePath as Gtk.TreePath

-- | Memory-managed wrapper type.
newtype TreeView = TreeView (ManagedPtr TreeView)
foreign import ccall "gtk_tree_view_get_type"
    c_gtk_tree_view_get_type :: IO GType

instance GObject TreeView where
    gobjectType _ = c_gtk_tree_view_get_type


-- | Type class for types which can be safely cast to `TreeView`, for instance with `toTreeView`.
class GObject o => IsTreeView o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError TreeView a) =>
    IsTreeView a
#endif
instance IsTreeView TreeView
instance Gtk.Container.IsContainer TreeView
instance Gtk.Widget.IsWidget TreeView
instance GObject.Object.IsObject TreeView
instance Atk.ImplementorIface.IsImplementorIface TreeView
instance Gtk.Buildable.IsBuildable TreeView
instance Gtk.Scrollable.IsScrollable TreeView

-- | Cast to `TreeView`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toTreeView :: (MonadIO m, IsTreeView o) => o -> m TreeView
toTreeView = liftIO . unsafeCastTo TreeView

-- | A convenience alias for `Nothing` :: `Maybe` `TreeView`.
noTreeView :: Maybe TreeView
noTreeView = Nothing

#if ENABLE_OVERLOADING
type family ResolveTreeViewMethod (t :: Symbol) (o :: *) :: * where
    ResolveTreeViewMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveTreeViewMethod "add" o = Gtk.Container.ContainerAddMethodInfo
    ResolveTreeViewMethod "addAccelerator" o = Gtk.Widget.WidgetAddAcceleratorMethodInfo
    ResolveTreeViewMethod "addChild" o = Gtk.Buildable.BuildableAddChildMethodInfo
    ResolveTreeViewMethod "addDeviceEvents" o = Gtk.Widget.WidgetAddDeviceEventsMethodInfo
    ResolveTreeViewMethod "addEvents" o = Gtk.Widget.WidgetAddEventsMethodInfo
    ResolveTreeViewMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveTreeViewMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveTreeViewMethod "appendColumn" o = TreeViewAppendColumnMethodInfo
    ResolveTreeViewMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveTreeViewMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveTreeViewMethod "canActivateAccel" o = Gtk.Widget.WidgetCanActivateAccelMethodInfo
    ResolveTreeViewMethod "checkResize" o = Gtk.Container.ContainerCheckResizeMethodInfo
    ResolveTreeViewMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveTreeViewMethod "childGetProperty" o = Gtk.Container.ContainerChildGetPropertyMethodInfo
    ResolveTreeViewMethod "childNotify" o = Gtk.Container.ContainerChildNotifyMethodInfo
    ResolveTreeViewMethod "childNotifyByPspec" o = Gtk.Container.ContainerChildNotifyByPspecMethodInfo
    ResolveTreeViewMethod "childSetProperty" o = Gtk.Container.ContainerChildSetPropertyMethodInfo
    ResolveTreeViewMethod "childType" o = Gtk.Container.ContainerChildTypeMethodInfo
    ResolveTreeViewMethod "classPath" o = Gtk.Widget.WidgetClassPathMethodInfo
    ResolveTreeViewMethod "collapseAll" o = TreeViewCollapseAllMethodInfo
    ResolveTreeViewMethod "collapseRow" o = TreeViewCollapseRowMethodInfo
    ResolveTreeViewMethod "columnsAutosize" o = TreeViewColumnsAutosizeMethodInfo
    ResolveTreeViewMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveTreeViewMethod "constructChild" o = Gtk.Buildable.BuildableConstructChildMethodInfo
    ResolveTreeViewMethod "convertBinWindowToTreeCoords" o = TreeViewConvertBinWindowToTreeCoordsMethodInfo
    ResolveTreeViewMethod "convertBinWindowToWidgetCoords" o = TreeViewConvertBinWindowToWidgetCoordsMethodInfo
    ResolveTreeViewMethod "convertTreeToBinWindowCoords" o = TreeViewConvertTreeToBinWindowCoordsMethodInfo
    ResolveTreeViewMethod "convertTreeToWidgetCoords" o = TreeViewConvertTreeToWidgetCoordsMethodInfo
    ResolveTreeViewMethod "convertWidgetToBinWindowCoords" o = TreeViewConvertWidgetToBinWindowCoordsMethodInfo
    ResolveTreeViewMethod "convertWidgetToTreeCoords" o = TreeViewConvertWidgetToTreeCoordsMethodInfo
    ResolveTreeViewMethod "createPangoContext" o = Gtk.Widget.WidgetCreatePangoContextMethodInfo
    ResolveTreeViewMethod "createPangoLayout" o = Gtk.Widget.WidgetCreatePangoLayoutMethodInfo
    ResolveTreeViewMethod "createRowDragIcon" o = TreeViewCreateRowDragIconMethodInfo
    ResolveTreeViewMethod "customFinished" o = Gtk.Buildable.BuildableCustomFinishedMethodInfo
    ResolveTreeViewMethod "customTagEnd" o = Gtk.Buildable.BuildableCustomTagEndMethodInfo
    ResolveTreeViewMethod "customTagStart" o = Gtk.Buildable.BuildableCustomTagStartMethodInfo
    ResolveTreeViewMethod "destroy" o = Gtk.Widget.WidgetDestroyMethodInfo
    ResolveTreeViewMethod "destroyed" o = Gtk.Widget.WidgetDestroyedMethodInfo
    ResolveTreeViewMethod "deviceIsShadowed" o = Gtk.Widget.WidgetDeviceIsShadowedMethodInfo
    ResolveTreeViewMethod "dragBegin" o = Gtk.Widget.WidgetDragBeginMethodInfo
    ResolveTreeViewMethod "dragBeginWithCoordinates" o = Gtk.Widget.WidgetDragBeginWithCoordinatesMethodInfo
    ResolveTreeViewMethod "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveTreeViewMethod "dragDestAddImageTargets" o = Gtk.Widget.WidgetDragDestAddImageTargetsMethodInfo
    ResolveTreeViewMethod "dragDestAddTextTargets" o = Gtk.Widget.WidgetDragDestAddTextTargetsMethodInfo
    ResolveTreeViewMethod "dragDestAddUriTargets" o = Gtk.Widget.WidgetDragDestAddUriTargetsMethodInfo
    ResolveTreeViewMethod "dragDestFindTarget" o = Gtk.Widget.WidgetDragDestFindTargetMethodInfo
    ResolveTreeViewMethod "dragDestGetTargetList" o = Gtk.Widget.WidgetDragDestGetTargetListMethodInfo
    ResolveTreeViewMethod "dragDestGetTrackMotion" o = Gtk.Widget.WidgetDragDestGetTrackMotionMethodInfo
    ResolveTreeViewMethod "dragDestSet" o = Gtk.Widget.WidgetDragDestSetMethodInfo
    ResolveTreeViewMethod "dragDestSetProxy" o = Gtk.Widget.WidgetDragDestSetProxyMethodInfo
    ResolveTreeViewMethod "dragDestSetTargetList" o = Gtk.Widget.WidgetDragDestSetTargetListMethodInfo
    ResolveTreeViewMethod "dragDestSetTrackMotion" o = Gtk.Widget.WidgetDragDestSetTrackMotionMethodInfo
    ResolveTreeViewMethod "dragDestUnset" o = Gtk.Widget.WidgetDragDestUnsetMethodInfo
    ResolveTreeViewMethod "dragGetData" o = Gtk.Widget.WidgetDragGetDataMethodInfo
    ResolveTreeViewMethod "dragHighlight" o = Gtk.Widget.WidgetDragHighlightMethodInfo
    ResolveTreeViewMethod "dragSourceAddImageTargets" o = Gtk.Widget.WidgetDragSourceAddImageTargetsMethodInfo
    ResolveTreeViewMethod "dragSourceAddTextTargets" o = Gtk.Widget.WidgetDragSourceAddTextTargetsMethodInfo
    ResolveTreeViewMethod "dragSourceAddUriTargets" o = Gtk.Widget.WidgetDragSourceAddUriTargetsMethodInfo
    ResolveTreeViewMethod "dragSourceGetTargetList" o = Gtk.Widget.WidgetDragSourceGetTargetListMethodInfo
    ResolveTreeViewMethod "dragSourceSet" o = Gtk.Widget.WidgetDragSourceSetMethodInfo
    ResolveTreeViewMethod "dragSourceSetIconGicon" o = Gtk.Widget.WidgetDragSourceSetIconGiconMethodInfo
    ResolveTreeViewMethod "dragSourceSetIconName" o = Gtk.Widget.WidgetDragSourceSetIconNameMethodInfo
    ResolveTreeViewMethod "dragSourceSetIconPixbuf" o = Gtk.Widget.WidgetDragSourceSetIconPixbufMethodInfo
    ResolveTreeViewMethod "dragSourceSetIconStock" o = Gtk.Widget.WidgetDragSourceSetIconStockMethodInfo
    ResolveTreeViewMethod "dragSourceSetTargetList" o = Gtk.Widget.WidgetDragSourceSetTargetListMethodInfo
    ResolveTreeViewMethod "dragSourceUnset" o = Gtk.Widget.WidgetDragSourceUnsetMethodInfo
    ResolveTreeViewMethod "dragUnhighlight" o = Gtk.Widget.WidgetDragUnhighlightMethodInfo
    ResolveTreeViewMethod "draw" o = Gtk.Widget.WidgetDrawMethodInfo
    ResolveTreeViewMethod "enableModelDragDest" o = TreeViewEnableModelDragDestMethodInfo
    ResolveTreeViewMethod "enableModelDragSource" o = TreeViewEnableModelDragSourceMethodInfo
    ResolveTreeViewMethod "ensureStyle" o = Gtk.Widget.WidgetEnsureStyleMethodInfo
    ResolveTreeViewMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveTreeViewMethod "event" o = Gtk.Widget.WidgetEventMethodInfo
    ResolveTreeViewMethod "expandAll" o = TreeViewExpandAllMethodInfo
    ResolveTreeViewMethod "expandRow" o = TreeViewExpandRowMethodInfo
    ResolveTreeViewMethod "expandToPath" o = TreeViewExpandToPathMethodInfo
    ResolveTreeViewMethod "forall" o = Gtk.Container.ContainerForallMethodInfo
    ResolveTreeViewMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveTreeViewMethod "foreach" o = Gtk.Container.ContainerForeachMethodInfo
    ResolveTreeViewMethod "freezeChildNotify" o = Gtk.Widget.WidgetFreezeChildNotifyMethodInfo
    ResolveTreeViewMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveTreeViewMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveTreeViewMethod "grabAdd" o = Gtk.Widget.WidgetGrabAddMethodInfo
    ResolveTreeViewMethod "grabDefault" o = Gtk.Widget.WidgetGrabDefaultMethodInfo
    ResolveTreeViewMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveTreeViewMethod "grabRemove" o = Gtk.Widget.WidgetGrabRemoveMethodInfo
    ResolveTreeViewMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveTreeViewMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveTreeViewMethod "hasGrab" o = Gtk.Widget.WidgetHasGrabMethodInfo
    ResolveTreeViewMethod "hasRcStyle" o = Gtk.Widget.WidgetHasRcStyleMethodInfo
    ResolveTreeViewMethod "hasScreen" o = Gtk.Widget.WidgetHasScreenMethodInfo
    ResolveTreeViewMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveTreeViewMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveTreeViewMethod "hideOnDelete" o = Gtk.Widget.WidgetHideOnDeleteMethodInfo
    ResolveTreeViewMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveTreeViewMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveTreeViewMethod "inputShapeCombineRegion" o = Gtk.Widget.WidgetInputShapeCombineRegionMethodInfo
    ResolveTreeViewMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveTreeViewMethod "insertColumn" o = TreeViewInsertColumnMethodInfo
    ResolveTreeViewMethod "insertColumnWithDataFunc" o = TreeViewInsertColumnWithDataFuncMethodInfo
    ResolveTreeViewMethod "intersect" o = Gtk.Widget.WidgetIntersectMethodInfo
    ResolveTreeViewMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveTreeViewMethod "isBlankAtPos" o = TreeViewIsBlankAtPosMethodInfo
    ResolveTreeViewMethod "isComposited" o = Gtk.Widget.WidgetIsCompositedMethodInfo
    ResolveTreeViewMethod "isDrawable" o = Gtk.Widget.WidgetIsDrawableMethodInfo
    ResolveTreeViewMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveTreeViewMethod "isFocus" o = Gtk.Widget.WidgetIsFocusMethodInfo
    ResolveTreeViewMethod "isRubberBandingActive" o = TreeViewIsRubberBandingActiveMethodInfo
    ResolveTreeViewMethod "isSensitive" o = Gtk.Widget.WidgetIsSensitiveMethodInfo
    ResolveTreeViewMethod "isToplevel" o = Gtk.Widget.WidgetIsToplevelMethodInfo
    ResolveTreeViewMethod "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveTreeViewMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveTreeViewMethod "listAccelClosures" o = Gtk.Widget.WidgetListAccelClosuresMethodInfo
    ResolveTreeViewMethod "listActionPrefixes" o = Gtk.Widget.WidgetListActionPrefixesMethodInfo
    ResolveTreeViewMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveTreeViewMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveTreeViewMethod "mapExpandedRows" o = TreeViewMapExpandedRowsMethodInfo
    ResolveTreeViewMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveTreeViewMethod "modifyBase" o = Gtk.Widget.WidgetModifyBaseMethodInfo
    ResolveTreeViewMethod "modifyBg" o = Gtk.Widget.WidgetModifyBgMethodInfo
    ResolveTreeViewMethod "modifyCursor" o = Gtk.Widget.WidgetModifyCursorMethodInfo
    ResolveTreeViewMethod "modifyFg" o = Gtk.Widget.WidgetModifyFgMethodInfo
    ResolveTreeViewMethod "modifyFont" o = Gtk.Widget.WidgetModifyFontMethodInfo
    ResolveTreeViewMethod "modifyStyle" o = Gtk.Widget.WidgetModifyStyleMethodInfo
    ResolveTreeViewMethod "modifyText" o = Gtk.Widget.WidgetModifyTextMethodInfo
    ResolveTreeViewMethod "moveColumnAfter" o = TreeViewMoveColumnAfterMethodInfo
    ResolveTreeViewMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveTreeViewMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveTreeViewMethod "overrideBackgroundColor" o = Gtk.Widget.WidgetOverrideBackgroundColorMethodInfo
    ResolveTreeViewMethod "overrideColor" o = Gtk.Widget.WidgetOverrideColorMethodInfo
    ResolveTreeViewMethod "overrideCursor" o = Gtk.Widget.WidgetOverrideCursorMethodInfo
    ResolveTreeViewMethod "overrideFont" o = Gtk.Widget.WidgetOverrideFontMethodInfo
    ResolveTreeViewMethod "overrideSymbolicColor" o = Gtk.Widget.WidgetOverrideSymbolicColorMethodInfo
    ResolveTreeViewMethod "parserFinished" o = Gtk.Buildable.BuildableParserFinishedMethodInfo
    ResolveTreeViewMethod "path" o = Gtk.Widget.WidgetPathMethodInfo
    ResolveTreeViewMethod "propagateDraw" o = Gtk.Container.ContainerPropagateDrawMethodInfo
    ResolveTreeViewMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveTreeViewMethod "queueComputeExpand" o = Gtk.Widget.WidgetQueueComputeExpandMethodInfo
    ResolveTreeViewMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveTreeViewMethod "queueDrawArea" o = Gtk.Widget.WidgetQueueDrawAreaMethodInfo
    ResolveTreeViewMethod "queueDrawRegion" o = Gtk.Widget.WidgetQueueDrawRegionMethodInfo
    ResolveTreeViewMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveTreeViewMethod "queueResizeNoRedraw" o = Gtk.Widget.WidgetQueueResizeNoRedrawMethodInfo
    ResolveTreeViewMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveTreeViewMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveTreeViewMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveTreeViewMethod "regionIntersect" o = Gtk.Widget.WidgetRegionIntersectMethodInfo
    ResolveTreeViewMethod "registerWindow" o = Gtk.Widget.WidgetRegisterWindowMethodInfo
    ResolveTreeViewMethod "remove" o = Gtk.Container.ContainerRemoveMethodInfo
    ResolveTreeViewMethod "removeAccelerator" o = Gtk.Widget.WidgetRemoveAcceleratorMethodInfo
    ResolveTreeViewMethod "removeColumn" o = TreeViewRemoveColumnMethodInfo
    ResolveTreeViewMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveTreeViewMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveTreeViewMethod "renderIcon" o = Gtk.Widget.WidgetRenderIconMethodInfo
    ResolveTreeViewMethod "renderIconPixbuf" o = Gtk.Widget.WidgetRenderIconPixbufMethodInfo
    ResolveTreeViewMethod "reparent" o = Gtk.Widget.WidgetReparentMethodInfo
    ResolveTreeViewMethod "resetRcStyles" o = Gtk.Widget.WidgetResetRcStylesMethodInfo
    ResolveTreeViewMethod "resetStyle" o = Gtk.Widget.WidgetResetStyleMethodInfo
    ResolveTreeViewMethod "resizeChildren" o = Gtk.Container.ContainerResizeChildrenMethodInfo
    ResolveTreeViewMethod "rowActivated" o = TreeViewRowActivatedMethodInfo
    ResolveTreeViewMethod "rowExpanded" o = TreeViewRowExpandedMethodInfo
    ResolveTreeViewMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveTreeViewMethod "scrollToCell" o = TreeViewScrollToCellMethodInfo
    ResolveTreeViewMethod "scrollToPoint" o = TreeViewScrollToPointMethodInfo
    ResolveTreeViewMethod "sendExpose" o = Gtk.Widget.WidgetSendExposeMethodInfo
    ResolveTreeViewMethod "sendFocusChange" o = Gtk.Widget.WidgetSendFocusChangeMethodInfo
    ResolveTreeViewMethod "shapeCombineRegion" o = Gtk.Widget.WidgetShapeCombineRegionMethodInfo
    ResolveTreeViewMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveTreeViewMethod "showAll" o = Gtk.Widget.WidgetShowAllMethodInfo
    ResolveTreeViewMethod "showNow" o = Gtk.Widget.WidgetShowNowMethodInfo
    ResolveTreeViewMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveTreeViewMethod "sizeAllocateWithBaseline" o = Gtk.Widget.WidgetSizeAllocateWithBaselineMethodInfo
    ResolveTreeViewMethod "sizeRequest" o = Gtk.Widget.WidgetSizeRequestMethodInfo
    ResolveTreeViewMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveTreeViewMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveTreeViewMethod "styleAttach" o = Gtk.Widget.WidgetStyleAttachMethodInfo
    ResolveTreeViewMethod "styleGetProperty" o = Gtk.Widget.WidgetStyleGetPropertyMethodInfo
    ResolveTreeViewMethod "thawChildNotify" o = Gtk.Widget.WidgetThawChildNotifyMethodInfo
    ResolveTreeViewMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveTreeViewMethod "translateCoordinates" o = Gtk.Widget.WidgetTranslateCoordinatesMethodInfo
    ResolveTreeViewMethod "triggerTooltipQuery" o = Gtk.Widget.WidgetTriggerTooltipQueryMethodInfo
    ResolveTreeViewMethod "unmap" o = Gtk.Widget.WidgetUnmapMethodInfo
    ResolveTreeViewMethod "unparent" o = Gtk.Widget.WidgetUnparentMethodInfo
    ResolveTreeViewMethod "unrealize" o = Gtk.Widget.WidgetUnrealizeMethodInfo
    ResolveTreeViewMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveTreeViewMethod "unregisterWindow" o = Gtk.Widget.WidgetUnregisterWindowMethodInfo
    ResolveTreeViewMethod "unsetFocusChain" o = Gtk.Container.ContainerUnsetFocusChainMethodInfo
    ResolveTreeViewMethod "unsetRowsDragDest" o = TreeViewUnsetRowsDragDestMethodInfo
    ResolveTreeViewMethod "unsetRowsDragSource" o = TreeViewUnsetRowsDragSourceMethodInfo
    ResolveTreeViewMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveTreeViewMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveTreeViewMethod "getAccessible" o = Gtk.Widget.WidgetGetAccessibleMethodInfo
    ResolveTreeViewMethod "getActionGroup" o = Gtk.Widget.WidgetGetActionGroupMethodInfo
    ResolveTreeViewMethod "getActivateOnSingleClick" o = TreeViewGetActivateOnSingleClickMethodInfo
    ResolveTreeViewMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveTreeViewMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveTreeViewMethod "getAllocatedSize" o = Gtk.Widget.WidgetGetAllocatedSizeMethodInfo
    ResolveTreeViewMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveTreeViewMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveTreeViewMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveTreeViewMethod "getAppPaintable" o = Gtk.Widget.WidgetGetAppPaintableMethodInfo
    ResolveTreeViewMethod "getBackgroundArea" o = TreeViewGetBackgroundAreaMethodInfo
    ResolveTreeViewMethod "getBinWindow" o = TreeViewGetBinWindowMethodInfo
    ResolveTreeViewMethod "getBorder" o = Gtk.Scrollable.ScrollableGetBorderMethodInfo
    ResolveTreeViewMethod "getBorderWidth" o = Gtk.Container.ContainerGetBorderWidthMethodInfo
    ResolveTreeViewMethod "getCanDefault" o = Gtk.Widget.WidgetGetCanDefaultMethodInfo
    ResolveTreeViewMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveTreeViewMethod "getCellArea" o = TreeViewGetCellAreaMethodInfo
    ResolveTreeViewMethod "getChildRequisition" o = Gtk.Widget.WidgetGetChildRequisitionMethodInfo
    ResolveTreeViewMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveTreeViewMethod "getChildren" o = Gtk.Container.ContainerGetChildrenMethodInfo
    ResolveTreeViewMethod "getClip" o = Gtk.Widget.WidgetGetClipMethodInfo
    ResolveTreeViewMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveTreeViewMethod "getColumn" o = TreeViewGetColumnMethodInfo
    ResolveTreeViewMethod "getColumns" o = TreeViewGetColumnsMethodInfo
    ResolveTreeViewMethod "getCompositeName" o = Gtk.Widget.WidgetGetCompositeNameMethodInfo
    ResolveTreeViewMethod "getCursor" o = TreeViewGetCursorMethodInfo
    ResolveTreeViewMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveTreeViewMethod "getDestRowAtPos" o = TreeViewGetDestRowAtPosMethodInfo
    ResolveTreeViewMethod "getDeviceEnabled" o = Gtk.Widget.WidgetGetDeviceEnabledMethodInfo
    ResolveTreeViewMethod "getDeviceEvents" o = Gtk.Widget.WidgetGetDeviceEventsMethodInfo
    ResolveTreeViewMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveTreeViewMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveTreeViewMethod "getDoubleBuffered" o = Gtk.Widget.WidgetGetDoubleBufferedMethodInfo
    ResolveTreeViewMethod "getDragDestRow" o = TreeViewGetDragDestRowMethodInfo
    ResolveTreeViewMethod "getEnableSearch" o = TreeViewGetEnableSearchMethodInfo
    ResolveTreeViewMethod "getEnableTreeLines" o = TreeViewGetEnableTreeLinesMethodInfo
    ResolveTreeViewMethod "getEvents" o = Gtk.Widget.WidgetGetEventsMethodInfo
    ResolveTreeViewMethod "getExpanderColumn" o = TreeViewGetExpanderColumnMethodInfo
    ResolveTreeViewMethod "getFixedHeightMode" o = TreeViewGetFixedHeightModeMethodInfo
    ResolveTreeViewMethod "getFocusChain" o = Gtk.Container.ContainerGetFocusChainMethodInfo
    ResolveTreeViewMethod "getFocusChild" o = Gtk.Container.ContainerGetFocusChildMethodInfo
    ResolveTreeViewMethod "getFocusHadjustment" o = Gtk.Container.ContainerGetFocusHadjustmentMethodInfo
    ResolveTreeViewMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveTreeViewMethod "getFocusVadjustment" o = Gtk.Container.ContainerGetFocusVadjustmentMethodInfo
    ResolveTreeViewMethod "getFontMap" o = Gtk.Widget.WidgetGetFontMapMethodInfo
    ResolveTreeViewMethod "getFontOptions" o = Gtk.Widget.WidgetGetFontOptionsMethodInfo
    ResolveTreeViewMethod "getFrameClock" o = Gtk.Widget.WidgetGetFrameClockMethodInfo
    ResolveTreeViewMethod "getGridLines" o = TreeViewGetGridLinesMethodInfo
    ResolveTreeViewMethod "getHadjustment" o = TreeViewGetHadjustmentMethodInfo
    ResolveTreeViewMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveTreeViewMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveTreeViewMethod "getHasWindow" o = Gtk.Widget.WidgetGetHasWindowMethodInfo
    ResolveTreeViewMethod "getHeadersClickable" o = TreeViewGetHeadersClickableMethodInfo
    ResolveTreeViewMethod "getHeadersVisible" o = TreeViewGetHeadersVisibleMethodInfo
    ResolveTreeViewMethod "getHexpand" o = Gtk.Widget.WidgetGetHexpandMethodInfo
    ResolveTreeViewMethod "getHexpandSet" o = Gtk.Widget.WidgetGetHexpandSetMethodInfo
    ResolveTreeViewMethod "getHoverExpand" o = TreeViewGetHoverExpandMethodInfo
    ResolveTreeViewMethod "getHoverSelection" o = TreeViewGetHoverSelectionMethodInfo
    ResolveTreeViewMethod "getHscrollPolicy" o = Gtk.Scrollable.ScrollableGetHscrollPolicyMethodInfo
    ResolveTreeViewMethod "getInternalChild" o = Gtk.Buildable.BuildableGetInternalChildMethodInfo
    ResolveTreeViewMethod "getLevelIndentation" o = TreeViewGetLevelIndentationMethodInfo
    ResolveTreeViewMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveTreeViewMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveTreeViewMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveTreeViewMethod "getMarginLeft" o = Gtk.Widget.WidgetGetMarginLeftMethodInfo
    ResolveTreeViewMethod "getMarginRight" o = Gtk.Widget.WidgetGetMarginRightMethodInfo
    ResolveTreeViewMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveTreeViewMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveTreeViewMethod "getModel" o = TreeViewGetModelMethodInfo
    ResolveTreeViewMethod "getModifierMask" o = Gtk.Widget.WidgetGetModifierMaskMethodInfo
    ResolveTreeViewMethod "getModifierStyle" o = Gtk.Widget.WidgetGetModifierStyleMethodInfo
    ResolveTreeViewMethod "getNColumns" o = TreeViewGetNColumnsMethodInfo
    ResolveTreeViewMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveTreeViewMethod "getNoShowAll" o = Gtk.Widget.WidgetGetNoShowAllMethodInfo
    ResolveTreeViewMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveTreeViewMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveTreeViewMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveTreeViewMethod "getParentWindow" o = Gtk.Widget.WidgetGetParentWindowMethodInfo
    ResolveTreeViewMethod "getPath" o = Gtk.Widget.WidgetGetPathMethodInfo
    ResolveTreeViewMethod "getPathAtPos" o = TreeViewGetPathAtPosMethodInfo
    ResolveTreeViewMethod "getPathForChild" o = Gtk.Container.ContainerGetPathForChildMethodInfo
    ResolveTreeViewMethod "getPointer" o = Gtk.Widget.WidgetGetPointerMethodInfo
    ResolveTreeViewMethod "getPreferredHeight" o = Gtk.Widget.WidgetGetPreferredHeightMethodInfo
    ResolveTreeViewMethod "getPreferredHeightAndBaselineForWidth" o = Gtk.Widget.WidgetGetPreferredHeightAndBaselineForWidthMethodInfo
    ResolveTreeViewMethod "getPreferredHeightForWidth" o = Gtk.Widget.WidgetGetPreferredHeightForWidthMethodInfo
    ResolveTreeViewMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveTreeViewMethod "getPreferredWidth" o = Gtk.Widget.WidgetGetPreferredWidthMethodInfo
    ResolveTreeViewMethod "getPreferredWidthForHeight" o = Gtk.Widget.WidgetGetPreferredWidthForHeightMethodInfo
    ResolveTreeViewMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveTreeViewMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveTreeViewMethod "getRealized" o = Gtk.Widget.WidgetGetRealizedMethodInfo
    ResolveTreeViewMethod "getReceivesDefault" o = Gtk.Widget.WidgetGetReceivesDefaultMethodInfo
    ResolveTreeViewMethod "getReorderable" o = TreeViewGetReorderableMethodInfo
    ResolveTreeViewMethod "getRequestMode" o = Gtk.Widget.WidgetGetRequestModeMethodInfo
    ResolveTreeViewMethod "getRequisition" o = Gtk.Widget.WidgetGetRequisitionMethodInfo
    ResolveTreeViewMethod "getResizeMode" o = Gtk.Container.ContainerGetResizeModeMethodInfo
    ResolveTreeViewMethod "getRootWindow" o = Gtk.Widget.WidgetGetRootWindowMethodInfo
    ResolveTreeViewMethod "getRubberBanding" o = TreeViewGetRubberBandingMethodInfo
    ResolveTreeViewMethod "getRulesHint" o = TreeViewGetRulesHintMethodInfo
    ResolveTreeViewMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    ResolveTreeViewMethod "getScreen" o = Gtk.Widget.WidgetGetScreenMethodInfo
    ResolveTreeViewMethod "getSearchColumn" o = TreeViewGetSearchColumnMethodInfo
    ResolveTreeViewMethod "getSearchEntry" o = TreeViewGetSearchEntryMethodInfo
    ResolveTreeViewMethod "getSelection" o = TreeViewGetSelectionMethodInfo
    ResolveTreeViewMethod "getSensitive" o = Gtk.Widget.WidgetGetSensitiveMethodInfo
    ResolveTreeViewMethod "getSettings" o = Gtk.Widget.WidgetGetSettingsMethodInfo
    ResolveTreeViewMethod "getShowExpanders" o = TreeViewGetShowExpandersMethodInfo
    ResolveTreeViewMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveTreeViewMethod "getState" o = Gtk.Widget.WidgetGetStateMethodInfo
    ResolveTreeViewMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveTreeViewMethod "getStyle" o = Gtk.Widget.WidgetGetStyleMethodInfo
    ResolveTreeViewMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    ResolveTreeViewMethod "getSupportMultidevice" o = Gtk.Widget.WidgetGetSupportMultideviceMethodInfo
    ResolveTreeViewMethod "getTemplateChild" o = Gtk.Widget.WidgetGetTemplateChildMethodInfo
    ResolveTreeViewMethod "getTooltipColumn" o = TreeViewGetTooltipColumnMethodInfo
    ResolveTreeViewMethod "getTooltipContext" o = TreeViewGetTooltipContextMethodInfo
    ResolveTreeViewMethod "getTooltipMarkup" o = Gtk.Widget.WidgetGetTooltipMarkupMethodInfo
    ResolveTreeViewMethod "getTooltipText" o = Gtk.Widget.WidgetGetTooltipTextMethodInfo
    ResolveTreeViewMethod "getTooltipWindow" o = Gtk.Widget.WidgetGetTooltipWindowMethodInfo
    ResolveTreeViewMethod "getToplevel" o = Gtk.Widget.WidgetGetToplevelMethodInfo
    ResolveTreeViewMethod "getVadjustment" o = TreeViewGetVadjustmentMethodInfo
    ResolveTreeViewMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    ResolveTreeViewMethod "getValignWithBaseline" o = Gtk.Widget.WidgetGetValignWithBaselineMethodInfo
    ResolveTreeViewMethod "getVexpand" o = Gtk.Widget.WidgetGetVexpandMethodInfo
    ResolveTreeViewMethod "getVexpandSet" o = Gtk.Widget.WidgetGetVexpandSetMethodInfo
    ResolveTreeViewMethod "getVisible" o = Gtk.Widget.WidgetGetVisibleMethodInfo
    ResolveTreeViewMethod "getVisibleRange" o = TreeViewGetVisibleRangeMethodInfo
    ResolveTreeViewMethod "getVisibleRect" o = TreeViewGetVisibleRectMethodInfo
    ResolveTreeViewMethod "getVisual" o = Gtk.Widget.WidgetGetVisualMethodInfo
    ResolveTreeViewMethod "getVscrollPolicy" o = Gtk.Scrollable.ScrollableGetVscrollPolicyMethodInfo
    ResolveTreeViewMethod "getWindow" o = Gtk.Widget.WidgetGetWindowMethodInfo
    ResolveTreeViewMethod "setAccelPath" o = Gtk.Widget.WidgetSetAccelPathMethodInfo
    ResolveTreeViewMethod "setActivateOnSingleClick" o = TreeViewSetActivateOnSingleClickMethodInfo
    ResolveTreeViewMethod "setAllocation" o = Gtk.Widget.WidgetSetAllocationMethodInfo
    ResolveTreeViewMethod "setAppPaintable" o = Gtk.Widget.WidgetSetAppPaintableMethodInfo
    ResolveTreeViewMethod "setBorderWidth" o = Gtk.Container.ContainerSetBorderWidthMethodInfo
    ResolveTreeViewMethod "setBuildableProperty" o = Gtk.Buildable.BuildableSetBuildablePropertyMethodInfo
    ResolveTreeViewMethod "setCanDefault" o = Gtk.Widget.WidgetSetCanDefaultMethodInfo
    ResolveTreeViewMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveTreeViewMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveTreeViewMethod "setClip" o = Gtk.Widget.WidgetSetClipMethodInfo
    ResolveTreeViewMethod "setColumnDragFunction" o = TreeViewSetColumnDragFunctionMethodInfo
    ResolveTreeViewMethod "setCompositeName" o = Gtk.Widget.WidgetSetCompositeNameMethodInfo
    ResolveTreeViewMethod "setCursor" o = TreeViewSetCursorMethodInfo
    ResolveTreeViewMethod "setCursorOnCell" o = TreeViewSetCursorOnCellMethodInfo
    ResolveTreeViewMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveTreeViewMethod "setDestroyCountFunc" o = TreeViewSetDestroyCountFuncMethodInfo
    ResolveTreeViewMethod "setDeviceEnabled" o = Gtk.Widget.WidgetSetDeviceEnabledMethodInfo
    ResolveTreeViewMethod "setDeviceEvents" o = Gtk.Widget.WidgetSetDeviceEventsMethodInfo
    ResolveTreeViewMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveTreeViewMethod "setDoubleBuffered" o = Gtk.Widget.WidgetSetDoubleBufferedMethodInfo
    ResolveTreeViewMethod "setDragDestRow" o = TreeViewSetDragDestRowMethodInfo
    ResolveTreeViewMethod "setEnableSearch" o = TreeViewSetEnableSearchMethodInfo
    ResolveTreeViewMethod "setEnableTreeLines" o = TreeViewSetEnableTreeLinesMethodInfo
    ResolveTreeViewMethod "setEvents" o = Gtk.Widget.WidgetSetEventsMethodInfo
    ResolveTreeViewMethod "setExpanderColumn" o = TreeViewSetExpanderColumnMethodInfo
    ResolveTreeViewMethod "setFixedHeightMode" o = TreeViewSetFixedHeightModeMethodInfo
    ResolveTreeViewMethod "setFocusChain" o = Gtk.Container.ContainerSetFocusChainMethodInfo
    ResolveTreeViewMethod "setFocusChild" o = Gtk.Container.ContainerSetFocusChildMethodInfo
    ResolveTreeViewMethod "setFocusHadjustment" o = Gtk.Container.ContainerSetFocusHadjustmentMethodInfo
    ResolveTreeViewMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveTreeViewMethod "setFocusVadjustment" o = Gtk.Container.ContainerSetFocusVadjustmentMethodInfo
    ResolveTreeViewMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveTreeViewMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveTreeViewMethod "setGridLines" o = TreeViewSetGridLinesMethodInfo
    ResolveTreeViewMethod "setHadjustment" o = TreeViewSetHadjustmentMethodInfo
    ResolveTreeViewMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveTreeViewMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    ResolveTreeViewMethod "setHasWindow" o = Gtk.Widget.WidgetSetHasWindowMethodInfo
    ResolveTreeViewMethod "setHeadersClickable" o = TreeViewSetHeadersClickableMethodInfo
    ResolveTreeViewMethod "setHeadersVisible" o = TreeViewSetHeadersVisibleMethodInfo
    ResolveTreeViewMethod "setHexpand" o = Gtk.Widget.WidgetSetHexpandMethodInfo
    ResolveTreeViewMethod "setHexpandSet" o = Gtk.Widget.WidgetSetHexpandSetMethodInfo
    ResolveTreeViewMethod "setHoverExpand" o = TreeViewSetHoverExpandMethodInfo
    ResolveTreeViewMethod "setHoverSelection" o = TreeViewSetHoverSelectionMethodInfo
    ResolveTreeViewMethod "setHscrollPolicy" o = Gtk.Scrollable.ScrollableSetHscrollPolicyMethodInfo
    ResolveTreeViewMethod "setLevelIndentation" o = TreeViewSetLevelIndentationMethodInfo
    ResolveTreeViewMethod "setMapped" o = Gtk.Widget.WidgetSetMappedMethodInfo
    ResolveTreeViewMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveTreeViewMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveTreeViewMethod "setMarginLeft" o = Gtk.Widget.WidgetSetMarginLeftMethodInfo
    ResolveTreeViewMethod "setMarginRight" o = Gtk.Widget.WidgetSetMarginRightMethodInfo
    ResolveTreeViewMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveTreeViewMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveTreeViewMethod "setModel" o = TreeViewSetModelMethodInfo
    ResolveTreeViewMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveTreeViewMethod "setNoShowAll" o = Gtk.Widget.WidgetSetNoShowAllMethodInfo
    ResolveTreeViewMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveTreeViewMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveTreeViewMethod "setParentWindow" o = Gtk.Widget.WidgetSetParentWindowMethodInfo
    ResolveTreeViewMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveTreeViewMethod "setRealized" o = Gtk.Widget.WidgetSetRealizedMethodInfo
    ResolveTreeViewMethod "setReallocateRedraws" o = Gtk.Container.ContainerSetReallocateRedrawsMethodInfo
    ResolveTreeViewMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveTreeViewMethod "setRedrawOnAllocate" o = Gtk.Widget.WidgetSetRedrawOnAllocateMethodInfo
    ResolveTreeViewMethod "setReorderable" o = TreeViewSetReorderableMethodInfo
    ResolveTreeViewMethod "setResizeMode" o = Gtk.Container.ContainerSetResizeModeMethodInfo
    ResolveTreeViewMethod "setRowSeparatorFunc" o = TreeViewSetRowSeparatorFuncMethodInfo
    ResolveTreeViewMethod "setRubberBanding" o = TreeViewSetRubberBandingMethodInfo
    ResolveTreeViewMethod "setRulesHint" o = TreeViewSetRulesHintMethodInfo
    ResolveTreeViewMethod "setSearchColumn" o = TreeViewSetSearchColumnMethodInfo
    ResolveTreeViewMethod "setSearchEntry" o = TreeViewSetSearchEntryMethodInfo
    ResolveTreeViewMethod "setSearchEqualFunc" o = TreeViewSetSearchEqualFuncMethodInfo
    ResolveTreeViewMethod "setSearchPositionFunc" o = TreeViewSetSearchPositionFuncMethodInfo
    ResolveTreeViewMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveTreeViewMethod "setShowExpanders" o = TreeViewSetShowExpandersMethodInfo
    ResolveTreeViewMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveTreeViewMethod "setState" o = Gtk.Widget.WidgetSetStateMethodInfo
    ResolveTreeViewMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    ResolveTreeViewMethod "setStyle" o = Gtk.Widget.WidgetSetStyleMethodInfo
    ResolveTreeViewMethod "setSupportMultidevice" o = Gtk.Widget.WidgetSetSupportMultideviceMethodInfo
    ResolveTreeViewMethod "setTooltipCell" o = TreeViewSetTooltipCellMethodInfo
    ResolveTreeViewMethod "setTooltipColumn" o = TreeViewSetTooltipColumnMethodInfo
    ResolveTreeViewMethod "setTooltipMarkup" o = Gtk.Widget.WidgetSetTooltipMarkupMethodInfo
    ResolveTreeViewMethod "setTooltipRow" o = TreeViewSetTooltipRowMethodInfo
    ResolveTreeViewMethod "setTooltipText" o = Gtk.Widget.WidgetSetTooltipTextMethodInfo
    ResolveTreeViewMethod "setTooltipWindow" o = Gtk.Widget.WidgetSetTooltipWindowMethodInfo
    ResolveTreeViewMethod "setVadjustment" o = TreeViewSetVadjustmentMethodInfo
    ResolveTreeViewMethod "setValign" o = Gtk.Widget.WidgetSetValignMethodInfo
    ResolveTreeViewMethod "setVexpand" o = Gtk.Widget.WidgetSetVexpandMethodInfo
    ResolveTreeViewMethod "setVexpandSet" o = Gtk.Widget.WidgetSetVexpandSetMethodInfo
    ResolveTreeViewMethod "setVisible" o = Gtk.Widget.WidgetSetVisibleMethodInfo
    ResolveTreeViewMethod "setVisual" o = Gtk.Widget.WidgetSetVisualMethodInfo
    ResolveTreeViewMethod "setVscrollPolicy" o = Gtk.Scrollable.ScrollableSetVscrollPolicyMethodInfo
    ResolveTreeViewMethod "setWindow" o = Gtk.Widget.WidgetSetWindowMethodInfo
    ResolveTreeViewMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveTreeViewMethod t TreeView, O.MethodInfo info TreeView p) => O.IsLabelProxy t (TreeView -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveTreeViewMethod t TreeView, O.MethodInfo info TreeView p) => O.IsLabel t (TreeView -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif

#endif

-- signal TreeView::columns-changed
{- |
The number of columns of the treeview has changed.
-}
type TreeViewColumnsChangedCallback =
    IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewColumnsChangedCallback`@.
noTreeViewColumnsChangedCallback :: Maybe TreeViewColumnsChangedCallback
noTreeViewColumnsChangedCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewColumnsChangedCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_TreeViewColumnsChangedCallback`.
foreign import ccall "wrapper"
    mk_TreeViewColumnsChangedCallback :: C_TreeViewColumnsChangedCallback -> IO (FunPtr C_TreeViewColumnsChangedCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewColumnsChanged :: TreeViewColumnsChangedCallback -> IO Closure
genClosure_TreeViewColumnsChanged cb = do
    let cb' = wrap_TreeViewColumnsChangedCallback cb
    mk_TreeViewColumnsChangedCallback cb' >>= newCClosure


-- | Wrap a `TreeViewColumnsChangedCallback` into a `C_TreeViewColumnsChangedCallback`.
wrap_TreeViewColumnsChangedCallback ::
    TreeViewColumnsChangedCallback ->
    C_TreeViewColumnsChangedCallback
wrap_TreeViewColumnsChangedCallback _cb _ _ = do
    _cb


{- |
Connect a signal handler for the “@columns-changed@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #columnsChanged callback
@
-}
onTreeViewColumnsChanged :: (IsTreeView a, MonadIO m) => a -> TreeViewColumnsChangedCallback -> m SignalHandlerId
onTreeViewColumnsChanged obj cb = liftIO $ do
    let cb' = wrap_TreeViewColumnsChangedCallback cb
    cb'' <- mk_TreeViewColumnsChangedCallback cb'
    connectSignalFunPtr obj "columns-changed" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@columns-changed@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #columnsChanged callback
@
-}
afterTreeViewColumnsChanged :: (IsTreeView a, MonadIO m) => a -> TreeViewColumnsChangedCallback -> m SignalHandlerId
afterTreeViewColumnsChanged obj cb = liftIO $ do
    let cb' = wrap_TreeViewColumnsChangedCallback cb
    cb'' <- mk_TreeViewColumnsChangedCallback cb'
    connectSignalFunPtr obj "columns-changed" cb'' SignalConnectAfter


-- signal TreeView::cursor-changed
{- |
The position of the cursor (focused cell) has changed.
-}
type TreeViewCursorChangedCallback =
    IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewCursorChangedCallback`@.
noTreeViewCursorChangedCallback :: Maybe TreeViewCursorChangedCallback
noTreeViewCursorChangedCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewCursorChangedCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_TreeViewCursorChangedCallback`.
foreign import ccall "wrapper"
    mk_TreeViewCursorChangedCallback :: C_TreeViewCursorChangedCallback -> IO (FunPtr C_TreeViewCursorChangedCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewCursorChanged :: TreeViewCursorChangedCallback -> IO Closure
genClosure_TreeViewCursorChanged cb = do
    let cb' = wrap_TreeViewCursorChangedCallback cb
    mk_TreeViewCursorChangedCallback cb' >>= newCClosure


-- | Wrap a `TreeViewCursorChangedCallback` into a `C_TreeViewCursorChangedCallback`.
wrap_TreeViewCursorChangedCallback ::
    TreeViewCursorChangedCallback ->
    C_TreeViewCursorChangedCallback
wrap_TreeViewCursorChangedCallback _cb _ _ = do
    _cb


{- |
Connect a signal handler for the “@cursor-changed@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #cursorChanged callback
@
-}
onTreeViewCursorChanged :: (IsTreeView a, MonadIO m) => a -> TreeViewCursorChangedCallback -> m SignalHandlerId
onTreeViewCursorChanged obj cb = liftIO $ do
    let cb' = wrap_TreeViewCursorChangedCallback cb
    cb'' <- mk_TreeViewCursorChangedCallback cb'
    connectSignalFunPtr obj "cursor-changed" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@cursor-changed@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #cursorChanged callback
@
-}
afterTreeViewCursorChanged :: (IsTreeView a, MonadIO m) => a -> TreeViewCursorChangedCallback -> m SignalHandlerId
afterTreeViewCursorChanged obj cb = liftIO $ do
    let cb' = wrap_TreeViewCursorChangedCallback cb
    cb'' <- mk_TreeViewCursorChangedCallback cb'
    connectSignalFunPtr obj "cursor-changed" cb'' SignalConnectAfter


-- signal TreeView::expand-collapse-cursor-row
{- |
/No description available in the introspection data./
-}
type TreeViewExpandCollapseCursorRowCallback =
    Bool
    -> Bool
    -> Bool
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewExpandCollapseCursorRowCallback`@.
noTreeViewExpandCollapseCursorRowCallback :: Maybe TreeViewExpandCollapseCursorRowCallback
noTreeViewExpandCollapseCursorRowCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewExpandCollapseCursorRowCallback =
    Ptr () ->                               -- object
    CInt ->
    CInt ->
    CInt ->
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewExpandCollapseCursorRowCallback`.
foreign import ccall "wrapper"
    mk_TreeViewExpandCollapseCursorRowCallback :: C_TreeViewExpandCollapseCursorRowCallback -> IO (FunPtr C_TreeViewExpandCollapseCursorRowCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewExpandCollapseCursorRow :: TreeViewExpandCollapseCursorRowCallback -> IO Closure
genClosure_TreeViewExpandCollapseCursorRow cb = do
    let cb' = wrap_TreeViewExpandCollapseCursorRowCallback cb
    mk_TreeViewExpandCollapseCursorRowCallback cb' >>= newCClosure


-- | Wrap a `TreeViewExpandCollapseCursorRowCallback` into a `C_TreeViewExpandCollapseCursorRowCallback`.
wrap_TreeViewExpandCollapseCursorRowCallback ::
    TreeViewExpandCollapseCursorRowCallback ->
    C_TreeViewExpandCollapseCursorRowCallback
wrap_TreeViewExpandCollapseCursorRowCallback _cb _ object p0 p1 _ = do
    let object' = (/= 0) object
    let p0' = (/= 0) p0
    let p1' = (/= 0) p1
    result <- _cb  object' p0' p1'
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@expand-collapse-cursor-row@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #expandCollapseCursorRow callback
@
-}
onTreeViewExpandCollapseCursorRow :: (IsTreeView a, MonadIO m) => a -> TreeViewExpandCollapseCursorRowCallback -> m SignalHandlerId
onTreeViewExpandCollapseCursorRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewExpandCollapseCursorRowCallback cb
    cb'' <- mk_TreeViewExpandCollapseCursorRowCallback cb'
    connectSignalFunPtr obj "expand-collapse-cursor-row" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@expand-collapse-cursor-row@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #expandCollapseCursorRow callback
@
-}
afterTreeViewExpandCollapseCursorRow :: (IsTreeView a, MonadIO m) => a -> TreeViewExpandCollapseCursorRowCallback -> m SignalHandlerId
afterTreeViewExpandCollapseCursorRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewExpandCollapseCursorRowCallback cb
    cb'' <- mk_TreeViewExpandCollapseCursorRowCallback cb'
    connectSignalFunPtr obj "expand-collapse-cursor-row" cb'' SignalConnectAfter


-- signal TreeView::move-cursor
{- |
The 'GI.Gtk.Objects.TreeView.TreeView'::@/move-cursor/@ signal is a [keybinding
signal][GtkBindingSignal] which gets emitted when the user
presses one of the cursor keys.

Applications should not connect to it, but may emit it with
@/g_signal_emit_by_name()/@ if they need to control the cursor
programmatically. In contrast to 'GI.Gtk.Objects.TreeView.treeViewSetCursor' and
'GI.Gtk.Objects.TreeView.treeViewSetCursorOnCell' when moving horizontally
'GI.Gtk.Objects.TreeView.TreeView'::@/move-cursor/@ does not reset the current selection.
-}
type TreeViewMoveCursorCallback =
    Gtk.Enums.MovementStep
    {- ^ /@step@/: the granularity of the move, as a
'GI.Gtk.Enums.MovementStep'. 'GI.Gtk.Enums.MovementStepLogicalPositions',
'GI.Gtk.Enums.MovementStepVisualPositions', 'GI.Gtk.Enums.MovementStepDisplayLines',
'GI.Gtk.Enums.MovementStepPages' and 'GI.Gtk.Enums.MovementStepBufferEnds' are
supported. 'GI.Gtk.Enums.MovementStepLogicalPositions' and
'GI.Gtk.Enums.MovementStepVisualPositions' are treated identically. -}
    -> Int32
    {- ^ /@direction@/: the direction to move: +1 to move forwards;
-1 to move backwards. The resulting movement is
undefined for all other values. -}
    -> IO Bool
    {- ^ __Returns:__ 'True' if /@step@/ is supported, 'False' otherwise. -}

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewMoveCursorCallback`@.
noTreeViewMoveCursorCallback :: Maybe TreeViewMoveCursorCallback
noTreeViewMoveCursorCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewMoveCursorCallback =
    Ptr () ->                               -- object
    CUInt ->
    Int32 ->
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewMoveCursorCallback`.
foreign import ccall "wrapper"
    mk_TreeViewMoveCursorCallback :: C_TreeViewMoveCursorCallback -> IO (FunPtr C_TreeViewMoveCursorCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewMoveCursor :: TreeViewMoveCursorCallback -> IO Closure
genClosure_TreeViewMoveCursor cb = do
    let cb' = wrap_TreeViewMoveCursorCallback cb
    mk_TreeViewMoveCursorCallback cb' >>= newCClosure


-- | Wrap a `TreeViewMoveCursorCallback` into a `C_TreeViewMoveCursorCallback`.
wrap_TreeViewMoveCursorCallback ::
    TreeViewMoveCursorCallback ->
    C_TreeViewMoveCursorCallback
wrap_TreeViewMoveCursorCallback _cb _ step direction _ = do
    let step' = (toEnum . fromIntegral) step
    result <- _cb  step' direction
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@move-cursor@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #moveCursor callback
@
-}
onTreeViewMoveCursor :: (IsTreeView a, MonadIO m) => a -> TreeViewMoveCursorCallback -> m SignalHandlerId
onTreeViewMoveCursor obj cb = liftIO $ do
    let cb' = wrap_TreeViewMoveCursorCallback cb
    cb'' <- mk_TreeViewMoveCursorCallback cb'
    connectSignalFunPtr obj "move-cursor" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@move-cursor@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #moveCursor callback
@
-}
afterTreeViewMoveCursor :: (IsTreeView a, MonadIO m) => a -> TreeViewMoveCursorCallback -> m SignalHandlerId
afterTreeViewMoveCursor obj cb = liftIO $ do
    let cb' = wrap_TreeViewMoveCursorCallback cb
    cb'' <- mk_TreeViewMoveCursorCallback cb'
    connectSignalFunPtr obj "move-cursor" cb'' SignalConnectAfter


-- signal TreeView::row-activated
{- |
The \"row-activated\" signal is emitted when the method
'GI.Gtk.Objects.TreeView.treeViewRowActivated' is called, when the user double
clicks a treeview row with the \"activate-on-single-click\"
property set to 'False', or when the user single clicks a row when
the \"activate-on-single-click\" property set to 'True'. It is also
emitted when a non-editable row is selected and one of the keys:
Space, Shift+Space, Return or Enter is pressed.

For selection handling refer to the
[tree widget conceptual overview][TreeWidget]
as well as 'GI.Gtk.Objects.TreeSelection.TreeSelection'.
-}
type TreeViewRowActivatedCallback =
    Gtk.TreePath.TreePath
    {- ^ /@path@/: the 'GI.Gtk.Structs.TreePath.TreePath' for the activated row -}
    -> Gtk.TreeViewColumn.TreeViewColumn
    {- ^ /@column@/: the 'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' in which the activation occurred -}
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewRowActivatedCallback`@.
noTreeViewRowActivatedCallback :: Maybe TreeViewRowActivatedCallback
noTreeViewRowActivatedCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewRowActivatedCallback =
    Ptr () ->                               -- object
    Ptr Gtk.TreePath.TreePath ->
    Ptr Gtk.TreeViewColumn.TreeViewColumn ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_TreeViewRowActivatedCallback`.
foreign import ccall "wrapper"
    mk_TreeViewRowActivatedCallback :: C_TreeViewRowActivatedCallback -> IO (FunPtr C_TreeViewRowActivatedCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewRowActivated :: TreeViewRowActivatedCallback -> IO Closure
genClosure_TreeViewRowActivated cb = do
    let cb' = wrap_TreeViewRowActivatedCallback cb
    mk_TreeViewRowActivatedCallback cb' >>= newCClosure


-- | Wrap a `TreeViewRowActivatedCallback` into a `C_TreeViewRowActivatedCallback`.
wrap_TreeViewRowActivatedCallback ::
    TreeViewRowActivatedCallback ->
    C_TreeViewRowActivatedCallback
wrap_TreeViewRowActivatedCallback _cb _ path column _ = do
    B.ManagedPtr.withTransient Gtk.TreePath.TreePath path $ \path' -> do
        column' <- (newObject Gtk.TreeViewColumn.TreeViewColumn) column
        _cb  path' column'


{- |
Connect a signal handler for the “@row-activated@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #rowActivated callback
@
-}
onTreeViewRowActivated :: (IsTreeView a, MonadIO m) => a -> TreeViewRowActivatedCallback -> m SignalHandlerId
onTreeViewRowActivated obj cb = liftIO $ do
    let cb' = wrap_TreeViewRowActivatedCallback cb
    cb'' <- mk_TreeViewRowActivatedCallback cb'
    connectSignalFunPtr obj "row-activated" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@row-activated@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #rowActivated callback
@
-}
afterTreeViewRowActivated :: (IsTreeView a, MonadIO m) => a -> TreeViewRowActivatedCallback -> m SignalHandlerId
afterTreeViewRowActivated obj cb = liftIO $ do
    let cb' = wrap_TreeViewRowActivatedCallback cb
    cb'' <- mk_TreeViewRowActivatedCallback cb'
    connectSignalFunPtr obj "row-activated" cb'' SignalConnectAfter


-- signal TreeView::row-collapsed
{- |
The given row has been collapsed (child nodes are hidden).
-}
type TreeViewRowCollapsedCallback =
    Gtk.TreeIter.TreeIter
    {- ^ /@iter@/: the tree iter of the collapsed row -}
    -> Gtk.TreePath.TreePath
    {- ^ /@path@/: a tree path that points to the row -}
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewRowCollapsedCallback`@.
noTreeViewRowCollapsedCallback :: Maybe TreeViewRowCollapsedCallback
noTreeViewRowCollapsedCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewRowCollapsedCallback =
    Ptr () ->                               -- object
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_TreeViewRowCollapsedCallback`.
foreign import ccall "wrapper"
    mk_TreeViewRowCollapsedCallback :: C_TreeViewRowCollapsedCallback -> IO (FunPtr C_TreeViewRowCollapsedCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewRowCollapsed :: TreeViewRowCollapsedCallback -> IO Closure
genClosure_TreeViewRowCollapsed cb = do
    let cb' = wrap_TreeViewRowCollapsedCallback cb
    mk_TreeViewRowCollapsedCallback cb' >>= newCClosure


-- | Wrap a `TreeViewRowCollapsedCallback` into a `C_TreeViewRowCollapsedCallback`.
wrap_TreeViewRowCollapsedCallback ::
    TreeViewRowCollapsedCallback ->
    C_TreeViewRowCollapsedCallback
wrap_TreeViewRowCollapsedCallback _cb _ iter path _ = do
    B.ManagedPtr.withTransient Gtk.TreeIter.TreeIter iter $ \iter' -> do
        B.ManagedPtr.withTransient Gtk.TreePath.TreePath path $ \path' -> do
            _cb  iter' path'


{- |
Connect a signal handler for the “@row-collapsed@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #rowCollapsed callback
@
-}
onTreeViewRowCollapsed :: (IsTreeView a, MonadIO m) => a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
onTreeViewRowCollapsed obj cb = liftIO $ do
    let cb' = wrap_TreeViewRowCollapsedCallback cb
    cb'' <- mk_TreeViewRowCollapsedCallback cb'
    connectSignalFunPtr obj "row-collapsed" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@row-collapsed@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #rowCollapsed callback
@
-}
afterTreeViewRowCollapsed :: (IsTreeView a, MonadIO m) => a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
afterTreeViewRowCollapsed obj cb = liftIO $ do
    let cb' = wrap_TreeViewRowCollapsedCallback cb
    cb'' <- mk_TreeViewRowCollapsedCallback cb'
    connectSignalFunPtr obj "row-collapsed" cb'' SignalConnectAfter


-- signal TreeView::row-expanded
{- |
The given row has been expanded (child nodes are shown).
-}
type TreeViewRowExpandedCallback =
    Gtk.TreeIter.TreeIter
    {- ^ /@iter@/: the tree iter of the expanded row -}
    -> Gtk.TreePath.TreePath
    {- ^ /@path@/: a tree path that points to the row -}
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewRowExpandedCallback`@.
noTreeViewRowExpandedCallback :: Maybe TreeViewRowExpandedCallback
noTreeViewRowExpandedCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewRowExpandedCallback =
    Ptr () ->                               -- object
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_TreeViewRowExpandedCallback`.
foreign import ccall "wrapper"
    mk_TreeViewRowExpandedCallback :: C_TreeViewRowExpandedCallback -> IO (FunPtr C_TreeViewRowExpandedCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewRowExpanded :: TreeViewRowExpandedCallback -> IO Closure
genClosure_TreeViewRowExpanded cb = do
    let cb' = wrap_TreeViewRowExpandedCallback cb
    mk_TreeViewRowExpandedCallback cb' >>= newCClosure


-- | Wrap a `TreeViewRowExpandedCallback` into a `C_TreeViewRowExpandedCallback`.
wrap_TreeViewRowExpandedCallback ::
    TreeViewRowExpandedCallback ->
    C_TreeViewRowExpandedCallback
wrap_TreeViewRowExpandedCallback _cb _ iter path _ = do
    B.ManagedPtr.withTransient Gtk.TreeIter.TreeIter iter $ \iter' -> do
        B.ManagedPtr.withTransient Gtk.TreePath.TreePath path $ \path' -> do
            _cb  iter' path'


{- |
Connect a signal handler for the “@row-expanded@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #rowExpanded callback
@
-}
onTreeViewRowExpanded :: (IsTreeView a, MonadIO m) => a -> TreeViewRowExpandedCallback -> m SignalHandlerId
onTreeViewRowExpanded obj cb = liftIO $ do
    let cb' = wrap_TreeViewRowExpandedCallback cb
    cb'' <- mk_TreeViewRowExpandedCallback cb'
    connectSignalFunPtr obj "row-expanded" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@row-expanded@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #rowExpanded callback
@
-}
afterTreeViewRowExpanded :: (IsTreeView a, MonadIO m) => a -> TreeViewRowExpandedCallback -> m SignalHandlerId
afterTreeViewRowExpanded obj cb = liftIO $ do
    let cb' = wrap_TreeViewRowExpandedCallback cb
    cb'' <- mk_TreeViewRowExpandedCallback cb'
    connectSignalFunPtr obj "row-expanded" cb'' SignalConnectAfter


-- signal TreeView::select-all
{- |
/No description available in the introspection data./
-}
type TreeViewSelectAllCallback =
    IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewSelectAllCallback`@.
noTreeViewSelectAllCallback :: Maybe TreeViewSelectAllCallback
noTreeViewSelectAllCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewSelectAllCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewSelectAllCallback`.
foreign import ccall "wrapper"
    mk_TreeViewSelectAllCallback :: C_TreeViewSelectAllCallback -> IO (FunPtr C_TreeViewSelectAllCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewSelectAll :: TreeViewSelectAllCallback -> IO Closure
genClosure_TreeViewSelectAll cb = do
    let cb' = wrap_TreeViewSelectAllCallback cb
    mk_TreeViewSelectAllCallback cb' >>= newCClosure


-- | Wrap a `TreeViewSelectAllCallback` into a `C_TreeViewSelectAllCallback`.
wrap_TreeViewSelectAllCallback ::
    TreeViewSelectAllCallback ->
    C_TreeViewSelectAllCallback
wrap_TreeViewSelectAllCallback _cb _ _ = do
    result <- _cb
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@select-all@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #selectAll callback
@
-}
onTreeViewSelectAll :: (IsTreeView a, MonadIO m) => a -> TreeViewSelectAllCallback -> m SignalHandlerId
onTreeViewSelectAll obj cb = liftIO $ do
    let cb' = wrap_TreeViewSelectAllCallback cb
    cb'' <- mk_TreeViewSelectAllCallback cb'
    connectSignalFunPtr obj "select-all" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@select-all@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #selectAll callback
@
-}
afterTreeViewSelectAll :: (IsTreeView a, MonadIO m) => a -> TreeViewSelectAllCallback -> m SignalHandlerId
afterTreeViewSelectAll obj cb = liftIO $ do
    let cb' = wrap_TreeViewSelectAllCallback cb
    cb'' <- mk_TreeViewSelectAllCallback cb'
    connectSignalFunPtr obj "select-all" cb'' SignalConnectAfter


-- signal TreeView::select-cursor-parent
{- |
/No description available in the introspection data./
-}
type TreeViewSelectCursorParentCallback =
    IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewSelectCursorParentCallback`@.
noTreeViewSelectCursorParentCallback :: Maybe TreeViewSelectCursorParentCallback
noTreeViewSelectCursorParentCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewSelectCursorParentCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewSelectCursorParentCallback`.
foreign import ccall "wrapper"
    mk_TreeViewSelectCursorParentCallback :: C_TreeViewSelectCursorParentCallback -> IO (FunPtr C_TreeViewSelectCursorParentCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewSelectCursorParent :: TreeViewSelectCursorParentCallback -> IO Closure
genClosure_TreeViewSelectCursorParent cb = do
    let cb' = wrap_TreeViewSelectCursorParentCallback cb
    mk_TreeViewSelectCursorParentCallback cb' >>= newCClosure


-- | Wrap a `TreeViewSelectCursorParentCallback` into a `C_TreeViewSelectCursorParentCallback`.
wrap_TreeViewSelectCursorParentCallback ::
    TreeViewSelectCursorParentCallback ->
    C_TreeViewSelectCursorParentCallback
wrap_TreeViewSelectCursorParentCallback _cb _ _ = do
    result <- _cb
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@select-cursor-parent@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #selectCursorParent callback
@
-}
onTreeViewSelectCursorParent :: (IsTreeView a, MonadIO m) => a -> TreeViewSelectCursorParentCallback -> m SignalHandlerId
onTreeViewSelectCursorParent obj cb = liftIO $ do
    let cb' = wrap_TreeViewSelectCursorParentCallback cb
    cb'' <- mk_TreeViewSelectCursorParentCallback cb'
    connectSignalFunPtr obj "select-cursor-parent" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@select-cursor-parent@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #selectCursorParent callback
@
-}
afterTreeViewSelectCursorParent :: (IsTreeView a, MonadIO m) => a -> TreeViewSelectCursorParentCallback -> m SignalHandlerId
afterTreeViewSelectCursorParent obj cb = liftIO $ do
    let cb' = wrap_TreeViewSelectCursorParentCallback cb
    cb'' <- mk_TreeViewSelectCursorParentCallback cb'
    connectSignalFunPtr obj "select-cursor-parent" cb'' SignalConnectAfter


-- signal TreeView::select-cursor-row
{- |
/No description available in the introspection data./
-}
type TreeViewSelectCursorRowCallback =
    Bool
    -> IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewSelectCursorRowCallback`@.
noTreeViewSelectCursorRowCallback :: Maybe TreeViewSelectCursorRowCallback
noTreeViewSelectCursorRowCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewSelectCursorRowCallback =
    Ptr () ->                               -- object
    CInt ->
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewSelectCursorRowCallback`.
foreign import ccall "wrapper"
    mk_TreeViewSelectCursorRowCallback :: C_TreeViewSelectCursorRowCallback -> IO (FunPtr C_TreeViewSelectCursorRowCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewSelectCursorRow :: TreeViewSelectCursorRowCallback -> IO Closure
genClosure_TreeViewSelectCursorRow cb = do
    let cb' = wrap_TreeViewSelectCursorRowCallback cb
    mk_TreeViewSelectCursorRowCallback cb' >>= newCClosure


-- | Wrap a `TreeViewSelectCursorRowCallback` into a `C_TreeViewSelectCursorRowCallback`.
wrap_TreeViewSelectCursorRowCallback ::
    TreeViewSelectCursorRowCallback ->
    C_TreeViewSelectCursorRowCallback
wrap_TreeViewSelectCursorRowCallback _cb _ object _ = do
    let object' = (/= 0) object
    result <- _cb  object'
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@select-cursor-row@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #selectCursorRow callback
@
-}
onTreeViewSelectCursorRow :: (IsTreeView a, MonadIO m) => a -> TreeViewSelectCursorRowCallback -> m SignalHandlerId
onTreeViewSelectCursorRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewSelectCursorRowCallback cb
    cb'' <- mk_TreeViewSelectCursorRowCallback cb'
    connectSignalFunPtr obj "select-cursor-row" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@select-cursor-row@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #selectCursorRow callback
@
-}
afterTreeViewSelectCursorRow :: (IsTreeView a, MonadIO m) => a -> TreeViewSelectCursorRowCallback -> m SignalHandlerId
afterTreeViewSelectCursorRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewSelectCursorRowCallback cb
    cb'' <- mk_TreeViewSelectCursorRowCallback cb'
    connectSignalFunPtr obj "select-cursor-row" cb'' SignalConnectAfter


-- signal TreeView::start-interactive-search
{- |
/No description available in the introspection data./
-}
type TreeViewStartInteractiveSearchCallback =
    IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewStartInteractiveSearchCallback`@.
noTreeViewStartInteractiveSearchCallback :: Maybe TreeViewStartInteractiveSearchCallback
noTreeViewStartInteractiveSearchCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewStartInteractiveSearchCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewStartInteractiveSearchCallback`.
foreign import ccall "wrapper"
    mk_TreeViewStartInteractiveSearchCallback :: C_TreeViewStartInteractiveSearchCallback -> IO (FunPtr C_TreeViewStartInteractiveSearchCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewStartInteractiveSearch :: TreeViewStartInteractiveSearchCallback -> IO Closure
genClosure_TreeViewStartInteractiveSearch cb = do
    let cb' = wrap_TreeViewStartInteractiveSearchCallback cb
    mk_TreeViewStartInteractiveSearchCallback cb' >>= newCClosure


-- | Wrap a `TreeViewStartInteractiveSearchCallback` into a `C_TreeViewStartInteractiveSearchCallback`.
wrap_TreeViewStartInteractiveSearchCallback ::
    TreeViewStartInteractiveSearchCallback ->
    C_TreeViewStartInteractiveSearchCallback
wrap_TreeViewStartInteractiveSearchCallback _cb _ _ = do
    result <- _cb
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@start-interactive-search@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #startInteractiveSearch callback
@
-}
onTreeViewStartInteractiveSearch :: (IsTreeView a, MonadIO m) => a -> TreeViewStartInteractiveSearchCallback -> m SignalHandlerId
onTreeViewStartInteractiveSearch obj cb = liftIO $ do
    let cb' = wrap_TreeViewStartInteractiveSearchCallback cb
    cb'' <- mk_TreeViewStartInteractiveSearchCallback cb'
    connectSignalFunPtr obj "start-interactive-search" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@start-interactive-search@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #startInteractiveSearch callback
@
-}
afterTreeViewStartInteractiveSearch :: (IsTreeView a, MonadIO m) => a -> TreeViewStartInteractiveSearchCallback -> m SignalHandlerId
afterTreeViewStartInteractiveSearch obj cb = liftIO $ do
    let cb' = wrap_TreeViewStartInteractiveSearchCallback cb
    cb'' <- mk_TreeViewStartInteractiveSearchCallback cb'
    connectSignalFunPtr obj "start-interactive-search" cb'' SignalConnectAfter


-- signal TreeView::test-collapse-row
{- |
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.
-}
type TreeViewTestCollapseRowCallback =
    Gtk.TreeIter.TreeIter
    {- ^ /@iter@/: the tree iter of the row to collapse -}
    -> Gtk.TreePath.TreePath
    {- ^ /@path@/: a tree path that points to the row -}
    -> IO Bool
    {- ^ __Returns:__ 'False' to allow collapsing, 'True' to reject -}

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewTestCollapseRowCallback`@.
noTreeViewTestCollapseRowCallback :: Maybe TreeViewTestCollapseRowCallback
noTreeViewTestCollapseRowCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewTestCollapseRowCallback =
    Ptr () ->                               -- object
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewTestCollapseRowCallback`.
foreign import ccall "wrapper"
    mk_TreeViewTestCollapseRowCallback :: C_TreeViewTestCollapseRowCallback -> IO (FunPtr C_TreeViewTestCollapseRowCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewTestCollapseRow :: TreeViewTestCollapseRowCallback -> IO Closure
genClosure_TreeViewTestCollapseRow cb = do
    let cb' = wrap_TreeViewTestCollapseRowCallback cb
    mk_TreeViewTestCollapseRowCallback cb' >>= newCClosure


-- | Wrap a `TreeViewTestCollapseRowCallback` into a `C_TreeViewTestCollapseRowCallback`.
wrap_TreeViewTestCollapseRowCallback ::
    TreeViewTestCollapseRowCallback ->
    C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestCollapseRowCallback _cb _ iter path _ = do
    B.ManagedPtr.withTransient Gtk.TreeIter.TreeIter iter $ \iter' -> do
        B.ManagedPtr.withTransient Gtk.TreePath.TreePath path $ \path' -> do
            result <- _cb  iter' path'
            let result' = (fromIntegral . fromEnum) result
            return result'


{- |
Connect a signal handler for the “@test-collapse-row@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #testCollapseRow callback
@
-}
onTreeViewTestCollapseRow :: (IsTreeView a, MonadIO m) => a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
onTreeViewTestCollapseRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewTestCollapseRowCallback cb
    cb'' <- mk_TreeViewTestCollapseRowCallback cb'
    connectSignalFunPtr obj "test-collapse-row" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@test-collapse-row@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #testCollapseRow callback
@
-}
afterTreeViewTestCollapseRow :: (IsTreeView a, MonadIO m) => a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
afterTreeViewTestCollapseRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewTestCollapseRowCallback cb
    cb'' <- mk_TreeViewTestCollapseRowCallback cb'
    connectSignalFunPtr obj "test-collapse-row" cb'' SignalConnectAfter


-- signal TreeView::test-expand-row
{- |
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.
-}
type TreeViewTestExpandRowCallback =
    Gtk.TreeIter.TreeIter
    {- ^ /@iter@/: the tree iter of the row to expand -}
    -> Gtk.TreePath.TreePath
    {- ^ /@path@/: a tree path that points to the row -}
    -> IO Bool
    {- ^ __Returns:__ 'False' to allow expansion, 'True' to reject -}

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewTestExpandRowCallback`@.
noTreeViewTestExpandRowCallback :: Maybe TreeViewTestExpandRowCallback
noTreeViewTestExpandRowCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewTestExpandRowCallback =
    Ptr () ->                               -- object
    Ptr Gtk.TreeIter.TreeIter ->
    Ptr Gtk.TreePath.TreePath ->
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewTestExpandRowCallback`.
foreign import ccall "wrapper"
    mk_TreeViewTestExpandRowCallback :: C_TreeViewTestExpandRowCallback -> IO (FunPtr C_TreeViewTestExpandRowCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewTestExpandRow :: TreeViewTestExpandRowCallback -> IO Closure
genClosure_TreeViewTestExpandRow cb = do
    let cb' = wrap_TreeViewTestExpandRowCallback cb
    mk_TreeViewTestExpandRowCallback cb' >>= newCClosure


-- | Wrap a `TreeViewTestExpandRowCallback` into a `C_TreeViewTestExpandRowCallback`.
wrap_TreeViewTestExpandRowCallback ::
    TreeViewTestExpandRowCallback ->
    C_TreeViewTestExpandRowCallback
wrap_TreeViewTestExpandRowCallback _cb _ iter path _ = do
    B.ManagedPtr.withTransient Gtk.TreeIter.TreeIter iter $ \iter' -> do
        B.ManagedPtr.withTransient Gtk.TreePath.TreePath path $ \path' -> do
            result <- _cb  iter' path'
            let result' = (fromIntegral . fromEnum) result
            return result'


{- |
Connect a signal handler for the “@test-expand-row@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #testExpandRow callback
@
-}
onTreeViewTestExpandRow :: (IsTreeView a, MonadIO m) => a -> TreeViewTestExpandRowCallback -> m SignalHandlerId
onTreeViewTestExpandRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewTestExpandRowCallback cb
    cb'' <- mk_TreeViewTestExpandRowCallback cb'
    connectSignalFunPtr obj "test-expand-row" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@test-expand-row@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #testExpandRow callback
@
-}
afterTreeViewTestExpandRow :: (IsTreeView a, MonadIO m) => a -> TreeViewTestExpandRowCallback -> m SignalHandlerId
afterTreeViewTestExpandRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewTestExpandRowCallback cb
    cb'' <- mk_TreeViewTestExpandRowCallback cb'
    connectSignalFunPtr obj "test-expand-row" cb'' SignalConnectAfter


-- signal TreeView::toggle-cursor-row
{- |
/No description available in the introspection data./
-}
type TreeViewToggleCursorRowCallback =
    IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewToggleCursorRowCallback`@.
noTreeViewToggleCursorRowCallback :: Maybe TreeViewToggleCursorRowCallback
noTreeViewToggleCursorRowCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewToggleCursorRowCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewToggleCursorRowCallback`.
foreign import ccall "wrapper"
    mk_TreeViewToggleCursorRowCallback :: C_TreeViewToggleCursorRowCallback -> IO (FunPtr C_TreeViewToggleCursorRowCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewToggleCursorRow :: TreeViewToggleCursorRowCallback -> IO Closure
genClosure_TreeViewToggleCursorRow cb = do
    let cb' = wrap_TreeViewToggleCursorRowCallback cb
    mk_TreeViewToggleCursorRowCallback cb' >>= newCClosure


-- | Wrap a `TreeViewToggleCursorRowCallback` into a `C_TreeViewToggleCursorRowCallback`.
wrap_TreeViewToggleCursorRowCallback ::
    TreeViewToggleCursorRowCallback ->
    C_TreeViewToggleCursorRowCallback
wrap_TreeViewToggleCursorRowCallback _cb _ _ = do
    result <- _cb
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@toggle-cursor-row@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #toggleCursorRow callback
@
-}
onTreeViewToggleCursorRow :: (IsTreeView a, MonadIO m) => a -> TreeViewToggleCursorRowCallback -> m SignalHandlerId
onTreeViewToggleCursorRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewToggleCursorRowCallback cb
    cb'' <- mk_TreeViewToggleCursorRowCallback cb'
    connectSignalFunPtr obj "toggle-cursor-row" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@toggle-cursor-row@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #toggleCursorRow callback
@
-}
afterTreeViewToggleCursorRow :: (IsTreeView a, MonadIO m) => a -> TreeViewToggleCursorRowCallback -> m SignalHandlerId
afterTreeViewToggleCursorRow obj cb = liftIO $ do
    let cb' = wrap_TreeViewToggleCursorRowCallback cb
    cb'' <- mk_TreeViewToggleCursorRowCallback cb'
    connectSignalFunPtr obj "toggle-cursor-row" cb'' SignalConnectAfter


-- signal TreeView::unselect-all
{- |
/No description available in the introspection data./
-}
type TreeViewUnselectAllCallback =
    IO Bool

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewUnselectAllCallback`@.
noTreeViewUnselectAllCallback :: Maybe TreeViewUnselectAllCallback
noTreeViewUnselectAllCallback = Nothing

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewUnselectAllCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

-- | Generate a function pointer callable from C code, from a `C_TreeViewUnselectAllCallback`.
foreign import ccall "wrapper"
    mk_TreeViewUnselectAllCallback :: C_TreeViewUnselectAllCallback -> IO (FunPtr C_TreeViewUnselectAllCallback)

-- | Wrap the callback into a `Closure`.
genClosure_TreeViewUnselectAll :: TreeViewUnselectAllCallback -> IO Closure
genClosure_TreeViewUnselectAll cb = do
    let cb' = wrap_TreeViewUnselectAllCallback cb
    mk_TreeViewUnselectAllCallback cb' >>= newCClosure


-- | Wrap a `TreeViewUnselectAllCallback` into a `C_TreeViewUnselectAllCallback`.
wrap_TreeViewUnselectAllCallback ::
    TreeViewUnselectAllCallback ->
    C_TreeViewUnselectAllCallback
wrap_TreeViewUnselectAllCallback _cb _ _ = do
    result <- _cb
    let result' = (fromIntegral . fromEnum) result
    return result'


{- |
Connect a signal handler for the “@unselect-all@” signal, to be run before the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.on' treeView #unselectAll callback
@
-}
onTreeViewUnselectAll :: (IsTreeView a, MonadIO m) => a -> TreeViewUnselectAllCallback -> m SignalHandlerId
onTreeViewUnselectAll obj cb = liftIO $ do
    let cb' = wrap_TreeViewUnselectAllCallback cb
    cb'' <- mk_TreeViewUnselectAllCallback cb'
    connectSignalFunPtr obj "unselect-all" cb'' SignalConnectBefore

{- |
Connect a signal handler for the “@unselect-all@” signal, to be run after the default handler.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Signals.after' treeView #unselectAll callback
@
-}
afterTreeViewUnselectAll :: (IsTreeView a, MonadIO m) => a -> TreeViewUnselectAllCallback -> m SignalHandlerId
afterTreeViewUnselectAll obj cb = liftIO $ do
    let cb' = wrap_TreeViewUnselectAllCallback cb
    cb'' <- mk_TreeViewUnselectAllCallback cb'
    connectSignalFunPtr obj "unselect-all" cb'' SignalConnectAfter


-- VVV Prop "activate-on-single-click"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@activate-on-single-click@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #activateOnSingleClick
@
-}
getTreeViewActivateOnSingleClick :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewActivateOnSingleClick obj = liftIO $ getObjectPropertyBool obj "activate-on-single-click"

{- |
Set the value of the “@activate-on-single-click@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #activateOnSingleClick 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewActivateOnSingleClick :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewActivateOnSingleClick obj val = liftIO $ setObjectPropertyBool obj "activate-on-single-click" val

{- |
Construct a `GValueConstruct` with valid value for the “@activate-on-single-click@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewActivateOnSingleClick :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewActivateOnSingleClick val = constructObjectPropertyBool "activate-on-single-click" val

#if ENABLE_OVERLOADING
data TreeViewActivateOnSingleClickPropertyInfo
instance AttrInfo TreeViewActivateOnSingleClickPropertyInfo where
    type AttrAllowedOps TreeViewActivateOnSingleClickPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewActivateOnSingleClickPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewActivateOnSingleClickPropertyInfo = IsTreeView
    type AttrGetType TreeViewActivateOnSingleClickPropertyInfo = Bool
    type AttrLabel TreeViewActivateOnSingleClickPropertyInfo = "activate-on-single-click"
    type AttrOrigin TreeViewActivateOnSingleClickPropertyInfo = TreeView
    attrGet _ = getTreeViewActivateOnSingleClick
    attrSet _ = setTreeViewActivateOnSingleClick
    attrConstruct _ = constructTreeViewActivateOnSingleClick
    attrClear _ = undefined
#endif

-- VVV Prop "enable-grid-lines"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TreeViewGridLines"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

{- |
Get the value of the “@enable-grid-lines@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #enableGridLines
@
-}
getTreeViewEnableGridLines :: (MonadIO m, IsTreeView o) => o -> m Gtk.Enums.TreeViewGridLines
getTreeViewEnableGridLines obj = liftIO $ getObjectPropertyEnum obj "enable-grid-lines"

{- |
Set the value of the “@enable-grid-lines@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #enableGridLines 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewEnableGridLines :: (MonadIO m, IsTreeView o) => o -> Gtk.Enums.TreeViewGridLines -> m ()
setTreeViewEnableGridLines obj val = liftIO $ setObjectPropertyEnum obj "enable-grid-lines" val

{- |
Construct a `GValueConstruct` with valid value for the “@enable-grid-lines@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewEnableGridLines :: (IsTreeView o) => Gtk.Enums.TreeViewGridLines -> IO (GValueConstruct o)
constructTreeViewEnableGridLines val = constructObjectPropertyEnum "enable-grid-lines" val

#if ENABLE_OVERLOADING
data TreeViewEnableGridLinesPropertyInfo
instance AttrInfo TreeViewEnableGridLinesPropertyInfo where
    type AttrAllowedOps TreeViewEnableGridLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewEnableGridLinesPropertyInfo = (~) Gtk.Enums.TreeViewGridLines
    type AttrBaseTypeConstraint TreeViewEnableGridLinesPropertyInfo = IsTreeView
    type AttrGetType TreeViewEnableGridLinesPropertyInfo = Gtk.Enums.TreeViewGridLines
    type AttrLabel TreeViewEnableGridLinesPropertyInfo = "enable-grid-lines"
    type AttrOrigin TreeViewEnableGridLinesPropertyInfo = TreeView
    attrGet _ = getTreeViewEnableGridLines
    attrSet _ = setTreeViewEnableGridLines
    attrConstruct _ = constructTreeViewEnableGridLines
    attrClear _ = undefined
#endif

-- VVV Prop "enable-search"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@enable-search@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #enableSearch
@
-}
getTreeViewEnableSearch :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewEnableSearch obj = liftIO $ getObjectPropertyBool obj "enable-search"

{- |
Set the value of the “@enable-search@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #enableSearch 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewEnableSearch :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewEnableSearch obj val = liftIO $ setObjectPropertyBool obj "enable-search" val

{- |
Construct a `GValueConstruct` with valid value for the “@enable-search@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewEnableSearch :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewEnableSearch val = constructObjectPropertyBool "enable-search" val

#if ENABLE_OVERLOADING
data TreeViewEnableSearchPropertyInfo
instance AttrInfo TreeViewEnableSearchPropertyInfo where
    type AttrAllowedOps TreeViewEnableSearchPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewEnableSearchPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewEnableSearchPropertyInfo = IsTreeView
    type AttrGetType TreeViewEnableSearchPropertyInfo = Bool
    type AttrLabel TreeViewEnableSearchPropertyInfo = "enable-search"
    type AttrOrigin TreeViewEnableSearchPropertyInfo = TreeView
    attrGet _ = getTreeViewEnableSearch
    attrSet _ = setTreeViewEnableSearch
    attrConstruct _ = constructTreeViewEnableSearch
    attrClear _ = undefined
#endif

-- VVV Prop "enable-tree-lines"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@enable-tree-lines@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #enableTreeLines
@
-}
getTreeViewEnableTreeLines :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewEnableTreeLines obj = liftIO $ getObjectPropertyBool obj "enable-tree-lines"

{- |
Set the value of the “@enable-tree-lines@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #enableTreeLines 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewEnableTreeLines :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewEnableTreeLines obj val = liftIO $ setObjectPropertyBool obj "enable-tree-lines" val

{- |
Construct a `GValueConstruct` with valid value for the “@enable-tree-lines@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewEnableTreeLines :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewEnableTreeLines val = constructObjectPropertyBool "enable-tree-lines" val

#if ENABLE_OVERLOADING
data TreeViewEnableTreeLinesPropertyInfo
instance AttrInfo TreeViewEnableTreeLinesPropertyInfo where
    type AttrAllowedOps TreeViewEnableTreeLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewEnableTreeLinesPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewEnableTreeLinesPropertyInfo = IsTreeView
    type AttrGetType TreeViewEnableTreeLinesPropertyInfo = Bool
    type AttrLabel TreeViewEnableTreeLinesPropertyInfo = "enable-tree-lines"
    type AttrOrigin TreeViewEnableTreeLinesPropertyInfo = TreeView
    attrGet _ = getTreeViewEnableTreeLines
    attrSet _ = setTreeViewEnableTreeLines
    attrConstruct _ = constructTreeViewEnableTreeLines
    attrClear _ = undefined
#endif

-- VVV Prop "expander-column"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@expander-column@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #expanderColumn
@
-}
getTreeViewExpanderColumn :: (MonadIO m, IsTreeView o) => o -> m Gtk.TreeViewColumn.TreeViewColumn
getTreeViewExpanderColumn obj = liftIO $ checkUnexpectedNothing "getTreeViewExpanderColumn" $ getObjectPropertyObject obj "expander-column" Gtk.TreeViewColumn.TreeViewColumn

{- |
Set the value of the “@expander-column@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #expanderColumn 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewExpanderColumn :: (MonadIO m, IsTreeView o, Gtk.TreeViewColumn.IsTreeViewColumn a) => o -> a -> m ()
setTreeViewExpanderColumn obj val = liftIO $ setObjectPropertyObject obj "expander-column" (Just val)

{- |
Construct a `GValueConstruct` with valid value for the “@expander-column@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewExpanderColumn :: (IsTreeView o, Gtk.TreeViewColumn.IsTreeViewColumn a) => a -> IO (GValueConstruct o)
constructTreeViewExpanderColumn val = constructObjectPropertyObject "expander-column" (Just val)

#if ENABLE_OVERLOADING
data TreeViewExpanderColumnPropertyInfo
instance AttrInfo TreeViewExpanderColumnPropertyInfo where
    type AttrAllowedOps TreeViewExpanderColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewExpanderColumnPropertyInfo = Gtk.TreeViewColumn.IsTreeViewColumn
    type AttrBaseTypeConstraint TreeViewExpanderColumnPropertyInfo = IsTreeView
    type AttrGetType TreeViewExpanderColumnPropertyInfo = Gtk.TreeViewColumn.TreeViewColumn
    type AttrLabel TreeViewExpanderColumnPropertyInfo = "expander-column"
    type AttrOrigin TreeViewExpanderColumnPropertyInfo = TreeView
    attrGet _ = getTreeViewExpanderColumn
    attrSet _ = setTreeViewExpanderColumn
    attrConstruct _ = constructTreeViewExpanderColumn
    attrClear _ = undefined
#endif

-- VVV Prop "fixed-height-mode"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@fixed-height-mode@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #fixedHeightMode
@
-}
getTreeViewFixedHeightMode :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewFixedHeightMode obj = liftIO $ getObjectPropertyBool obj "fixed-height-mode"

{- |
Set the value of the “@fixed-height-mode@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #fixedHeightMode 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewFixedHeightMode :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewFixedHeightMode obj val = liftIO $ setObjectPropertyBool obj "fixed-height-mode" val

{- |
Construct a `GValueConstruct` with valid value for the “@fixed-height-mode@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewFixedHeightMode :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewFixedHeightMode val = constructObjectPropertyBool "fixed-height-mode" val

#if ENABLE_OVERLOADING
data TreeViewFixedHeightModePropertyInfo
instance AttrInfo TreeViewFixedHeightModePropertyInfo where
    type AttrAllowedOps TreeViewFixedHeightModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewFixedHeightModePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewFixedHeightModePropertyInfo = IsTreeView
    type AttrGetType TreeViewFixedHeightModePropertyInfo = Bool
    type AttrLabel TreeViewFixedHeightModePropertyInfo = "fixed-height-mode"
    type AttrOrigin TreeViewFixedHeightModePropertyInfo = TreeView
    attrGet _ = getTreeViewFixedHeightMode
    attrSet _ = setTreeViewFixedHeightMode
    attrConstruct _ = constructTreeViewFixedHeightMode
    attrClear _ = undefined
#endif

-- VVV Prop "headers-clickable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@headers-clickable@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #headersClickable
@
-}
getTreeViewHeadersClickable :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHeadersClickable obj = liftIO $ getObjectPropertyBool obj "headers-clickable"

{- |
Set the value of the “@headers-clickable@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #headersClickable 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewHeadersClickable :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewHeadersClickable obj val = liftIO $ setObjectPropertyBool obj "headers-clickable" val

{- |
Construct a `GValueConstruct` with valid value for the “@headers-clickable@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewHeadersClickable :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewHeadersClickable val = constructObjectPropertyBool "headers-clickable" val

#if ENABLE_OVERLOADING
data TreeViewHeadersClickablePropertyInfo
instance AttrInfo TreeViewHeadersClickablePropertyInfo where
    type AttrAllowedOps TreeViewHeadersClickablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHeadersClickablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHeadersClickablePropertyInfo = IsTreeView
    type AttrGetType TreeViewHeadersClickablePropertyInfo = Bool
    type AttrLabel TreeViewHeadersClickablePropertyInfo = "headers-clickable"
    type AttrOrigin TreeViewHeadersClickablePropertyInfo = TreeView
    attrGet _ = getTreeViewHeadersClickable
    attrSet _ = setTreeViewHeadersClickable
    attrConstruct _ = constructTreeViewHeadersClickable
    attrClear _ = undefined
#endif

-- VVV Prop "headers-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@headers-visible@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #headersVisible
@
-}
getTreeViewHeadersVisible :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHeadersVisible obj = liftIO $ getObjectPropertyBool obj "headers-visible"

{- |
Set the value of the “@headers-visible@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #headersVisible 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewHeadersVisible :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewHeadersVisible obj val = liftIO $ setObjectPropertyBool obj "headers-visible" val

{- |
Construct a `GValueConstruct` with valid value for the “@headers-visible@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewHeadersVisible :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewHeadersVisible val = constructObjectPropertyBool "headers-visible" val

#if ENABLE_OVERLOADING
data TreeViewHeadersVisiblePropertyInfo
instance AttrInfo TreeViewHeadersVisiblePropertyInfo where
    type AttrAllowedOps TreeViewHeadersVisiblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHeadersVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHeadersVisiblePropertyInfo = IsTreeView
    type AttrGetType TreeViewHeadersVisiblePropertyInfo = Bool
    type AttrLabel TreeViewHeadersVisiblePropertyInfo = "headers-visible"
    type AttrOrigin TreeViewHeadersVisiblePropertyInfo = TreeView
    attrGet _ = getTreeViewHeadersVisible
    attrSet _ = setTreeViewHeadersVisible
    attrConstruct _ = constructTreeViewHeadersVisible
    attrClear _ = undefined
#endif

-- VVV Prop "hover-expand"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@hover-expand@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #hoverExpand
@
-}
getTreeViewHoverExpand :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHoverExpand obj = liftIO $ getObjectPropertyBool obj "hover-expand"

{- |
Set the value of the “@hover-expand@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #hoverExpand 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewHoverExpand :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewHoverExpand obj val = liftIO $ setObjectPropertyBool obj "hover-expand" val

{- |
Construct a `GValueConstruct` with valid value for the “@hover-expand@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewHoverExpand :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewHoverExpand val = constructObjectPropertyBool "hover-expand" val

#if ENABLE_OVERLOADING
data TreeViewHoverExpandPropertyInfo
instance AttrInfo TreeViewHoverExpandPropertyInfo where
    type AttrAllowedOps TreeViewHoverExpandPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHoverExpandPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHoverExpandPropertyInfo = IsTreeView
    type AttrGetType TreeViewHoverExpandPropertyInfo = Bool
    type AttrLabel TreeViewHoverExpandPropertyInfo = "hover-expand"
    type AttrOrigin TreeViewHoverExpandPropertyInfo = TreeView
    attrGet _ = getTreeViewHoverExpand
    attrSet _ = setTreeViewHoverExpand
    attrConstruct _ = constructTreeViewHoverExpand
    attrClear _ = undefined
#endif

-- VVV Prop "hover-selection"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@hover-selection@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #hoverSelection
@
-}
getTreeViewHoverSelection :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHoverSelection obj = liftIO $ getObjectPropertyBool obj "hover-selection"

{- |
Set the value of the “@hover-selection@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #hoverSelection 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewHoverSelection :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewHoverSelection obj val = liftIO $ setObjectPropertyBool obj "hover-selection" val

{- |
Construct a `GValueConstruct` with valid value for the “@hover-selection@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewHoverSelection :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewHoverSelection val = constructObjectPropertyBool "hover-selection" val

#if ENABLE_OVERLOADING
data TreeViewHoverSelectionPropertyInfo
instance AttrInfo TreeViewHoverSelectionPropertyInfo where
    type AttrAllowedOps TreeViewHoverSelectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHoverSelectionPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHoverSelectionPropertyInfo = IsTreeView
    type AttrGetType TreeViewHoverSelectionPropertyInfo = Bool
    type AttrLabel TreeViewHoverSelectionPropertyInfo = "hover-selection"
    type AttrOrigin TreeViewHoverSelectionPropertyInfo = TreeView
    attrGet _ = getTreeViewHoverSelection
    attrSet _ = setTreeViewHoverSelection
    attrConstruct _ = constructTreeViewHoverSelection
    attrClear _ = undefined
#endif

-- VVV Prop "level-indentation"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@level-indentation@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #levelIndentation
@
-}
getTreeViewLevelIndentation :: (MonadIO m, IsTreeView o) => o -> m Int32
getTreeViewLevelIndentation obj = liftIO $ getObjectPropertyInt32 obj "level-indentation"

{- |
Set the value of the “@level-indentation@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #levelIndentation 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewLevelIndentation :: (MonadIO m, IsTreeView o) => o -> Int32 -> m ()
setTreeViewLevelIndentation obj val = liftIO $ setObjectPropertyInt32 obj "level-indentation" val

{- |
Construct a `GValueConstruct` with valid value for the “@level-indentation@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewLevelIndentation :: (IsTreeView o) => Int32 -> IO (GValueConstruct o)
constructTreeViewLevelIndentation val = constructObjectPropertyInt32 "level-indentation" val

#if ENABLE_OVERLOADING
data TreeViewLevelIndentationPropertyInfo
instance AttrInfo TreeViewLevelIndentationPropertyInfo where
    type AttrAllowedOps TreeViewLevelIndentationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewLevelIndentationPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewLevelIndentationPropertyInfo = IsTreeView
    type AttrGetType TreeViewLevelIndentationPropertyInfo = Int32
    type AttrLabel TreeViewLevelIndentationPropertyInfo = "level-indentation"
    type AttrOrigin TreeViewLevelIndentationPropertyInfo = TreeView
    attrGet _ = getTreeViewLevelIndentation
    attrSet _ = setTreeViewLevelIndentation
    attrConstruct _ = constructTreeViewLevelIndentation
    attrClear _ = undefined
#endif

-- VVV Prop "model"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TreeModel"})
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just True,Just True)

{- |
Get the value of the “@model@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #model
@
-}
getTreeViewModel :: (MonadIO m, IsTreeView o) => o -> m (Maybe Gtk.TreeModel.TreeModel)
getTreeViewModel obj = liftIO $ getObjectPropertyObject obj "model" Gtk.TreeModel.TreeModel

{- |
Set the value of the “@model@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #model 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewModel :: (MonadIO m, IsTreeView o, Gtk.TreeModel.IsTreeModel a) => o -> a -> m ()
setTreeViewModel obj val = liftIO $ setObjectPropertyObject obj "model" (Just val)

{- |
Construct a `GValueConstruct` with valid value for the “@model@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewModel :: (IsTreeView o, Gtk.TreeModel.IsTreeModel a) => a -> IO (GValueConstruct o)
constructTreeViewModel val = constructObjectPropertyObject "model" (Just val)

{- |
Set the value of the “@model@” property to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.clear' #model
@
-}
clearTreeViewModel :: (MonadIO m, IsTreeView o) => o -> m ()
clearTreeViewModel obj = liftIO $ setObjectPropertyObject obj "model" (Nothing :: Maybe Gtk.TreeModel.TreeModel)

#if ENABLE_OVERLOADING
data TreeViewModelPropertyInfo
instance AttrInfo TreeViewModelPropertyInfo where
    type AttrAllowedOps TreeViewModelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrSetTypeConstraint TreeViewModelPropertyInfo = Gtk.TreeModel.IsTreeModel
    type AttrBaseTypeConstraint TreeViewModelPropertyInfo = IsTreeView
    type AttrGetType TreeViewModelPropertyInfo = (Maybe Gtk.TreeModel.TreeModel)
    type AttrLabel TreeViewModelPropertyInfo = "model"
    type AttrOrigin TreeViewModelPropertyInfo = TreeView
    attrGet _ = getTreeViewModel
    attrSet _ = setTreeViewModel
    attrConstruct _ = constructTreeViewModel
    attrClear _ = clearTreeViewModel
#endif

-- VVV Prop "reorderable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@reorderable@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #reorderable
@
-}
getTreeViewReorderable :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewReorderable obj = liftIO $ getObjectPropertyBool obj "reorderable"

{- |
Set the value of the “@reorderable@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #reorderable 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewReorderable :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewReorderable obj val = liftIO $ setObjectPropertyBool obj "reorderable" val

{- |
Construct a `GValueConstruct` with valid value for the “@reorderable@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewReorderable :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewReorderable val = constructObjectPropertyBool "reorderable" val

#if ENABLE_OVERLOADING
data TreeViewReorderablePropertyInfo
instance AttrInfo TreeViewReorderablePropertyInfo where
    type AttrAllowedOps TreeViewReorderablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewReorderablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewReorderablePropertyInfo = IsTreeView
    type AttrGetType TreeViewReorderablePropertyInfo = Bool
    type AttrLabel TreeViewReorderablePropertyInfo = "reorderable"
    type AttrOrigin TreeViewReorderablePropertyInfo = TreeView
    attrGet _ = getTreeViewReorderable
    attrSet _ = setTreeViewReorderable
    attrConstruct _ = constructTreeViewReorderable
    attrClear _ = undefined
#endif

-- VVV Prop "rubber-banding"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@rubber-banding@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #rubberBanding
@
-}
getTreeViewRubberBanding :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewRubberBanding obj = liftIO $ getObjectPropertyBool obj "rubber-banding"

{- |
Set the value of the “@rubber-banding@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #rubberBanding 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewRubberBanding :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewRubberBanding obj val = liftIO $ setObjectPropertyBool obj "rubber-banding" val

{- |
Construct a `GValueConstruct` with valid value for the “@rubber-banding@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewRubberBanding :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewRubberBanding val = constructObjectPropertyBool "rubber-banding" val

#if ENABLE_OVERLOADING
data TreeViewRubberBandingPropertyInfo
instance AttrInfo TreeViewRubberBandingPropertyInfo where
    type AttrAllowedOps TreeViewRubberBandingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewRubberBandingPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewRubberBandingPropertyInfo = IsTreeView
    type AttrGetType TreeViewRubberBandingPropertyInfo = Bool
    type AttrLabel TreeViewRubberBandingPropertyInfo = "rubber-banding"
    type AttrOrigin TreeViewRubberBandingPropertyInfo = TreeView
    attrGet _ = getTreeViewRubberBanding
    attrSet _ = setTreeViewRubberBanding
    attrConstruct _ = constructTreeViewRubberBanding
    attrClear _ = undefined
#endif

-- VVV Prop "rules-hint"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@rules-hint@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #rulesHint
@
-}
getTreeViewRulesHint :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewRulesHint obj = liftIO $ getObjectPropertyBool obj "rules-hint"

{- |
Set the value of the “@rules-hint@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #rulesHint 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewRulesHint :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewRulesHint obj val = liftIO $ setObjectPropertyBool obj "rules-hint" val

{- |
Construct a `GValueConstruct` with valid value for the “@rules-hint@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewRulesHint :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewRulesHint val = constructObjectPropertyBool "rules-hint" val

#if ENABLE_OVERLOADING
data TreeViewRulesHintPropertyInfo
instance AttrInfo TreeViewRulesHintPropertyInfo where
    type AttrAllowedOps TreeViewRulesHintPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewRulesHintPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewRulesHintPropertyInfo = IsTreeView
    type AttrGetType TreeViewRulesHintPropertyInfo = Bool
    type AttrLabel TreeViewRulesHintPropertyInfo = "rules-hint"
    type AttrOrigin TreeViewRulesHintPropertyInfo = TreeView
    attrGet _ = getTreeViewRulesHint
    attrSet _ = setTreeViewRulesHint
    attrConstruct _ = constructTreeViewRulesHint
    attrClear _ = undefined
#endif

-- VVV Prop "search-column"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@search-column@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #searchColumn
@
-}
getTreeViewSearchColumn :: (MonadIO m, IsTreeView o) => o -> m Int32
getTreeViewSearchColumn obj = liftIO $ getObjectPropertyInt32 obj "search-column"

{- |
Set the value of the “@search-column@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #searchColumn 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewSearchColumn :: (MonadIO m, IsTreeView o) => o -> Int32 -> m ()
setTreeViewSearchColumn obj val = liftIO $ setObjectPropertyInt32 obj "search-column" val

{- |
Construct a `GValueConstruct` with valid value for the “@search-column@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewSearchColumn :: (IsTreeView o) => Int32 -> IO (GValueConstruct o)
constructTreeViewSearchColumn val = constructObjectPropertyInt32 "search-column" val

#if ENABLE_OVERLOADING
data TreeViewSearchColumnPropertyInfo
instance AttrInfo TreeViewSearchColumnPropertyInfo where
    type AttrAllowedOps TreeViewSearchColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewSearchColumnPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewSearchColumnPropertyInfo = IsTreeView
    type AttrGetType TreeViewSearchColumnPropertyInfo = Int32
    type AttrLabel TreeViewSearchColumnPropertyInfo = "search-column"
    type AttrOrigin TreeViewSearchColumnPropertyInfo = TreeView
    attrGet _ = getTreeViewSearchColumn
    attrSet _ = setTreeViewSearchColumn
    attrConstruct _ = constructTreeViewSearchColumn
    attrClear _ = undefined
#endif

-- VVV Prop "show-expanders"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@show-expanders@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #showExpanders
@
-}
getTreeViewShowExpanders :: (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewShowExpanders obj = liftIO $ getObjectPropertyBool obj "show-expanders"

{- |
Set the value of the “@show-expanders@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #showExpanders 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewShowExpanders :: (MonadIO m, IsTreeView o) => o -> Bool -> m ()
setTreeViewShowExpanders obj val = liftIO $ setObjectPropertyBool obj "show-expanders" val

{- |
Construct a `GValueConstruct` with valid value for the “@show-expanders@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewShowExpanders :: (IsTreeView o) => Bool -> IO (GValueConstruct o)
constructTreeViewShowExpanders val = constructObjectPropertyBool "show-expanders" val

#if ENABLE_OVERLOADING
data TreeViewShowExpandersPropertyInfo
instance AttrInfo TreeViewShowExpandersPropertyInfo where
    type AttrAllowedOps TreeViewShowExpandersPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewShowExpandersPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewShowExpandersPropertyInfo = IsTreeView
    type AttrGetType TreeViewShowExpandersPropertyInfo = Bool
    type AttrLabel TreeViewShowExpandersPropertyInfo = "show-expanders"
    type AttrOrigin TreeViewShowExpandersPropertyInfo = TreeView
    attrGet _ = getTreeViewShowExpanders
    attrSet _ = setTreeViewShowExpanders
    attrConstruct _ = constructTreeViewShowExpanders
    attrClear _ = undefined
#endif

-- VVV Prop "tooltip-column"
   -- Type: TBasicType TInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

{- |
Get the value of the “@tooltip-column@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.get' treeView #tooltipColumn
@
-}
getTreeViewTooltipColumn :: (MonadIO m, IsTreeView o) => o -> m Int32
getTreeViewTooltipColumn obj = liftIO $ getObjectPropertyInt32 obj "tooltip-column"

{- |
Set the value of the “@tooltip-column@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to

@
'Data.GI.Base.Attributes.set' treeView [ #tooltipColumn 'Data.GI.Base.Attributes.:=' value ]
@
-}
setTreeViewTooltipColumn :: (MonadIO m, IsTreeView o) => o -> Int32 -> m ()
setTreeViewTooltipColumn obj val = liftIO $ setObjectPropertyInt32 obj "tooltip-column" val

{- |
Construct a `GValueConstruct` with valid value for the “@tooltip-column@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructTreeViewTooltipColumn :: (IsTreeView o) => Int32 -> IO (GValueConstruct o)
constructTreeViewTooltipColumn val = constructObjectPropertyInt32 "tooltip-column" val

#if ENABLE_OVERLOADING
data TreeViewTooltipColumnPropertyInfo
instance AttrInfo TreeViewTooltipColumnPropertyInfo where
    type AttrAllowedOps TreeViewTooltipColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewTooltipColumnPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewTooltipColumnPropertyInfo = IsTreeView
    type AttrGetType TreeViewTooltipColumnPropertyInfo = Int32
    type AttrLabel TreeViewTooltipColumnPropertyInfo = "tooltip-column"
    type AttrOrigin TreeViewTooltipColumnPropertyInfo = TreeView
    attrGet _ = getTreeViewTooltipColumn
    attrSet _ = setTreeViewTooltipColumn
    attrConstruct _ = constructTreeViewTooltipColumn
    attrClear _ = undefined
#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList TreeView
type instance O.AttributeList TreeView = TreeViewAttributeList
type TreeViewAttributeList = ('[ '("activateOnSingleClick", TreeViewActivateOnSingleClickPropertyInfo), '("appPaintable", Gtk.Widget.WidgetAppPaintablePropertyInfo), '("borderWidth", Gtk.Container.ContainerBorderWidthPropertyInfo), '("canDefault", Gtk.Widget.WidgetCanDefaultPropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("child", Gtk.Container.ContainerChildPropertyInfo), '("compositeChild", Gtk.Widget.WidgetCompositeChildPropertyInfo), '("doubleBuffered", Gtk.Widget.WidgetDoubleBufferedPropertyInfo), '("enableGridLines", TreeViewEnableGridLinesPropertyInfo), '("enableSearch", TreeViewEnableSearchPropertyInfo), '("enableTreeLines", TreeViewEnableTreeLinesPropertyInfo), '("events", Gtk.Widget.WidgetEventsPropertyInfo), '("expand", Gtk.Widget.WidgetExpandPropertyInfo), '("expanderColumn", TreeViewExpanderColumnPropertyInfo), '("fixedHeightMode", TreeViewFixedHeightModePropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("hadjustment", Gtk.Scrollable.ScrollableHadjustmentPropertyInfo), '("halign", Gtk.Widget.WidgetHalignPropertyInfo), '("hasDefault", Gtk.Widget.WidgetHasDefaultPropertyInfo), '("hasFocus", Gtk.Widget.WidgetHasFocusPropertyInfo), '("hasTooltip", Gtk.Widget.WidgetHasTooltipPropertyInfo), '("headersClickable", TreeViewHeadersClickablePropertyInfo), '("headersVisible", TreeViewHeadersVisiblePropertyInfo), '("heightRequest", Gtk.Widget.WidgetHeightRequestPropertyInfo), '("hexpand", Gtk.Widget.WidgetHexpandPropertyInfo), '("hexpandSet", Gtk.Widget.WidgetHexpandSetPropertyInfo), '("hoverExpand", TreeViewHoverExpandPropertyInfo), '("hoverSelection", TreeViewHoverSelectionPropertyInfo), '("hscrollPolicy", Gtk.Scrollable.ScrollableHscrollPolicyPropertyInfo), '("isFocus", Gtk.Widget.WidgetIsFocusPropertyInfo), '("levelIndentation", TreeViewLevelIndentationPropertyInfo), '("margin", Gtk.Widget.WidgetMarginPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginLeft", Gtk.Widget.WidgetMarginLeftPropertyInfo), '("marginRight", Gtk.Widget.WidgetMarginRightPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("model", TreeViewModelPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("noShowAll", Gtk.Widget.WidgetNoShowAllPropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("reorderable", TreeViewReorderablePropertyInfo), '("resizeMode", Gtk.Container.ContainerResizeModePropertyInfo), '("rubberBanding", TreeViewRubberBandingPropertyInfo), '("rulesHint", TreeViewRulesHintPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("searchColumn", TreeViewSearchColumnPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("showExpanders", TreeViewShowExpandersPropertyInfo), '("style", Gtk.Widget.WidgetStylePropertyInfo), '("tooltipColumn", TreeViewTooltipColumnPropertyInfo), '("tooltipMarkup", Gtk.Widget.WidgetTooltipMarkupPropertyInfo), '("tooltipText", Gtk.Widget.WidgetTooltipTextPropertyInfo), '("vadjustment", Gtk.Scrollable.ScrollableVadjustmentPropertyInfo), '("valign", Gtk.Widget.WidgetValignPropertyInfo), '("vexpand", Gtk.Widget.WidgetVexpandPropertyInfo), '("vexpandSet", Gtk.Widget.WidgetVexpandSetPropertyInfo), '("visible", Gtk.Widget.WidgetVisiblePropertyInfo), '("vscrollPolicy", Gtk.Scrollable.ScrollableVscrollPolicyPropertyInfo), '("widthRequest", Gtk.Widget.WidgetWidthRequestPropertyInfo), '("window", Gtk.Widget.WidgetWindowPropertyInfo)] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
treeViewActivateOnSingleClick :: AttrLabelProxy "activateOnSingleClick"
treeViewActivateOnSingleClick = AttrLabelProxy

treeViewEnableGridLines :: AttrLabelProxy "enableGridLines"
treeViewEnableGridLines = AttrLabelProxy

treeViewEnableSearch :: AttrLabelProxy "enableSearch"
treeViewEnableSearch = AttrLabelProxy

treeViewEnableTreeLines :: AttrLabelProxy "enableTreeLines"
treeViewEnableTreeLines = AttrLabelProxy

treeViewExpanderColumn :: AttrLabelProxy "expanderColumn"
treeViewExpanderColumn = AttrLabelProxy

treeViewFixedHeightMode :: AttrLabelProxy "fixedHeightMode"
treeViewFixedHeightMode = AttrLabelProxy

treeViewHeadersClickable :: AttrLabelProxy "headersClickable"
treeViewHeadersClickable = AttrLabelProxy

treeViewHeadersVisible :: AttrLabelProxy "headersVisible"
treeViewHeadersVisible = AttrLabelProxy

treeViewHoverExpand :: AttrLabelProxy "hoverExpand"
treeViewHoverExpand = AttrLabelProxy

treeViewHoverSelection :: AttrLabelProxy "hoverSelection"
treeViewHoverSelection = AttrLabelProxy

treeViewLevelIndentation :: AttrLabelProxy "levelIndentation"
treeViewLevelIndentation = AttrLabelProxy

treeViewModel :: AttrLabelProxy "model"
treeViewModel = AttrLabelProxy

treeViewReorderable :: AttrLabelProxy "reorderable"
treeViewReorderable = AttrLabelProxy

treeViewRubberBanding :: AttrLabelProxy "rubberBanding"
treeViewRubberBanding = AttrLabelProxy

treeViewRulesHint :: AttrLabelProxy "rulesHint"
treeViewRulesHint = AttrLabelProxy

treeViewSearchColumn :: AttrLabelProxy "searchColumn"
treeViewSearchColumn = AttrLabelProxy

treeViewShowExpanders :: AttrLabelProxy "showExpanders"
treeViewShowExpanders = AttrLabelProxy

treeViewTooltipColumn :: AttrLabelProxy "tooltipColumn"
treeViewTooltipColumn = AttrLabelProxy

#endif

#if ENABLE_OVERLOADING
data TreeViewColumnsChangedSignalInfo
instance SignalInfo TreeViewColumnsChangedSignalInfo where
    type HaskellCallbackType TreeViewColumnsChangedSignalInfo = TreeViewColumnsChangedCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewColumnsChangedCallback cb
        cb'' <- mk_TreeViewColumnsChangedCallback cb'
        connectSignalFunPtr obj "columns-changed" cb'' connectMode

data TreeViewCursorChangedSignalInfo
instance SignalInfo TreeViewCursorChangedSignalInfo where
    type HaskellCallbackType TreeViewCursorChangedSignalInfo = TreeViewCursorChangedCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewCursorChangedCallback cb
        cb'' <- mk_TreeViewCursorChangedCallback cb'
        connectSignalFunPtr obj "cursor-changed" cb'' connectMode

data TreeViewExpandCollapseCursorRowSignalInfo
instance SignalInfo TreeViewExpandCollapseCursorRowSignalInfo where
    type HaskellCallbackType TreeViewExpandCollapseCursorRowSignalInfo = TreeViewExpandCollapseCursorRowCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewExpandCollapseCursorRowCallback cb
        cb'' <- mk_TreeViewExpandCollapseCursorRowCallback cb'
        connectSignalFunPtr obj "expand-collapse-cursor-row" cb'' connectMode

data TreeViewMoveCursorSignalInfo
instance SignalInfo TreeViewMoveCursorSignalInfo where
    type HaskellCallbackType TreeViewMoveCursorSignalInfo = TreeViewMoveCursorCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewMoveCursorCallback cb
        cb'' <- mk_TreeViewMoveCursorCallback cb'
        connectSignalFunPtr obj "move-cursor" cb'' connectMode

data TreeViewRowActivatedSignalInfo
instance SignalInfo TreeViewRowActivatedSignalInfo where
    type HaskellCallbackType TreeViewRowActivatedSignalInfo = TreeViewRowActivatedCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewRowActivatedCallback cb
        cb'' <- mk_TreeViewRowActivatedCallback cb'
        connectSignalFunPtr obj "row-activated" cb'' connectMode

data TreeViewRowCollapsedSignalInfo
instance SignalInfo TreeViewRowCollapsedSignalInfo where
    type HaskellCallbackType TreeViewRowCollapsedSignalInfo = TreeViewRowCollapsedCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewRowCollapsedCallback cb
        cb'' <- mk_TreeViewRowCollapsedCallback cb'
        connectSignalFunPtr obj "row-collapsed" cb'' connectMode

data TreeViewRowExpandedSignalInfo
instance SignalInfo TreeViewRowExpandedSignalInfo where
    type HaskellCallbackType TreeViewRowExpandedSignalInfo = TreeViewRowExpandedCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewRowExpandedCallback cb
        cb'' <- mk_TreeViewRowExpandedCallback cb'
        connectSignalFunPtr obj "row-expanded" cb'' connectMode

data TreeViewSelectAllSignalInfo
instance SignalInfo TreeViewSelectAllSignalInfo where
    type HaskellCallbackType TreeViewSelectAllSignalInfo = TreeViewSelectAllCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewSelectAllCallback cb
        cb'' <- mk_TreeViewSelectAllCallback cb'
        connectSignalFunPtr obj "select-all" cb'' connectMode

data TreeViewSelectCursorParentSignalInfo
instance SignalInfo TreeViewSelectCursorParentSignalInfo where
    type HaskellCallbackType TreeViewSelectCursorParentSignalInfo = TreeViewSelectCursorParentCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewSelectCursorParentCallback cb
        cb'' <- mk_TreeViewSelectCursorParentCallback cb'
        connectSignalFunPtr obj "select-cursor-parent" cb'' connectMode

data TreeViewSelectCursorRowSignalInfo
instance SignalInfo TreeViewSelectCursorRowSignalInfo where
    type HaskellCallbackType TreeViewSelectCursorRowSignalInfo = TreeViewSelectCursorRowCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewSelectCursorRowCallback cb
        cb'' <- mk_TreeViewSelectCursorRowCallback cb'
        connectSignalFunPtr obj "select-cursor-row" cb'' connectMode

data TreeViewStartInteractiveSearchSignalInfo
instance SignalInfo TreeViewStartInteractiveSearchSignalInfo where
    type HaskellCallbackType TreeViewStartInteractiveSearchSignalInfo = TreeViewStartInteractiveSearchCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewStartInteractiveSearchCallback cb
        cb'' <- mk_TreeViewStartInteractiveSearchCallback cb'
        connectSignalFunPtr obj "start-interactive-search" cb'' connectMode

data TreeViewTestCollapseRowSignalInfo
instance SignalInfo TreeViewTestCollapseRowSignalInfo where
    type HaskellCallbackType TreeViewTestCollapseRowSignalInfo = TreeViewTestCollapseRowCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewTestCollapseRowCallback cb
        cb'' <- mk_TreeViewTestCollapseRowCallback cb'
        connectSignalFunPtr obj "test-collapse-row" cb'' connectMode

data TreeViewTestExpandRowSignalInfo
instance SignalInfo TreeViewTestExpandRowSignalInfo where
    type HaskellCallbackType TreeViewTestExpandRowSignalInfo = TreeViewTestExpandRowCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewTestExpandRowCallback cb
        cb'' <- mk_TreeViewTestExpandRowCallback cb'
        connectSignalFunPtr obj "test-expand-row" cb'' connectMode

data TreeViewToggleCursorRowSignalInfo
instance SignalInfo TreeViewToggleCursorRowSignalInfo where
    type HaskellCallbackType TreeViewToggleCursorRowSignalInfo = TreeViewToggleCursorRowCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewToggleCursorRowCallback cb
        cb'' <- mk_TreeViewToggleCursorRowCallback cb'
        connectSignalFunPtr obj "toggle-cursor-row" cb'' connectMode

data TreeViewUnselectAllSignalInfo
instance SignalInfo TreeViewUnselectAllSignalInfo where
    type HaskellCallbackType TreeViewUnselectAllSignalInfo = TreeViewUnselectAllCallback
    connectSignal _ obj cb connectMode = do
        let cb' = wrap_TreeViewUnselectAllCallback cb
        cb'' <- mk_TreeViewUnselectAllCallback cb'
        connectSignalFunPtr obj "unselect-all" cb'' connectMode

type instance O.SignalList TreeView = TreeViewSignalList
type TreeViewSignalList = ('[ '("accelClosuresChanged", Gtk.Widget.WidgetAccelClosuresChangedSignalInfo), '("add", Gtk.Container.ContainerAddSignalInfo), '("buttonPressEvent", Gtk.Widget.WidgetButtonPressEventSignalInfo), '("buttonReleaseEvent", Gtk.Widget.WidgetButtonReleaseEventSignalInfo), '("canActivateAccel", Gtk.Widget.WidgetCanActivateAccelSignalInfo), '("checkResize", Gtk.Container.ContainerCheckResizeSignalInfo), '("childNotify", Gtk.Widget.WidgetChildNotifySignalInfo), '("columnsChanged", TreeViewColumnsChangedSignalInfo), '("compositedChanged", Gtk.Widget.WidgetCompositedChangedSignalInfo), '("configureEvent", Gtk.Widget.WidgetConfigureEventSignalInfo), '("cursorChanged", TreeViewCursorChangedSignalInfo), '("damageEvent", Gtk.Widget.WidgetDamageEventSignalInfo), '("deleteEvent", Gtk.Widget.WidgetDeleteEventSignalInfo), '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("destroyEvent", Gtk.Widget.WidgetDestroyEventSignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("dragBegin", Gtk.Widget.WidgetDragBeginSignalInfo), '("dragDataDelete", Gtk.Widget.WidgetDragDataDeleteSignalInfo), '("dragDataGet", Gtk.Widget.WidgetDragDataGetSignalInfo), '("dragDataReceived", Gtk.Widget.WidgetDragDataReceivedSignalInfo), '("dragDrop", Gtk.Widget.WidgetDragDropSignalInfo), '("dragEnd", Gtk.Widget.WidgetDragEndSignalInfo), '("dragFailed", Gtk.Widget.WidgetDragFailedSignalInfo), '("dragLeave", Gtk.Widget.WidgetDragLeaveSignalInfo), '("dragMotion", Gtk.Widget.WidgetDragMotionSignalInfo), '("draw", Gtk.Widget.WidgetDrawSignalInfo), '("enterNotifyEvent", Gtk.Widget.WidgetEnterNotifyEventSignalInfo), '("event", Gtk.Widget.WidgetEventSignalInfo), '("eventAfter", Gtk.Widget.WidgetEventAfterSignalInfo), '("expandCollapseCursorRow", TreeViewExpandCollapseCursorRowSignalInfo), '("focus", Gtk.Widget.WidgetFocusSignalInfo), '("focusInEvent", Gtk.Widget.WidgetFocusInEventSignalInfo), '("focusOutEvent", Gtk.Widget.WidgetFocusOutEventSignalInfo), '("grabBrokenEvent", Gtk.Widget.WidgetGrabBrokenEventSignalInfo), '("grabFocus", Gtk.Widget.WidgetGrabFocusSignalInfo), '("grabNotify", Gtk.Widget.WidgetGrabNotifySignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("hierarchyChanged", Gtk.Widget.WidgetHierarchyChangedSignalInfo), '("keyPressEvent", Gtk.Widget.WidgetKeyPressEventSignalInfo), '("keyReleaseEvent", Gtk.Widget.WidgetKeyReleaseEventSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("leaveNotifyEvent", Gtk.Widget.WidgetLeaveNotifyEventSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mapEvent", Gtk.Widget.WidgetMapEventSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("motionNotifyEvent", Gtk.Widget.WidgetMotionNotifyEventSignalInfo), '("moveCursor", TreeViewMoveCursorSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("parentSet", Gtk.Widget.WidgetParentSetSignalInfo), '("popupMenu", Gtk.Widget.WidgetPopupMenuSignalInfo), '("propertyNotifyEvent", Gtk.Widget.WidgetPropertyNotifyEventSignalInfo), '("proximityInEvent", Gtk.Widget.WidgetProximityInEventSignalInfo), '("proximityOutEvent", Gtk.Widget.WidgetProximityOutEventSignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("remove", Gtk.Container.ContainerRemoveSignalInfo), '("rowActivated", TreeViewRowActivatedSignalInfo), '("rowCollapsed", TreeViewRowCollapsedSignalInfo), '("rowExpanded", TreeViewRowExpandedSignalInfo), '("screenChanged", Gtk.Widget.WidgetScreenChangedSignalInfo), '("scrollEvent", Gtk.Widget.WidgetScrollEventSignalInfo), '("selectAll", TreeViewSelectAllSignalInfo), '("selectCursorParent", TreeViewSelectCursorParentSignalInfo), '("selectCursorRow", TreeViewSelectCursorRowSignalInfo), '("selectionClearEvent", Gtk.Widget.WidgetSelectionClearEventSignalInfo), '("selectionGet", Gtk.Widget.WidgetSelectionGetSignalInfo), '("selectionNotifyEvent", Gtk.Widget.WidgetSelectionNotifyEventSignalInfo), '("selectionReceived", Gtk.Widget.WidgetSelectionReceivedSignalInfo), '("selectionRequestEvent", Gtk.Widget.WidgetSelectionRequestEventSignalInfo), '("setFocusChild", Gtk.Container.ContainerSetFocusChildSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("showHelp", Gtk.Widget.WidgetShowHelpSignalInfo), '("sizeAllocate", Gtk.Widget.WidgetSizeAllocateSignalInfo), '("startInteractiveSearch", TreeViewStartInteractiveSearchSignalInfo), '("stateChanged", Gtk.Widget.WidgetStateChangedSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("styleSet", Gtk.Widget.WidgetStyleSetSignalInfo), '("styleUpdated", Gtk.Widget.WidgetStyleUpdatedSignalInfo), '("testCollapseRow", TreeViewTestCollapseRowSignalInfo), '("testExpandRow", TreeViewTestExpandRowSignalInfo), '("toggleCursorRow", TreeViewToggleCursorRowSignalInfo), '("touchEvent", Gtk.Widget.WidgetTouchEventSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unmapEvent", Gtk.Widget.WidgetUnmapEventSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo), '("unselectAll", TreeViewUnselectAllSignalInfo), '("visibilityNotifyEvent", Gtk.Widget.WidgetVisibilityNotifyEventSignalInfo), '("windowStateEvent", Gtk.Widget.WidgetWindowStateEventSignalInfo)] :: [(Symbol, *)])

#endif

-- method TreeView::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreeView"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_new" gtk_tree_view_new ::
    IO (Ptr TreeView)

{- |
Creates a new 'GI.Gtk.Objects.TreeView.TreeView' widget.
-}
treeViewNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m TreeView
    {- ^ __Returns:__ A newly created 'GI.Gtk.Objects.TreeView.TreeView' widget. -}
treeViewNew  = liftIO $ do
    result <- gtk_tree_view_new
    checkUnexpectedReturnNULL "treeViewNew" result
    result' <- (newObject TreeView) result
    return result'

#if ENABLE_OVERLOADING
#endif

-- method TreeView::new_with_model
-- method type : Constructor
-- Args : [Arg {argCName = "model", argType = TInterface (Name {namespace = "Gtk", name = "TreeModel"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the model.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "TreeView"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_new_with_model" gtk_tree_view_new_with_model ::
    Ptr Gtk.TreeModel.TreeModel ->          -- model : TInterface (Name {namespace = "Gtk", name = "TreeModel"})
    IO (Ptr TreeView)

{- |
Creates a new 'GI.Gtk.Objects.TreeView.TreeView' widget with the model initialized to /@model@/.
-}
treeViewNewWithModel ::
    (B.CallStack.HasCallStack, MonadIO m, Gtk.TreeModel.IsTreeModel a) =>
    a
    {- ^ /@model@/: the model. -}
    -> m TreeView
    {- ^ __Returns:__ A newly created 'GI.Gtk.Objects.TreeView.TreeView' widget. -}
treeViewNewWithModel model = liftIO $ do
    model' <- unsafeManagedPtrCastPtr model
    result <- gtk_tree_view_new_with_model model'
    checkUnexpectedReturnNULL "treeViewNewWithModel" result
    result' <- (newObject TreeView) result
    touchManagedPtr model
    return result'

#if ENABLE_OVERLOADING
#endif

-- method TreeView::append_column
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeView.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "column", argType = TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The #GtkTreeViewColumn to add.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_append_column" gtk_tree_view_append_column ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    IO Int32

{- |
Appends /@column@/ to the list of columns. If /@treeView@/ has “fixed_height”
mode enabled, then /@column@/ must have its “sizing” property set to be
GTK_TREE_VIEW_COLUMN_FIXED.
-}
treeViewAppendColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    {- ^ /@treeView@/: A 'GI.Gtk.Objects.TreeView.TreeView'. -}
    -> b
    {- ^ /@column@/: The 'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to add. -}
    -> m Int32
    {- ^ __Returns:__ The number of columns in /@treeView@/ after appending. -}
treeViewAppendColumn treeView column = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    column' <- unsafeManagedPtrCastPtr column
    result <- gtk_tree_view_append_column treeView' column'
    touchManagedPtr treeView
    touchManagedPtr column
    return result

#if ENABLE_OVERLOADING
data TreeViewAppendColumnMethodInfo
instance (signature ~ (b -> m Int32), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.MethodInfo TreeViewAppendColumnMethodInfo a signature where
    overloadedMethod _ = treeViewAppendColumn

#endif

-- method TreeView::collapse_all
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeView.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_collapse_all" gtk_tree_view_collapse_all ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    IO ()

{- |
Recursively collapses all visible, expanded nodes in /@treeView@/.
-}
treeViewCollapseAll ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: A 'GI.Gtk.Objects.TreeView.TreeView'. -}
    -> m ()
treeViewCollapseAll treeView = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    gtk_tree_view_collapse_all treeView'
    touchManagedPtr treeView
    return ()

#if ENABLE_OVERLOADING
data TreeViewCollapseAllMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewCollapseAllMethodInfo a signature where
    overloadedMethod _ = treeViewCollapseAll

#endif

-- method TreeView::collapse_row
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "path to a row in the @tree_view", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_collapse_row" gtk_tree_view_collapse_row ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    IO CInt

{- |
Collapses a row (hides its child rows, if they exist).
-}
treeViewCollapseRow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Gtk.TreePath.TreePath
    {- ^ /@path@/: path to a row in the /@treeView@/ -}
    -> m Bool
    {- ^ __Returns:__ 'True' if the row was collapsed. -}
treeViewCollapseRow treeView path = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    path' <- unsafeManagedPtrGetPtr path
    result <- gtk_tree_view_collapse_row treeView' path'
    let result' = (/= 0) result
    touchManagedPtr treeView
    touchManagedPtr path
    return result'

#if ENABLE_OVERLOADING
data TreeViewCollapseRowMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> m Bool), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewCollapseRowMethodInfo a signature where
    overloadedMethod _ = treeViewCollapseRow

#endif

-- method TreeView::columns_autosize
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A #GtkTreeView.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_columns_autosize" gtk_tree_view_columns_autosize ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    IO ()

{- |
Resizes all columns to their optimal width. Only works after the
treeview has been realized.
-}
treeViewColumnsAutosize ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: A 'GI.Gtk.Objects.TreeView.TreeView'. -}
    -> m ()
treeViewColumnsAutosize treeView = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    gtk_tree_view_columns_autosize treeView'
    touchManagedPtr treeView
    return ()

#if ENABLE_OVERLOADING
data TreeViewColumnsAutosizeMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewColumnsAutosizeMethodInfo a signature where
    overloadedMethod _ = treeViewColumnsAutosize

#endif

-- method TreeView::convert_bin_window_to_tree_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bx", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate relative to bin_window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "by", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate relative to bin_window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tx", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for tree X coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "ty", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for tree Y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_convert_bin_window_to_tree_coords" gtk_tree_view_convert_bin_window_to_tree_coords ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- bx : TBasicType TInt
    Int32 ->                                -- by : TBasicType TInt
    Ptr Int32 ->                            -- tx : TBasicType TInt
    Ptr Int32 ->                            -- ty : TBasicType TInt
    IO ()

{- |
Converts bin_window coordinates to coordinates for the
tree (the full scrollable area of the tree).

/Since: 2.12/
-}
treeViewConvertBinWindowToTreeCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Int32
    {- ^ /@bx@/: X coordinate relative to bin_window -}
    -> Int32
    {- ^ /@by@/: Y coordinate relative to bin_window -}
    -> m ((Int32, Int32))
treeViewConvertBinWindowToTreeCoords treeView bx by = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    tx <- allocMem :: IO (Ptr Int32)
    ty <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_bin_window_to_tree_coords treeView' bx by tx ty
    tx' <- peek tx
    ty' <- peek ty
    touchManagedPtr treeView
    freeMem tx
    freeMem ty
    return (tx', ty')

#if ENABLE_OVERLOADING
data TreeViewConvertBinWindowToTreeCoordsMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Int32, Int32))), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewConvertBinWindowToTreeCoordsMethodInfo a signature where
    overloadedMethod _ = treeViewConvertBinWindowToTreeCoords

#endif

-- method TreeView::convert_bin_window_to_widget_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bx", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "bin_window X coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "by", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "bin_window Y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wx", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for widget X coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "wy", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for widget Y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_convert_bin_window_to_widget_coords" gtk_tree_view_convert_bin_window_to_widget_coords ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- bx : TBasicType TInt
    Int32 ->                                -- by : TBasicType TInt
    Ptr Int32 ->                            -- wx : TBasicType TInt
    Ptr Int32 ->                            -- wy : TBasicType TInt
    IO ()

{- |
Converts bin_window coordinates (see 'GI.Gtk.Objects.TreeView.treeViewGetBinWindow')
to widget relative coordinates.

/Since: 2.12/
-}
treeViewConvertBinWindowToWidgetCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Int32
    {- ^ /@bx@/: bin_window X coordinate -}
    -> Int32
    {- ^ /@by@/: bin_window Y coordinate -}
    -> m ((Int32, Int32))
treeViewConvertBinWindowToWidgetCoords treeView bx by = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    wx <- allocMem :: IO (Ptr Int32)
    wy <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_bin_window_to_widget_coords treeView' bx by wx wy
    wx' <- peek wx
    wy' <- peek wy
    touchManagedPtr treeView
    freeMem wx
    freeMem wy
    return (wx', wy')

#if ENABLE_OVERLOADING
data TreeViewConvertBinWindowToWidgetCoordsMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Int32, Int32))), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewConvertBinWindowToWidgetCoordsMethodInfo a signature where
    overloadedMethod _ = treeViewConvertBinWindowToWidgetCoords

#endif

-- method TreeView::convert_tree_to_bin_window_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tx", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tree X coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ty", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "tree Y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bx", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for X coordinate relative to bin_window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "by", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for Y coordinate relative to bin_window", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_convert_tree_to_bin_window_coords" gtk_tree_view_convert_tree_to_bin_window_coords ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- tx : TBasicType TInt
    Int32 ->                                -- ty : TBasicType TInt
    Ptr Int32 ->                            -- bx : TBasicType TInt
    Ptr Int32 ->                            -- by : TBasicType TInt
    IO ()

{- |
Converts tree coordinates (coordinates in full scrollable area of the tree)
to bin_window coordinates.

/Since: 2.12/
-}
treeViewConvertTreeToBinWindowCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Int32
    {- ^ /@tx@/: tree X coordinate -}
    -> Int32
    {- ^ /@ty@/: tree Y coordinate -}
    -> m ((Int32, Int32))
treeViewConvertTreeToBinWindowCoords treeView tx ty = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    bx <- allocMem :: IO (Ptr Int32)
    by <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_tree_to_bin_window_coords treeView' tx ty bx by
    bx' <- peek bx
    by' <- peek by
    touchManagedPtr treeView
    freeMem bx
    freeMem by
    return (bx', by')

#if ENABLE_OVERLOADING
data TreeViewConvertTreeToBinWindowCoordsMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Int32, Int32))), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewConvertTreeToBinWindowCoordsMethodInfo a signature where
    overloadedMethod _ = treeViewConvertTreeToBinWindowCoords

#endif

-- method TreeView::convert_tree_to_widget_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tx", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate relative to the tree", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ty", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate relative to the tree", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wx", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for widget X coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "wy", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for widget Y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_convert_tree_to_widget_coords" gtk_tree_view_convert_tree_to_widget_coords ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- tx : TBasicType TInt
    Int32 ->                                -- ty : TBasicType TInt
    Ptr Int32 ->                            -- wx : TBasicType TInt
    Ptr Int32 ->                            -- wy : TBasicType TInt
    IO ()

{- |
Converts tree coordinates (coordinates in full scrollable area of the tree)
to widget coordinates.

/Since: 2.12/
-}
treeViewConvertTreeToWidgetCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Int32
    {- ^ /@tx@/: X coordinate relative to the tree -}
    -> Int32
    {- ^ /@ty@/: Y coordinate relative to the tree -}
    -> m ((Int32, Int32))
treeViewConvertTreeToWidgetCoords treeView tx ty = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    wx <- allocMem :: IO (Ptr Int32)
    wy <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_tree_to_widget_coords treeView' tx ty wx wy
    wx' <- peek wx
    wy' <- peek wy
    touchManagedPtr treeView
    freeMem wx
    freeMem wy
    return (wx', wy')

#if ENABLE_OVERLOADING
data TreeViewConvertTreeToWidgetCoordsMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Int32, Int32))), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewConvertTreeToWidgetCoordsMethodInfo a signature where
    overloadedMethod _ = treeViewConvertTreeToWidgetCoords

#endif

-- method TreeView::convert_widget_to_bin_window_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wx", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate relative to the widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wy", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate relative to the widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bx", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for bin_window X coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "by", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for bin_window Y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_convert_widget_to_bin_window_coords" gtk_tree_view_convert_widget_to_bin_window_coords ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- wx : TBasicType TInt
    Int32 ->                                -- wy : TBasicType TInt
    Ptr Int32 ->                            -- bx : TBasicType TInt
    Ptr Int32 ->                            -- by : TBasicType TInt
    IO ()

{- |
Converts widget coordinates to coordinates for the bin_window
(see 'GI.Gtk.Objects.TreeView.treeViewGetBinWindow').

/Since: 2.12/
-}
treeViewConvertWidgetToBinWindowCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Int32
    {- ^ /@wx@/: X coordinate relative to the widget -}
    -> Int32
    {- ^ /@wy@/: Y coordinate relative to the widget -}
    -> m ((Int32, Int32))
treeViewConvertWidgetToBinWindowCoords treeView wx wy = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    bx <- allocMem :: IO (Ptr Int32)
    by <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_widget_to_bin_window_coords treeView' wx wy bx by
    bx' <- peek bx
    by' <- peek by
    touchManagedPtr treeView
    freeMem bx
    freeMem by
    return (bx', by')

#if ENABLE_OVERLOADING
data TreeViewConvertWidgetToBinWindowCoordsMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Int32, Int32))), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewConvertWidgetToBinWindowCoordsMethodInfo a signature where
    overloadedMethod _ = treeViewConvertWidgetToBinWindowCoords

#endif

-- method TreeView::convert_widget_to_tree_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wx", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate relative to the widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wy", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate relative to the widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tx", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for tree X coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "ty", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for tree Y coordinate", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_convert_widget_to_tree_coords" gtk_tree_view_convert_widget_to_tree_coords ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- wx : TBasicType TInt
    Int32 ->                                -- wy : TBasicType TInt
    Ptr Int32 ->                            -- tx : TBasicType TInt
    Ptr Int32 ->                            -- ty : TBasicType TInt
    IO ()

{- |
Converts widget coordinates to coordinates for the
tree (the full scrollable area of the tree).

/Since: 2.12/
-}
treeViewConvertWidgetToTreeCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Int32
    {- ^ /@wx@/: X coordinate relative to the widget -}
    -> Int32
    {- ^ /@wy@/: Y coordinate relative to the widget -}
    -> m ((Int32, Int32))
treeViewConvertWidgetToTreeCoords treeView wx wy = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    tx <- allocMem :: IO (Ptr Int32)
    ty <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_widget_to_tree_coords treeView' wx wy tx ty
    tx' <- peek tx
    ty' <- peek ty
    touchManagedPtr treeView
    freeMem tx
    freeMem ty
    return (tx', ty')

#if ENABLE_OVERLOADING
data TreeViewConvertWidgetToTreeCoordsMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Int32, Int32))), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewConvertWidgetToTreeCoordsMethodInfo a signature where
    overloadedMethod _ = treeViewConvertWidgetToTreeCoords

#endif

-- method TreeView::create_row_drag_icon
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "path", argType = TInterface (Name {namespace = "Gtk", name = "TreePath"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreePath in @tree_view", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "cairo", name = "Surface"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_create_row_drag_icon" gtk_tree_view_create_row_drag_icon ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    IO (Ptr Cairo.Surface.Surface)

{- |
Creates a 'GI.Cairo.Structs.Surface.Surface' representation of the row at /@path@/.
This image is used for a drag icon.
-}
treeViewCreateRowDragIcon ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> Gtk.TreePath.TreePath
    {- ^ /@path@/: a 'GI.Gtk.Structs.TreePath.TreePath' in /@treeView@/ -}
    -> m Cairo.Surface.Surface
    {- ^ __Returns:__ a newly-allocated surface of the drag icon. -}
treeViewCreateRowDragIcon treeView path = liftIO $ do
    treeView' <- unsafeManagedPtrCastPtr treeView
    path' <- unsafeManagedPtrGetPtr path
    result <- gtk_tree_view_create_row_drag_icon treeView' path'
    checkUnexpectedReturnNULL "treeViewCreateRowDragIcon" result
    result' <- (wrapBoxed Cairo.Surface.Surface) result
    touchManagedPtr treeView
    touchManagedPtr path
    return result'

#if ENABLE_OVERLOADING
data TreeViewCreateRowDragIconMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> m Cairo.Surface.Surface), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewCreateRowDragIconMethodInfo a signature where
    overloadedMethod _ = treeViewCreateRowDragIcon

#endif

-- method TreeView::enable_model_drag_dest
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "targets", argType = TCArray False (-1) 2 (TInterface (Name {namespace = "Gtk", name = "TargetEntry"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the table of targets that\n          the drag will support", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_targets", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of items in @targets", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "actions", argType = TInterface (Name {namespace = "Gdk", name = "DragAction"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the bitmask of possible actions for a drag from this\n   widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_targets", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of items in @targets", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_enable_model_drag_dest" gtk_tree_view_enable_model_drag_dest ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TargetEntry.TargetEntry ->      -- targets : TCArray False (-1) 2 (TInterface (Name {namespace = "Gtk", name = "TargetEntry"}))
    Int32 ->                                -- n_targets : TBasicType TInt
    CUInt ->                                -- actions : TInterface (Name {namespace = "Gdk", name = "DragAction"})
    IO ()

{- |
Turns /@treeView@/ into a drop destination for automatic DND. Calling
this method sets 'GI.Gtk.Objects.TreeView.TreeView':@/reorderable/@ to 'False'.
-}
treeViewEnableModelDragDest ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    {- ^ /@treeView@/: a 'GI.Gtk.Objects.TreeView.TreeView' -}
    -> [Gtk.TargetEntry.TargetEntry]
    {- ^ /@targets@/: the table of targets that
          the drag will support -}
    -> [Gdk.Flags.DragAction]
    {- ^ /@actions@/: the bitmask of possible actions for a drag from this
   widget -}
    -> m ()
treeViewEnableModelDragDest treeView targets actions = liftIO $ do
    let nTargets = fromIntegral $ length targets
    treeView' <- unsafeManagedPtrCastPtr treeView
    targets' <- mapM unsafeManagedPtrGetPtr targets
    targets'' <- packBlockArray 16 targets'
    let actions' = gflagsToWord actions
    gtk_tree_view_enable_model_drag_dest treeView' targets'' nTargets actions'
    touchManagedPtr treeView
    mapM_ touchManagedPtr targets
    freeMem targets''
    return ()

#if ENABLE_OVERLOADING
data TreeViewEnableModelDragDestMethodInfo
instance (signature ~ ([Gtk.TargetEntry.TargetEntry] -> [Gdk.Flags.DragAction] -> m ()), MonadIO m, IsTreeView a) => O.MethodInfo TreeViewEnableModelDragDestMethodInfo a signature where
    overloadedMethod _ = treeViewEnableModelDragDest

#endif

-- method TreeView::enable_model_drag_source
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "tree_view", argType = TInterface (Name {namespace = "Gtk", name = "TreeView"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkTreeView", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_button_mask", argType = TInterface (Name {namespace = "Gdk", name = "ModifierType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Mask of allowed buttons to start drag", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "targets", argType = TCArray False (-1) 3 (TInterface (Name {namespace = "Gtk", name = "TargetEntry"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the table of targets that the drag will support", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_targets", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of items in @targets", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "actions", argType = TInterface (Name {namespace = "Gdk", name = "DragAction"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the bitmask of possible actions for a drag from this\n   widget", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "n_targets", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of items in @targets", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_enable_model_drag_source" gtk_tree_view_enable_model_drag_source ::
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})