{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- Widget that displays any object that implements the t'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/gtk4/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
-- t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' objects as \<child> elements and exposes the internal
-- t'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]
-- >╰── [dndtarget]
-- 
-- 
-- 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.
-- 
-- For the drop target location during DND, a subnode with name dndtarget is used.

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

module GI.Gtk.Objects.TreeView
    ( 

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


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [actionSetEnabled]("GI.Gtk.Objects.Widget#g:method:actionSetEnabled"), [activate]("GI.Gtk.Objects.Widget#g:method:activate"), [activateAction]("GI.Gtk.Objects.Widget#g:method:activateAction"), [activateDefault]("GI.Gtk.Objects.Widget#g:method:activateDefault"), [addController]("GI.Gtk.Objects.Widget#g:method:addController"), [addCssClass]("GI.Gtk.Objects.Widget#g:method:addCssClass"), [addMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:addMnemonicLabel"), [addTickCallback]("GI.Gtk.Objects.Widget#g:method:addTickCallback"), [allocate]("GI.Gtk.Objects.Widget#g:method:allocate"), [appendColumn]("GI.Gtk.Objects.TreeView#g:method:appendColumn"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [childFocus]("GI.Gtk.Objects.Widget#g:method:childFocus"), [collapseAll]("GI.Gtk.Objects.TreeView#g:method:collapseAll"), [collapseRow]("GI.Gtk.Objects.TreeView#g:method:collapseRow"), [columnsAutosize]("GI.Gtk.Objects.TreeView#g:method:columnsAutosize"), [computeBounds]("GI.Gtk.Objects.Widget#g:method:computeBounds"), [computeExpand]("GI.Gtk.Objects.Widget#g:method:computeExpand"), [computePoint]("GI.Gtk.Objects.Widget#g:method:computePoint"), [computeTransform]("GI.Gtk.Objects.Widget#g:method:computeTransform"), [contains]("GI.Gtk.Objects.Widget#g:method:contains"), [convertBinWindowToTreeCoords]("GI.Gtk.Objects.TreeView#g:method:convertBinWindowToTreeCoords"), [convertBinWindowToWidgetCoords]("GI.Gtk.Objects.TreeView#g:method:convertBinWindowToWidgetCoords"), [convertTreeToBinWindowCoords]("GI.Gtk.Objects.TreeView#g:method:convertTreeToBinWindowCoords"), [convertTreeToWidgetCoords]("GI.Gtk.Objects.TreeView#g:method:convertTreeToWidgetCoords"), [convertWidgetToBinWindowCoords]("GI.Gtk.Objects.TreeView#g:method:convertWidgetToBinWindowCoords"), [convertWidgetToTreeCoords]("GI.Gtk.Objects.TreeView#g:method:convertWidgetToTreeCoords"), [createPangoContext]("GI.Gtk.Objects.Widget#g:method:createPangoContext"), [createPangoLayout]("GI.Gtk.Objects.Widget#g:method:createPangoLayout"), [createRowDragIcon]("GI.Gtk.Objects.TreeView#g:method:createRowDragIcon"), [dragCheckThreshold]("GI.Gtk.Objects.Widget#g:method:dragCheckThreshold"), [enableModelDragDest]("GI.Gtk.Objects.TreeView#g:method:enableModelDragDest"), [enableModelDragSource]("GI.Gtk.Objects.TreeView#g:method:enableModelDragSource"), [errorBell]("GI.Gtk.Objects.Widget#g:method:errorBell"), [expandAll]("GI.Gtk.Objects.TreeView#g:method:expandAll"), [expandRow]("GI.Gtk.Objects.TreeView#g:method:expandRow"), [expandToPath]("GI.Gtk.Objects.TreeView#g:method:expandToPath"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [grabFocus]("GI.Gtk.Objects.Widget#g:method:grabFocus"), [hasCssClass]("GI.Gtk.Objects.Widget#g:method:hasCssClass"), [hasDefault]("GI.Gtk.Objects.Widget#g:method:hasDefault"), [hasFocus]("GI.Gtk.Objects.Widget#g:method:hasFocus"), [hasVisibleFocus]("GI.Gtk.Objects.Widget#g:method:hasVisibleFocus"), [hide]("GI.Gtk.Objects.Widget#g:method:hide"), [inDestruction]("GI.Gtk.Objects.Widget#g:method:inDestruction"), [initTemplate]("GI.Gtk.Objects.Widget#g:method:initTemplate"), [insertActionGroup]("GI.Gtk.Objects.Widget#g:method:insertActionGroup"), [insertAfter]("GI.Gtk.Objects.Widget#g:method:insertAfter"), [insertBefore]("GI.Gtk.Objects.Widget#g:method:insertBefore"), [insertColumn]("GI.Gtk.Objects.TreeView#g:method:insertColumn"), [insertColumnWithDataFunc]("GI.Gtk.Objects.TreeView#g:method:insertColumnWithDataFunc"), [isAncestor]("GI.Gtk.Objects.Widget#g:method:isAncestor"), [isBlankAtPos]("GI.Gtk.Objects.TreeView#g:method:isBlankAtPos"), [isDrawable]("GI.Gtk.Objects.Widget#g:method:isDrawable"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [isFocus]("GI.Gtk.Objects.Widget#g:method:isFocus"), [isRubberBandingActive]("GI.Gtk.Objects.TreeView#g:method:isRubberBandingActive"), [isSensitive]("GI.Gtk.Objects.Widget#g:method:isSensitive"), [isVisible]("GI.Gtk.Objects.Widget#g:method:isVisible"), [keynavFailed]("GI.Gtk.Objects.Widget#g:method:keynavFailed"), [listMnemonicLabels]("GI.Gtk.Objects.Widget#g:method:listMnemonicLabels"), [map]("GI.Gtk.Objects.Widget#g:method:map"), [mapExpandedRows]("GI.Gtk.Objects.TreeView#g:method:mapExpandedRows"), [measure]("GI.Gtk.Objects.Widget#g:method:measure"), [mnemonicActivate]("GI.Gtk.Objects.Widget#g:method:mnemonicActivate"), [moveColumnAfter]("GI.Gtk.Objects.TreeView#g:method:moveColumnAfter"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [observeChildren]("GI.Gtk.Objects.Widget#g:method:observeChildren"), [observeControllers]("GI.Gtk.Objects.Widget#g:method:observeControllers"), [pick]("GI.Gtk.Objects.Widget#g:method:pick"), [queueAllocate]("GI.Gtk.Objects.Widget#g:method:queueAllocate"), [queueDraw]("GI.Gtk.Objects.Widget#g:method:queueDraw"), [queueResize]("GI.Gtk.Objects.Widget#g:method:queueResize"), [realize]("GI.Gtk.Objects.Widget#g:method:realize"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeColumn]("GI.Gtk.Objects.TreeView#g:method:removeColumn"), [removeController]("GI.Gtk.Objects.Widget#g:method:removeController"), [removeCssClass]("GI.Gtk.Objects.Widget#g:method:removeCssClass"), [removeMnemonicLabel]("GI.Gtk.Objects.Widget#g:method:removeMnemonicLabel"), [removeTickCallback]("GI.Gtk.Objects.Widget#g:method:removeTickCallback"), [resetProperty]("GI.Gtk.Interfaces.Accessible#g:method:resetProperty"), [resetRelation]("GI.Gtk.Interfaces.Accessible#g:method:resetRelation"), [resetState]("GI.Gtk.Interfaces.Accessible#g:method:resetState"), [rowActivated]("GI.Gtk.Objects.TreeView#g:method:rowActivated"), [rowExpanded]("GI.Gtk.Objects.TreeView#g:method:rowExpanded"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [scrollToCell]("GI.Gtk.Objects.TreeView#g:method:scrollToCell"), [scrollToPoint]("GI.Gtk.Objects.TreeView#g:method:scrollToPoint"), [shouldLayout]("GI.Gtk.Objects.Widget#g:method:shouldLayout"), [show]("GI.Gtk.Objects.Widget#g:method:show"), [sizeAllocate]("GI.Gtk.Objects.Widget#g:method:sizeAllocate"), [snapshotChild]("GI.Gtk.Objects.Widget#g:method:snapshotChild"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [translateCoordinates]("GI.Gtk.Objects.Widget#g:method:translateCoordinates"), [triggerTooltipQuery]("GI.Gtk.Objects.Widget#g:method:triggerTooltipQuery"), [unmap]("GI.Gtk.Objects.Widget#g:method:unmap"), [unparent]("GI.Gtk.Objects.Widget#g:method:unparent"), [unrealize]("GI.Gtk.Objects.Widget#g:method:unrealize"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [unsetRowsDragDest]("GI.Gtk.Objects.TreeView#g:method:unsetRowsDragDest"), [unsetRowsDragSource]("GI.Gtk.Objects.TreeView#g:method:unsetRowsDragSource"), [unsetStateFlags]("GI.Gtk.Objects.Widget#g:method:unsetStateFlags"), [updateProperty]("GI.Gtk.Interfaces.Accessible#g:method:updateProperty"), [updateRelation]("GI.Gtk.Interfaces.Accessible#g:method:updateRelation"), [updateState]("GI.Gtk.Interfaces.Accessible#g:method:updateState"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getAccessibleRole]("GI.Gtk.Interfaces.Accessible#g:method:getAccessibleRole"), [getActivateOnSingleClick]("GI.Gtk.Objects.TreeView#g:method:getActivateOnSingleClick"), [getAllocatedBaseline]("GI.Gtk.Objects.Widget#g:method:getAllocatedBaseline"), [getAllocatedHeight]("GI.Gtk.Objects.Widget#g:method:getAllocatedHeight"), [getAllocatedWidth]("GI.Gtk.Objects.Widget#g:method:getAllocatedWidth"), [getAllocation]("GI.Gtk.Objects.Widget#g:method:getAllocation"), [getAncestor]("GI.Gtk.Objects.Widget#g:method:getAncestor"), [getBackgroundArea]("GI.Gtk.Objects.TreeView#g:method:getBackgroundArea"), [getBorder]("GI.Gtk.Interfaces.Scrollable#g:method:getBorder"), [getBuildableId]("GI.Gtk.Interfaces.Buildable#g:method:getBuildableId"), [getCanFocus]("GI.Gtk.Objects.Widget#g:method:getCanFocus"), [getCanTarget]("GI.Gtk.Objects.Widget#g:method:getCanTarget"), [getCellArea]("GI.Gtk.Objects.TreeView#g:method:getCellArea"), [getChildVisible]("GI.Gtk.Objects.Widget#g:method:getChildVisible"), [getClipboard]("GI.Gtk.Objects.Widget#g:method:getClipboard"), [getColumn]("GI.Gtk.Objects.TreeView#g:method:getColumn"), [getColumns]("GI.Gtk.Objects.TreeView#g:method:getColumns"), [getCssClasses]("GI.Gtk.Objects.Widget#g:method:getCssClasses"), [getCssName]("GI.Gtk.Objects.Widget#g:method:getCssName"), [getCursor]("GI.Gtk.Objects.TreeView#g:method:getCursor"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDestRowAtPos]("GI.Gtk.Objects.TreeView#g:method:getDestRowAtPos"), [getDirection]("GI.Gtk.Objects.Widget#g:method:getDirection"), [getDisplay]("GI.Gtk.Objects.Widget#g:method:getDisplay"), [getDragDestRow]("GI.Gtk.Objects.TreeView#g:method:getDragDestRow"), [getEnableSearch]("GI.Gtk.Objects.TreeView#g:method:getEnableSearch"), [getEnableTreeLines]("GI.Gtk.Objects.TreeView#g:method:getEnableTreeLines"), [getExpanderColumn]("GI.Gtk.Objects.TreeView#g:method:getExpanderColumn"), [getFirstChild]("GI.Gtk.Objects.Widget#g:method:getFirstChild"), [getFixedHeightMode]("GI.Gtk.Objects.TreeView#g:method:getFixedHeightMode"), [getFocusChild]("GI.Gtk.Objects.Widget#g:method:getFocusChild"), [getFocusOnClick]("GI.Gtk.Objects.Widget#g:method:getFocusOnClick"), [getFocusable]("GI.Gtk.Objects.Widget#g:method:getFocusable"), [getFontMap]("GI.Gtk.Objects.Widget#g:method:getFontMap"), [getFontOptions]("GI.Gtk.Objects.Widget#g:method:getFontOptions"), [getFrameClock]("GI.Gtk.Objects.Widget#g:method:getFrameClock"), [getGridLines]("GI.Gtk.Objects.TreeView#g:method:getGridLines"), [getHadjustment]("GI.Gtk.Interfaces.Scrollable#g:method:getHadjustment"), [getHalign]("GI.Gtk.Objects.Widget#g:method:getHalign"), [getHasTooltip]("GI.Gtk.Objects.Widget#g:method:getHasTooltip"), [getHeadersClickable]("GI.Gtk.Objects.TreeView#g:method:getHeadersClickable"), [getHeadersVisible]("GI.Gtk.Objects.TreeView#g:method:getHeadersVisible"), [getHeight]("GI.Gtk.Objects.Widget#g:method:getHeight"), [getHexpand]("GI.Gtk.Objects.Widget#g:method:getHexpand"), [getHexpandSet]("GI.Gtk.Objects.Widget#g:method:getHexpandSet"), [getHoverExpand]("GI.Gtk.Objects.TreeView#g:method:getHoverExpand"), [getHoverSelection]("GI.Gtk.Objects.TreeView#g:method:getHoverSelection"), [getHscrollPolicy]("GI.Gtk.Interfaces.Scrollable#g:method:getHscrollPolicy"), [getLastChild]("GI.Gtk.Objects.Widget#g:method:getLastChild"), [getLayoutManager]("GI.Gtk.Objects.Widget#g:method:getLayoutManager"), [getLevelIndentation]("GI.Gtk.Objects.TreeView#g:method:getLevelIndentation"), [getMapped]("GI.Gtk.Objects.Widget#g:method:getMapped"), [getMarginBottom]("GI.Gtk.Objects.Widget#g:method:getMarginBottom"), [getMarginEnd]("GI.Gtk.Objects.Widget#g:method:getMarginEnd"), [getMarginStart]("GI.Gtk.Objects.Widget#g:method:getMarginStart"), [getMarginTop]("GI.Gtk.Objects.Widget#g:method:getMarginTop"), [getModel]("GI.Gtk.Objects.TreeView#g:method:getModel"), [getNColumns]("GI.Gtk.Objects.TreeView#g:method:getNColumns"), [getName]("GI.Gtk.Objects.Widget#g:method:getName"), [getNative]("GI.Gtk.Objects.Widget#g:method:getNative"), [getNextSibling]("GI.Gtk.Objects.Widget#g:method:getNextSibling"), [getOpacity]("GI.Gtk.Objects.Widget#g:method:getOpacity"), [getOverflow]("GI.Gtk.Objects.Widget#g:method:getOverflow"), [getPangoContext]("GI.Gtk.Objects.Widget#g:method:getPangoContext"), [getParent]("GI.Gtk.Objects.Widget#g:method:getParent"), [getPathAtPos]("GI.Gtk.Objects.TreeView#g:method:getPathAtPos"), [getPreferredSize]("GI.Gtk.Objects.Widget#g:method:getPreferredSize"), [getPrevSibling]("GI.Gtk.Objects.Widget#g:method:getPrevSibling"), [getPrimaryClipboard]("GI.Gtk.Objects.Widget#g:method:getPrimaryClipboard"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getRealized]("GI.Gtk.Objects.Widget#g:method:getRealized"), [getReceivesDefault]("GI.Gtk.Objects.Widget#g:method:getReceivesDefault"), [getReorderable]("GI.Gtk.Objects.TreeView#g:method:getReorderable"), [getRequestMode]("GI.Gtk.Objects.Widget#g:method:getRequestMode"), [getRoot]("GI.Gtk.Objects.Widget#g:method:getRoot"), [getRubberBanding]("GI.Gtk.Objects.TreeView#g:method:getRubberBanding"), [getScaleFactor]("GI.Gtk.Objects.Widget#g:method:getScaleFactor"), [getSearchColumn]("GI.Gtk.Objects.TreeView#g:method:getSearchColumn"), [getSearchEntry]("GI.Gtk.Objects.TreeView#g:method:getSearchEntry"), [getSelection]("GI.Gtk.Objects.TreeView#g:method:getSelection"), [getSensitive]("GI.Gtk.Objects.Widget#g:method:getSensitive"), [getSettings]("GI.Gtk.Objects.Widget#g:method:getSettings"), [getShowExpanders]("GI.Gtk.Objects.TreeView#g:method:getShowExpanders"), [getSize]("GI.Gtk.Objects.Widget#g:method:getSize"), [getSizeRequest]("GI.Gtk.Objects.Widget#g:method:getSizeRequest"), [getStateFlags]("GI.Gtk.Objects.Widget#g:method:getStateFlags"), [getStyleContext]("GI.Gtk.Objects.Widget#g:method:getStyleContext"), [getTemplateChild]("GI.Gtk.Objects.Widget#g:method:getTemplateChild"), [getTooltipColumn]("GI.Gtk.Objects.TreeView#g:method:getTooltipColumn"), [getTooltipContext]("GI.Gtk.Objects.TreeView#g:method:getTooltipContext"), [getTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:getTooltipMarkup"), [getTooltipText]("GI.Gtk.Objects.Widget#g:method:getTooltipText"), [getVadjustment]("GI.Gtk.Interfaces.Scrollable#g:method:getVadjustment"), [getValign]("GI.Gtk.Objects.Widget#g:method:getValign"), [getVexpand]("GI.Gtk.Objects.Widget#g:method:getVexpand"), [getVexpandSet]("GI.Gtk.Objects.Widget#g:method:getVexpandSet"), [getVisible]("GI.Gtk.Objects.Widget#g:method:getVisible"), [getVisibleRange]("GI.Gtk.Objects.TreeView#g:method:getVisibleRange"), [getVisibleRect]("GI.Gtk.Objects.TreeView#g:method:getVisibleRect"), [getVscrollPolicy]("GI.Gtk.Interfaces.Scrollable#g:method:getVscrollPolicy"), [getWidth]("GI.Gtk.Objects.Widget#g:method:getWidth").
-- 
-- ==== Setters
-- [setActivateOnSingleClick]("GI.Gtk.Objects.TreeView#g:method:setActivateOnSingleClick"), [setCanFocus]("GI.Gtk.Objects.Widget#g:method:setCanFocus"), [setCanTarget]("GI.Gtk.Objects.Widget#g:method:setCanTarget"), [setChildVisible]("GI.Gtk.Objects.Widget#g:method:setChildVisible"), [setColumnDragFunction]("GI.Gtk.Objects.TreeView#g:method:setColumnDragFunction"), [setCssClasses]("GI.Gtk.Objects.Widget#g:method:setCssClasses"), [setCursor]("GI.Gtk.Objects.TreeView#g:method:setCursor"), [setCursorFromName]("GI.Gtk.Objects.Widget#g:method:setCursorFromName"), [setCursorOnCell]("GI.Gtk.Objects.TreeView#g:method:setCursorOnCell"), [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setDirection]("GI.Gtk.Objects.Widget#g:method:setDirection"), [setDragDestRow]("GI.Gtk.Objects.TreeView#g:method:setDragDestRow"), [setEnableSearch]("GI.Gtk.Objects.TreeView#g:method:setEnableSearch"), [setEnableTreeLines]("GI.Gtk.Objects.TreeView#g:method:setEnableTreeLines"), [setExpanderColumn]("GI.Gtk.Objects.TreeView#g:method:setExpanderColumn"), [setFixedHeightMode]("GI.Gtk.Objects.TreeView#g:method:setFixedHeightMode"), [setFocusChild]("GI.Gtk.Objects.Widget#g:method:setFocusChild"), [setFocusOnClick]("GI.Gtk.Objects.Widget#g:method:setFocusOnClick"), [setFocusable]("GI.Gtk.Objects.Widget#g:method:setFocusable"), [setFontMap]("GI.Gtk.Objects.Widget#g:method:setFontMap"), [setFontOptions]("GI.Gtk.Objects.Widget#g:method:setFontOptions"), [setGridLines]("GI.Gtk.Objects.TreeView#g:method:setGridLines"), [setHadjustment]("GI.Gtk.Interfaces.Scrollable#g:method:setHadjustment"), [setHalign]("GI.Gtk.Objects.Widget#g:method:setHalign"), [setHasTooltip]("GI.Gtk.Objects.Widget#g:method:setHasTooltip"), [setHeadersClickable]("GI.Gtk.Objects.TreeView#g:method:setHeadersClickable"), [setHeadersVisible]("GI.Gtk.Objects.TreeView#g:method:setHeadersVisible"), [setHexpand]("GI.Gtk.Objects.Widget#g:method:setHexpand"), [setHexpandSet]("GI.Gtk.Objects.Widget#g:method:setHexpandSet"), [setHoverExpand]("GI.Gtk.Objects.TreeView#g:method:setHoverExpand"), [setHoverSelection]("GI.Gtk.Objects.TreeView#g:method:setHoverSelection"), [setHscrollPolicy]("GI.Gtk.Interfaces.Scrollable#g:method:setHscrollPolicy"), [setLayoutManager]("GI.Gtk.Objects.Widget#g:method:setLayoutManager"), [setLevelIndentation]("GI.Gtk.Objects.TreeView#g:method:setLevelIndentation"), [setMarginBottom]("GI.Gtk.Objects.Widget#g:method:setMarginBottom"), [setMarginEnd]("GI.Gtk.Objects.Widget#g:method:setMarginEnd"), [setMarginStart]("GI.Gtk.Objects.Widget#g:method:setMarginStart"), [setMarginTop]("GI.Gtk.Objects.Widget#g:method:setMarginTop"), [setModel]("GI.Gtk.Objects.TreeView#g:method:setModel"), [setName]("GI.Gtk.Objects.Widget#g:method:setName"), [setOpacity]("GI.Gtk.Objects.Widget#g:method:setOpacity"), [setOverflow]("GI.Gtk.Objects.Widget#g:method:setOverflow"), [setParent]("GI.Gtk.Objects.Widget#g:method:setParent"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setReceivesDefault]("GI.Gtk.Objects.Widget#g:method:setReceivesDefault"), [setReorderable]("GI.Gtk.Objects.TreeView#g:method:setReorderable"), [setRowSeparatorFunc]("GI.Gtk.Objects.TreeView#g:method:setRowSeparatorFunc"), [setRubberBanding]("GI.Gtk.Objects.TreeView#g:method:setRubberBanding"), [setSearchColumn]("GI.Gtk.Objects.TreeView#g:method:setSearchColumn"), [setSearchEntry]("GI.Gtk.Objects.TreeView#g:method:setSearchEntry"), [setSearchEqualFunc]("GI.Gtk.Objects.TreeView#g:method:setSearchEqualFunc"), [setSensitive]("GI.Gtk.Objects.Widget#g:method:setSensitive"), [setShowExpanders]("GI.Gtk.Objects.TreeView#g:method:setShowExpanders"), [setSizeRequest]("GI.Gtk.Objects.Widget#g:method:setSizeRequest"), [setStateFlags]("GI.Gtk.Objects.Widget#g:method:setStateFlags"), [setTooltipCell]("GI.Gtk.Objects.TreeView#g:method:setTooltipCell"), [setTooltipColumn]("GI.Gtk.Objects.TreeView#g:method:setTooltipColumn"), [setTooltipMarkup]("GI.Gtk.Objects.Widget#g:method:setTooltipMarkup"), [setTooltipRow]("GI.Gtk.Objects.TreeView#g:method:setTooltipRow"), [setTooltipText]("GI.Gtk.Objects.Widget#g:method:setTooltipText"), [setVadjustment]("GI.Gtk.Interfaces.Scrollable#g:method:setVadjustment"), [setValign]("GI.Gtk.Objects.Widget#g:method:setValign"), [setVexpand]("GI.Gtk.Objects.Widget#g:method:setVexpand"), [setVexpandSet]("GI.Gtk.Objects.Widget#g:method:setVexpandSet"), [setVisible]("GI.Gtk.Objects.Widget#g:method:setVisible"), [setVscrollPolicy]("GI.Gtk.Interfaces.Scrollable#g:method:setVscrollPolicy").

#if defined(ENABLE_OVERLOADING)
    ResolveTreeViewMethod                   ,
#endif

-- ** appendColumn #method:appendColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewAppendColumnMethodInfo          ,
#endif
    treeViewAppendColumn                    ,


-- ** collapseAll #method:collapseAll#

#if defined(ENABLE_OVERLOADING)
    TreeViewCollapseAllMethodInfo           ,
#endif
    treeViewCollapseAll                     ,


-- ** collapseRow #method:collapseRow#

#if defined(ENABLE_OVERLOADING)
    TreeViewCollapseRowMethodInfo           ,
#endif
    treeViewCollapseRow                     ,


-- ** columnsAutosize #method:columnsAutosize#

#if defined(ENABLE_OVERLOADING)
    TreeViewColumnsAutosizeMethodInfo       ,
#endif
    treeViewColumnsAutosize                 ,


-- ** convertBinWindowToTreeCoords #method:convertBinWindowToTreeCoords#

#if defined(ENABLE_OVERLOADING)
    TreeViewConvertBinWindowToTreeCoordsMethodInfo,
#endif
    treeViewConvertBinWindowToTreeCoords    ,


-- ** convertBinWindowToWidgetCoords #method:convertBinWindowToWidgetCoords#

#if defined(ENABLE_OVERLOADING)
    TreeViewConvertBinWindowToWidgetCoordsMethodInfo,
#endif
    treeViewConvertBinWindowToWidgetCoords  ,


-- ** convertTreeToBinWindowCoords #method:convertTreeToBinWindowCoords#

#if defined(ENABLE_OVERLOADING)
    TreeViewConvertTreeToBinWindowCoordsMethodInfo,
#endif
    treeViewConvertTreeToBinWindowCoords    ,


-- ** convertTreeToWidgetCoords #method:convertTreeToWidgetCoords#

#if defined(ENABLE_OVERLOADING)
    TreeViewConvertTreeToWidgetCoordsMethodInfo,
#endif
    treeViewConvertTreeToWidgetCoords       ,


-- ** convertWidgetToBinWindowCoords #method:convertWidgetToBinWindowCoords#

#if defined(ENABLE_OVERLOADING)
    TreeViewConvertWidgetToBinWindowCoordsMethodInfo,
#endif
    treeViewConvertWidgetToBinWindowCoords  ,


-- ** convertWidgetToTreeCoords #method:convertWidgetToTreeCoords#

#if defined(ENABLE_OVERLOADING)
    TreeViewConvertWidgetToTreeCoordsMethodInfo,
#endif
    treeViewConvertWidgetToTreeCoords       ,


-- ** createRowDragIcon #method:createRowDragIcon#

#if defined(ENABLE_OVERLOADING)
    TreeViewCreateRowDragIconMethodInfo     ,
#endif
    treeViewCreateRowDragIcon               ,


-- ** enableModelDragDest #method:enableModelDragDest#

#if defined(ENABLE_OVERLOADING)
    TreeViewEnableModelDragDestMethodInfo   ,
#endif
    treeViewEnableModelDragDest             ,


-- ** enableModelDragSource #method:enableModelDragSource#

#if defined(ENABLE_OVERLOADING)
    TreeViewEnableModelDragSourceMethodInfo ,
#endif
    treeViewEnableModelDragSource           ,


-- ** expandAll #method:expandAll#

#if defined(ENABLE_OVERLOADING)
    TreeViewExpandAllMethodInfo             ,
#endif
    treeViewExpandAll                       ,


-- ** expandRow #method:expandRow#

#if defined(ENABLE_OVERLOADING)
    TreeViewExpandRowMethodInfo             ,
#endif
    treeViewExpandRow                       ,


-- ** expandToPath #method:expandToPath#

#if defined(ENABLE_OVERLOADING)
    TreeViewExpandToPathMethodInfo          ,
#endif
    treeViewExpandToPath                    ,


-- ** getActivateOnSingleClick #method:getActivateOnSingleClick#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetActivateOnSingleClickMethodInfo,
#endif
    treeViewGetActivateOnSingleClick        ,


-- ** getBackgroundArea #method:getBackgroundArea#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetBackgroundAreaMethodInfo     ,
#endif
    treeViewGetBackgroundArea               ,


-- ** getCellArea #method:getCellArea#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetCellAreaMethodInfo           ,
#endif
    treeViewGetCellArea                     ,


-- ** getColumn #method:getColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetColumnMethodInfo             ,
#endif
    treeViewGetColumn                       ,


-- ** getColumns #method:getColumns#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetColumnsMethodInfo            ,
#endif
    treeViewGetColumns                      ,


-- ** getCursor #method:getCursor#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetCursorMethodInfo             ,
#endif
    treeViewGetCursor                       ,


-- ** getDestRowAtPos #method:getDestRowAtPos#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetDestRowAtPosMethodInfo       ,
#endif
    treeViewGetDestRowAtPos                 ,


-- ** getDragDestRow #method:getDragDestRow#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetDragDestRowMethodInfo        ,
#endif
    treeViewGetDragDestRow                  ,


-- ** getEnableSearch #method:getEnableSearch#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetEnableSearchMethodInfo       ,
#endif
    treeViewGetEnableSearch                 ,


-- ** getEnableTreeLines #method:getEnableTreeLines#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetEnableTreeLinesMethodInfo    ,
#endif
    treeViewGetEnableTreeLines              ,


-- ** getExpanderColumn #method:getExpanderColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetExpanderColumnMethodInfo     ,
#endif
    treeViewGetExpanderColumn               ,


-- ** getFixedHeightMode #method:getFixedHeightMode#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetFixedHeightModeMethodInfo    ,
#endif
    treeViewGetFixedHeightMode              ,


-- ** getGridLines #method:getGridLines#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetGridLinesMethodInfo          ,
#endif
    treeViewGetGridLines                    ,


-- ** getHeadersClickable #method:getHeadersClickable#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetHeadersClickableMethodInfo   ,
#endif
    treeViewGetHeadersClickable             ,


-- ** getHeadersVisible #method:getHeadersVisible#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetHeadersVisibleMethodInfo     ,
#endif
    treeViewGetHeadersVisible               ,


-- ** getHoverExpand #method:getHoverExpand#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetHoverExpandMethodInfo        ,
#endif
    treeViewGetHoverExpand                  ,


-- ** getHoverSelection #method:getHoverSelection#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetHoverSelectionMethodInfo     ,
#endif
    treeViewGetHoverSelection               ,


-- ** getLevelIndentation #method:getLevelIndentation#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetLevelIndentationMethodInfo   ,
#endif
    treeViewGetLevelIndentation             ,


-- ** getModel #method:getModel#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetModelMethodInfo              ,
#endif
    treeViewGetModel                        ,


-- ** getNColumns #method:getNColumns#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetNColumnsMethodInfo           ,
#endif
    treeViewGetNColumns                     ,


-- ** getPathAtPos #method:getPathAtPos#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetPathAtPosMethodInfo          ,
#endif
    treeViewGetPathAtPos                    ,


-- ** getReorderable #method:getReorderable#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetReorderableMethodInfo        ,
#endif
    treeViewGetReorderable                  ,


-- ** getRubberBanding #method:getRubberBanding#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetRubberBandingMethodInfo      ,
#endif
    treeViewGetRubberBanding                ,


-- ** getSearchColumn #method:getSearchColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetSearchColumnMethodInfo       ,
#endif
    treeViewGetSearchColumn                 ,


-- ** getSearchEntry #method:getSearchEntry#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetSearchEntryMethodInfo        ,
#endif
    treeViewGetSearchEntry                  ,


-- ** getSelection #method:getSelection#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetSelectionMethodInfo          ,
#endif
    treeViewGetSelection                    ,


-- ** getShowExpanders #method:getShowExpanders#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetShowExpandersMethodInfo      ,
#endif
    treeViewGetShowExpanders                ,


-- ** getTooltipColumn #method:getTooltipColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetTooltipColumnMethodInfo      ,
#endif
    treeViewGetTooltipColumn                ,


-- ** getTooltipContext #method:getTooltipContext#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetTooltipContextMethodInfo     ,
#endif
    treeViewGetTooltipContext               ,


-- ** getVisibleRange #method:getVisibleRange#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetVisibleRangeMethodInfo       ,
#endif
    treeViewGetVisibleRange                 ,


-- ** getVisibleRect #method:getVisibleRect#

#if defined(ENABLE_OVERLOADING)
    TreeViewGetVisibleRectMethodInfo        ,
#endif
    treeViewGetVisibleRect                  ,


-- ** insertColumn #method:insertColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewInsertColumnMethodInfo          ,
#endif
    treeViewInsertColumn                    ,


-- ** insertColumnWithDataFunc #method:insertColumnWithDataFunc#

#if defined(ENABLE_OVERLOADING)
    TreeViewInsertColumnWithDataFuncMethodInfo,
#endif
    treeViewInsertColumnWithDataFunc        ,


-- ** isBlankAtPos #method:isBlankAtPos#

#if defined(ENABLE_OVERLOADING)
    TreeViewIsBlankAtPosMethodInfo          ,
#endif
    treeViewIsBlankAtPos                    ,


-- ** isRubberBandingActive #method:isRubberBandingActive#

#if defined(ENABLE_OVERLOADING)
    TreeViewIsRubberBandingActiveMethodInfo ,
#endif
    treeViewIsRubberBandingActive           ,


-- ** mapExpandedRows #method:mapExpandedRows#

#if defined(ENABLE_OVERLOADING)
    TreeViewMapExpandedRowsMethodInfo       ,
#endif
    treeViewMapExpandedRows                 ,


-- ** moveColumnAfter #method:moveColumnAfter#

#if defined(ENABLE_OVERLOADING)
    TreeViewMoveColumnAfterMethodInfo       ,
#endif
    treeViewMoveColumnAfter                 ,


-- ** new #method:new#

    treeViewNew                             ,


-- ** newWithModel #method:newWithModel#

    treeViewNewWithModel                    ,


-- ** removeColumn #method:removeColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewRemoveColumnMethodInfo          ,
#endif
    treeViewRemoveColumn                    ,


-- ** rowActivated #method:rowActivated#

#if defined(ENABLE_OVERLOADING)
    TreeViewRowActivatedMethodInfo          ,
#endif
    treeViewRowActivated                    ,


-- ** rowExpanded #method:rowExpanded#

#if defined(ENABLE_OVERLOADING)
    TreeViewRowExpandedMethodInfo           ,
#endif
    treeViewRowExpanded                     ,


-- ** scrollToCell #method:scrollToCell#

#if defined(ENABLE_OVERLOADING)
    TreeViewScrollToCellMethodInfo          ,
#endif
    treeViewScrollToCell                    ,


-- ** scrollToPoint #method:scrollToPoint#

#if defined(ENABLE_OVERLOADING)
    TreeViewScrollToPointMethodInfo         ,
#endif
    treeViewScrollToPoint                   ,


-- ** setActivateOnSingleClick #method:setActivateOnSingleClick#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetActivateOnSingleClickMethodInfo,
#endif
    treeViewSetActivateOnSingleClick        ,


-- ** setColumnDragFunction #method:setColumnDragFunction#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetColumnDragFunctionMethodInfo ,
#endif
    treeViewSetColumnDragFunction           ,


-- ** setCursor #method:setCursor#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetCursorMethodInfo             ,
#endif
    treeViewSetCursor                       ,


-- ** setCursorOnCell #method:setCursorOnCell#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetCursorOnCellMethodInfo       ,
#endif
    treeViewSetCursorOnCell                 ,


-- ** setDragDestRow #method:setDragDestRow#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetDragDestRowMethodInfo        ,
#endif
    treeViewSetDragDestRow                  ,


-- ** setEnableSearch #method:setEnableSearch#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetEnableSearchMethodInfo       ,
#endif
    treeViewSetEnableSearch                 ,


-- ** setEnableTreeLines #method:setEnableTreeLines#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetEnableTreeLinesMethodInfo    ,
#endif
    treeViewSetEnableTreeLines              ,


-- ** setExpanderColumn #method:setExpanderColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetExpanderColumnMethodInfo     ,
#endif
    treeViewSetExpanderColumn               ,


-- ** setFixedHeightMode #method:setFixedHeightMode#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetFixedHeightModeMethodInfo    ,
#endif
    treeViewSetFixedHeightMode              ,


-- ** setGridLines #method:setGridLines#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetGridLinesMethodInfo          ,
#endif
    treeViewSetGridLines                    ,


-- ** setHeadersClickable #method:setHeadersClickable#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetHeadersClickableMethodInfo   ,
#endif
    treeViewSetHeadersClickable             ,


-- ** setHeadersVisible #method:setHeadersVisible#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetHeadersVisibleMethodInfo     ,
#endif
    treeViewSetHeadersVisible               ,


-- ** setHoverExpand #method:setHoverExpand#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetHoverExpandMethodInfo        ,
#endif
    treeViewSetHoverExpand                  ,


-- ** setHoverSelection #method:setHoverSelection#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetHoverSelectionMethodInfo     ,
#endif
    treeViewSetHoverSelection               ,


-- ** setLevelIndentation #method:setLevelIndentation#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetLevelIndentationMethodInfo   ,
#endif
    treeViewSetLevelIndentation             ,


-- ** setModel #method:setModel#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetModelMethodInfo              ,
#endif
    treeViewSetModel                        ,


-- ** setReorderable #method:setReorderable#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetReorderableMethodInfo        ,
#endif
    treeViewSetReorderable                  ,


-- ** setRowSeparatorFunc #method:setRowSeparatorFunc#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetRowSeparatorFuncMethodInfo   ,
#endif
    treeViewSetRowSeparatorFunc             ,


-- ** setRubberBanding #method:setRubberBanding#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetRubberBandingMethodInfo      ,
#endif
    treeViewSetRubberBanding                ,


-- ** setSearchColumn #method:setSearchColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetSearchColumnMethodInfo       ,
#endif
    treeViewSetSearchColumn                 ,


-- ** setSearchEntry #method:setSearchEntry#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetSearchEntryMethodInfo        ,
#endif
    treeViewSetSearchEntry                  ,


-- ** setSearchEqualFunc #method:setSearchEqualFunc#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetSearchEqualFuncMethodInfo    ,
#endif
    treeViewSetSearchEqualFunc              ,


-- ** setShowExpanders #method:setShowExpanders#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetShowExpandersMethodInfo      ,
#endif
    treeViewSetShowExpanders                ,


-- ** setTooltipCell #method:setTooltipCell#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetTooltipCellMethodInfo        ,
#endif
    treeViewSetTooltipCell                  ,


-- ** setTooltipColumn #method:setTooltipColumn#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetTooltipColumnMethodInfo      ,
#endif
    treeViewSetTooltipColumn                ,


-- ** setTooltipRow #method:setTooltipRow#

#if defined(ENABLE_OVERLOADING)
    TreeViewSetTooltipRowMethodInfo         ,
#endif
    treeViewSetTooltipRow                   ,


-- ** unsetRowsDragDest #method:unsetRowsDragDest#

#if defined(ENABLE_OVERLOADING)
    TreeViewUnsetRowsDragDestMethodInfo     ,
#endif
    treeViewUnsetRowsDragDest               ,


-- ** unsetRowsDragSource #method:unsetRowsDragSource#

#if defined(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.

#if defined(ENABLE_OVERLOADING)
    TreeViewActivateOnSingleClickPropertyInfo,
#endif
    constructTreeViewActivateOnSingleClick  ,
    getTreeViewActivateOnSingleClick        ,
    setTreeViewActivateOnSingleClick        ,
#if defined(ENABLE_OVERLOADING)
    treeViewActivateOnSingleClick           ,
#endif


-- ** enableGridLines #attr:enableGridLines#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewEnableGridLinesPropertyInfo     ,
#endif
    constructTreeViewEnableGridLines        ,
    getTreeViewEnableGridLines              ,
    setTreeViewEnableGridLines              ,
#if defined(ENABLE_OVERLOADING)
    treeViewEnableGridLines                 ,
#endif


-- ** enableSearch #attr:enableSearch#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewEnableSearchPropertyInfo        ,
#endif
    constructTreeViewEnableSearch           ,
    getTreeViewEnableSearch                 ,
    setTreeViewEnableSearch                 ,
#if defined(ENABLE_OVERLOADING)
    treeViewEnableSearch                    ,
#endif


-- ** enableTreeLines #attr:enableTreeLines#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewEnableTreeLinesPropertyInfo     ,
#endif
    constructTreeViewEnableTreeLines        ,
    getTreeViewEnableTreeLines              ,
    setTreeViewEnableTreeLines              ,
#if defined(ENABLE_OVERLOADING)
    treeViewEnableTreeLines                 ,
#endif


-- ** expanderColumn #attr:expanderColumn#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewExpanderColumnPropertyInfo      ,
#endif
    clearTreeViewExpanderColumn             ,
    constructTreeViewExpanderColumn         ,
    getTreeViewExpanderColumn               ,
    setTreeViewExpanderColumn               ,
#if defined(ENABLE_OVERLOADING)
    treeViewExpanderColumn                  ,
#endif


-- ** fixedHeightMode #attr:fixedHeightMode#
-- | Setting the [fixedHeightMode](#g:signal:fixedHeightMode) property to 'P.True' speeds up
-- t'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.

#if defined(ENABLE_OVERLOADING)
    TreeViewFixedHeightModePropertyInfo     ,
#endif
    constructTreeViewFixedHeightMode        ,
    getTreeViewFixedHeightMode              ,
    setTreeViewFixedHeightMode              ,
#if defined(ENABLE_OVERLOADING)
    treeViewFixedHeightMode                 ,
#endif


-- ** headersClickable #attr:headersClickable#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewHeadersClickablePropertyInfo    ,
#endif
    constructTreeViewHeadersClickable       ,
    getTreeViewHeadersClickable             ,
    setTreeViewHeadersClickable             ,
#if defined(ENABLE_OVERLOADING)
    treeViewHeadersClickable                ,
#endif


-- ** headersVisible #attr:headersVisible#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewHeadersVisiblePropertyInfo      ,
#endif
    constructTreeViewHeadersVisible         ,
    getTreeViewHeadersVisible               ,
    setTreeViewHeadersVisible               ,
#if defined(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 t'GI.Gtk.Objects.ComboBox.ComboBox' or t'GI.Gtk.Objects.EntryCompletion.EntryCompletion'.

#if defined(ENABLE_OVERLOADING)
    TreeViewHoverExpandPropertyInfo         ,
#endif
    constructTreeViewHoverExpand            ,
    getTreeViewHoverExpand                  ,
    setTreeViewHoverExpand                  ,
#if defined(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 t'GI.Gtk.Objects.ComboBox.ComboBox' or t'GI.Gtk.Objects.EntryCompletion.EntryCompletion'.

#if defined(ENABLE_OVERLOADING)
    TreeViewHoverSelectionPropertyInfo      ,
#endif
    constructTreeViewHoverSelection         ,
    getTreeViewHoverSelection               ,
    setTreeViewHoverSelection               ,
#if defined(ENABLE_OVERLOADING)
    treeViewHoverSelection                  ,
#endif


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

#if defined(ENABLE_OVERLOADING)
    TreeViewLevelIndentationPropertyInfo    ,
#endif
    constructTreeViewLevelIndentation       ,
    getTreeViewLevelIndentation             ,
    setTreeViewLevelIndentation             ,
#if defined(ENABLE_OVERLOADING)
    treeViewLevelIndentation                ,
#endif


-- ** model #attr:model#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewModelPropertyInfo               ,
#endif
    clearTreeViewModel                      ,
    constructTreeViewModel                  ,
    getTreeViewModel                        ,
    setTreeViewModel                        ,
#if defined(ENABLE_OVERLOADING)
    treeViewModel                           ,
#endif


-- ** reorderable #attr:reorderable#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewReorderablePropertyInfo         ,
#endif
    constructTreeViewReorderable            ,
    getTreeViewReorderable                  ,
    setTreeViewReorderable                  ,
#if defined(ENABLE_OVERLOADING)
    treeViewReorderable                     ,
#endif


-- ** rubberBanding #attr:rubberBanding#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewRubberBandingPropertyInfo       ,
#endif
    constructTreeViewRubberBanding          ,
    getTreeViewRubberBanding                ,
    setTreeViewRubberBanding                ,
#if defined(ENABLE_OVERLOADING)
    treeViewRubberBanding                   ,
#endif


-- ** searchColumn #attr:searchColumn#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewSearchColumnPropertyInfo        ,
#endif
    constructTreeViewSearchColumn           ,
    getTreeViewSearchColumn                 ,
    setTreeViewSearchColumn                 ,
#if defined(ENABLE_OVERLOADING)
    treeViewSearchColumn                    ,
#endif


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

#if defined(ENABLE_OVERLOADING)
    TreeViewShowExpandersPropertyInfo       ,
#endif
    constructTreeViewShowExpanders          ,
    getTreeViewShowExpanders                ,
    setTreeViewShowExpanders                ,
#if defined(ENABLE_OVERLOADING)
    treeViewShowExpanders                   ,
#endif


-- ** tooltipColumn #attr:tooltipColumn#
-- | /No description available in the introspection data./

#if defined(ENABLE_OVERLOADING)
    TreeViewTooltipColumnPropertyInfo       ,
#endif
    constructTreeViewTooltipColumn          ,
    getTreeViewTooltipColumn                ,
    setTreeViewTooltipColumn                ,
#if defined(ENABLE_OVERLOADING)
    treeViewTooltipColumn                   ,
#endif




 -- * Signals


-- ** columnsChanged #signal:columnsChanged#

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


-- ** cursorChanged #signal:cursorChanged#

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


-- ** expandCollapseCursorRow #signal:expandCollapseCursorRow#

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


-- ** moveCursor #signal:moveCursor#

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


-- ** rowActivated #signal:rowActivated#

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


-- ** rowCollapsed #signal:rowCollapsed#

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


-- ** rowExpanded #signal:rowExpanded#

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


-- ** selectAll #signal:selectAll#

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


-- ** selectCursorParent #signal:selectCursorParent#

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


-- ** selectCursorRow #signal:selectCursorRow#

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


-- ** startInteractiveSearch #signal:startInteractiveSearch#

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


-- ** testCollapseRow #signal:testCollapseRow#

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


-- ** testExpandRow #signal:testExpandRow#

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


-- ** toggleCursorRow #signal:toggleCursorRow#

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


-- ** unselectAll #signal:unselectAll#

    C_TreeViewUnselectAllCallback           ,
    TreeViewUnselectAllCallback             ,
#if defined(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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
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.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
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 GHC.OverloadedLabels as OL
import qualified GHC.Records as R

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.Interfaces.Paintable as Gdk.Paintable
import qualified GI.Gdk.Structs.ContentFormats as Gdk.ContentFormats
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.Accessible as Gtk.Accessible
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Buildable as Gtk.Buildable
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.ConstraintTarget as Gtk.ConstraintTarget
import {-# SOURCE #-} qualified GI.Gtk.Interfaces.Editable as Gtk.Editable
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.CellRenderer as Gtk.CellRenderer
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.TreeIter as Gtk.TreeIter
import {-# SOURCE #-} qualified GI.Gtk.Structs.TreePath as Gtk.TreePath

-- | Memory-managed wrapper type.
newtype TreeView = TreeView (SP.ManagedPtr TreeView)
    deriving (TreeView -> TreeView -> Bool
(TreeView -> TreeView -> Bool)
-> (TreeView -> TreeView -> Bool) -> Eq TreeView
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TreeView -> TreeView -> Bool
$c/= :: TreeView -> TreeView -> Bool
== :: TreeView -> TreeView -> Bool
$c== :: TreeView -> TreeView -> Bool
Eq)

instance SP.ManagedPtrNewtype TreeView where
    toManagedPtr :: TreeView -> ManagedPtr TreeView
toManagedPtr (TreeView ManagedPtr TreeView
p) = ManagedPtr TreeView
p

foreign import ccall "gtk_tree_view_get_type"
    c_gtk_tree_view_get_type :: IO B.Types.GType

instance B.Types.TypedObject TreeView where
    glibType :: IO GType
glibType = IO GType
c_gtk_tree_view_get_type

instance B.Types.GObject TreeView

-- | Type class for types which can be safely cast to `TreeView`, for instance with `toTreeView`.
class (SP.GObject o, O.IsDescendantOf TreeView o) => IsTreeView o
instance (SP.GObject o, O.IsDescendantOf TreeView o) => IsTreeView o

instance O.HasParentTypes TreeView
type instance O.ParentTypes TreeView = '[Gtk.Widget.Widget, GObject.Object.Object, Gtk.Accessible.Accessible, Gtk.Buildable.Buildable, Gtk.ConstraintTarget.ConstraintTarget, Gtk.Scrollable.Scrollable]

-- | Cast to `TreeView`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toTreeView :: (MIO.MonadIO m, IsTreeView o) => o -> m TreeView
toTreeView :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> m TreeView
toTreeView = IO TreeView -> m TreeView
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO TreeView -> m TreeView)
-> (o -> IO TreeView) -> o -> m TreeView
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr TreeView -> TreeView) -> o -> IO TreeView
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr TreeView -> TreeView
TreeView

-- | Convert 'TreeView' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe TreeView) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_tree_view_get_type
    gvalueSet_ :: Ptr GValue -> Maybe TreeView -> IO ()
gvalueSet_ Ptr GValue
gv Maybe TreeView
P.Nothing = Ptr GValue -> Ptr TreeView -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr TreeView
forall a. Ptr a
FP.nullPtr :: FP.Ptr TreeView)
    gvalueSet_ Ptr GValue
gv (P.Just TreeView
obj) = TreeView -> (Ptr TreeView -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr TreeView
obj (Ptr GValue -> Ptr TreeView -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe TreeView)
gvalueGet_ Ptr GValue
gv = do
        Ptr TreeView
ptr <- Ptr GValue -> IO (Ptr TreeView)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr TreeView)
        if Ptr TreeView
ptr Ptr TreeView -> Ptr TreeView -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr TreeView
forall a. Ptr a
FP.nullPtr
        then TreeView -> Maybe TreeView
forall a. a -> Maybe a
P.Just (TreeView -> Maybe TreeView) -> IO TreeView -> IO (Maybe TreeView)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr TreeView -> TreeView) -> Ptr TreeView -> IO TreeView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr TreeView -> TreeView
TreeView Ptr TreeView
ptr
        else Maybe TreeView -> IO (Maybe TreeView)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TreeView
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveTreeViewMethod (t :: Symbol) (o :: *) :: * where
    ResolveTreeViewMethod "actionSetEnabled" o = Gtk.Widget.WidgetActionSetEnabledMethodInfo
    ResolveTreeViewMethod "activate" o = Gtk.Widget.WidgetActivateMethodInfo
    ResolveTreeViewMethod "activateAction" o = Gtk.Widget.WidgetActivateActionMethodInfo
    ResolveTreeViewMethod "activateDefault" o = Gtk.Widget.WidgetActivateDefaultMethodInfo
    ResolveTreeViewMethod "addController" o = Gtk.Widget.WidgetAddControllerMethodInfo
    ResolveTreeViewMethod "addCssClass" o = Gtk.Widget.WidgetAddCssClassMethodInfo
    ResolveTreeViewMethod "addMnemonicLabel" o = Gtk.Widget.WidgetAddMnemonicLabelMethodInfo
    ResolveTreeViewMethod "addTickCallback" o = Gtk.Widget.WidgetAddTickCallbackMethodInfo
    ResolveTreeViewMethod "allocate" o = Gtk.Widget.WidgetAllocateMethodInfo
    ResolveTreeViewMethod "appendColumn" o = TreeViewAppendColumnMethodInfo
    ResolveTreeViewMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveTreeViewMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveTreeViewMethod "childFocus" o = Gtk.Widget.WidgetChildFocusMethodInfo
    ResolveTreeViewMethod "collapseAll" o = TreeViewCollapseAllMethodInfo
    ResolveTreeViewMethod "collapseRow" o = TreeViewCollapseRowMethodInfo
    ResolveTreeViewMethod "columnsAutosize" o = TreeViewColumnsAutosizeMethodInfo
    ResolveTreeViewMethod "computeBounds" o = Gtk.Widget.WidgetComputeBoundsMethodInfo
    ResolveTreeViewMethod "computeExpand" o = Gtk.Widget.WidgetComputeExpandMethodInfo
    ResolveTreeViewMethod "computePoint" o = Gtk.Widget.WidgetComputePointMethodInfo
    ResolveTreeViewMethod "computeTransform" o = Gtk.Widget.WidgetComputeTransformMethodInfo
    ResolveTreeViewMethod "contains" o = Gtk.Widget.WidgetContainsMethodInfo
    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 "dragCheckThreshold" o = Gtk.Widget.WidgetDragCheckThresholdMethodInfo
    ResolveTreeViewMethod "enableModelDragDest" o = TreeViewEnableModelDragDestMethodInfo
    ResolveTreeViewMethod "enableModelDragSource" o = TreeViewEnableModelDragSourceMethodInfo
    ResolveTreeViewMethod "errorBell" o = Gtk.Widget.WidgetErrorBellMethodInfo
    ResolveTreeViewMethod "expandAll" o = TreeViewExpandAllMethodInfo
    ResolveTreeViewMethod "expandRow" o = TreeViewExpandRowMethodInfo
    ResolveTreeViewMethod "expandToPath" o = TreeViewExpandToPathMethodInfo
    ResolveTreeViewMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveTreeViewMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveTreeViewMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveTreeViewMethod "grabFocus" o = Gtk.Widget.WidgetGrabFocusMethodInfo
    ResolveTreeViewMethod "hasCssClass" o = Gtk.Widget.WidgetHasCssClassMethodInfo
    ResolveTreeViewMethod "hasDefault" o = Gtk.Widget.WidgetHasDefaultMethodInfo
    ResolveTreeViewMethod "hasFocus" o = Gtk.Widget.WidgetHasFocusMethodInfo
    ResolveTreeViewMethod "hasVisibleFocus" o = Gtk.Widget.WidgetHasVisibleFocusMethodInfo
    ResolveTreeViewMethod "hide" o = Gtk.Widget.WidgetHideMethodInfo
    ResolveTreeViewMethod "inDestruction" o = Gtk.Widget.WidgetInDestructionMethodInfo
    ResolveTreeViewMethod "initTemplate" o = Gtk.Widget.WidgetInitTemplateMethodInfo
    ResolveTreeViewMethod "insertActionGroup" o = Gtk.Widget.WidgetInsertActionGroupMethodInfo
    ResolveTreeViewMethod "insertAfter" o = Gtk.Widget.WidgetInsertAfterMethodInfo
    ResolveTreeViewMethod "insertBefore" o = Gtk.Widget.WidgetInsertBeforeMethodInfo
    ResolveTreeViewMethod "insertColumn" o = TreeViewInsertColumnMethodInfo
    ResolveTreeViewMethod "insertColumnWithDataFunc" o = TreeViewInsertColumnWithDataFuncMethodInfo
    ResolveTreeViewMethod "isAncestor" o = Gtk.Widget.WidgetIsAncestorMethodInfo
    ResolveTreeViewMethod "isBlankAtPos" o = TreeViewIsBlankAtPosMethodInfo
    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 "isVisible" o = Gtk.Widget.WidgetIsVisibleMethodInfo
    ResolveTreeViewMethod "keynavFailed" o = Gtk.Widget.WidgetKeynavFailedMethodInfo
    ResolveTreeViewMethod "listMnemonicLabels" o = Gtk.Widget.WidgetListMnemonicLabelsMethodInfo
    ResolveTreeViewMethod "map" o = Gtk.Widget.WidgetMapMethodInfo
    ResolveTreeViewMethod "mapExpandedRows" o = TreeViewMapExpandedRowsMethodInfo
    ResolveTreeViewMethod "measure" o = Gtk.Widget.WidgetMeasureMethodInfo
    ResolveTreeViewMethod "mnemonicActivate" o = Gtk.Widget.WidgetMnemonicActivateMethodInfo
    ResolveTreeViewMethod "moveColumnAfter" o = TreeViewMoveColumnAfterMethodInfo
    ResolveTreeViewMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveTreeViewMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveTreeViewMethod "observeChildren" o = Gtk.Widget.WidgetObserveChildrenMethodInfo
    ResolveTreeViewMethod "observeControllers" o = Gtk.Widget.WidgetObserveControllersMethodInfo
    ResolveTreeViewMethod "pick" o = Gtk.Widget.WidgetPickMethodInfo
    ResolveTreeViewMethod "queueAllocate" o = Gtk.Widget.WidgetQueueAllocateMethodInfo
    ResolveTreeViewMethod "queueDraw" o = Gtk.Widget.WidgetQueueDrawMethodInfo
    ResolveTreeViewMethod "queueResize" o = Gtk.Widget.WidgetQueueResizeMethodInfo
    ResolveTreeViewMethod "realize" o = Gtk.Widget.WidgetRealizeMethodInfo
    ResolveTreeViewMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveTreeViewMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveTreeViewMethod "removeColumn" o = TreeViewRemoveColumnMethodInfo
    ResolveTreeViewMethod "removeController" o = Gtk.Widget.WidgetRemoveControllerMethodInfo
    ResolveTreeViewMethod "removeCssClass" o = Gtk.Widget.WidgetRemoveCssClassMethodInfo
    ResolveTreeViewMethod "removeMnemonicLabel" o = Gtk.Widget.WidgetRemoveMnemonicLabelMethodInfo
    ResolveTreeViewMethod "removeTickCallback" o = Gtk.Widget.WidgetRemoveTickCallbackMethodInfo
    ResolveTreeViewMethod "resetProperty" o = Gtk.Accessible.AccessibleResetPropertyMethodInfo
    ResolveTreeViewMethod "resetRelation" o = Gtk.Accessible.AccessibleResetRelationMethodInfo
    ResolveTreeViewMethod "resetState" o = Gtk.Accessible.AccessibleResetStateMethodInfo
    ResolveTreeViewMethod "rowActivated" o = TreeViewRowActivatedMethodInfo
    ResolveTreeViewMethod "rowExpanded" o = TreeViewRowExpandedMethodInfo
    ResolveTreeViewMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveTreeViewMethod "scrollToCell" o = TreeViewScrollToCellMethodInfo
    ResolveTreeViewMethod "scrollToPoint" o = TreeViewScrollToPointMethodInfo
    ResolveTreeViewMethod "shouldLayout" o = Gtk.Widget.WidgetShouldLayoutMethodInfo
    ResolveTreeViewMethod "show" o = Gtk.Widget.WidgetShowMethodInfo
    ResolveTreeViewMethod "sizeAllocate" o = Gtk.Widget.WidgetSizeAllocateMethodInfo
    ResolveTreeViewMethod "snapshotChild" o = Gtk.Widget.WidgetSnapshotChildMethodInfo
    ResolveTreeViewMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveTreeViewMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    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 "unsetRowsDragDest" o = TreeViewUnsetRowsDragDestMethodInfo
    ResolveTreeViewMethod "unsetRowsDragSource" o = TreeViewUnsetRowsDragSourceMethodInfo
    ResolveTreeViewMethod "unsetStateFlags" o = Gtk.Widget.WidgetUnsetStateFlagsMethodInfo
    ResolveTreeViewMethod "updateProperty" o = Gtk.Accessible.AccessibleUpdatePropertyMethodInfo
    ResolveTreeViewMethod "updateRelation" o = Gtk.Accessible.AccessibleUpdateRelationMethodInfo
    ResolveTreeViewMethod "updateState" o = Gtk.Accessible.AccessibleUpdateStateMethodInfo
    ResolveTreeViewMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveTreeViewMethod "getAccessibleRole" o = Gtk.Accessible.AccessibleGetAccessibleRoleMethodInfo
    ResolveTreeViewMethod "getActivateOnSingleClick" o = TreeViewGetActivateOnSingleClickMethodInfo
    ResolveTreeViewMethod "getAllocatedBaseline" o = Gtk.Widget.WidgetGetAllocatedBaselineMethodInfo
    ResolveTreeViewMethod "getAllocatedHeight" o = Gtk.Widget.WidgetGetAllocatedHeightMethodInfo
    ResolveTreeViewMethod "getAllocatedWidth" o = Gtk.Widget.WidgetGetAllocatedWidthMethodInfo
    ResolveTreeViewMethod "getAllocation" o = Gtk.Widget.WidgetGetAllocationMethodInfo
    ResolveTreeViewMethod "getAncestor" o = Gtk.Widget.WidgetGetAncestorMethodInfo
    ResolveTreeViewMethod "getBackgroundArea" o = TreeViewGetBackgroundAreaMethodInfo
    ResolveTreeViewMethod "getBorder" o = Gtk.Scrollable.ScrollableGetBorderMethodInfo
    ResolveTreeViewMethod "getBuildableId" o = Gtk.Buildable.BuildableGetBuildableIdMethodInfo
    ResolveTreeViewMethod "getCanFocus" o = Gtk.Widget.WidgetGetCanFocusMethodInfo
    ResolveTreeViewMethod "getCanTarget" o = Gtk.Widget.WidgetGetCanTargetMethodInfo
    ResolveTreeViewMethod "getCellArea" o = TreeViewGetCellAreaMethodInfo
    ResolveTreeViewMethod "getChildVisible" o = Gtk.Widget.WidgetGetChildVisibleMethodInfo
    ResolveTreeViewMethod "getClipboard" o = Gtk.Widget.WidgetGetClipboardMethodInfo
    ResolveTreeViewMethod "getColumn" o = TreeViewGetColumnMethodInfo
    ResolveTreeViewMethod "getColumns" o = TreeViewGetColumnsMethodInfo
    ResolveTreeViewMethod "getCssClasses" o = Gtk.Widget.WidgetGetCssClassesMethodInfo
    ResolveTreeViewMethod "getCssName" o = Gtk.Widget.WidgetGetCssNameMethodInfo
    ResolveTreeViewMethod "getCursor" o = TreeViewGetCursorMethodInfo
    ResolveTreeViewMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveTreeViewMethod "getDestRowAtPos" o = TreeViewGetDestRowAtPosMethodInfo
    ResolveTreeViewMethod "getDirection" o = Gtk.Widget.WidgetGetDirectionMethodInfo
    ResolveTreeViewMethod "getDisplay" o = Gtk.Widget.WidgetGetDisplayMethodInfo
    ResolveTreeViewMethod "getDragDestRow" o = TreeViewGetDragDestRowMethodInfo
    ResolveTreeViewMethod "getEnableSearch" o = TreeViewGetEnableSearchMethodInfo
    ResolveTreeViewMethod "getEnableTreeLines" o = TreeViewGetEnableTreeLinesMethodInfo
    ResolveTreeViewMethod "getExpanderColumn" o = TreeViewGetExpanderColumnMethodInfo
    ResolveTreeViewMethod "getFirstChild" o = Gtk.Widget.WidgetGetFirstChildMethodInfo
    ResolveTreeViewMethod "getFixedHeightMode" o = TreeViewGetFixedHeightModeMethodInfo
    ResolveTreeViewMethod "getFocusChild" o = Gtk.Widget.WidgetGetFocusChildMethodInfo
    ResolveTreeViewMethod "getFocusOnClick" o = Gtk.Widget.WidgetGetFocusOnClickMethodInfo
    ResolveTreeViewMethod "getFocusable" o = Gtk.Widget.WidgetGetFocusableMethodInfo
    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 = Gtk.Scrollable.ScrollableGetHadjustmentMethodInfo
    ResolveTreeViewMethod "getHalign" o = Gtk.Widget.WidgetGetHalignMethodInfo
    ResolveTreeViewMethod "getHasTooltip" o = Gtk.Widget.WidgetGetHasTooltipMethodInfo
    ResolveTreeViewMethod "getHeadersClickable" o = TreeViewGetHeadersClickableMethodInfo
    ResolveTreeViewMethod "getHeadersVisible" o = TreeViewGetHeadersVisibleMethodInfo
    ResolveTreeViewMethod "getHeight" o = Gtk.Widget.WidgetGetHeightMethodInfo
    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 "getLastChild" o = Gtk.Widget.WidgetGetLastChildMethodInfo
    ResolveTreeViewMethod "getLayoutManager" o = Gtk.Widget.WidgetGetLayoutManagerMethodInfo
    ResolveTreeViewMethod "getLevelIndentation" o = TreeViewGetLevelIndentationMethodInfo
    ResolveTreeViewMethod "getMapped" o = Gtk.Widget.WidgetGetMappedMethodInfo
    ResolveTreeViewMethod "getMarginBottom" o = Gtk.Widget.WidgetGetMarginBottomMethodInfo
    ResolveTreeViewMethod "getMarginEnd" o = Gtk.Widget.WidgetGetMarginEndMethodInfo
    ResolveTreeViewMethod "getMarginStart" o = Gtk.Widget.WidgetGetMarginStartMethodInfo
    ResolveTreeViewMethod "getMarginTop" o = Gtk.Widget.WidgetGetMarginTopMethodInfo
    ResolveTreeViewMethod "getModel" o = TreeViewGetModelMethodInfo
    ResolveTreeViewMethod "getNColumns" o = TreeViewGetNColumnsMethodInfo
    ResolveTreeViewMethod "getName" o = Gtk.Widget.WidgetGetNameMethodInfo
    ResolveTreeViewMethod "getNative" o = Gtk.Widget.WidgetGetNativeMethodInfo
    ResolveTreeViewMethod "getNextSibling" o = Gtk.Widget.WidgetGetNextSiblingMethodInfo
    ResolveTreeViewMethod "getOpacity" o = Gtk.Widget.WidgetGetOpacityMethodInfo
    ResolveTreeViewMethod "getOverflow" o = Gtk.Widget.WidgetGetOverflowMethodInfo
    ResolveTreeViewMethod "getPangoContext" o = Gtk.Widget.WidgetGetPangoContextMethodInfo
    ResolveTreeViewMethod "getParent" o = Gtk.Widget.WidgetGetParentMethodInfo
    ResolveTreeViewMethod "getPathAtPos" o = TreeViewGetPathAtPosMethodInfo
    ResolveTreeViewMethod "getPreferredSize" o = Gtk.Widget.WidgetGetPreferredSizeMethodInfo
    ResolveTreeViewMethod "getPrevSibling" o = Gtk.Widget.WidgetGetPrevSiblingMethodInfo
    ResolveTreeViewMethod "getPrimaryClipboard" o = Gtk.Widget.WidgetGetPrimaryClipboardMethodInfo
    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 "getRoot" o = Gtk.Widget.WidgetGetRootMethodInfo
    ResolveTreeViewMethod "getRubberBanding" o = TreeViewGetRubberBandingMethodInfo
    ResolveTreeViewMethod "getScaleFactor" o = Gtk.Widget.WidgetGetScaleFactorMethodInfo
    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 "getSize" o = Gtk.Widget.WidgetGetSizeMethodInfo
    ResolveTreeViewMethod "getSizeRequest" o = Gtk.Widget.WidgetGetSizeRequestMethodInfo
    ResolveTreeViewMethod "getStateFlags" o = Gtk.Widget.WidgetGetStateFlagsMethodInfo
    ResolveTreeViewMethod "getStyleContext" o = Gtk.Widget.WidgetGetStyleContextMethodInfo
    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 "getVadjustment" o = Gtk.Scrollable.ScrollableGetVadjustmentMethodInfo
    ResolveTreeViewMethod "getValign" o = Gtk.Widget.WidgetGetValignMethodInfo
    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 "getVscrollPolicy" o = Gtk.Scrollable.ScrollableGetVscrollPolicyMethodInfo
    ResolveTreeViewMethod "getWidth" o = Gtk.Widget.WidgetGetWidthMethodInfo
    ResolveTreeViewMethod "setActivateOnSingleClick" o = TreeViewSetActivateOnSingleClickMethodInfo
    ResolveTreeViewMethod "setCanFocus" o = Gtk.Widget.WidgetSetCanFocusMethodInfo
    ResolveTreeViewMethod "setCanTarget" o = Gtk.Widget.WidgetSetCanTargetMethodInfo
    ResolveTreeViewMethod "setChildVisible" o = Gtk.Widget.WidgetSetChildVisibleMethodInfo
    ResolveTreeViewMethod "setColumnDragFunction" o = TreeViewSetColumnDragFunctionMethodInfo
    ResolveTreeViewMethod "setCssClasses" o = Gtk.Widget.WidgetSetCssClassesMethodInfo
    ResolveTreeViewMethod "setCursor" o = TreeViewSetCursorMethodInfo
    ResolveTreeViewMethod "setCursorFromName" o = Gtk.Widget.WidgetSetCursorFromNameMethodInfo
    ResolveTreeViewMethod "setCursorOnCell" o = TreeViewSetCursorOnCellMethodInfo
    ResolveTreeViewMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveTreeViewMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveTreeViewMethod "setDirection" o = Gtk.Widget.WidgetSetDirectionMethodInfo
    ResolveTreeViewMethod "setDragDestRow" o = TreeViewSetDragDestRowMethodInfo
    ResolveTreeViewMethod "setEnableSearch" o = TreeViewSetEnableSearchMethodInfo
    ResolveTreeViewMethod "setEnableTreeLines" o = TreeViewSetEnableTreeLinesMethodInfo
    ResolveTreeViewMethod "setExpanderColumn" o = TreeViewSetExpanderColumnMethodInfo
    ResolveTreeViewMethod "setFixedHeightMode" o = TreeViewSetFixedHeightModeMethodInfo
    ResolveTreeViewMethod "setFocusChild" o = Gtk.Widget.WidgetSetFocusChildMethodInfo
    ResolveTreeViewMethod "setFocusOnClick" o = Gtk.Widget.WidgetSetFocusOnClickMethodInfo
    ResolveTreeViewMethod "setFocusable" o = Gtk.Widget.WidgetSetFocusableMethodInfo
    ResolveTreeViewMethod "setFontMap" o = Gtk.Widget.WidgetSetFontMapMethodInfo
    ResolveTreeViewMethod "setFontOptions" o = Gtk.Widget.WidgetSetFontOptionsMethodInfo
    ResolveTreeViewMethod "setGridLines" o = TreeViewSetGridLinesMethodInfo
    ResolveTreeViewMethod "setHadjustment" o = Gtk.Scrollable.ScrollableSetHadjustmentMethodInfo
    ResolveTreeViewMethod "setHalign" o = Gtk.Widget.WidgetSetHalignMethodInfo
    ResolveTreeViewMethod "setHasTooltip" o = Gtk.Widget.WidgetSetHasTooltipMethodInfo
    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 "setLayoutManager" o = Gtk.Widget.WidgetSetLayoutManagerMethodInfo
    ResolveTreeViewMethod "setLevelIndentation" o = TreeViewSetLevelIndentationMethodInfo
    ResolveTreeViewMethod "setMarginBottom" o = Gtk.Widget.WidgetSetMarginBottomMethodInfo
    ResolveTreeViewMethod "setMarginEnd" o = Gtk.Widget.WidgetSetMarginEndMethodInfo
    ResolveTreeViewMethod "setMarginStart" o = Gtk.Widget.WidgetSetMarginStartMethodInfo
    ResolveTreeViewMethod "setMarginTop" o = Gtk.Widget.WidgetSetMarginTopMethodInfo
    ResolveTreeViewMethod "setModel" o = TreeViewSetModelMethodInfo
    ResolveTreeViewMethod "setName" o = Gtk.Widget.WidgetSetNameMethodInfo
    ResolveTreeViewMethod "setOpacity" o = Gtk.Widget.WidgetSetOpacityMethodInfo
    ResolveTreeViewMethod "setOverflow" o = Gtk.Widget.WidgetSetOverflowMethodInfo
    ResolveTreeViewMethod "setParent" o = Gtk.Widget.WidgetSetParentMethodInfo
    ResolveTreeViewMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveTreeViewMethod "setReceivesDefault" o = Gtk.Widget.WidgetSetReceivesDefaultMethodInfo
    ResolveTreeViewMethod "setReorderable" o = TreeViewSetReorderableMethodInfo
    ResolveTreeViewMethod "setRowSeparatorFunc" o = TreeViewSetRowSeparatorFuncMethodInfo
    ResolveTreeViewMethod "setRubberBanding" o = TreeViewSetRubberBandingMethodInfo
    ResolveTreeViewMethod "setSearchColumn" o = TreeViewSetSearchColumnMethodInfo
    ResolveTreeViewMethod "setSearchEntry" o = TreeViewSetSearchEntryMethodInfo
    ResolveTreeViewMethod "setSearchEqualFunc" o = TreeViewSetSearchEqualFuncMethodInfo
    ResolveTreeViewMethod "setSensitive" o = Gtk.Widget.WidgetSetSensitiveMethodInfo
    ResolveTreeViewMethod "setShowExpanders" o = TreeViewSetShowExpandersMethodInfo
    ResolveTreeViewMethod "setSizeRequest" o = Gtk.Widget.WidgetSetSizeRequestMethodInfo
    ResolveTreeViewMethod "setStateFlags" o = Gtk.Widget.WidgetSetStateFlagsMethodInfo
    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 "setVadjustment" o = Gtk.Scrollable.ScrollableSetVadjustmentMethodInfo
    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 "setVscrollPolicy" o = Gtk.Scrollable.ScrollableSetVscrollPolicyMethodInfo
    ResolveTreeViewMethod l o = O.MethodResolutionFailed l o

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

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveTreeViewMethod t TreeView, O.OverloadedMethod info TreeView p, R.HasField t TreeView p) => R.HasField t TreeView p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveTreeViewMethod t TreeView, O.OverloadedMethodInfo info TreeView) => OL.IsLabel t (O.MethodProxy info TreeView) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#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 :: Maybe (IO ())
noTreeViewColumnsChangedCallback = Maybe (IO ())
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewColumnsChanged :: MonadIO m => TreeViewColumnsChangedCallback -> m (GClosure C_TreeViewColumnsChangedCallback)
genClosure_TreeViewColumnsChanged :: forall (m :: * -> *).
MonadIO m =>
IO () -> m (GClosure C_TreeViewColumnsChangedCallback)
genClosure_TreeViewColumnsChanged IO ()
cb = IO (GClosure C_TreeViewColumnsChangedCallback)
-> m (GClosure C_TreeViewColumnsChangedCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewColumnsChangedCallback)
 -> m (GClosure C_TreeViewColumnsChangedCallback))
-> IO (GClosure C_TreeViewColumnsChangedCallback)
-> m (GClosure C_TreeViewColumnsChangedCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewColumnsChangedCallback
cb' = IO () -> C_TreeViewColumnsChangedCallback
wrap_TreeViewColumnsChangedCallback IO ()
cb
    C_TreeViewColumnsChangedCallback
-> IO (FunPtr C_TreeViewColumnsChangedCallback)
mk_TreeViewColumnsChangedCallback C_TreeViewColumnsChangedCallback
cb' IO (FunPtr C_TreeViewColumnsChangedCallback)
-> (FunPtr C_TreeViewColumnsChangedCallback
    -> IO (GClosure C_TreeViewColumnsChangedCallback))
-> IO (GClosure C_TreeViewColumnsChangedCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewColumnsChangedCallback
-> IO (GClosure C_TreeViewColumnsChangedCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


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


-- | Connect a signal handler for the [columnsChanged](#signal:columnsChanged) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> IO () -> m SignalHandlerId
onTreeViewColumnsChanged a
obj IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewColumnsChangedCallback
cb' = IO () -> C_TreeViewColumnsChangedCallback
wrap_TreeViewColumnsChangedCallback IO ()
cb
    FunPtr C_TreeViewColumnsChangedCallback
cb'' <- C_TreeViewColumnsChangedCallback
-> IO (FunPtr C_TreeViewColumnsChangedCallback)
mk_TreeViewColumnsChangedCallback C_TreeViewColumnsChangedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewColumnsChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"columns-changed" FunPtr C_TreeViewColumnsChangedCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [columnsChanged](#signal:columnsChanged) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> IO () -> m SignalHandlerId
afterTreeViewColumnsChanged a
obj IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewColumnsChangedCallback
cb' = IO () -> C_TreeViewColumnsChangedCallback
wrap_TreeViewColumnsChangedCallback IO ()
cb
    FunPtr C_TreeViewColumnsChangedCallback
cb'' <- C_TreeViewColumnsChangedCallback
-> IO (FunPtr C_TreeViewColumnsChangedCallback)
mk_TreeViewColumnsChangedCallback C_TreeViewColumnsChangedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewColumnsChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"columns-changed" FunPtr C_TreeViewColumnsChangedCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


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

#endif

-- 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 :: Maybe (IO ())
noTreeViewCursorChangedCallback = Maybe (IO ())
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewCursorChanged :: MonadIO m => TreeViewCursorChangedCallback -> m (GClosure C_TreeViewCursorChangedCallback)
genClosure_TreeViewCursorChanged :: forall (m :: * -> *).
MonadIO m =>
IO () -> m (GClosure C_TreeViewColumnsChangedCallback)
genClosure_TreeViewCursorChanged IO ()
cb = IO (GClosure C_TreeViewColumnsChangedCallback)
-> m (GClosure C_TreeViewColumnsChangedCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewColumnsChangedCallback)
 -> m (GClosure C_TreeViewColumnsChangedCallback))
-> IO (GClosure C_TreeViewColumnsChangedCallback)
-> m (GClosure C_TreeViewColumnsChangedCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewColumnsChangedCallback
cb' = IO () -> C_TreeViewColumnsChangedCallback
wrap_TreeViewCursorChangedCallback IO ()
cb
    C_TreeViewColumnsChangedCallback
-> IO (FunPtr C_TreeViewColumnsChangedCallback)
mk_TreeViewCursorChangedCallback C_TreeViewColumnsChangedCallback
cb' IO (FunPtr C_TreeViewColumnsChangedCallback)
-> (FunPtr C_TreeViewColumnsChangedCallback
    -> IO (GClosure C_TreeViewColumnsChangedCallback))
-> IO (GClosure C_TreeViewColumnsChangedCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewColumnsChangedCallback
-> IO (GClosure C_TreeViewColumnsChangedCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewCursorChangedCallback` into a `C_TreeViewCursorChangedCallback`.
wrap_TreeViewCursorChangedCallback ::
    TreeViewCursorChangedCallback ->
    C_TreeViewCursorChangedCallback
wrap_TreeViewCursorChangedCallback :: IO () -> C_TreeViewColumnsChangedCallback
wrap_TreeViewCursorChangedCallback IO ()
_cb Ptr ()
_ Ptr ()
_ = do
    IO ()
_cb 


-- | Connect a signal handler for the [cursorChanged](#signal:cursorChanged) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> IO () -> m SignalHandlerId
onTreeViewCursorChanged a
obj IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewColumnsChangedCallback
cb' = IO () -> C_TreeViewColumnsChangedCallback
wrap_TreeViewCursorChangedCallback IO ()
cb
    FunPtr C_TreeViewColumnsChangedCallback
cb'' <- C_TreeViewColumnsChangedCallback
-> IO (FunPtr C_TreeViewColumnsChangedCallback)
mk_TreeViewCursorChangedCallback C_TreeViewColumnsChangedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewColumnsChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"cursor-changed" FunPtr C_TreeViewColumnsChangedCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [cursorChanged](#signal:cursorChanged) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> IO () -> m SignalHandlerId
afterTreeViewCursorChanged a
obj IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewColumnsChangedCallback
cb' = IO () -> C_TreeViewColumnsChangedCallback
wrap_TreeViewCursorChangedCallback IO ()
cb
    FunPtr C_TreeViewColumnsChangedCallback
cb'' <- C_TreeViewColumnsChangedCallback
-> IO (FunPtr C_TreeViewColumnsChangedCallback)
mk_TreeViewCursorChangedCallback C_TreeViewColumnsChangedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewColumnsChangedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"cursor-changed" FunPtr C_TreeViewColumnsChangedCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewCursorChangedSignalInfo
instance SignalInfo TreeViewCursorChangedSignalInfo where
    type HaskellCallbackType TreeViewCursorChangedSignalInfo = TreeViewCursorChangedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewCursorChangedCallback cb
        cb'' <- mk_TreeViewCursorChangedCallback cb'
        connectSignalFunPtr obj "cursor-changed" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewExpandCollapseCursorRowCallback
noTreeViewExpandCollapseCursorRowCallback = Maybe TreeViewExpandCollapseCursorRowCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewExpandCollapseCursorRow :: MonadIO m => TreeViewExpandCollapseCursorRowCallback -> m (GClosure C_TreeViewExpandCollapseCursorRowCallback)
genClosure_TreeViewExpandCollapseCursorRow :: forall (m :: * -> *).
MonadIO m =>
TreeViewExpandCollapseCursorRowCallback
-> m (GClosure C_TreeViewExpandCollapseCursorRowCallback)
genClosure_TreeViewExpandCollapseCursorRow TreeViewExpandCollapseCursorRowCallback
cb = IO (GClosure C_TreeViewExpandCollapseCursorRowCallback)
-> m (GClosure C_TreeViewExpandCollapseCursorRowCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewExpandCollapseCursorRowCallback)
 -> m (GClosure C_TreeViewExpandCollapseCursorRowCallback))
-> IO (GClosure C_TreeViewExpandCollapseCursorRowCallback)
-> m (GClosure C_TreeViewExpandCollapseCursorRowCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewExpandCollapseCursorRowCallback
cb' = TreeViewExpandCollapseCursorRowCallback
-> C_TreeViewExpandCollapseCursorRowCallback
wrap_TreeViewExpandCollapseCursorRowCallback TreeViewExpandCollapseCursorRowCallback
cb
    C_TreeViewExpandCollapseCursorRowCallback
-> IO (FunPtr C_TreeViewExpandCollapseCursorRowCallback)
mk_TreeViewExpandCollapseCursorRowCallback C_TreeViewExpandCollapseCursorRowCallback
cb' IO (FunPtr C_TreeViewExpandCollapseCursorRowCallback)
-> (FunPtr C_TreeViewExpandCollapseCursorRowCallback
    -> IO (GClosure C_TreeViewExpandCollapseCursorRowCallback))
-> IO (GClosure C_TreeViewExpandCollapseCursorRowCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewExpandCollapseCursorRowCallback
-> IO (GClosure C_TreeViewExpandCollapseCursorRowCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewExpandCollapseCursorRowCallback` into a `C_TreeViewExpandCollapseCursorRowCallback`.
wrap_TreeViewExpandCollapseCursorRowCallback ::
    TreeViewExpandCollapseCursorRowCallback ->
    C_TreeViewExpandCollapseCursorRowCallback
wrap_TreeViewExpandCollapseCursorRowCallback :: TreeViewExpandCollapseCursorRowCallback
-> C_TreeViewExpandCollapseCursorRowCallback
wrap_TreeViewExpandCollapseCursorRowCallback TreeViewExpandCollapseCursorRowCallback
_cb Ptr ()
_ CInt
object CInt
p0 CInt
p1 Ptr ()
_ = do
    let object' :: Bool
object' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
object
    let p0' :: Bool
p0' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
p0
    let p1' :: Bool
p1' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
p1
    Bool
result <- TreeViewExpandCollapseCursorRowCallback
_cb  Bool
object' Bool
p0' Bool
p1'
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [expandCollapseCursorRow](#signal:expandCollapseCursorRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewExpandCollapseCursorRowCallback -> m SignalHandlerId
onTreeViewExpandCollapseCursorRow a
obj TreeViewExpandCollapseCursorRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewExpandCollapseCursorRowCallback
cb' = TreeViewExpandCollapseCursorRowCallback
-> C_TreeViewExpandCollapseCursorRowCallback
wrap_TreeViewExpandCollapseCursorRowCallback TreeViewExpandCollapseCursorRowCallback
cb
    FunPtr C_TreeViewExpandCollapseCursorRowCallback
cb'' <- C_TreeViewExpandCollapseCursorRowCallback
-> IO (FunPtr C_TreeViewExpandCollapseCursorRowCallback)
mk_TreeViewExpandCollapseCursorRowCallback C_TreeViewExpandCollapseCursorRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewExpandCollapseCursorRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"expand-collapse-cursor-row" FunPtr C_TreeViewExpandCollapseCursorRowCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [expandCollapseCursorRow](#signal:expandCollapseCursorRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewExpandCollapseCursorRowCallback -> m SignalHandlerId
afterTreeViewExpandCollapseCursorRow a
obj TreeViewExpandCollapseCursorRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewExpandCollapseCursorRowCallback
cb' = TreeViewExpandCollapseCursorRowCallback
-> C_TreeViewExpandCollapseCursorRowCallback
wrap_TreeViewExpandCollapseCursorRowCallback TreeViewExpandCollapseCursorRowCallback
cb
    FunPtr C_TreeViewExpandCollapseCursorRowCallback
cb'' <- C_TreeViewExpandCollapseCursorRowCallback
-> IO (FunPtr C_TreeViewExpandCollapseCursorRowCallback)
mk_TreeViewExpandCollapseCursorRowCallback C_TreeViewExpandCollapseCursorRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewExpandCollapseCursorRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"expand-collapse-cursor-row" FunPtr C_TreeViewExpandCollapseCursorRowCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewExpandCollapseCursorRowSignalInfo
instance SignalInfo TreeViewExpandCollapseCursorRowSignalInfo where
    type HaskellCallbackType TreeViewExpandCollapseCursorRowSignalInfo = TreeViewExpandCollapseCursorRowCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewExpandCollapseCursorRowCallback cb
        cb'' <- mk_TreeViewExpandCollapseCursorRowCallback cb'
        connectSignalFunPtr obj "expand-collapse-cursor-row" cb'' connectMode detail

#endif

-- signal TreeView::move-cursor
-- | The [moveCursor]("GI.Gtk.Objects.TreeView#g:signal:moveCursor") signal is a [keybinding
-- signal][GtkSignalAction] 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
-- [moveCursor]("GI.Gtk.Objects.TreeView#g:signal:moveCursor") does not reset the current selection.
type TreeViewMoveCursorCallback =
    Gtk.Enums.MovementStep
    -- ^ /@step@/: the granularity of the move, as a t'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.
    -> Bool
    -- ^ /@extend@/: whether to extend the selection
    -> Bool
    -- ^ /@modify@/: whether to modify the selection
    -> IO Bool
    -- ^ __Returns:__ 'P.True' if /@step@/ is supported, 'P.False' otherwise.

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

-- | Type for the callback on the (unwrapped) C side.
type C_TreeViewMoveCursorCallback =
    Ptr () ->                               -- object
    CUInt ->
    Int32 ->
    CInt ->
    CInt ->
    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 `GClosure`.
genClosure_TreeViewMoveCursor :: MonadIO m => TreeViewMoveCursorCallback -> m (GClosure C_TreeViewMoveCursorCallback)
genClosure_TreeViewMoveCursor :: forall (m :: * -> *).
MonadIO m =>
TreeViewMoveCursorCallback
-> m (GClosure C_TreeViewMoveCursorCallback)
genClosure_TreeViewMoveCursor TreeViewMoveCursorCallback
cb = IO (GClosure C_TreeViewMoveCursorCallback)
-> m (GClosure C_TreeViewMoveCursorCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewMoveCursorCallback)
 -> m (GClosure C_TreeViewMoveCursorCallback))
-> IO (GClosure C_TreeViewMoveCursorCallback)
-> m (GClosure C_TreeViewMoveCursorCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewMoveCursorCallback
cb' = TreeViewMoveCursorCallback -> C_TreeViewMoveCursorCallback
wrap_TreeViewMoveCursorCallback TreeViewMoveCursorCallback
cb
    C_TreeViewMoveCursorCallback
-> IO (FunPtr C_TreeViewMoveCursorCallback)
mk_TreeViewMoveCursorCallback C_TreeViewMoveCursorCallback
cb' IO (FunPtr C_TreeViewMoveCursorCallback)
-> (FunPtr C_TreeViewMoveCursorCallback
    -> IO (GClosure C_TreeViewMoveCursorCallback))
-> IO (GClosure C_TreeViewMoveCursorCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewMoveCursorCallback
-> IO (GClosure C_TreeViewMoveCursorCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewMoveCursorCallback` into a `C_TreeViewMoveCursorCallback`.
wrap_TreeViewMoveCursorCallback ::
    TreeViewMoveCursorCallback ->
    C_TreeViewMoveCursorCallback
wrap_TreeViewMoveCursorCallback :: TreeViewMoveCursorCallback -> C_TreeViewMoveCursorCallback
wrap_TreeViewMoveCursorCallback TreeViewMoveCursorCallback
_cb Ptr ()
_ CUInt
step Int32
direction CInt
extend CInt
modify Ptr ()
_ = do
    let step' :: MovementStep
step' = (Int -> MovementStep
forall a. Enum a => Int -> a
toEnum (Int -> MovementStep) -> (CUInt -> Int) -> CUInt -> MovementStep
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
step
    let extend' :: Bool
extend' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
extend
    let modify' :: Bool
modify' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
modify
    Bool
result <- TreeViewMoveCursorCallback
_cb  MovementStep
step' Int32
direction Bool
extend' Bool
modify'
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [moveCursor](#signal:moveCursor) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewMoveCursorCallback -> m SignalHandlerId
onTreeViewMoveCursor a
obj TreeViewMoveCursorCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewMoveCursorCallback
cb' = TreeViewMoveCursorCallback -> C_TreeViewMoveCursorCallback
wrap_TreeViewMoveCursorCallback TreeViewMoveCursorCallback
cb
    FunPtr C_TreeViewMoveCursorCallback
cb'' <- C_TreeViewMoveCursorCallback
-> IO (FunPtr C_TreeViewMoveCursorCallback)
mk_TreeViewMoveCursorCallback C_TreeViewMoveCursorCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewMoveCursorCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"move-cursor" FunPtr C_TreeViewMoveCursorCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [moveCursor](#signal:moveCursor) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewMoveCursorCallback -> m SignalHandlerId
afterTreeViewMoveCursor a
obj TreeViewMoveCursorCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewMoveCursorCallback
cb' = TreeViewMoveCursorCallback -> C_TreeViewMoveCursorCallback
wrap_TreeViewMoveCursorCallback TreeViewMoveCursorCallback
cb
    FunPtr C_TreeViewMoveCursorCallback
cb'' <- C_TreeViewMoveCursorCallback
-> IO (FunPtr C_TreeViewMoveCursorCallback)
mk_TreeViewMoveCursorCallback C_TreeViewMoveCursorCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewMoveCursorCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"move-cursor" FunPtr C_TreeViewMoveCursorCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewMoveCursorSignalInfo
instance SignalInfo TreeViewMoveCursorSignalInfo where
    type HaskellCallbackType TreeViewMoveCursorSignalInfo = TreeViewMoveCursorCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewMoveCursorCallback cb
        cb'' <- mk_TreeViewMoveCursorCallback cb'
        connectSignalFunPtr obj "move-cursor" cb'' connectMode detail

#endif

-- 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 'P.False', or when the user single clicks a row when
-- the \"activate-on-single-click\" property set to 'P.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 t'GI.Gtk.Objects.TreeSelection.TreeSelection'.
type TreeViewRowActivatedCallback =
    Gtk.TreePath.TreePath
    -- ^ /@path@/: the t'GI.Gtk.Structs.TreePath.TreePath' for the activated row
    -> Gtk.TreeViewColumn.TreeViewColumn
    -- ^ /@column@/: the t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' in which the activation occurred
    -> IO ()

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewRowActivatedCallback`@.
noTreeViewRowActivatedCallback :: Maybe TreeViewRowActivatedCallback
noTreeViewRowActivatedCallback :: Maybe TreeViewRowActivatedCallback
noTreeViewRowActivatedCallback = Maybe TreeViewRowActivatedCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewRowActivated :: MonadIO m => TreeViewRowActivatedCallback -> m (GClosure C_TreeViewRowActivatedCallback)
genClosure_TreeViewRowActivated :: forall (m :: * -> *).
MonadIO m =>
TreeViewRowActivatedCallback
-> m (GClosure C_TreeViewRowActivatedCallback)
genClosure_TreeViewRowActivated TreeViewRowActivatedCallback
cb = IO (GClosure C_TreeViewRowActivatedCallback)
-> m (GClosure C_TreeViewRowActivatedCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewRowActivatedCallback)
 -> m (GClosure C_TreeViewRowActivatedCallback))
-> IO (GClosure C_TreeViewRowActivatedCallback)
-> m (GClosure C_TreeViewRowActivatedCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowActivatedCallback
cb' = TreeViewRowActivatedCallback -> C_TreeViewRowActivatedCallback
wrap_TreeViewRowActivatedCallback TreeViewRowActivatedCallback
cb
    C_TreeViewRowActivatedCallback
-> IO (FunPtr C_TreeViewRowActivatedCallback)
mk_TreeViewRowActivatedCallback C_TreeViewRowActivatedCallback
cb' IO (FunPtr C_TreeViewRowActivatedCallback)
-> (FunPtr C_TreeViewRowActivatedCallback
    -> IO (GClosure C_TreeViewRowActivatedCallback))
-> IO (GClosure C_TreeViewRowActivatedCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewRowActivatedCallback
-> IO (GClosure C_TreeViewRowActivatedCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewRowActivatedCallback` into a `C_TreeViewRowActivatedCallback`.
wrap_TreeViewRowActivatedCallback ::
    TreeViewRowActivatedCallback ->
    C_TreeViewRowActivatedCallback
wrap_TreeViewRowActivatedCallback :: TreeViewRowActivatedCallback -> C_TreeViewRowActivatedCallback
wrap_TreeViewRowActivatedCallback TreeViewRowActivatedCallback
_cb Ptr ()
_ Ptr TreePath
path Ptr TreeViewColumn
column Ptr ()
_ = do
    (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO ()) -> IO ()) -> (TreePath -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \TreePath
path' -> do
        TreeViewColumn
column' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
column
        TreeViewRowActivatedCallback
_cb  TreePath
path' TreeViewColumn
column'


-- | Connect a signal handler for the [rowActivated](#signal:rowActivated) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewRowActivatedCallback -> m SignalHandlerId
onTreeViewRowActivated a
obj TreeViewRowActivatedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowActivatedCallback
cb' = TreeViewRowActivatedCallback -> C_TreeViewRowActivatedCallback
wrap_TreeViewRowActivatedCallback TreeViewRowActivatedCallback
cb
    FunPtr C_TreeViewRowActivatedCallback
cb'' <- C_TreeViewRowActivatedCallback
-> IO (FunPtr C_TreeViewRowActivatedCallback)
mk_TreeViewRowActivatedCallback C_TreeViewRowActivatedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewRowActivatedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"row-activated" FunPtr C_TreeViewRowActivatedCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [rowActivated](#signal:rowActivated) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewRowActivatedCallback -> m SignalHandlerId
afterTreeViewRowActivated a
obj TreeViewRowActivatedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowActivatedCallback
cb' = TreeViewRowActivatedCallback -> C_TreeViewRowActivatedCallback
wrap_TreeViewRowActivatedCallback TreeViewRowActivatedCallback
cb
    FunPtr C_TreeViewRowActivatedCallback
cb'' <- C_TreeViewRowActivatedCallback
-> IO (FunPtr C_TreeViewRowActivatedCallback)
mk_TreeViewRowActivatedCallback C_TreeViewRowActivatedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewRowActivatedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"row-activated" FunPtr C_TreeViewRowActivatedCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewRowActivatedSignalInfo
instance SignalInfo TreeViewRowActivatedSignalInfo where
    type HaskellCallbackType TreeViewRowActivatedSignalInfo = TreeViewRowActivatedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewRowActivatedCallback cb
        cb'' <- mk_TreeViewRowActivatedCallback cb'
        connectSignalFunPtr obj "row-activated" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewRowCollapsedCallback
noTreeViewRowCollapsedCallback = Maybe TreeViewRowCollapsedCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewRowCollapsed :: MonadIO m => TreeViewRowCollapsedCallback -> m (GClosure C_TreeViewRowCollapsedCallback)
genClosure_TreeViewRowCollapsed :: forall (m :: * -> *).
MonadIO m =>
TreeViewRowCollapsedCallback
-> m (GClosure C_TreeViewRowCollapsedCallback)
genClosure_TreeViewRowCollapsed TreeViewRowCollapsedCallback
cb = IO (GClosure C_TreeViewRowCollapsedCallback)
-> m (GClosure C_TreeViewRowCollapsedCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewRowCollapsedCallback)
 -> m (GClosure C_TreeViewRowCollapsedCallback))
-> IO (GClosure C_TreeViewRowCollapsedCallback)
-> m (GClosure C_TreeViewRowCollapsedCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowCollapsedCallback
cb' = TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowCollapsedCallback TreeViewRowCollapsedCallback
cb
    C_TreeViewRowCollapsedCallback
-> IO (FunPtr C_TreeViewRowCollapsedCallback)
mk_TreeViewRowCollapsedCallback C_TreeViewRowCollapsedCallback
cb' IO (FunPtr C_TreeViewRowCollapsedCallback)
-> (FunPtr C_TreeViewRowCollapsedCallback
    -> IO (GClosure C_TreeViewRowCollapsedCallback))
-> IO (GClosure C_TreeViewRowCollapsedCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewRowCollapsedCallback
-> IO (GClosure C_TreeViewRowCollapsedCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewRowCollapsedCallback` into a `C_TreeViewRowCollapsedCallback`.
wrap_TreeViewRowCollapsedCallback ::
    TreeViewRowCollapsedCallback ->
    C_TreeViewRowCollapsedCallback
wrap_TreeViewRowCollapsedCallback :: TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowCollapsedCallback TreeViewRowCollapsedCallback
_cb Ptr ()
_ Ptr TreeIter
iter Ptr TreePath
path Ptr ()
_ = do
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO ()) -> IO ()) -> (TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \TreeIter
iter' -> do
        (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO ()) -> IO ()) -> (TreePath -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \TreePath
path' -> do
            TreeViewRowCollapsedCallback
_cb  TreeIter
iter' TreePath
path'


-- | Connect a signal handler for the [rowCollapsed](#signal:rowCollapsed) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
onTreeViewRowCollapsed a
obj TreeViewRowCollapsedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowCollapsedCallback
cb' = TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowCollapsedCallback TreeViewRowCollapsedCallback
cb
    FunPtr C_TreeViewRowCollapsedCallback
cb'' <- C_TreeViewRowCollapsedCallback
-> IO (FunPtr C_TreeViewRowCollapsedCallback)
mk_TreeViewRowCollapsedCallback C_TreeViewRowCollapsedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewRowCollapsedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"row-collapsed" FunPtr C_TreeViewRowCollapsedCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [rowCollapsed](#signal:rowCollapsed) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
afterTreeViewRowCollapsed a
obj TreeViewRowCollapsedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowCollapsedCallback
cb' = TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowCollapsedCallback TreeViewRowCollapsedCallback
cb
    FunPtr C_TreeViewRowCollapsedCallback
cb'' <- C_TreeViewRowCollapsedCallback
-> IO (FunPtr C_TreeViewRowCollapsedCallback)
mk_TreeViewRowCollapsedCallback C_TreeViewRowCollapsedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewRowCollapsedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"row-collapsed" FunPtr C_TreeViewRowCollapsedCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewRowCollapsedSignalInfo
instance SignalInfo TreeViewRowCollapsedSignalInfo where
    type HaskellCallbackType TreeViewRowCollapsedSignalInfo = TreeViewRowCollapsedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewRowCollapsedCallback cb
        cb'' <- mk_TreeViewRowCollapsedCallback cb'
        connectSignalFunPtr obj "row-collapsed" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewRowCollapsedCallback
noTreeViewRowExpandedCallback = Maybe TreeViewRowCollapsedCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewRowExpanded :: MonadIO m => TreeViewRowExpandedCallback -> m (GClosure C_TreeViewRowExpandedCallback)
genClosure_TreeViewRowExpanded :: forall (m :: * -> *).
MonadIO m =>
TreeViewRowCollapsedCallback
-> m (GClosure C_TreeViewRowCollapsedCallback)
genClosure_TreeViewRowExpanded TreeViewRowCollapsedCallback
cb = IO (GClosure C_TreeViewRowCollapsedCallback)
-> m (GClosure C_TreeViewRowCollapsedCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewRowCollapsedCallback)
 -> m (GClosure C_TreeViewRowCollapsedCallback))
-> IO (GClosure C_TreeViewRowCollapsedCallback)
-> m (GClosure C_TreeViewRowCollapsedCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowCollapsedCallback
cb' = TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowExpandedCallback TreeViewRowCollapsedCallback
cb
    C_TreeViewRowCollapsedCallback
-> IO (FunPtr C_TreeViewRowCollapsedCallback)
mk_TreeViewRowExpandedCallback C_TreeViewRowCollapsedCallback
cb' IO (FunPtr C_TreeViewRowCollapsedCallback)
-> (FunPtr C_TreeViewRowCollapsedCallback
    -> IO (GClosure C_TreeViewRowCollapsedCallback))
-> IO (GClosure C_TreeViewRowCollapsedCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewRowCollapsedCallback
-> IO (GClosure C_TreeViewRowCollapsedCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewRowExpandedCallback` into a `C_TreeViewRowExpandedCallback`.
wrap_TreeViewRowExpandedCallback ::
    TreeViewRowExpandedCallback ->
    C_TreeViewRowExpandedCallback
wrap_TreeViewRowExpandedCallback :: TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowExpandedCallback TreeViewRowCollapsedCallback
_cb Ptr ()
_ Ptr TreeIter
iter Ptr TreePath
path Ptr ()
_ = do
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO ()) -> IO ()) -> (TreeIter -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \TreeIter
iter' -> do
        (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO ()) -> IO ()) -> (TreePath -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \TreePath
path' -> do
            TreeViewRowCollapsedCallback
_cb  TreeIter
iter' TreePath
path'


-- | Connect a signal handler for the [rowExpanded](#signal:rowExpanded) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
onTreeViewRowExpanded a
obj TreeViewRowCollapsedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowCollapsedCallback
cb' = TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowExpandedCallback TreeViewRowCollapsedCallback
cb
    FunPtr C_TreeViewRowCollapsedCallback
cb'' <- C_TreeViewRowCollapsedCallback
-> IO (FunPtr C_TreeViewRowCollapsedCallback)
mk_TreeViewRowExpandedCallback C_TreeViewRowCollapsedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewRowCollapsedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"row-expanded" FunPtr C_TreeViewRowCollapsedCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [rowExpanded](#signal:rowExpanded) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
afterTreeViewRowExpanded a
obj TreeViewRowCollapsedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewRowCollapsedCallback
cb' = TreeViewRowCollapsedCallback -> C_TreeViewRowCollapsedCallback
wrap_TreeViewRowExpandedCallback TreeViewRowCollapsedCallback
cb
    FunPtr C_TreeViewRowCollapsedCallback
cb'' <- C_TreeViewRowCollapsedCallback
-> IO (FunPtr C_TreeViewRowCollapsedCallback)
mk_TreeViewRowExpandedCallback C_TreeViewRowCollapsedCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewRowCollapsedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"row-expanded" FunPtr C_TreeViewRowCollapsedCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewRowExpandedSignalInfo
instance SignalInfo TreeViewRowExpandedSignalInfo where
    type HaskellCallbackType TreeViewRowExpandedSignalInfo = TreeViewRowExpandedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewRowExpandedCallback cb
        cb'' <- mk_TreeViewRowExpandedCallback cb'
        connectSignalFunPtr obj "row-expanded" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewSelectAllCallback
noTreeViewSelectAllCallback = Maybe TreeViewSelectAllCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewSelectAll :: MonadIO m => TreeViewSelectAllCallback -> m (GClosure C_TreeViewSelectAllCallback)
genClosure_TreeViewSelectAll :: forall (m :: * -> *).
MonadIO m =>
TreeViewSelectAllCallback
-> m (GClosure C_TreeViewSelectAllCallback)
genClosure_TreeViewSelectAll TreeViewSelectAllCallback
cb = IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSelectAllCallback)
 -> m (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectAllCallback TreeViewSelectAllCallback
cb
    C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewSelectAllCallback C_TreeViewSelectAllCallback
cb' IO (FunPtr C_TreeViewSelectAllCallback)
-> (FunPtr C_TreeViewSelectAllCallback
    -> IO (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSelectAllCallback
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewSelectAllCallback` into a `C_TreeViewSelectAllCallback`.
wrap_TreeViewSelectAllCallback ::
    TreeViewSelectAllCallback ->
    C_TreeViewSelectAllCallback
wrap_TreeViewSelectAllCallback :: TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectAllCallback TreeViewSelectAllCallback
_cb Ptr ()
_ Ptr ()
_ = do
    Bool
result <- TreeViewSelectAllCallback
_cb 
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [selectAll](#signal:selectAll) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
onTreeViewSelectAll a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectAllCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewSelectAllCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"select-all" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [selectAll](#signal:selectAll) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
afterTreeViewSelectAll a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectAllCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewSelectAllCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"select-all" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewSelectAllSignalInfo
instance SignalInfo TreeViewSelectAllSignalInfo where
    type HaskellCallbackType TreeViewSelectAllSignalInfo = TreeViewSelectAllCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewSelectAllCallback cb
        cb'' <- mk_TreeViewSelectAllCallback cb'
        connectSignalFunPtr obj "select-all" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewSelectAllCallback
noTreeViewSelectCursorParentCallback = Maybe TreeViewSelectAllCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewSelectCursorParent :: MonadIO m => TreeViewSelectCursorParentCallback -> m (GClosure C_TreeViewSelectCursorParentCallback)
genClosure_TreeViewSelectCursorParent :: forall (m :: * -> *).
MonadIO m =>
TreeViewSelectAllCallback
-> m (GClosure C_TreeViewSelectAllCallback)
genClosure_TreeViewSelectCursorParent TreeViewSelectAllCallback
cb = IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSelectAllCallback)
 -> m (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectCursorParentCallback TreeViewSelectAllCallback
cb
    C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewSelectCursorParentCallback C_TreeViewSelectAllCallback
cb' IO (FunPtr C_TreeViewSelectAllCallback)
-> (FunPtr C_TreeViewSelectAllCallback
    -> IO (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSelectAllCallback
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewSelectCursorParentCallback` into a `C_TreeViewSelectCursorParentCallback`.
wrap_TreeViewSelectCursorParentCallback ::
    TreeViewSelectCursorParentCallback ->
    C_TreeViewSelectCursorParentCallback
wrap_TreeViewSelectCursorParentCallback :: TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectCursorParentCallback TreeViewSelectAllCallback
_cb Ptr ()
_ Ptr ()
_ = do
    Bool
result <- TreeViewSelectAllCallback
_cb 
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [selectCursorParent](#signal:selectCursorParent) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
onTreeViewSelectCursorParent a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectCursorParentCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewSelectCursorParentCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"select-cursor-parent" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [selectCursorParent](#signal:selectCursorParent) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
afterTreeViewSelectCursorParent a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewSelectCursorParentCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewSelectCursorParentCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"select-cursor-parent" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewSelectCursorParentSignalInfo
instance SignalInfo TreeViewSelectCursorParentSignalInfo where
    type HaskellCallbackType TreeViewSelectCursorParentSignalInfo = TreeViewSelectCursorParentCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewSelectCursorParentCallback cb
        cb'' <- mk_TreeViewSelectCursorParentCallback cb'
        connectSignalFunPtr obj "select-cursor-parent" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewSelectCursorRowCallback
noTreeViewSelectCursorRowCallback = Maybe TreeViewSelectCursorRowCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewSelectCursorRow :: MonadIO m => TreeViewSelectCursorRowCallback -> m (GClosure C_TreeViewSelectCursorRowCallback)
genClosure_TreeViewSelectCursorRow :: forall (m :: * -> *).
MonadIO m =>
TreeViewSelectCursorRowCallback
-> m (GClosure C_TreeViewSelectCursorRowCallback)
genClosure_TreeViewSelectCursorRow TreeViewSelectCursorRowCallback
cb = IO (GClosure C_TreeViewSelectCursorRowCallback)
-> m (GClosure C_TreeViewSelectCursorRowCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSelectCursorRowCallback)
 -> m (GClosure C_TreeViewSelectCursorRowCallback))
-> IO (GClosure C_TreeViewSelectCursorRowCallback)
-> m (GClosure C_TreeViewSelectCursorRowCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectCursorRowCallback
cb' = TreeViewSelectCursorRowCallback
-> C_TreeViewSelectCursorRowCallback
wrap_TreeViewSelectCursorRowCallback TreeViewSelectCursorRowCallback
cb
    C_TreeViewSelectCursorRowCallback
-> IO (FunPtr C_TreeViewSelectCursorRowCallback)
mk_TreeViewSelectCursorRowCallback C_TreeViewSelectCursorRowCallback
cb' IO (FunPtr C_TreeViewSelectCursorRowCallback)
-> (FunPtr C_TreeViewSelectCursorRowCallback
    -> IO (GClosure C_TreeViewSelectCursorRowCallback))
-> IO (GClosure C_TreeViewSelectCursorRowCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSelectCursorRowCallback
-> IO (GClosure C_TreeViewSelectCursorRowCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewSelectCursorRowCallback` into a `C_TreeViewSelectCursorRowCallback`.
wrap_TreeViewSelectCursorRowCallback ::
    TreeViewSelectCursorRowCallback ->
    C_TreeViewSelectCursorRowCallback
wrap_TreeViewSelectCursorRowCallback :: TreeViewSelectCursorRowCallback
-> C_TreeViewSelectCursorRowCallback
wrap_TreeViewSelectCursorRowCallback TreeViewSelectCursorRowCallback
_cb Ptr ()
_ CInt
object Ptr ()
_ = do
    let object' :: Bool
object' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
object
    Bool
result <- TreeViewSelectCursorRowCallback
_cb  Bool
object'
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [selectCursorRow](#signal:selectCursorRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectCursorRowCallback -> m SignalHandlerId
onTreeViewSelectCursorRow a
obj TreeViewSelectCursorRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectCursorRowCallback
cb' = TreeViewSelectCursorRowCallback
-> C_TreeViewSelectCursorRowCallback
wrap_TreeViewSelectCursorRowCallback TreeViewSelectCursorRowCallback
cb
    FunPtr C_TreeViewSelectCursorRowCallback
cb'' <- C_TreeViewSelectCursorRowCallback
-> IO (FunPtr C_TreeViewSelectCursorRowCallback)
mk_TreeViewSelectCursorRowCallback C_TreeViewSelectCursorRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectCursorRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"select-cursor-row" FunPtr C_TreeViewSelectCursorRowCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [selectCursorRow](#signal:selectCursorRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectCursorRowCallback -> m SignalHandlerId
afterTreeViewSelectCursorRow a
obj TreeViewSelectCursorRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectCursorRowCallback
cb' = TreeViewSelectCursorRowCallback
-> C_TreeViewSelectCursorRowCallback
wrap_TreeViewSelectCursorRowCallback TreeViewSelectCursorRowCallback
cb
    FunPtr C_TreeViewSelectCursorRowCallback
cb'' <- C_TreeViewSelectCursorRowCallback
-> IO (FunPtr C_TreeViewSelectCursorRowCallback)
mk_TreeViewSelectCursorRowCallback C_TreeViewSelectCursorRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectCursorRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"select-cursor-row" FunPtr C_TreeViewSelectCursorRowCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewSelectCursorRowSignalInfo
instance SignalInfo TreeViewSelectCursorRowSignalInfo where
    type HaskellCallbackType TreeViewSelectCursorRowSignalInfo = TreeViewSelectCursorRowCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewSelectCursorRowCallback cb
        cb'' <- mk_TreeViewSelectCursorRowCallback cb'
        connectSignalFunPtr obj "select-cursor-row" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewSelectAllCallback
noTreeViewStartInteractiveSearchCallback = Maybe TreeViewSelectAllCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewStartInteractiveSearch :: MonadIO m => TreeViewStartInteractiveSearchCallback -> m (GClosure C_TreeViewStartInteractiveSearchCallback)
genClosure_TreeViewStartInteractiveSearch :: forall (m :: * -> *).
MonadIO m =>
TreeViewSelectAllCallback
-> m (GClosure C_TreeViewSelectAllCallback)
genClosure_TreeViewStartInteractiveSearch TreeViewSelectAllCallback
cb = IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSelectAllCallback)
 -> m (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewStartInteractiveSearchCallback TreeViewSelectAllCallback
cb
    C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewStartInteractiveSearchCallback C_TreeViewSelectAllCallback
cb' IO (FunPtr C_TreeViewSelectAllCallback)
-> (FunPtr C_TreeViewSelectAllCallback
    -> IO (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSelectAllCallback
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewStartInteractiveSearchCallback` into a `C_TreeViewStartInteractiveSearchCallback`.
wrap_TreeViewStartInteractiveSearchCallback ::
    TreeViewStartInteractiveSearchCallback ->
    C_TreeViewStartInteractiveSearchCallback
wrap_TreeViewStartInteractiveSearchCallback :: TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewStartInteractiveSearchCallback TreeViewSelectAllCallback
_cb Ptr ()
_ Ptr ()
_ = do
    Bool
result <- TreeViewSelectAllCallback
_cb 
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [startInteractiveSearch](#signal:startInteractiveSearch) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
onTreeViewStartInteractiveSearch a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewStartInteractiveSearchCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewStartInteractiveSearchCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"start-interactive-search" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [startInteractiveSearch](#signal:startInteractiveSearch) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
afterTreeViewStartInteractiveSearch a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewStartInteractiveSearchCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewStartInteractiveSearchCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"start-interactive-search" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewStartInteractiveSearchSignalInfo
instance SignalInfo TreeViewStartInteractiveSearchSignalInfo where
    type HaskellCallbackType TreeViewStartInteractiveSearchSignalInfo = TreeViewStartInteractiveSearchCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewStartInteractiveSearchCallback cb
        cb'' <- mk_TreeViewStartInteractiveSearchCallback cb'
        connectSignalFunPtr obj "start-interactive-search" cb'' connectMode detail

#endif

-- 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:__ 'P.False' to allow collapsing, 'P.True' to reject

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewTestCollapseRowCallback`@.
noTreeViewTestCollapseRowCallback :: Maybe TreeViewTestCollapseRowCallback
noTreeViewTestCollapseRowCallback :: Maybe TreeViewTestCollapseRowCallback
noTreeViewTestCollapseRowCallback = Maybe TreeViewTestCollapseRowCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewTestCollapseRow :: MonadIO m => TreeViewTestCollapseRowCallback -> m (GClosure C_TreeViewTestCollapseRowCallback)
genClosure_TreeViewTestCollapseRow :: forall (m :: * -> *).
MonadIO m =>
TreeViewTestCollapseRowCallback
-> m (GClosure C_TreeViewTestCollapseRowCallback)
genClosure_TreeViewTestCollapseRow TreeViewTestCollapseRowCallback
cb = IO (GClosure C_TreeViewTestCollapseRowCallback)
-> m (GClosure C_TreeViewTestCollapseRowCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewTestCollapseRowCallback)
 -> m (GClosure C_TreeViewTestCollapseRowCallback))
-> IO (GClosure C_TreeViewTestCollapseRowCallback)
-> m (GClosure C_TreeViewTestCollapseRowCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewTestCollapseRowCallback
cb' = TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestCollapseRowCallback TreeViewTestCollapseRowCallback
cb
    C_TreeViewTestCollapseRowCallback
-> IO (FunPtr C_TreeViewTestCollapseRowCallback)
mk_TreeViewTestCollapseRowCallback C_TreeViewTestCollapseRowCallback
cb' IO (FunPtr C_TreeViewTestCollapseRowCallback)
-> (FunPtr C_TreeViewTestCollapseRowCallback
    -> IO (GClosure C_TreeViewTestCollapseRowCallback))
-> IO (GClosure C_TreeViewTestCollapseRowCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewTestCollapseRowCallback
-> IO (GClosure C_TreeViewTestCollapseRowCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewTestCollapseRowCallback` into a `C_TreeViewTestCollapseRowCallback`.
wrap_TreeViewTestCollapseRowCallback ::
    TreeViewTestCollapseRowCallback ->
    C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestCollapseRowCallback :: TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestCollapseRowCallback TreeViewTestCollapseRowCallback
_cb Ptr ()
_ Ptr TreeIter
iter Ptr TreePath
path Ptr ()
_ = do
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO CInt) -> IO CInt)
-> (TreeIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \TreeIter
iter' -> do
        (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO CInt) -> IO CInt)
-> (TreePath -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \TreePath
path' -> do
            Bool
result <- TreeViewTestCollapseRowCallback
_cb  TreeIter
iter' TreePath
path'
            let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
            CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [testCollapseRow](#signal:testCollapseRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
onTreeViewTestCollapseRow a
obj TreeViewTestCollapseRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewTestCollapseRowCallback
cb' = TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestCollapseRowCallback TreeViewTestCollapseRowCallback
cb
    FunPtr C_TreeViewTestCollapseRowCallback
cb'' <- C_TreeViewTestCollapseRowCallback
-> IO (FunPtr C_TreeViewTestCollapseRowCallback)
mk_TreeViewTestCollapseRowCallback C_TreeViewTestCollapseRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewTestCollapseRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"test-collapse-row" FunPtr C_TreeViewTestCollapseRowCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [testCollapseRow](#signal:testCollapseRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
afterTreeViewTestCollapseRow a
obj TreeViewTestCollapseRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewTestCollapseRowCallback
cb' = TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestCollapseRowCallback TreeViewTestCollapseRowCallback
cb
    FunPtr C_TreeViewTestCollapseRowCallback
cb'' <- C_TreeViewTestCollapseRowCallback
-> IO (FunPtr C_TreeViewTestCollapseRowCallback)
mk_TreeViewTestCollapseRowCallback C_TreeViewTestCollapseRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewTestCollapseRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"test-collapse-row" FunPtr C_TreeViewTestCollapseRowCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewTestCollapseRowSignalInfo
instance SignalInfo TreeViewTestCollapseRowSignalInfo where
    type HaskellCallbackType TreeViewTestCollapseRowSignalInfo = TreeViewTestCollapseRowCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewTestCollapseRowCallback cb
        cb'' <- mk_TreeViewTestCollapseRowCallback cb'
        connectSignalFunPtr obj "test-collapse-row" cb'' connectMode detail

#endif

-- 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:__ 'P.False' to allow expansion, 'P.True' to reject

-- | A convenience synonym for @`Nothing` :: `Maybe` `TreeViewTestExpandRowCallback`@.
noTreeViewTestExpandRowCallback :: Maybe TreeViewTestExpandRowCallback
noTreeViewTestExpandRowCallback :: Maybe TreeViewTestCollapseRowCallback
noTreeViewTestExpandRowCallback = Maybe TreeViewTestCollapseRowCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewTestExpandRow :: MonadIO m => TreeViewTestExpandRowCallback -> m (GClosure C_TreeViewTestExpandRowCallback)
genClosure_TreeViewTestExpandRow :: forall (m :: * -> *).
MonadIO m =>
TreeViewTestCollapseRowCallback
-> m (GClosure C_TreeViewTestCollapseRowCallback)
genClosure_TreeViewTestExpandRow TreeViewTestCollapseRowCallback
cb = IO (GClosure C_TreeViewTestCollapseRowCallback)
-> m (GClosure C_TreeViewTestCollapseRowCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewTestCollapseRowCallback)
 -> m (GClosure C_TreeViewTestCollapseRowCallback))
-> IO (GClosure C_TreeViewTestCollapseRowCallback)
-> m (GClosure C_TreeViewTestCollapseRowCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewTestCollapseRowCallback
cb' = TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestExpandRowCallback TreeViewTestCollapseRowCallback
cb
    C_TreeViewTestCollapseRowCallback
-> IO (FunPtr C_TreeViewTestCollapseRowCallback)
mk_TreeViewTestExpandRowCallback C_TreeViewTestCollapseRowCallback
cb' IO (FunPtr C_TreeViewTestCollapseRowCallback)
-> (FunPtr C_TreeViewTestCollapseRowCallback
    -> IO (GClosure C_TreeViewTestCollapseRowCallback))
-> IO (GClosure C_TreeViewTestCollapseRowCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewTestCollapseRowCallback
-> IO (GClosure C_TreeViewTestCollapseRowCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewTestExpandRowCallback` into a `C_TreeViewTestExpandRowCallback`.
wrap_TreeViewTestExpandRowCallback ::
    TreeViewTestExpandRowCallback ->
    C_TreeViewTestExpandRowCallback
wrap_TreeViewTestExpandRowCallback :: TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestExpandRowCallback TreeViewTestCollapseRowCallback
_cb Ptr ()
_ Ptr TreeIter
iter Ptr TreePath
path Ptr ()
_ = do
    (ManagedPtr TreeIter -> TreeIter)
-> Ptr TreeIter -> (TreeIter -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter Ptr TreeIter
iter ((TreeIter -> IO CInt) -> IO CInt)
-> (TreeIter -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \TreeIter
iter' -> do
        (ManagedPtr TreePath -> TreePath)
-> Ptr TreePath -> (TreePath -> IO CInt) -> IO CInt
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
(ManagedPtr a -> a) -> Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath Ptr TreePath
path ((TreePath -> IO CInt) -> IO CInt)
-> (TreePath -> IO CInt) -> IO CInt
forall a b. (a -> b) -> a -> b
$ \TreePath
path' -> do
            Bool
result <- TreeViewTestCollapseRowCallback
_cb  TreeIter
iter' TreePath
path'
            let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
            CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [testExpandRow](#signal:testExpandRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
onTreeViewTestExpandRow a
obj TreeViewTestCollapseRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewTestCollapseRowCallback
cb' = TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestExpandRowCallback TreeViewTestCollapseRowCallback
cb
    FunPtr C_TreeViewTestCollapseRowCallback
cb'' <- C_TreeViewTestCollapseRowCallback
-> IO (FunPtr C_TreeViewTestCollapseRowCallback)
mk_TreeViewTestExpandRowCallback C_TreeViewTestCollapseRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewTestCollapseRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"test-expand-row" FunPtr C_TreeViewTestCollapseRowCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [testExpandRow](#signal:testExpandRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
afterTreeViewTestExpandRow a
obj TreeViewTestCollapseRowCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewTestCollapseRowCallback
cb' = TreeViewTestCollapseRowCallback
-> C_TreeViewTestCollapseRowCallback
wrap_TreeViewTestExpandRowCallback TreeViewTestCollapseRowCallback
cb
    FunPtr C_TreeViewTestCollapseRowCallback
cb'' <- C_TreeViewTestCollapseRowCallback
-> IO (FunPtr C_TreeViewTestCollapseRowCallback)
mk_TreeViewTestExpandRowCallback C_TreeViewTestCollapseRowCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewTestCollapseRowCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"test-expand-row" FunPtr C_TreeViewTestCollapseRowCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewTestExpandRowSignalInfo
instance SignalInfo TreeViewTestExpandRowSignalInfo where
    type HaskellCallbackType TreeViewTestExpandRowSignalInfo = TreeViewTestExpandRowCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewTestExpandRowCallback cb
        cb'' <- mk_TreeViewTestExpandRowCallback cb'
        connectSignalFunPtr obj "test-expand-row" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewSelectAllCallback
noTreeViewToggleCursorRowCallback = Maybe TreeViewSelectAllCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewToggleCursorRow :: MonadIO m => TreeViewToggleCursorRowCallback -> m (GClosure C_TreeViewToggleCursorRowCallback)
genClosure_TreeViewToggleCursorRow :: forall (m :: * -> *).
MonadIO m =>
TreeViewSelectAllCallback
-> m (GClosure C_TreeViewSelectAllCallback)
genClosure_TreeViewToggleCursorRow TreeViewSelectAllCallback
cb = IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSelectAllCallback)
 -> m (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewToggleCursorRowCallback TreeViewSelectAllCallback
cb
    C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewToggleCursorRowCallback C_TreeViewSelectAllCallback
cb' IO (FunPtr C_TreeViewSelectAllCallback)
-> (FunPtr C_TreeViewSelectAllCallback
    -> IO (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSelectAllCallback
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewToggleCursorRowCallback` into a `C_TreeViewToggleCursorRowCallback`.
wrap_TreeViewToggleCursorRowCallback ::
    TreeViewToggleCursorRowCallback ->
    C_TreeViewToggleCursorRowCallback
wrap_TreeViewToggleCursorRowCallback :: TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewToggleCursorRowCallback TreeViewSelectAllCallback
_cb Ptr ()
_ Ptr ()
_ = do
    Bool
result <- TreeViewSelectAllCallback
_cb 
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [toggleCursorRow](#signal:toggleCursorRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
onTreeViewToggleCursorRow a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewToggleCursorRowCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewToggleCursorRowCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"toggle-cursor-row" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [toggleCursorRow](#signal:toggleCursorRow) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
afterTreeViewToggleCursorRow a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewToggleCursorRowCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewToggleCursorRowCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"toggle-cursor-row" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewToggleCursorRowSignalInfo
instance SignalInfo TreeViewToggleCursorRowSignalInfo where
    type HaskellCallbackType TreeViewToggleCursorRowSignalInfo = TreeViewToggleCursorRowCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewToggleCursorRowCallback cb
        cb'' <- mk_TreeViewToggleCursorRowCallback cb'
        connectSignalFunPtr obj "toggle-cursor-row" cb'' connectMode detail

#endif

-- 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 :: Maybe TreeViewSelectAllCallback
noTreeViewUnselectAllCallback = Maybe TreeViewSelectAllCallback
forall a. Maybe a
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 `GClosure`.
genClosure_TreeViewUnselectAll :: MonadIO m => TreeViewUnselectAllCallback -> m (GClosure C_TreeViewUnselectAllCallback)
genClosure_TreeViewUnselectAll :: forall (m :: * -> *).
MonadIO m =>
TreeViewSelectAllCallback
-> m (GClosure C_TreeViewSelectAllCallback)
genClosure_TreeViewUnselectAll TreeViewSelectAllCallback
cb = IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (GClosure C_TreeViewSelectAllCallback)
 -> m (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
-> m (GClosure C_TreeViewSelectAllCallback)
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewUnselectAllCallback TreeViewSelectAllCallback
cb
    C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewUnselectAllCallback C_TreeViewSelectAllCallback
cb' IO (FunPtr C_TreeViewSelectAllCallback)
-> (FunPtr C_TreeViewSelectAllCallback
    -> IO (GClosure C_TreeViewSelectAllCallback))
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= FunPtr C_TreeViewSelectAllCallback
-> IO (GClosure C_TreeViewSelectAllCallback)
forall (m :: * -> *) a. MonadIO m => FunPtr a -> m (GClosure a)
B.GClosure.newGClosure


-- | Wrap a `TreeViewUnselectAllCallback` into a `C_TreeViewUnselectAllCallback`.
wrap_TreeViewUnselectAllCallback ::
    TreeViewUnselectAllCallback ->
    C_TreeViewUnselectAllCallback
wrap_TreeViewUnselectAllCallback :: TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewUnselectAllCallback TreeViewSelectAllCallback
_cb Ptr ()
_ Ptr ()
_ = do
    Bool
result <- TreeViewSelectAllCallback
_cb 
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'


-- | Connect a signal handler for the [unselectAll](#signal:unselectAll) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
onTreeViewUnselectAll a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewUnselectAllCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewUnselectAllCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"unselect-all" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [unselectAll](#signal:unselectAll) 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 :: forall a (m :: * -> *).
(IsTreeView a, MonadIO m) =>
a -> TreeViewSelectAllCallback -> m SignalHandlerId
afterTreeViewUnselectAll a
obj TreeViewSelectAllCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let cb' :: C_TreeViewSelectAllCallback
cb' = TreeViewSelectAllCallback -> C_TreeViewSelectAllCallback
wrap_TreeViewUnselectAllCallback TreeViewSelectAllCallback
cb
    FunPtr C_TreeViewSelectAllCallback
cb'' <- C_TreeViewSelectAllCallback
-> IO (FunPtr C_TreeViewSelectAllCallback)
mk_TreeViewUnselectAllCallback C_TreeViewSelectAllCallback
cb'
    a
-> Text
-> FunPtr C_TreeViewSelectAllCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"unselect-all" FunPtr C_TreeViewSelectAllCallback
cb'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data TreeViewUnselectAllSignalInfo
instance SignalInfo TreeViewUnselectAllSignalInfo where
    type HaskellCallbackType TreeViewUnselectAllSignalInfo = TreeViewUnselectAllCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_TreeViewUnselectAllCallback cb
        cb'' <- mk_TreeViewUnselectAllCallback cb'
        connectSignalFunPtr obj "unselect-all" cb'' connectMode detail

#endif

-- 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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewActivateOnSingleClick o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewActivateOnSingleClick o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"activate-on-single-click" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewActivateOnSingleClick :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewActivateOnSingleClick Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"activate-on-single-click" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewActivateOnSingleClickPropertyInfo
instance AttrInfo TreeViewActivateOnSingleClickPropertyInfo where
    type AttrAllowedOps TreeViewActivateOnSingleClickPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewActivateOnSingleClickPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewActivateOnSingleClickPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewActivateOnSingleClickPropertyInfo = (~) Bool
    type AttrTransferType TreeViewActivateOnSingleClickPropertyInfo = Bool
    type AttrGetType TreeViewActivateOnSingleClickPropertyInfo = Bool
    type AttrLabel TreeViewActivateOnSingleClickPropertyInfo = "activate-on-single-click"
    type AttrOrigin TreeViewActivateOnSingleClickPropertyInfo = TreeView
    attrGet = getTreeViewActivateOnSingleClick
    attrSet = setTreeViewActivateOnSingleClick
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> m TreeViewGridLines
getTreeViewEnableGridLines o
obj = IO TreeViewGridLines -> m TreeViewGridLines
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO TreeViewGridLines -> m TreeViewGridLines)
-> IO TreeViewGridLines -> m TreeViewGridLines
forall a b. (a -> b) -> a -> b
$ o -> String -> IO TreeViewGridLines
forall a b. (GObject a, Enum b, BoxedEnum b) => a -> String -> IO b
B.Properties.getObjectPropertyEnum o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> TreeViewGridLines -> m ()
setTreeViewEnableGridLines o
obj TreeViewGridLines
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> TreeViewGridLines -> IO ()
forall a b.
(GObject a, Enum b, BoxedEnum b) =>
a -> String -> b -> IO ()
B.Properties.setObjectPropertyEnum o
obj String
"enable-grid-lines" TreeViewGridLines
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, MIO.MonadIO m) => Gtk.Enums.TreeViewGridLines -> m (GValueConstruct o)
constructTreeViewEnableGridLines :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
TreeViewGridLines -> m (GValueConstruct o)
constructTreeViewEnableGridLines TreeViewGridLines
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> TreeViewGridLines -> IO (GValueConstruct o)
forall a o.
(Enum a, BoxedEnum a) =>
String -> a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyEnum String
"enable-grid-lines" TreeViewGridLines
val

#if defined(ENABLE_OVERLOADING)
data TreeViewEnableGridLinesPropertyInfo
instance AttrInfo TreeViewEnableGridLinesPropertyInfo where
    type AttrAllowedOps TreeViewEnableGridLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewEnableGridLinesPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewEnableGridLinesPropertyInfo = (~) Gtk.Enums.TreeViewGridLines
    type AttrTransferTypeConstraint TreeViewEnableGridLinesPropertyInfo = (~) Gtk.Enums.TreeViewGridLines
    type AttrTransferType TreeViewEnableGridLinesPropertyInfo = Gtk.Enums.TreeViewGridLines
    type AttrGetType TreeViewEnableGridLinesPropertyInfo = Gtk.Enums.TreeViewGridLines
    type AttrLabel TreeViewEnableGridLinesPropertyInfo = "enable-grid-lines"
    type AttrOrigin TreeViewEnableGridLinesPropertyInfo = TreeView
    attrGet = getTreeViewEnableGridLines
    attrSet = setTreeViewEnableGridLines
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewEnableSearch o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewEnableSearch o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"enable-search" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewEnableSearch :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewEnableSearch Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"enable-search" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewEnableSearchPropertyInfo
instance AttrInfo TreeViewEnableSearchPropertyInfo where
    type AttrAllowedOps TreeViewEnableSearchPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewEnableSearchPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewEnableSearchPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewEnableSearchPropertyInfo = (~) Bool
    type AttrTransferType TreeViewEnableSearchPropertyInfo = Bool
    type AttrGetType TreeViewEnableSearchPropertyInfo = Bool
    type AttrLabel TreeViewEnableSearchPropertyInfo = "enable-search"
    type AttrOrigin TreeViewEnableSearchPropertyInfo = TreeView
    attrGet = getTreeViewEnableSearch
    attrSet = setTreeViewEnableSearch
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewEnableTreeLines o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewEnableTreeLines o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"enable-tree-lines" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewEnableTreeLines :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewEnableTreeLines Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"enable-tree-lines" Bool
val

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

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

-- | 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 (Maybe Gtk.TreeViewColumn.TreeViewColumn)
getTreeViewExpanderColumn :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> m (Maybe TreeViewColumn)
getTreeViewExpanderColumn o
obj = IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn))
-> IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr TreeViewColumn -> TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"expander-column" ManagedPtr TreeViewColumn -> TreeViewColumn
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 :: forall (m :: * -> *) o a.
(MonadIO m, IsTreeView o, IsTreeViewColumn a) =>
o -> a -> m ()
setTreeViewExpanderColumn o
obj a
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"expander-column" (a -> Maybe a
forall a. a -> Maybe a
Just a
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, MIO.MonadIO m, Gtk.TreeViewColumn.IsTreeViewColumn a) => a -> m (GValueConstruct o)
constructTreeViewExpanderColumn :: forall o (m :: * -> *) a.
(IsTreeView o, MonadIO m, IsTreeViewColumn a) =>
a -> m (GValueConstruct o)
constructTreeViewExpanderColumn a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"expander-column" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

-- | Set the value of the “@expander-column@” 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' #expanderColumn
-- @
clearTreeViewExpanderColumn :: (MonadIO m, IsTreeView o) => o -> m ()
clearTreeViewExpanderColumn :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m ()
clearTreeViewExpanderColumn o
obj = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe TreeViewColumn -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"expander-column" (Maybe TreeViewColumn
forall a. Maybe a
Nothing :: Maybe Gtk.TreeViewColumn.TreeViewColumn)

#if defined(ENABLE_OVERLOADING)
data TreeViewExpanderColumnPropertyInfo
instance AttrInfo TreeViewExpanderColumnPropertyInfo where
    type AttrAllowedOps TreeViewExpanderColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint TreeViewExpanderColumnPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewExpanderColumnPropertyInfo = Gtk.TreeViewColumn.IsTreeViewColumn
    type AttrTransferTypeConstraint TreeViewExpanderColumnPropertyInfo = Gtk.TreeViewColumn.IsTreeViewColumn
    type AttrTransferType TreeViewExpanderColumnPropertyInfo = Gtk.TreeViewColumn.TreeViewColumn
    type AttrGetType TreeViewExpanderColumnPropertyInfo = (Maybe Gtk.TreeViewColumn.TreeViewColumn)
    type AttrLabel TreeViewExpanderColumnPropertyInfo = "expander-column"
    type AttrOrigin TreeViewExpanderColumnPropertyInfo = TreeView
    attrGet = getTreeViewExpanderColumn
    attrSet = setTreeViewExpanderColumn
    attrTransfer _ v = do
        unsafeCastTo Gtk.TreeViewColumn.TreeViewColumn v
    attrConstruct = constructTreeViewExpanderColumn
    attrClear = clearTreeViewExpanderColumn
#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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewFixedHeightMode o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewFixedHeightMode o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"fixed-height-mode" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewFixedHeightMode :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewFixedHeightMode Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"fixed-height-mode" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewFixedHeightModePropertyInfo
instance AttrInfo TreeViewFixedHeightModePropertyInfo where
    type AttrAllowedOps TreeViewFixedHeightModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewFixedHeightModePropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewFixedHeightModePropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewFixedHeightModePropertyInfo = (~) Bool
    type AttrTransferType TreeViewFixedHeightModePropertyInfo = Bool
    type AttrGetType TreeViewFixedHeightModePropertyInfo = Bool
    type AttrLabel TreeViewFixedHeightModePropertyInfo = "fixed-height-mode"
    type AttrOrigin TreeViewFixedHeightModePropertyInfo = TreeView
    attrGet = getTreeViewFixedHeightMode
    attrSet = setTreeViewFixedHeightMode
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHeadersClickable o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewHeadersClickable o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"headers-clickable" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewHeadersClickable :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewHeadersClickable Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"headers-clickable" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewHeadersClickablePropertyInfo
instance AttrInfo TreeViewHeadersClickablePropertyInfo where
    type AttrAllowedOps TreeViewHeadersClickablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewHeadersClickablePropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewHeadersClickablePropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewHeadersClickablePropertyInfo = (~) Bool
    type AttrTransferType TreeViewHeadersClickablePropertyInfo = Bool
    type AttrGetType TreeViewHeadersClickablePropertyInfo = Bool
    type AttrLabel TreeViewHeadersClickablePropertyInfo = "headers-clickable"
    type AttrOrigin TreeViewHeadersClickablePropertyInfo = TreeView
    attrGet = getTreeViewHeadersClickable
    attrSet = setTreeViewHeadersClickable
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHeadersVisible o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewHeadersVisible o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"headers-visible" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewHeadersVisible :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewHeadersVisible Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"headers-visible" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewHeadersVisiblePropertyInfo
instance AttrInfo TreeViewHeadersVisiblePropertyInfo where
    type AttrAllowedOps TreeViewHeadersVisiblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewHeadersVisiblePropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewHeadersVisiblePropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewHeadersVisiblePropertyInfo = (~) Bool
    type AttrTransferType TreeViewHeadersVisiblePropertyInfo = Bool
    type AttrGetType TreeViewHeadersVisiblePropertyInfo = Bool
    type AttrLabel TreeViewHeadersVisiblePropertyInfo = "headers-visible"
    type AttrOrigin TreeViewHeadersVisiblePropertyInfo = TreeView
    attrGet = getTreeViewHeadersVisible
    attrSet = setTreeViewHeadersVisible
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHoverExpand o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewHoverExpand o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"hover-expand" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewHoverExpand :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewHoverExpand Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"hover-expand" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewHoverExpandPropertyInfo
instance AttrInfo TreeViewHoverExpandPropertyInfo where
    type AttrAllowedOps TreeViewHoverExpandPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewHoverExpandPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewHoverExpandPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewHoverExpandPropertyInfo = (~) Bool
    type AttrTransferType TreeViewHoverExpandPropertyInfo = Bool
    type AttrGetType TreeViewHoverExpandPropertyInfo = Bool
    type AttrLabel TreeViewHoverExpandPropertyInfo = "hover-expand"
    type AttrOrigin TreeViewHoverExpandPropertyInfo = TreeView
    attrGet = getTreeViewHoverExpand
    attrSet = setTreeViewHoverExpand
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewHoverSelection o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewHoverSelection o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"hover-selection" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewHoverSelection :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewHoverSelection Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"hover-selection" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewHoverSelectionPropertyInfo
instance AttrInfo TreeViewHoverSelectionPropertyInfo where
    type AttrAllowedOps TreeViewHoverSelectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewHoverSelectionPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewHoverSelectionPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewHoverSelectionPropertyInfo = (~) Bool
    type AttrTransferType TreeViewHoverSelectionPropertyInfo = Bool
    type AttrGetType TreeViewHoverSelectionPropertyInfo = Bool
    type AttrLabel TreeViewHoverSelectionPropertyInfo = "hover-selection"
    type AttrOrigin TreeViewHoverSelectionPropertyInfo = TreeView
    attrGet = getTreeViewHoverSelection
    attrSet = setTreeViewHoverSelection
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Int32
getTreeViewLevelIndentation o
obj = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Int32 -> m ()
setTreeViewLevelIndentation o
obj Int32
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int32 -> IO ()
forall a. GObject a => a -> String -> Int32 -> IO ()
B.Properties.setObjectPropertyInt32 o
obj String
"level-indentation" Int32
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, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructTreeViewLevelIndentation :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructTreeViewLevelIndentation Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"level-indentation" Int32
val

#if defined(ENABLE_OVERLOADING)
data TreeViewLevelIndentationPropertyInfo
instance AttrInfo TreeViewLevelIndentationPropertyInfo where
    type AttrAllowedOps TreeViewLevelIndentationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewLevelIndentationPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewLevelIndentationPropertyInfo = (~) Int32
    type AttrTransferTypeConstraint TreeViewLevelIndentationPropertyInfo = (~) Int32
    type AttrTransferType TreeViewLevelIndentationPropertyInfo = Int32
    type AttrGetType TreeViewLevelIndentationPropertyInfo = Int32
    type AttrLabel TreeViewLevelIndentationPropertyInfo = "level-indentation"
    type AttrOrigin TreeViewLevelIndentationPropertyInfo = TreeView
    attrGet = getTreeViewLevelIndentation
    attrSet = setTreeViewLevelIndentation
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> m (Maybe TreeModel)
getTreeViewModel o
obj = IO (Maybe TreeModel) -> m (Maybe TreeModel)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe TreeModel) -> m (Maybe TreeModel))
-> IO (Maybe TreeModel) -> m (Maybe TreeModel)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr TreeModel -> TreeModel)
-> IO (Maybe TreeModel)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"model" ManagedPtr TreeModel -> TreeModel
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 :: forall (m :: * -> *) o a.
(MonadIO m, IsTreeView o, IsTreeModel a) =>
o -> a -> m ()
setTreeViewModel o
obj a
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe a -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"model" (a -> Maybe a
forall a. a -> Maybe a
Just a
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, MIO.MonadIO m, Gtk.TreeModel.IsTreeModel a) => a -> m (GValueConstruct o)
constructTreeViewModel :: forall o (m :: * -> *) a.
(IsTreeView o, MonadIO m, IsTreeModel a) =>
a -> m (GValueConstruct o)
constructTreeViewModel a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"model" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m ()
clearTreeViewModel o
obj = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe TreeModel -> IO ()
forall a b.
(GObject a, GObject b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyObject o
obj String
"model" (Maybe TreeModel
forall a. Maybe a
Nothing :: Maybe Gtk.TreeModel.TreeModel)

#if defined(ENABLE_OVERLOADING)
data TreeViewModelPropertyInfo
instance AttrInfo TreeViewModelPropertyInfo where
    type AttrAllowedOps TreeViewModelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint TreeViewModelPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewModelPropertyInfo = Gtk.TreeModel.IsTreeModel
    type AttrTransferTypeConstraint TreeViewModelPropertyInfo = Gtk.TreeModel.IsTreeModel
    type AttrTransferType TreeViewModelPropertyInfo = Gtk.TreeModel.TreeModel
    type AttrGetType TreeViewModelPropertyInfo = (Maybe Gtk.TreeModel.TreeModel)
    type AttrLabel TreeViewModelPropertyInfo = "model"
    type AttrOrigin TreeViewModelPropertyInfo = TreeView
    attrGet = getTreeViewModel
    attrSet = setTreeViewModel
    attrTransfer _ v = do
        unsafeCastTo Gtk.TreeModel.TreeModel v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewReorderable o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewReorderable o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"reorderable" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewReorderable :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewReorderable Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"reorderable" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewReorderablePropertyInfo
instance AttrInfo TreeViewReorderablePropertyInfo where
    type AttrAllowedOps TreeViewReorderablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewReorderablePropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewReorderablePropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewReorderablePropertyInfo = (~) Bool
    type AttrTransferType TreeViewReorderablePropertyInfo = Bool
    type AttrGetType TreeViewReorderablePropertyInfo = Bool
    type AttrLabel TreeViewReorderablePropertyInfo = "reorderable"
    type AttrOrigin TreeViewReorderablePropertyInfo = TreeView
    attrGet = getTreeViewReorderable
    attrSet = setTreeViewReorderable
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewRubberBanding o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewRubberBanding o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"rubber-banding" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewRubberBanding :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewRubberBanding Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"rubber-banding" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewRubberBandingPropertyInfo
instance AttrInfo TreeViewRubberBandingPropertyInfo where
    type AttrAllowedOps TreeViewRubberBandingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewRubberBandingPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewRubberBandingPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewRubberBandingPropertyInfo = (~) Bool
    type AttrTransferType TreeViewRubberBandingPropertyInfo = Bool
    type AttrGetType TreeViewRubberBandingPropertyInfo = Bool
    type AttrLabel TreeViewRubberBandingPropertyInfo = "rubber-banding"
    type AttrOrigin TreeViewRubberBandingPropertyInfo = TreeView
    attrGet = getTreeViewRubberBanding
    attrSet = setTreeViewRubberBanding
    attrTransfer _ v = do
        return v
    attrConstruct = constructTreeViewRubberBanding
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Int32
getTreeViewSearchColumn o
obj = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Int32 -> m ()
setTreeViewSearchColumn o
obj Int32
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int32 -> IO ()
forall a. GObject a => a -> String -> Int32 -> IO ()
B.Properties.setObjectPropertyInt32 o
obj String
"search-column" Int32
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, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructTreeViewSearchColumn :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructTreeViewSearchColumn Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"search-column" Int32
val

#if defined(ENABLE_OVERLOADING)
data TreeViewSearchColumnPropertyInfo
instance AttrInfo TreeViewSearchColumnPropertyInfo where
    type AttrAllowedOps TreeViewSearchColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewSearchColumnPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewSearchColumnPropertyInfo = (~) Int32
    type AttrTransferTypeConstraint TreeViewSearchColumnPropertyInfo = (~) Int32
    type AttrTransferType TreeViewSearchColumnPropertyInfo = Int32
    type AttrGetType TreeViewSearchColumnPropertyInfo = Int32
    type AttrLabel TreeViewSearchColumnPropertyInfo = "search-column"
    type AttrOrigin TreeViewSearchColumnPropertyInfo = TreeView
    attrGet = getTreeViewSearchColumn
    attrSet = setTreeViewSearchColumn
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Bool
getTreeViewShowExpanders o
obj = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> TreeViewSelectAllCallback
forall a. GObject a => a -> String -> TreeViewSelectAllCallback
B.Properties.getObjectPropertyBool o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Bool -> m ()
setTreeViewShowExpanders o
obj Bool
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"show-expanders" Bool
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, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructTreeViewShowExpanders :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructTreeViewShowExpanders Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"show-expanders" Bool
val

#if defined(ENABLE_OVERLOADING)
data TreeViewShowExpandersPropertyInfo
instance AttrInfo TreeViewShowExpandersPropertyInfo where
    type AttrAllowedOps TreeViewShowExpandersPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint TreeViewShowExpandersPropertyInfo = IsTreeView
    type AttrSetTypeConstraint TreeViewShowExpandersPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint TreeViewShowExpandersPropertyInfo = (~) Bool
    type AttrTransferType TreeViewShowExpandersPropertyInfo = Bool
    type AttrGetType TreeViewShowExpandersPropertyInfo = Bool
    type AttrLabel TreeViewShowExpandersPropertyInfo = "show-expanders"
    type AttrOrigin TreeViewShowExpandersPropertyInfo = TreeView
    attrGet = getTreeViewShowExpanders
    attrSet = setTreeViewShowExpanders
    attrTransfer _ v = do
        return v
    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 :: forall (m :: * -> *) o. (MonadIO m, IsTreeView o) => o -> m Int32
getTreeViewTooltipColumn o
obj = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"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 :: forall (m :: * -> *) o.
(MonadIO m, IsTreeView o) =>
o -> Int32 -> m ()
setTreeViewTooltipColumn o
obj Int32
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Int32 -> IO ()
forall a. GObject a => a -> String -> Int32 -> IO ()
B.Properties.setObjectPropertyInt32 o
obj String
"tooltip-column" Int32
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, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructTreeViewTooltipColumn :: forall o (m :: * -> *).
(IsTreeView o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructTreeViewTooltipColumn Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"tooltip-column" Int32
val

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

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList TreeView
type instance O.AttributeList TreeView = TreeViewAttributeList
type TreeViewAttributeList = ('[ '("accessibleRole", Gtk.Accessible.AccessibleAccessibleRolePropertyInfo), '("activateOnSingleClick", TreeViewActivateOnSingleClickPropertyInfo), '("canFocus", Gtk.Widget.WidgetCanFocusPropertyInfo), '("canTarget", Gtk.Widget.WidgetCanTargetPropertyInfo), '("cssClasses", Gtk.Widget.WidgetCssClassesPropertyInfo), '("cssName", Gtk.Widget.WidgetCssNamePropertyInfo), '("cursor", Gtk.Widget.WidgetCursorPropertyInfo), '("enableGridLines", TreeViewEnableGridLinesPropertyInfo), '("enableSearch", TreeViewEnableSearchPropertyInfo), '("enableTreeLines", TreeViewEnableTreeLinesPropertyInfo), '("expanderColumn", TreeViewExpanderColumnPropertyInfo), '("fixedHeightMode", TreeViewFixedHeightModePropertyInfo), '("focusOnClick", Gtk.Widget.WidgetFocusOnClickPropertyInfo), '("focusable", Gtk.Widget.WidgetFocusablePropertyInfo), '("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), '("layoutManager", Gtk.Widget.WidgetLayoutManagerPropertyInfo), '("levelIndentation", TreeViewLevelIndentationPropertyInfo), '("marginBottom", Gtk.Widget.WidgetMarginBottomPropertyInfo), '("marginEnd", Gtk.Widget.WidgetMarginEndPropertyInfo), '("marginStart", Gtk.Widget.WidgetMarginStartPropertyInfo), '("marginTop", Gtk.Widget.WidgetMarginTopPropertyInfo), '("model", TreeViewModelPropertyInfo), '("name", Gtk.Widget.WidgetNamePropertyInfo), '("opacity", Gtk.Widget.WidgetOpacityPropertyInfo), '("overflow", Gtk.Widget.WidgetOverflowPropertyInfo), '("parent", Gtk.Widget.WidgetParentPropertyInfo), '("receivesDefault", Gtk.Widget.WidgetReceivesDefaultPropertyInfo), '("reorderable", TreeViewReorderablePropertyInfo), '("root", Gtk.Widget.WidgetRootPropertyInfo), '("rubberBanding", TreeViewRubberBandingPropertyInfo), '("scaleFactor", Gtk.Widget.WidgetScaleFactorPropertyInfo), '("searchColumn", TreeViewSearchColumnPropertyInfo), '("sensitive", Gtk.Widget.WidgetSensitivePropertyInfo), '("showExpanders", TreeViewShowExpandersPropertyInfo), '("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)] :: [(Symbol, *)])
#endif

#if defined(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

treeViewSearchColumn :: AttrLabelProxy "searchColumn"
treeViewSearchColumn = AttrLabelProxy

treeViewShowExpanders :: AttrLabelProxy "showExpanders"
treeViewShowExpanders = AttrLabelProxy

treeViewTooltipColumn :: AttrLabelProxy "tooltipColumn"
treeViewTooltipColumn = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList TreeView = TreeViewSignalList
type TreeViewSignalList = ('[ '("columnsChanged", TreeViewColumnsChangedSignalInfo), '("cursorChanged", TreeViewCursorChangedSignalInfo), '("destroy", Gtk.Widget.WidgetDestroySignalInfo), '("directionChanged", Gtk.Widget.WidgetDirectionChangedSignalInfo), '("expandCollapseCursorRow", TreeViewExpandCollapseCursorRowSignalInfo), '("hide", Gtk.Widget.WidgetHideSignalInfo), '("keynavFailed", Gtk.Widget.WidgetKeynavFailedSignalInfo), '("map", Gtk.Widget.WidgetMapSignalInfo), '("mnemonicActivate", Gtk.Widget.WidgetMnemonicActivateSignalInfo), '("moveCursor", TreeViewMoveCursorSignalInfo), '("moveFocus", Gtk.Widget.WidgetMoveFocusSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("queryTooltip", Gtk.Widget.WidgetQueryTooltipSignalInfo), '("realize", Gtk.Widget.WidgetRealizeSignalInfo), '("rowActivated", TreeViewRowActivatedSignalInfo), '("rowCollapsed", TreeViewRowCollapsedSignalInfo), '("rowExpanded", TreeViewRowExpandedSignalInfo), '("selectAll", TreeViewSelectAllSignalInfo), '("selectCursorParent", TreeViewSelectCursorParentSignalInfo), '("selectCursorRow", TreeViewSelectCursorRowSignalInfo), '("show", Gtk.Widget.WidgetShowSignalInfo), '("startInteractiveSearch", TreeViewStartInteractiveSearchSignalInfo), '("stateFlagsChanged", Gtk.Widget.WidgetStateFlagsChangedSignalInfo), '("testCollapseRow", TreeViewTestCollapseRowSignalInfo), '("testExpandRow", TreeViewTestExpandRowSignalInfo), '("toggleCursorRow", TreeViewToggleCursorRowSignalInfo), '("unmap", Gtk.Widget.WidgetUnmapSignalInfo), '("unrealize", Gtk.Widget.WidgetUnrealizeSignalInfo), '("unselectAll", TreeViewUnselectAllSignalInfo)] :: [(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 t'GI.Gtk.Objects.TreeView.TreeView' widget.
treeViewNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m TreeView
    -- ^ __Returns:__ A newly created t'GI.Gtk.Objects.TreeView.TreeView' widget.
treeViewNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m TreeView
treeViewNew  = IO TreeView -> m TreeView
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreeView -> m TreeView) -> IO TreeView -> m TreeView
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
result <- IO (Ptr TreeView)
gtk_tree_view_new
    Text -> Ptr TreeView -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"treeViewNew" Ptr TreeView
result
    TreeView
result' <- ((ManagedPtr TreeView -> TreeView) -> Ptr TreeView -> IO TreeView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeView -> TreeView
TreeView) Ptr TreeView
result
    TreeView -> IO TreeView
forall (m :: * -> *) a. Monad m => a -> m a
return TreeView
result'

#if defined(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 t'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 t'GI.Gtk.Objects.TreeView.TreeView' widget.
treeViewNewWithModel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeModel a) =>
a -> m TreeView
treeViewNewWithModel a
model = IO TreeView -> m TreeView
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreeView -> m TreeView) -> IO TreeView -> m TreeView
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeModel
model' <- a -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
model
    Ptr TreeView
result <- Ptr TreeModel -> IO (Ptr TreeView)
gtk_tree_view_new_with_model Ptr TreeModel
model'
    Text -> Ptr TreeView -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"treeViewNewWithModel" Ptr TreeView
result
    TreeView
result' <- ((ManagedPtr TreeView -> TreeView) -> Ptr TreeView -> IO TreeView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeView -> TreeView
TreeView) Ptr TreeView
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
model
    TreeView -> IO TreeView
forall (m :: * -> *) a. Monad m => a -> m a
return TreeView
result'

#if defined(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 t'GI.Gtk.Objects.TreeView.TreeView'.
    -> b
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to add.
    -> m Int32
    -- ^ __Returns:__ The number of columns in /@treeView@/ after appending.
treeViewAppendColumn :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> b -> m Int32
treeViewAppendColumn a
treeView b
column = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
column' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
column
    Int32
result <- Ptr TreeView -> Ptr TreeViewColumn -> IO Int32
gtk_tree_view_append_column Ptr TreeView
treeView' Ptr TreeViewColumn
column'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
column
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

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

instance O.OverloadedMethodInfo TreeViewAppendColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewAppendColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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 t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m ()
treeViewCollapseAll :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m ()
treeViewCollapseAll a
treeView = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> IO ()
gtk_tree_view_collapse_all Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

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

instance O.OverloadedMethodInfo TreeViewCollapseAllMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewCollapseAll",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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 t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: path to a row in the /@treeView@/
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the row was collapsed.
treeViewCollapseRow :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreePath -> m Bool
treeViewCollapseRow a
treeView TreePath
path = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    CInt
result <- Ptr TreeView -> Ptr TreePath -> IO CInt
gtk_tree_view_collapse_row Ptr TreeView
treeView' Ptr TreePath
path'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

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

instance O.OverloadedMethodInfo TreeViewCollapseRowMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewCollapseRow",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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 t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m ()
treeViewColumnsAutosize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m ()
treeViewColumnsAutosize a
treeView = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> IO ()
gtk_tree_view_columns_autosize Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

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

instance O.OverloadedMethodInfo TreeViewColumnsAutosizeMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewColumnsAutosize",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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).
treeViewConvertBinWindowToTreeCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> Int32 -> m (Int32, Int32)
treeViewConvertBinWindowToTreeCoords a
treeView Int32
bx Int32
by = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Int32
tx <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
ty <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr TreeView -> Int32 -> Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()
gtk_tree_view_convert_bin_window_to_tree_coords Ptr TreeView
treeView' Int32
bx Int32
by Ptr Int32
tx Ptr Int32
ty
    Int32
tx' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
tx
    Int32
ty' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
ty
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
tx
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
ty
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
tx', Int32
ty')

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

instance O.OverloadedMethodInfo TreeViewConvertBinWindowToTreeCoordsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewConvertBinWindowToTreeCoords",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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 to widget relative coordinates.
treeViewConvertBinWindowToWidgetCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@bx@/: bin_window X coordinate
    -> Int32
    -- ^ /@by@/: bin_window Y coordinate
    -> m ((Int32, Int32))
treeViewConvertBinWindowToWidgetCoords :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> Int32 -> m (Int32, Int32)
treeViewConvertBinWindowToWidgetCoords a
treeView Int32
bx Int32
by = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Int32
wx <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
wy <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr TreeView -> Int32 -> Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()
gtk_tree_view_convert_bin_window_to_widget_coords Ptr TreeView
treeView' Int32
bx Int32
by Ptr Int32
wx Ptr Int32
wy
    Int32
wx' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
wx
    Int32
wy' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
wy
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
wx
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
wy
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
wx', Int32
wy')

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

instance O.OverloadedMethodInfo TreeViewConvertBinWindowToWidgetCoordsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewConvertBinWindowToWidgetCoords",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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.
treeViewConvertTreeToBinWindowCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@tx@/: tree X coordinate
    -> Int32
    -- ^ /@ty@/: tree Y coordinate
    -> m ((Int32, Int32))
treeViewConvertTreeToBinWindowCoords :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> Int32 -> m (Int32, Int32)
treeViewConvertTreeToBinWindowCoords a
treeView Int32
tx Int32
ty = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Int32
bx <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
by <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr TreeView -> Int32 -> Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()
gtk_tree_view_convert_tree_to_bin_window_coords Ptr TreeView
treeView' Int32
tx Int32
ty Ptr Int32
bx Ptr Int32
by
    Int32
bx' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
bx
    Int32
by' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
by
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
bx
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
by
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
bx', Int32
by')

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

instance O.OverloadedMethodInfo TreeViewConvertTreeToBinWindowCoordsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewConvertTreeToBinWindowCoords",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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.
treeViewConvertTreeToWidgetCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> Int32 -> m (Int32, Int32)
treeViewConvertTreeToWidgetCoords a
treeView Int32
tx Int32
ty = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Int32
wx <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
wy <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr TreeView -> Int32 -> Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()
gtk_tree_view_convert_tree_to_widget_coords Ptr TreeView
treeView' Int32
tx Int32
ty Ptr Int32
wx Ptr Int32
wy
    Int32
wx' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
wx
    Int32
wy' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
wy
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
wx
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
wy
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
wx', Int32
wy')

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

instance O.OverloadedMethodInfo TreeViewConvertTreeToWidgetCoordsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewConvertTreeToWidgetCoords",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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.
treeViewConvertWidgetToBinWindowCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> Int32 -> m (Int32, Int32)
treeViewConvertWidgetToBinWindowCoords a
treeView Int32
wx Int32
wy = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Int32
bx <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
by <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr TreeView -> Int32 -> Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()
gtk_tree_view_convert_widget_to_bin_window_coords Ptr TreeView
treeView' Int32
wx Int32
wy Ptr Int32
bx Ptr Int32
by
    Int32
bx' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
bx
    Int32
by' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
by
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
bx
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
by
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
bx', Int32
by')

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

instance O.OverloadedMethodInfo TreeViewConvertWidgetToBinWindowCoordsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewConvertWidgetToBinWindowCoords",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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).
treeViewConvertWidgetToTreeCoords ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'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 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> Int32 -> m (Int32, Int32)
treeViewConvertWidgetToTreeCoords a
treeView Int32
wx Int32
wy = IO (Int32, Int32) -> m (Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Int32, Int32) -> m (Int32, Int32))
-> IO (Int32, Int32) -> m (Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Int32
tx <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
ty <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr TreeView -> Int32 -> Int32 -> Ptr Int32 -> Ptr Int32 -> IO ()
gtk_tree_view_convert_widget_to_tree_coords Ptr TreeView
treeView' Int32
wx Int32
wy Ptr Int32
tx Ptr Int32
ty
    Int32
tx' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
tx
    Int32
ty' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
ty
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
tx
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
ty
    (Int32, Int32) -> IO (Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Int32
tx', Int32
ty')

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

instance O.OverloadedMethodInfo TreeViewConvertWidgetToTreeCoordsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewConvertWidgetToTreeCoords",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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 = "Gdk" , name = "Paintable" })
-- 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 Gdk.Paintable.Paintable)

-- | Creates a t'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 t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: a t'GI.Gtk.Structs.TreePath.TreePath' in /@treeView@/
    -> m (Maybe Gdk.Paintable.Paintable)
    -- ^ __Returns:__ a newly-allocated surface of the drag icon.
treeViewCreateRowDragIcon :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreePath -> m (Maybe Paintable)
treeViewCreateRowDragIcon a
treeView TreePath
path = IO (Maybe Paintable) -> m (Maybe Paintable)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Paintable) -> m (Maybe Paintable))
-> IO (Maybe Paintable) -> m (Maybe Paintable)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr Paintable
result <- Ptr TreeView -> Ptr TreePath -> IO (Ptr Paintable)
gtk_tree_view_create_row_drag_icon Ptr TreeView
treeView' Ptr TreePath
path'
    Maybe Paintable
maybeResult <- Ptr Paintable
-> (Ptr Paintable -> IO Paintable) -> IO (Maybe Paintable)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Paintable
result ((Ptr Paintable -> IO Paintable) -> IO (Maybe Paintable))
-> (Ptr Paintable -> IO Paintable) -> IO (Maybe Paintable)
forall a b. (a -> b) -> a -> b
$ \Ptr Paintable
result' -> do
        Paintable
result'' <- ((ManagedPtr Paintable -> Paintable)
-> Ptr Paintable -> IO Paintable
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr Paintable -> Paintable
Gdk.Paintable.Paintable) Ptr Paintable
result'
        Paintable -> IO Paintable
forall (m :: * -> *) a. Monad m => a -> m a
return Paintable
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    Maybe Paintable -> IO (Maybe Paintable)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Paintable
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeViewCreateRowDragIconMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> m (Maybe Gdk.Paintable.Paintable)), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewCreateRowDragIconMethodInfo a signature where
    overloadedMethod = treeViewCreateRowDragIcon

instance O.OverloadedMethodInfo TreeViewCreateRowDragIconMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewCreateRowDragIcon",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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 = "formats"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "ContentFormats" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the target formats that the drag will support"
--                 , 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: []
-- 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 Gdk.ContentFormats.ContentFormats -> -- formats : TInterface (Name {namespace = "Gdk", name = "ContentFormats"})
    CUInt ->                                -- actions : TInterface (Name {namespace = "Gdk", name = "DragAction"})
    IO ()

-- | Turns /@treeView@/ into a drop destination for automatic DND. Calling
-- this method sets t'GI.Gtk.Objects.TreeView.TreeView':@/reorderable/@ to 'P.False'.
treeViewEnableModelDragDest ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gdk.ContentFormats.ContentFormats
    -- ^ /@formats@/: the target formats that the drag will support
    -> [Gdk.Flags.DragAction]
    -- ^ /@actions@/: the bitmask of possible actions for a drag from this
    --    widget
    -> m ()
treeViewEnableModelDragDest :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> ContentFormats -> [DragAction] -> m ()
treeViewEnableModelDragDest a
treeView ContentFormats
formats [DragAction]
actions = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr ContentFormats
formats' <- ContentFormats -> IO (Ptr ContentFormats)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ContentFormats
formats
    let actions' :: CUInt
actions' = [DragAction] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DragAction]
actions
    Ptr TreeView -> Ptr ContentFormats -> CUInt -> IO ()
gtk_tree_view_enable_model_drag_dest Ptr TreeView
treeView' Ptr ContentFormats
formats' CUInt
actions'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    ContentFormats -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ContentFormats
formats
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

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

instance O.OverloadedMethodInfo TreeViewEnableModelDragDestMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewEnableModelDragDest",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v: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 = "formats"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "ContentFormats" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the target formats that the drag will support"
--                 , 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: []
-- 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"})
    CUInt ->                                -- start_button_mask : TInterface (Name {namespace = "Gdk", name = "ModifierType"})
    Ptr Gdk.ContentFormats.ContentFormats -> -- formats : TInterface (Name {namespace = "Gdk", name = "ContentFormats"})
    CUInt ->                                -- actions : TInterface (Name {namespace = "Gdk", name = "DragAction"})
    IO ()

-- | Turns /@treeView@/ into a drag source for automatic DND. Calling this
-- method sets t'GI.Gtk.Objects.TreeView.TreeView':@/reorderable/@ to 'P.False'.
treeViewEnableModelDragSource ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> [Gdk.Flags.ModifierType]
    -- ^ /@startButtonMask@/: Mask of allowed buttons to start drag
    -> Gdk.ContentFormats.ContentFormats
    -- ^ /@formats@/: the target formats that the drag will support
    -> [Gdk.Flags.DragAction]
    -- ^ /@actions@/: the bitmask of possible actions for a drag from this
    --    widget
    -> m ()
treeViewEnableModelDragSource :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> [ModifierType] -> ContentFormats -> [DragAction] -> m ()
treeViewEnableModelDragSource a
treeView [ModifierType]
startButtonMask ContentFormats
formats [DragAction]
actions = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let startButtonMask' :: CUInt
startButtonMask' = [ModifierType] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [ModifierType]
startButtonMask
    Ptr ContentFormats
formats' <- ContentFormats -> IO (Ptr ContentFormats)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ContentFormats
formats
    let actions' :: CUInt
actions' = [DragAction] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DragAction]
actions
    Ptr TreeView -> CUInt -> Ptr ContentFormats -> CUInt -> IO ()
gtk_tree_view_enable_model_drag_source Ptr TreeView
treeView' CUInt
startButtonMask' Ptr ContentFormats
formats' CUInt
actions'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    ContentFormats -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr ContentFormats
formats
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewEnableModelDragSourceMethodInfo
instance (signature ~ ([Gdk.Flags.ModifierType] -> Gdk.ContentFormats.ContentFormats -> [Gdk.Flags.DragAction] -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewEnableModelDragSourceMethodInfo a signature where
    overloadedMethod = treeViewEnableModelDragSource

instance O.OverloadedMethodInfo TreeViewEnableModelDragSourceMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewEnableModelDragSource",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewEnableModelDragSource"
        }


#endif

-- method TreeView::expand_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_expand_all" gtk_tree_view_expand_all :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    IO ()

-- | Recursively expands all nodes in the /@treeView@/.
treeViewExpandAll ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m ()
treeViewExpandAll :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m ()
treeViewExpandAll a
treeView = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> IO ()
gtk_tree_view_expand_all Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewExpandAllMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewExpandAllMethodInfo a signature where
    overloadedMethod = treeViewExpandAll

instance O.OverloadedMethodInfo TreeViewExpandAllMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewExpandAll",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewExpandAll"
        }


#endif

-- method TreeView::expand_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" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "open_all"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "whether to recursively expand, or just expand immediate children"
--                 , 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_expand_row" gtk_tree_view_expand_row :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    CInt ->                                 -- open_all : TBasicType TBoolean
    IO CInt

-- | Opens the row so its children are visible.
treeViewExpandRow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: path to a row
    -> Bool
    -- ^ /@openAll@/: whether to recursively expand, or just expand immediate children
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the row existed and had children
treeViewExpandRow :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreePath -> Bool -> m Bool
treeViewExpandRow a
treeView TreePath
path Bool
openAll = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    let openAll' :: CInt
openAll' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
openAll
    CInt
result <- Ptr TreeView -> Ptr TreePath -> CInt -> IO CInt
gtk_tree_view_expand_row Ptr TreeView
treeView' Ptr TreePath
path' CInt
openAll'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewExpandRowMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> Bool -> m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewExpandRowMethodInfo a signature where
    overloadedMethod = treeViewExpandRow

instance O.OverloadedMethodInfo TreeViewExpandRowMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewExpandRow",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewExpandRow"
        }


#endif

-- method TreeView::expand_to_path
-- 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." , 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_expand_to_path" gtk_tree_view_expand_to_path :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    IO ()

-- | Expands the row at /@path@/. This will also expand all parent rows of
-- /@path@/ as necessary.
treeViewExpandToPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: path to a row.
    -> m ()
treeViewExpandToPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreePath -> m ()
treeViewExpandToPath a
treeView TreePath
path = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr TreeView -> Ptr TreePath -> IO ()
gtk_tree_view_expand_to_path Ptr TreeView
treeView' Ptr TreePath
path'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewExpandToPathMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewExpandToPathMethodInfo a signature where
    overloadedMethod = treeViewExpandToPath

instance O.OverloadedMethodInfo TreeViewExpandToPathMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewExpandToPath",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewExpandToPath"
        }


#endif

-- method TreeView::get_activate_on_single_click
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Gets the setting set by 'GI.Gtk.Objects.TreeView.treeViewSetActivateOnSingleClick'.
treeViewGetActivateOnSingleClick ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if row-activated will be emitted on a single click
treeViewGetActivateOnSingleClick :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetActivateOnSingleClick a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_activate_on_single_click Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetActivateOnSingleClickMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetActivateOnSingleClickMethodInfo a signature where
    overloadedMethod = treeViewGetActivateOnSingleClick

instance O.OverloadedMethodInfo TreeViewGetActivateOnSingleClickMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetActivateOnSingleClick",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetActivateOnSingleClick"
        }


#endif

-- method TreeView::get_background_area
-- 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkTreePath for the row, or %NULL to get only horizontal coordinates"
--                 , 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkTreeViewColumn for the column, or %NULL to get only vertical coordinates"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "rect"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "Rectangle" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "rectangle to fill with cell background rect"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = True
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_background_area" gtk_tree_view_get_background_area :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Ptr Gdk.Rectangle.Rectangle ->          -- rect : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    IO ()

-- | Fills the bounding rectangle in bin_window coordinates for the cell at the
-- row specified by /@path@/ and the column specified by /@column@/.  If /@path@/ is
-- 'P.Nothing', or points to a node not found in the tree, the /@y@/ and /@height@/ fields of
-- the rectangle will be filled with 0. If /@column@/ is 'P.Nothing', the /@x@/ and /@width@/
-- fields will be filled with 0.  The returned rectangle is equivalent to the
-- /@backgroundArea@/ passed to @/gtk_cell_renderer_render()/@.  These background
-- areas tile to cover the entire bin window.  Contrast with the /@cellArea@/,
-- returned by 'GI.Gtk.Objects.TreeView.treeViewGetCellArea', which returns only the cell
-- itself, excluding surrounding borders and the tree expander area.
treeViewGetBackgroundArea ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Maybe (Gtk.TreePath.TreePath)
    -- ^ /@path@/: a t'GI.Gtk.Structs.TreePath.TreePath' for the row, or 'P.Nothing' to get only horizontal coordinates
    -> Maybe (b)
    -- ^ /@column@/: a t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' for the column, or 'P.Nothing' to get only vertical coordinates
    -> m (Gdk.Rectangle.Rectangle)
treeViewGetBackgroundArea :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> Maybe TreePath -> Maybe b -> m Rectangle
treeViewGetBackgroundArea a
treeView Maybe TreePath
path Maybe b
column = IO Rectangle -> m Rectangle
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Rectangle -> m Rectangle) -> IO Rectangle -> m Rectangle
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
maybePath <- case Maybe TreePath
path of
        Maybe TreePath
Nothing -> Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
forall a. Ptr a
nullPtr
        Just TreePath
jPath -> do
            Ptr TreePath
jPath' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
jPath
            Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
jPath'
    Ptr TreeViewColumn
maybeColumn <- case Maybe b
column of
        Maybe b
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just b
jColumn -> do
            Ptr TreeViewColumn
jColumn' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jColumn'
    Ptr Rectangle
rect <- Int -> IO (Ptr Rectangle)
forall a. GBoxed a => Int -> IO (Ptr a)
SP.callocBoxedBytes Int
16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    Ptr TreeView
-> Ptr TreePath -> Ptr TreeViewColumn -> Ptr Rectangle -> IO ()
gtk_tree_view_get_background_area Ptr TreeView
treeView' Ptr TreePath
maybePath Ptr TreeViewColumn
maybeColumn Ptr Rectangle
rect
    Rectangle
rect' <- ((ManagedPtr Rectangle -> Rectangle)
-> Ptr Rectangle -> IO Rectangle
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Rectangle -> Rectangle
Gdk.Rectangle.Rectangle) Ptr Rectangle
rect
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe TreePath -> (TreePath -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe TreePath
path TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
column b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Rectangle -> IO Rectangle
forall (m :: * -> *) a. Monad m => a -> m a
return Rectangle
rect'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetBackgroundAreaMethodInfo
instance (signature ~ (Maybe (Gtk.TreePath.TreePath) -> Maybe (b) -> m (Gdk.Rectangle.Rectangle)), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewGetBackgroundAreaMethodInfo a signature where
    overloadedMethod = treeViewGetBackgroundArea

instance O.OverloadedMethodInfo TreeViewGetBackgroundAreaMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetBackgroundArea",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetBackgroundArea"
        }


#endif

-- method TreeView::get_cell_area
-- 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkTreePath for the row, or %NULL to get only horizontal coordinates"
--                 , 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkTreeViewColumn for the column, or %NULL to get only vertical coordinates"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "rect"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "Rectangle" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "rectangle to fill with cell rect"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = True
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_cell_area" gtk_tree_view_get_cell_area :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Ptr Gdk.Rectangle.Rectangle ->          -- rect : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    IO ()

-- | Fills the bounding rectangle in bin_window coordinates for the cell at the
-- row specified by /@path@/ and the column specified by /@column@/.  If /@path@/ is
-- 'P.Nothing', or points to a path not currently displayed, the /@y@/ and /@height@/ fields
-- of the rectangle will be filled with 0. If /@column@/ is 'P.Nothing', the /@x@/ and /@width@/
-- fields will be filled with 0.  The sum of all cell rects does not cover the
-- entire tree; there are extra pixels in between rows, for example. The
-- returned rectangle is equivalent to the /@cellArea@/ passed to
-- @/gtk_cell_renderer_render()/@.  This function is only valid if /@treeView@/ is
-- realized.
treeViewGetCellArea ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Maybe (Gtk.TreePath.TreePath)
    -- ^ /@path@/: a t'GI.Gtk.Structs.TreePath.TreePath' for the row, or 'P.Nothing' to get only horizontal coordinates
    -> Maybe (b)
    -- ^ /@column@/: a t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' for the column, or 'P.Nothing' to get only vertical coordinates
    -> m (Gdk.Rectangle.Rectangle)
treeViewGetCellArea :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> Maybe TreePath -> Maybe b -> m Rectangle
treeViewGetCellArea a
treeView Maybe TreePath
path Maybe b
column = IO Rectangle -> m Rectangle
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Rectangle -> m Rectangle) -> IO Rectangle -> m Rectangle
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
maybePath <- case Maybe TreePath
path of
        Maybe TreePath
Nothing -> Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
forall a. Ptr a
nullPtr
        Just TreePath
jPath -> do
            Ptr TreePath
jPath' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
jPath
            Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
jPath'
    Ptr TreeViewColumn
maybeColumn <- case Maybe b
column of
        Maybe b
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just b
jColumn -> do
            Ptr TreeViewColumn
jColumn' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jColumn'
    Ptr Rectangle
rect <- Int -> IO (Ptr Rectangle)
forall a. GBoxed a => Int -> IO (Ptr a)
SP.callocBoxedBytes Int
16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    Ptr TreeView
-> Ptr TreePath -> Ptr TreeViewColumn -> Ptr Rectangle -> IO ()
gtk_tree_view_get_cell_area Ptr TreeView
treeView' Ptr TreePath
maybePath Ptr TreeViewColumn
maybeColumn Ptr Rectangle
rect
    Rectangle
rect' <- ((ManagedPtr Rectangle -> Rectangle)
-> Ptr Rectangle -> IO Rectangle
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Rectangle -> Rectangle
Gdk.Rectangle.Rectangle) Ptr Rectangle
rect
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe TreePath -> (TreePath -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe TreePath
path TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
column b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Rectangle -> IO Rectangle
forall (m :: * -> *) a. Monad m => a -> m a
return Rectangle
rect'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetCellAreaMethodInfo
instance (signature ~ (Maybe (Gtk.TreePath.TreePath) -> Maybe (b) -> m (Gdk.Rectangle.Rectangle)), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewGetCellAreaMethodInfo a signature where
    overloadedMethod = treeViewGetCellArea

instance O.OverloadedMethodInfo TreeViewGetCellAreaMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetCellArea",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetCellArea"
        }


#endif

-- method TreeView::get_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 = "n"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The position of the column, counting from 0."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" })
-- throws : False
-- Skip return : False

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

-- | Gets the t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' at the given position in the @/tree_view/@.
treeViewGetColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Int32
    -- ^ /@n@/: The position of the column, counting from 0.
    -> m (Maybe Gtk.TreeViewColumn.TreeViewColumn)
    -- ^ __Returns:__ The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn', or 'P.Nothing' if the
    -- position is outside the range of columns.
treeViewGetColumn :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> m (Maybe TreeViewColumn)
treeViewGetColumn a
treeView Int32
n = IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn))
-> IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
result <- Ptr TreeView -> Int32 -> IO (Ptr TreeViewColumn)
gtk_tree_view_get_column Ptr TreeView
treeView' Int32
n
    Maybe TreeViewColumn
maybeResult <- Ptr TreeViewColumn
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeViewColumn
result ((Ptr TreeViewColumn -> IO TreeViewColumn)
 -> IO (Maybe TreeViewColumn))
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeViewColumn
result' -> do
        TreeViewColumn
result'' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
result'
        TreeViewColumn -> IO TreeViewColumn
forall (m :: * -> *) a. Monad m => a -> m a
return TreeViewColumn
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe TreeViewColumn -> IO (Maybe TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TreeViewColumn
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeViewGetColumnMethodInfo
instance (signature ~ (Int32 -> m (Maybe Gtk.TreeViewColumn.TreeViewColumn)), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetColumnMethodInfo a signature where
    overloadedMethod = treeViewGetColumn

instance O.OverloadedMethodInfo TreeViewGetColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetColumn"
        }


#endif

-- method TreeView::get_columns
-- 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: Just
--               (TGList
--                  (TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }))
-- throws : False
-- Skip return : False

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

-- | Returns a t'GI.GLib.Structs.List.List' of all the t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' s currently in /@treeView@/.
-- The returned list must be freed with g_list_free ().
treeViewGetColumns ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> m [Gtk.TreeViewColumn.TreeViewColumn]
    -- ^ __Returns:__ A list of t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' s
treeViewGetColumns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m [TreeViewColumn]
treeViewGetColumns a
treeView = IO [TreeViewColumn] -> m [TreeViewColumn]
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [TreeViewColumn] -> m [TreeViewColumn])
-> IO [TreeViewColumn] -> m [TreeViewColumn]
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr (GList (Ptr TreeViewColumn))
result <- Ptr TreeView -> IO (Ptr (GList (Ptr TreeViewColumn)))
gtk_tree_view_get_columns Ptr TreeView
treeView'
    [Ptr TreeViewColumn]
result' <- Ptr (GList (Ptr TreeViewColumn)) -> IO [Ptr TreeViewColumn]
forall a. Ptr (GList (Ptr a)) -> IO [Ptr a]
unpackGList Ptr (GList (Ptr TreeViewColumn))
result
    [TreeViewColumn]
result'' <- (Ptr TreeViewColumn -> IO TreeViewColumn)
-> [Ptr TreeViewColumn] -> IO [TreeViewColumn]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) [Ptr TreeViewColumn]
result'
    Ptr (GList (Ptr TreeViewColumn)) -> IO ()
forall a. Ptr (GList a) -> IO ()
g_list_free Ptr (GList (Ptr TreeViewColumn))
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    [TreeViewColumn] -> IO [TreeViewColumn]
forall (m :: * -> *) a. Monad m => a -> m a
return [TreeViewColumn]
result''

#if defined(ENABLE_OVERLOADING)
data TreeViewGetColumnsMethodInfo
instance (signature ~ (m [Gtk.TreeViewColumn.TreeViewColumn]), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetColumnsMethodInfo a signature where
    overloadedMethod = treeViewGetColumns

instance O.OverloadedMethodInfo TreeViewGetColumnsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetColumns",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetColumns"
        }


#endif

-- method TreeView::get_cursor
-- 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 = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer to be\n  filled with the current cursor path, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "focus_column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A\n  pointer to be filled with the current focus column, or %NULL"
--                 , 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_get_cursor" gtk_tree_view_get_cursor :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr (Ptr Gtk.TreePath.TreePath) ->      -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr (Ptr Gtk.TreeViewColumn.TreeViewColumn) -> -- focus_column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    IO ()

-- | Fills in /@path@/ and /@focusColumn@/ with the current path and focus column.  If
-- the cursor isn’t currently set, then */@path@/ will be 'P.Nothing'.  If no column
-- currently has focus, then */@focusColumn@/ will be 'P.Nothing'.
-- 
-- The returned t'GI.Gtk.Structs.TreePath.TreePath' must be freed with 'GI.Gtk.Structs.TreePath.treePathFree' when
-- you are done with it.
treeViewGetCursor ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> m ((Maybe Gtk.TreePath.TreePath, Maybe Gtk.TreeViewColumn.TreeViewColumn))
treeViewGetCursor :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m (Maybe TreePath, Maybe TreeViewColumn)
treeViewGetCursor a
treeView = IO (Maybe TreePath, Maybe TreeViewColumn)
-> m (Maybe TreePath, Maybe TreeViewColumn)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TreePath, Maybe TreeViewColumn)
 -> m (Maybe TreePath, Maybe TreeViewColumn))
-> IO (Maybe TreePath, Maybe TreeViewColumn)
-> m (Maybe TreePath, Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr (Ptr TreePath)
path <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    Ptr (Ptr TreeViewColumn)
focusColumn <- IO (Ptr (Ptr TreeViewColumn))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreeViewColumn.TreeViewColumn))
    Ptr TreeView
-> Ptr (Ptr TreePath) -> Ptr (Ptr TreeViewColumn) -> IO ()
gtk_tree_view_get_cursor Ptr TreeView
treeView' Ptr (Ptr TreePath)
path Ptr (Ptr TreeViewColumn)
focusColumn
    Ptr TreePath
path' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
path
    Maybe TreePath
maybePath' <- Ptr TreePath
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreePath
path' ((Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath))
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. (a -> b) -> a -> b
$ \Ptr TreePath
path'' -> do
        TreePath
path''' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
path''
        TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
path'''
    Ptr TreeViewColumn
focusColumn' <- Ptr (Ptr TreeViewColumn) -> IO (Ptr TreeViewColumn)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreeViewColumn)
focusColumn
    Maybe TreeViewColumn
maybeFocusColumn' <- Ptr TreeViewColumn
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeViewColumn
focusColumn' ((Ptr TreeViewColumn -> IO TreeViewColumn)
 -> IO (Maybe TreeViewColumn))
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeViewColumn
focusColumn'' -> do
        TreeViewColumn
focusColumn''' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
focusColumn''
        TreeViewColumn -> IO TreeViewColumn
forall (m :: * -> *) a. Monad m => a -> m a
return TreeViewColumn
focusColumn'''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
path
    Ptr (Ptr TreeViewColumn) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreeViewColumn)
focusColumn
    (Maybe TreePath, Maybe TreeViewColumn)
-> IO (Maybe TreePath, Maybe TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe TreePath
maybePath', Maybe TreeViewColumn
maybeFocusColumn')

#if defined(ENABLE_OVERLOADING)
data TreeViewGetCursorMethodInfo
instance (signature ~ (m ((Maybe Gtk.TreePath.TreePath, Maybe Gtk.TreeViewColumn.TreeViewColumn))), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetCursorMethodInfo a signature where
    overloadedMethod = treeViewGetCursor

instance O.OverloadedMethodInfo TreeViewGetCursorMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetCursor",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetCursor"
        }


#endif

-- method TreeView::get_dest_row_at_pos
-- 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 = "drag_x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the position to determine the destination row for"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "drag_y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the position to determine the destination row for"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "Return location for the path of\n  the highlighted row, or %NULL."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "pos"
--           , argType =
--               TInterface
--                 Name { namespace = "Gtk" , name = "TreeViewDropPosition" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "Return location for the drop position, or\n  %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_dest_row_at_pos" gtk_tree_view_get_dest_row_at_pos :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- drag_x : TBasicType TInt
    Int32 ->                                -- drag_y : TBasicType TInt
    Ptr (Ptr Gtk.TreePath.TreePath) ->      -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr CUInt ->                            -- pos : TInterface (Name {namespace = "Gtk", name = "TreeViewDropPosition"})
    IO CInt

-- | Determines the destination row for a given position.  /@dragX@/ and
-- /@dragY@/ are expected to be in widget coordinates.  This function is only
-- meaningful if /@treeView@/ is realized.  Therefore this function will always
-- return 'P.False' if /@treeView@/ is not realized or does not have a model.
treeViewGetDestRowAtPos ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@dragX@/: the position to determine the destination row for
    -> Int32
    -- ^ /@dragY@/: the position to determine the destination row for
    -> m ((Bool, Maybe Gtk.TreePath.TreePath, Gtk.Enums.TreeViewDropPosition))
    -- ^ __Returns:__ whether there is a row at the given position, 'P.True' if this
    -- is indeed the case.
treeViewGetDestRowAtPos :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a
-> Int32 -> Int32 -> m (Bool, Maybe TreePath, TreeViewDropPosition)
treeViewGetDestRowAtPos a
treeView Int32
dragX Int32
dragY = IO (Bool, Maybe TreePath, TreeViewDropPosition)
-> m (Bool, Maybe TreePath, TreeViewDropPosition)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Maybe TreePath, TreeViewDropPosition)
 -> m (Bool, Maybe TreePath, TreeViewDropPosition))
-> IO (Bool, Maybe TreePath, TreeViewDropPosition)
-> m (Bool, Maybe TreePath, TreeViewDropPosition)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr (Ptr TreePath)
path <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    Ptr CUInt
pos <- IO (Ptr CUInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CUInt)
    CInt
result <- Ptr TreeView
-> Int32 -> Int32 -> Ptr (Ptr TreePath) -> Ptr CUInt -> IO CInt
gtk_tree_view_get_dest_row_at_pos Ptr TreeView
treeView' Int32
dragX Int32
dragY Ptr (Ptr TreePath)
path Ptr CUInt
pos
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    Ptr TreePath
path' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
path
    Maybe TreePath
maybePath' <- Ptr TreePath
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreePath
path' ((Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath))
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. (a -> b) -> a -> b
$ \Ptr TreePath
path'' -> do
        TreePath
path''' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
path''
        TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
path'''
    CUInt
pos' <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CUInt
pos
    let pos'' :: TreeViewDropPosition
pos'' = (Int -> TreeViewDropPosition
forall a. Enum a => Int -> a
toEnum (Int -> TreeViewDropPosition)
-> (CUInt -> Int) -> CUInt -> TreeViewDropPosition
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
pos'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
path
    Ptr CUInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CUInt
pos
    (Bool, Maybe TreePath, TreeViewDropPosition)
-> IO (Bool, Maybe TreePath, TreeViewDropPosition)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Maybe TreePath
maybePath', TreeViewDropPosition
pos'')

#if defined(ENABLE_OVERLOADING)
data TreeViewGetDestRowAtPosMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Bool, Maybe Gtk.TreePath.TreePath, Gtk.Enums.TreeViewDropPosition))), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetDestRowAtPosMethodInfo a signature where
    overloadedMethod = treeViewGetDestRowAtPos

instance O.OverloadedMethodInfo TreeViewGetDestRowAtPosMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetDestRowAtPos",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetDestRowAtPos"
        }


#endif

-- method TreeView::get_drag_dest_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 = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "Return location for the path of the highlighted row, or %NULL."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "pos"
--           , argType =
--               TInterface
--                 Name { namespace = "Gtk" , name = "TreeViewDropPosition" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "Return location for the drop position, or %NULL"
--                 , 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_get_drag_dest_row" gtk_tree_view_get_drag_dest_row :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr (Ptr Gtk.TreePath.TreePath) ->      -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr CUInt ->                            -- pos : TInterface (Name {namespace = "Gtk", name = "TreeViewDropPosition"})
    IO ()

-- | Gets information about the row that is highlighted for feedback.
treeViewGetDragDestRow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m ((Maybe Gtk.TreePath.TreePath, Gtk.Enums.TreeViewDropPosition))
treeViewGetDragDestRow :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m (Maybe TreePath, TreeViewDropPosition)
treeViewGetDragDestRow a
treeView = IO (Maybe TreePath, TreeViewDropPosition)
-> m (Maybe TreePath, TreeViewDropPosition)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TreePath, TreeViewDropPosition)
 -> m (Maybe TreePath, TreeViewDropPosition))
-> IO (Maybe TreePath, TreeViewDropPosition)
-> m (Maybe TreePath, TreeViewDropPosition)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr (Ptr TreePath)
path <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    Ptr CUInt
pos <- IO (Ptr CUInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CUInt)
    Ptr TreeView -> Ptr (Ptr TreePath) -> Ptr CUInt -> IO ()
gtk_tree_view_get_drag_dest_row Ptr TreeView
treeView' Ptr (Ptr TreePath)
path Ptr CUInt
pos
    Ptr TreePath
path' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
path
    Maybe TreePath
maybePath' <- Ptr TreePath
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreePath
path' ((Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath))
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. (a -> b) -> a -> b
$ \Ptr TreePath
path'' -> do
        TreePath
path''' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
path''
        TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
path'''
    CUInt
pos' <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CUInt
pos
    let pos'' :: TreeViewDropPosition
pos'' = (Int -> TreeViewDropPosition
forall a. Enum a => Int -> a
toEnum (Int -> TreeViewDropPosition)
-> (CUInt -> Int) -> CUInt -> TreeViewDropPosition
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
pos'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
path
    Ptr CUInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CUInt
pos
    (Maybe TreePath, TreeViewDropPosition)
-> IO (Maybe TreePath, TreeViewDropPosition)
forall (m :: * -> *) a. Monad m => a -> m a
return (Maybe TreePath
maybePath', TreeViewDropPosition
pos'')

#if defined(ENABLE_OVERLOADING)
data TreeViewGetDragDestRowMethodInfo
instance (signature ~ (m ((Maybe Gtk.TreePath.TreePath, Gtk.Enums.TreeViewDropPosition))), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetDragDestRowMethodInfo a signature where
    overloadedMethod = treeViewGetDragDestRow

instance O.OverloadedMethodInfo TreeViewGetDragDestRowMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetDragDestRow",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetDragDestRow"
        }


#endif

-- method TreeView::get_enable_search
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether or not the tree allows to start interactive searching
-- by typing in text.
treeViewGetEnableSearch ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ whether or not to let the user search interactively
treeViewGetEnableSearch :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetEnableSearch a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_enable_search Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetEnableSearchMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetEnableSearchMethodInfo a signature where
    overloadedMethod = treeViewGetEnableSearch

instance O.OverloadedMethodInfo TreeViewGetEnableSearchMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetEnableSearch",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetEnableSearch"
        }


#endif

-- method TreeView::get_enable_tree_lines
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether or not tree lines are drawn in /@treeView@/.
treeViewGetEnableTreeLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m Bool
    -- ^ __Returns:__ 'P.True' if tree lines are drawn in /@treeView@/, 'P.False'
    -- otherwise.
treeViewGetEnableTreeLines :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetEnableTreeLines a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_enable_tree_lines Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetEnableTreeLinesMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetEnableTreeLinesMethodInfo a signature where
    overloadedMethod = treeViewGetEnableTreeLines

instance O.OverloadedMethodInfo TreeViewGetEnableTreeLinesMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetEnableTreeLines",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetEnableTreeLines"
        }


#endif

-- method TreeView::get_expander_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
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" })
-- throws : False
-- Skip return : False

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

-- | Returns the column that is the current expander column,
-- or 'P.Nothing' if none has been set.
-- This column has the expander arrow drawn next to it.
treeViewGetExpanderColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> m (Maybe Gtk.TreeViewColumn.TreeViewColumn)
    -- ^ __Returns:__ The expander column.
treeViewGetExpanderColumn :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m (Maybe TreeViewColumn)
treeViewGetExpanderColumn a
treeView = IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn))
-> IO (Maybe TreeViewColumn) -> m (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
result <- Ptr TreeView -> IO (Ptr TreeViewColumn)
gtk_tree_view_get_expander_column Ptr TreeView
treeView'
    Maybe TreeViewColumn
maybeResult <- Ptr TreeViewColumn
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeViewColumn
result ((Ptr TreeViewColumn -> IO TreeViewColumn)
 -> IO (Maybe TreeViewColumn))
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeViewColumn
result' -> do
        TreeViewColumn
result'' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
result'
        TreeViewColumn -> IO TreeViewColumn
forall (m :: * -> *) a. Monad m => a -> m a
return TreeViewColumn
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe TreeViewColumn -> IO (Maybe TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TreeViewColumn
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeViewGetExpanderColumnMethodInfo
instance (signature ~ (m (Maybe Gtk.TreeViewColumn.TreeViewColumn)), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetExpanderColumnMethodInfo a signature where
    overloadedMethod = treeViewGetExpanderColumn

instance O.OverloadedMethodInfo TreeViewGetExpanderColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetExpanderColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetExpanderColumn"
        }


#endif

-- method TreeView::get_fixed_height_mode
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether fixed height mode is turned on for /@treeView@/.
treeViewGetFixedHeightMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if /@treeView@/ is in fixed height mode
treeViewGetFixedHeightMode :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetFixedHeightMode a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_fixed_height_mode Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetFixedHeightModeMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetFixedHeightModeMethodInfo a signature where
    overloadedMethod = treeViewGetFixedHeightMode

instance O.OverloadedMethodInfo TreeViewGetFixedHeightModeMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetFixedHeightMode",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetFixedHeightMode"
        }


#endif

-- method TreeView::get_grid_lines
-- 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: Just
--               (TInterface
--                  Name { namespace = "Gtk" , name = "TreeViewGridLines" })
-- throws : False
-- Skip return : False

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

-- | Returns which grid lines are enabled in /@treeView@/.
treeViewGetGridLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Gtk.Enums.TreeViewGridLines
    -- ^ __Returns:__ a t'GI.Gtk.Enums.TreeViewGridLines' value indicating which grid lines
    -- are enabled.
treeViewGetGridLines :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m TreeViewGridLines
treeViewGetGridLines a
treeView = IO TreeViewGridLines -> m TreeViewGridLines
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreeViewGridLines -> m TreeViewGridLines)
-> IO TreeViewGridLines -> m TreeViewGridLines
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CUInt
result <- Ptr TreeView -> IO CUInt
gtk_tree_view_get_grid_lines Ptr TreeView
treeView'
    let result' :: TreeViewGridLines
result' = (Int -> TreeViewGridLines
forall a. Enum a => Int -> a
toEnum (Int -> TreeViewGridLines)
-> (CUInt -> Int) -> CUInt -> TreeViewGridLines
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewGridLines -> IO TreeViewGridLines
forall (m :: * -> *) a. Monad m => a -> m a
return TreeViewGridLines
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetGridLinesMethodInfo
instance (signature ~ (m Gtk.Enums.TreeViewGridLines), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetGridLinesMethodInfo a signature where
    overloadedMethod = treeViewGetGridLines

instance O.OverloadedMethodInfo TreeViewGetGridLinesMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetGridLines",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetGridLines"
        }


#endif

-- method TreeView::get_headers_clickable
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether all header columns are clickable.
treeViewGetHeadersClickable ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m Bool
    -- ^ __Returns:__ 'P.True' if all header columns are clickable, otherwise 'P.False'
treeViewGetHeadersClickable :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetHeadersClickable a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_headers_clickable Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetHeadersClickableMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetHeadersClickableMethodInfo a signature where
    overloadedMethod = treeViewGetHeadersClickable

instance O.OverloadedMethodInfo TreeViewGetHeadersClickableMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetHeadersClickable",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetHeadersClickable"
        }


#endif

-- method TreeView::get_headers_visible
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns 'P.True' if the headers on the /@treeView@/ are visible.
treeViewGetHeadersVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m Bool
    -- ^ __Returns:__ Whether the headers are visible or not.
treeViewGetHeadersVisible :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetHeadersVisible a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_headers_visible Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetHeadersVisibleMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetHeadersVisibleMethodInfo a signature where
    overloadedMethod = treeViewGetHeadersVisible

instance O.OverloadedMethodInfo TreeViewGetHeadersVisibleMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetHeadersVisible",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetHeadersVisible"
        }


#endif

-- method TreeView::get_hover_expand
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether hover expansion mode is turned on for /@treeView@/.
treeViewGetHoverExpand ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if /@treeView@/ is in hover expansion mode
treeViewGetHoverExpand :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetHoverExpand a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_hover_expand Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetHoverExpandMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetHoverExpandMethodInfo a signature where
    overloadedMethod = treeViewGetHoverExpand

instance O.OverloadedMethodInfo TreeViewGetHoverExpandMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetHoverExpand",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetHoverExpand"
        }


#endif

-- method TreeView::get_hover_selection
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether hover selection mode is turned on for /@treeView@/.
treeViewGetHoverSelection ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if /@treeView@/ is in hover selection mode
treeViewGetHoverSelection :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetHoverSelection a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_hover_selection Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetHoverSelectionMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetHoverSelectionMethodInfo a signature where
    overloadedMethod = treeViewGetHoverSelection

instance O.OverloadedMethodInfo TreeViewGetHoverSelectionMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetHoverSelection",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetHoverSelection"
        }


#endif

-- method TreeView::get_level_indentation
-- 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: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

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

-- | Returns the amount, in pixels, of extra indentation for child levels
-- in /@treeView@/.
treeViewGetLevelIndentation ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m Int32
    -- ^ __Returns:__ the amount of extra indentation for child levels in
    -- /@treeView@/.  A return value of 0 means that this feature is disabled.
treeViewGetLevelIndentation :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Int32
treeViewGetLevelIndentation a
treeView = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Int32
result <- Ptr TreeView -> IO Int32
gtk_tree_view_get_level_indentation Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data TreeViewGetLevelIndentationMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetLevelIndentationMethodInfo a signature where
    overloadedMethod = treeViewGetLevelIndentation

instance O.OverloadedMethodInfo TreeViewGetLevelIndentationMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetLevelIndentation",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetLevelIndentation"
        }


#endif

-- method TreeView::get_model
-- 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: Just (TInterface Name { namespace = "Gtk" , name = "TreeModel" })
-- throws : False
-- Skip return : False

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

-- | Returns the model the t'GI.Gtk.Objects.TreeView.TreeView' is based on.  Returns 'P.Nothing' if the
-- model is unset.
treeViewGetModel ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m (Maybe Gtk.TreeModel.TreeModel)
    -- ^ __Returns:__ A t'GI.Gtk.Interfaces.TreeModel.TreeModel', or 'P.Nothing' if
    -- none is currently being used.
treeViewGetModel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m (Maybe TreeModel)
treeViewGetModel a
treeView = IO (Maybe TreeModel) -> m (Maybe TreeModel)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe TreeModel) -> m (Maybe TreeModel))
-> IO (Maybe TreeModel) -> m (Maybe TreeModel)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeModel
result <- Ptr TreeView -> IO (Ptr TreeModel)
gtk_tree_view_get_model Ptr TreeView
treeView'
    Maybe TreeModel
maybeResult <- Ptr TreeModel
-> (Ptr TreeModel -> IO TreeModel) -> IO (Maybe TreeModel)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeModel
result ((Ptr TreeModel -> IO TreeModel) -> IO (Maybe TreeModel))
-> (Ptr TreeModel -> IO TreeModel) -> IO (Maybe TreeModel)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeModel
result' -> do
        TreeModel
result'' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
result'
        TreeModel -> IO TreeModel
forall (m :: * -> *) a. Monad m => a -> m a
return TreeModel
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe TreeModel -> IO (Maybe TreeModel)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe TreeModel
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeViewGetModelMethodInfo
instance (signature ~ (m (Maybe Gtk.TreeModel.TreeModel)), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetModelMethodInfo a signature where
    overloadedMethod = treeViewGetModel

instance O.OverloadedMethodInfo TreeViewGetModelMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetModel",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetModel"
        }


#endif

-- method TreeView::get_n_columns
-- 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: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

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

-- | Queries the number of columns in the given /@treeView@/.
treeViewGetNColumns ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Word32
    -- ^ __Returns:__ The number of columns in the /@treeView@/
treeViewGetNColumns :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Word32
treeViewGetNColumns a
treeView = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Word32
result <- Ptr TreeView -> IO Word32
gtk_tree_view_get_n_columns Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Word32 -> IO Word32
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data TreeViewGetNColumnsMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetNColumnsMethodInfo a signature where
    overloadedMethod = treeViewGetNColumns

instance O.OverloadedMethodInfo TreeViewGetNColumnsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetNColumns",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetNColumns"
        }


#endif

-- method TreeView::get_path_at_pos
-- 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 = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The x position to be identified (relative to bin_window)."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The y position to be identified (relative to bin_window)."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer to a #GtkTreePath\n  pointer to be filled in, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer to\n  a #GtkTreeViewColumn pointer to be filled in, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell_x"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer where the X coordinate\n  relative to the cell can be placed, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "cell_y"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer where the Y coordinate\n  relative to the cell can be placed, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_path_at_pos" gtk_tree_view_get_path_at_pos :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- x : TBasicType TInt
    Int32 ->                                -- y : TBasicType TInt
    Ptr (Ptr Gtk.TreePath.TreePath) ->      -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr (Ptr Gtk.TreeViewColumn.TreeViewColumn) -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Ptr Int32 ->                            -- cell_x : TBasicType TInt
    Ptr Int32 ->                            -- cell_y : TBasicType TInt
    IO CInt

-- | Finds the path at the point (/@x@/, /@y@/), relative to bin_window coordinates.
-- That is, /@x@/ and /@y@/ are relative to an events coordinates. Widget-relative
-- coordinates must be converted using
-- 'GI.Gtk.Objects.TreeView.treeViewConvertWidgetToBinWindowCoords'. It is primarily for
-- things like popup menus. If /@path@/ is non-'P.Nothing', then it will be filled
-- with the t'GI.Gtk.Structs.TreePath.TreePath' at that point.  This path should be freed with
-- 'GI.Gtk.Structs.TreePath.treePathFree'.  If /@column@/ is non-'P.Nothing', then it will be filled
-- with the column at that point.  /@cellX@/ and /@cellY@/ return the coordinates
-- relative to the cell background (i.e. the /@backgroundArea@/ passed to
-- @/gtk_cell_renderer_render()/@).  This function is only meaningful if
-- /@treeView@/ is realized.  Therefore this function will always return 'P.False'
-- if /@treeView@/ is not realized or does not have a model.
-- 
-- For converting widget coordinates (eg. the ones you get from
-- GtkWidget[queryTooltip](#g:signal:queryTooltip)), please see
-- 'GI.Gtk.Objects.TreeView.treeViewConvertWidgetToBinWindowCoords'.
treeViewGetPathAtPos ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Int32
    -- ^ /@x@/: The x position to be identified (relative to bin_window).
    -> Int32
    -- ^ /@y@/: The y position to be identified (relative to bin_window).
    -> m ((Bool, Maybe Gtk.TreePath.TreePath, Maybe Gtk.TreeViewColumn.TreeViewColumn, Int32, Int32))
    -- ^ __Returns:__ 'P.True' if a row exists at that coordinate.
treeViewGetPathAtPos :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a
-> Int32
-> Int32
-> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
treeViewGetPathAtPos a
treeView Int32
x Int32
y = IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
-> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
 -> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32))
-> IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
-> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr (Ptr TreePath)
path <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    Ptr (Ptr TreeViewColumn)
column <- IO (Ptr (Ptr TreeViewColumn))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreeViewColumn.TreeViewColumn))
    Ptr Int32
cellX <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
cellY <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    CInt
result <- Ptr TreeView
-> Int32
-> Int32
-> Ptr (Ptr TreePath)
-> Ptr (Ptr TreeViewColumn)
-> Ptr Int32
-> Ptr Int32
-> IO CInt
gtk_tree_view_get_path_at_pos Ptr TreeView
treeView' Int32
x Int32
y Ptr (Ptr TreePath)
path Ptr (Ptr TreeViewColumn)
column Ptr Int32
cellX Ptr Int32
cellY
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    Ptr TreePath
path' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
path
    Maybe TreePath
maybePath' <- Ptr TreePath
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreePath
path' ((Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath))
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. (a -> b) -> a -> b
$ \Ptr TreePath
path'' -> do
        TreePath
path''' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
path''
        TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
path'''
    Ptr TreeViewColumn
column' <- Ptr (Ptr TreeViewColumn) -> IO (Ptr TreeViewColumn)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreeViewColumn)
column
    Maybe TreeViewColumn
maybeColumn' <- Ptr TreeViewColumn
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeViewColumn
column' ((Ptr TreeViewColumn -> IO TreeViewColumn)
 -> IO (Maybe TreeViewColumn))
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeViewColumn
column'' -> do
        TreeViewColumn
column''' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
column''
        TreeViewColumn -> IO TreeViewColumn
forall (m :: * -> *) a. Monad m => a -> m a
return TreeViewColumn
column'''
    Int32
cellX' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
cellX
    Int32
cellY' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
cellY
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
path
    Ptr (Ptr TreeViewColumn) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreeViewColumn)
column
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
cellX
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
cellY
    (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
-> IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Maybe TreePath
maybePath', Maybe TreeViewColumn
maybeColumn', Int32
cellX', Int32
cellY')

#if defined(ENABLE_OVERLOADING)
data TreeViewGetPathAtPosMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Bool, Maybe Gtk.TreePath.TreePath, Maybe Gtk.TreeViewColumn.TreeViewColumn, Int32, Int32))), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetPathAtPosMethodInfo a signature where
    overloadedMethod = treeViewGetPathAtPos

instance O.OverloadedMethodInfo TreeViewGetPathAtPosMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetPathAtPos",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetPathAtPos"
        }


#endif

-- method TreeView::get_reorderable
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Retrieves whether the user can reorder the tree via drag-and-drop. See
-- 'GI.Gtk.Objects.TreeView.treeViewSetReorderable'.
treeViewGetReorderable ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the tree can be reordered.
treeViewGetReorderable :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetReorderable a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_reorderable Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetReorderableMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetReorderableMethodInfo a signature where
    overloadedMethod = treeViewGetReorderable

instance O.OverloadedMethodInfo TreeViewGetReorderableMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetReorderable",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetReorderable"
        }


#endif

-- method TreeView::get_rubber_banding
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether rubber banding is turned on for /@treeView@/.  If the
-- selection mode is @/GTK_SELECTION_MULTIPLE/@, rubber banding will allow the
-- user to select multiple rows by dragging the mouse.
treeViewGetRubberBanding ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if rubber banding in /@treeView@/ is enabled.
treeViewGetRubberBanding :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetRubberBanding a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_rubber_banding Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetRubberBandingMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetRubberBandingMethodInfo a signature where
    overloadedMethod = treeViewGetRubberBanding

instance O.OverloadedMethodInfo TreeViewGetRubberBandingMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetRubberBanding",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetRubberBanding"
        }


#endif

-- method TreeView::get_search_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
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

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

-- | Gets the column searched on by the interactive search code.
treeViewGetSearchColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Int32
    -- ^ __Returns:__ the column the interactive search code searches in.
treeViewGetSearchColumn :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Int32
treeViewGetSearchColumn a
treeView = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Int32
result <- Ptr TreeView -> IO Int32
gtk_tree_view_get_search_column Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data TreeViewGetSearchColumnMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetSearchColumnMethodInfo a signature where
    overloadedMethod = treeViewGetSearchColumn

instance O.OverloadedMethodInfo TreeViewGetSearchColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetSearchColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetSearchColumn"
        }


#endif

-- method TreeView::get_search_entry
-- 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: Just (TInterface Name { namespace = "Gtk" , name = "Editable" })
-- throws : False
-- Skip return : False

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

-- | Returns the t'GI.Gtk.Objects.Entry.Entry' which is currently in use as interactive search
-- entry for /@treeView@/.  In case the built-in entry is being used, 'P.Nothing'
-- will be returned.
treeViewGetSearchEntry ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> m (Maybe Gtk.Editable.Editable)
    -- ^ __Returns:__ the entry currently in use as search entry.
treeViewGetSearchEntry :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m (Maybe Editable)
treeViewGetSearchEntry a
treeView = IO (Maybe Editable) -> m (Maybe Editable)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Editable) -> m (Maybe Editable))
-> IO (Maybe Editable) -> m (Maybe Editable)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Editable
result <- Ptr TreeView -> IO (Ptr Editable)
gtk_tree_view_get_search_entry Ptr TreeView
treeView'
    Maybe Editable
maybeResult <- Ptr Editable
-> (Ptr Editable -> IO Editable) -> IO (Maybe Editable)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Editable
result ((Ptr Editable -> IO Editable) -> IO (Maybe Editable))
-> (Ptr Editable -> IO Editable) -> IO (Maybe Editable)
forall a b. (a -> b) -> a -> b
$ \Ptr Editable
result' -> do
        Editable
result'' <- ((ManagedPtr Editable -> Editable) -> Ptr Editable -> IO Editable
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Editable -> Editable
Gtk.Editable.Editable) Ptr Editable
result'
        Editable -> IO Editable
forall (m :: * -> *) a. Monad m => a -> m a
return Editable
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe Editable -> IO (Maybe Editable)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Editable
maybeResult

#if defined(ENABLE_OVERLOADING)
data TreeViewGetSearchEntryMethodInfo
instance (signature ~ (m (Maybe Gtk.Editable.Editable)), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetSearchEntryMethodInfo a signature where
    overloadedMethod = treeViewGetSearchEntry

instance O.OverloadedMethodInfo TreeViewGetSearchEntryMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetSearchEntry",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetSearchEntry"
        }


#endif

-- method TreeView::get_selection
-- 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: Just
--               (TInterface Name { namespace = "Gtk" , name = "TreeSelection" })
-- throws : False
-- Skip return : False

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

-- | Gets the t'GI.Gtk.Objects.TreeSelection.TreeSelection' associated with /@treeView@/.
treeViewGetSelection ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m Gtk.TreeSelection.TreeSelection
    -- ^ __Returns:__ A t'GI.Gtk.Objects.TreeSelection.TreeSelection' object.
treeViewGetSelection :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m TreeSelection
treeViewGetSelection a
treeView = IO TreeSelection -> m TreeSelection
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TreeSelection -> m TreeSelection)
-> IO TreeSelection -> m TreeSelection
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeSelection
result <- Ptr TreeView -> IO (Ptr TreeSelection)
gtk_tree_view_get_selection Ptr TreeView
treeView'
    Text -> Ptr TreeSelection -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"treeViewGetSelection" Ptr TreeSelection
result
    TreeSelection
result' <- ((ManagedPtr TreeSelection -> TreeSelection)
-> Ptr TreeSelection -> IO TreeSelection
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeSelection -> TreeSelection
Gtk.TreeSelection.TreeSelection) Ptr TreeSelection
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeSelection -> IO TreeSelection
forall (m :: * -> *) a. Monad m => a -> m a
return TreeSelection
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetSelectionMethodInfo
instance (signature ~ (m Gtk.TreeSelection.TreeSelection), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetSelectionMethodInfo a signature where
    overloadedMethod = treeViewGetSelection

instance O.OverloadedMethodInfo TreeViewGetSelectionMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetSelection",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetSelection"
        }


#endif

-- method TreeView::get_show_expanders
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether or not expanders are drawn in /@treeView@/.
treeViewGetShowExpanders ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'.
    -> m Bool
    -- ^ __Returns:__ 'P.True' if expanders are drawn in /@treeView@/, 'P.False'
    -- otherwise.
treeViewGetShowExpanders :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewGetShowExpanders a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_get_show_expanders Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetShowExpandersMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetShowExpandersMethodInfo a signature where
    overloadedMethod = treeViewGetShowExpanders

instance O.OverloadedMethodInfo TreeViewGetShowExpandersMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetShowExpanders",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetShowExpanders"
        }


#endif

-- method TreeView::get_tooltip_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
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

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

-- | Returns the column of /@treeView@/’s model which is being used for
-- displaying tooltips on /@treeView@/’s rows.
treeViewGetTooltipColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Int32
    -- ^ __Returns:__ the index of the tooltip column that is currently being
    -- used, or -1 if this is disabled.
treeViewGetTooltipColumn :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Int32
treeViewGetTooltipColumn a
treeView = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Int32
result <- Ptr TreeView -> IO Int32
gtk_tree_view_get_tooltip_column Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data TreeViewGetTooltipColumnMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetTooltipColumnMethodInfo a signature where
    overloadedMethod = treeViewGetTooltipColumn

instance O.OverloadedMethodInfo TreeViewGetTooltipColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetTooltipColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetTooltipColumn"
        }


#endif

-- method TreeView::get_tooltip_context
-- 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 = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the x coordinate (relative to widget coordinates)"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the y coordinate (relative to widget coordinates)"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "keyboard_tip"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "whether this is a keyboard tooltip or not"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "a pointer to\n        receive a #GtkTreeModel or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a pointer to receive a #GtkTreePath or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "iter"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeIter" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a pointer to receive a #GtkTreeIter or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = True
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_tooltip_context" gtk_tree_view_get_tooltip_context :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- x : TBasicType TInt
    Int32 ->                                -- y : TBasicType TInt
    CInt ->                                 -- keyboard_tip : TBasicType TBoolean
    Ptr (Ptr Gtk.TreeModel.TreeModel) ->    -- model : TInterface (Name {namespace = "Gtk", name = "TreeModel"})
    Ptr (Ptr Gtk.TreePath.TreePath) ->      -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeIter.TreeIter ->            -- iter : TInterface (Name {namespace = "Gtk", name = "TreeIter"})
    IO CInt

-- | This function is supposed to be used in a [queryTooltip]("GI.Gtk.Objects.Widget#g:signal:queryTooltip")
-- signal handler for t'GI.Gtk.Objects.TreeView.TreeView'.  The /@x@/, /@y@/ and /@keyboardTip@/ values
-- which are received in the signal handler, should be passed to this
-- function without modification.
-- 
-- The return value indicates whether there is a tree view row at the given
-- coordinates ('P.True') or not ('P.False') for mouse tooltips.  For keyboard
-- tooltips the row returned will be the cursor row.  When 'P.True', then any of
-- /@model@/, /@path@/ and /@iter@/ which have been provided will be set to point to
-- that row and the corresponding model.  /@x@/ and /@y@/ will always be converted
-- to be relative to /@treeView@/’s bin_window if /@keyboardTooltip@/ is 'P.False'.
treeViewGetTooltipContext ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@x@/: the x coordinate (relative to widget coordinates)
    -> Int32
    -- ^ /@y@/: the y coordinate (relative to widget coordinates)
    -> Bool
    -- ^ /@keyboardTip@/: whether this is a keyboard tooltip or not
    -> m ((Bool, Maybe Gtk.TreeModel.TreeModel, Gtk.TreePath.TreePath, Gtk.TreeIter.TreeIter))
    -- ^ __Returns:__ whether or not the given tooltip context points to a row.
treeViewGetTooltipContext :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a
-> Int32
-> Int32
-> Bool
-> m (Bool, Maybe TreeModel, TreePath, TreeIter)
treeViewGetTooltipContext a
treeView Int32
x Int32
y Bool
keyboardTip = IO (Bool, Maybe TreeModel, TreePath, TreeIter)
-> m (Bool, Maybe TreeModel, TreePath, TreeIter)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Maybe TreeModel, TreePath, TreeIter)
 -> m (Bool, Maybe TreeModel, TreePath, TreeIter))
-> IO (Bool, Maybe TreeModel, TreePath, TreeIter)
-> m (Bool, Maybe TreeModel, TreePath, TreeIter)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let keyboardTip' :: CInt
keyboardTip' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
keyboardTip
    Ptr (Ptr TreeModel)
model <- IO (Ptr (Ptr TreeModel))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreeModel.TreeModel))
    Ptr (Ptr TreePath)
path <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    Ptr TreeIter
iter <- Int -> IO (Ptr TreeIter)
forall a. GBoxed a => Int -> IO (Ptr a)
SP.callocBoxedBytes Int
32 :: IO (Ptr Gtk.TreeIter.TreeIter)
    CInt
result <- Ptr TreeView
-> Int32
-> Int32
-> CInt
-> Ptr (Ptr TreeModel)
-> Ptr (Ptr TreePath)
-> Ptr TreeIter
-> IO CInt
gtk_tree_view_get_tooltip_context Ptr TreeView
treeView' Int32
x Int32
y CInt
keyboardTip' Ptr (Ptr TreeModel)
model Ptr (Ptr TreePath)
path Ptr TreeIter
iter
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    Ptr TreeModel
model' <- Ptr (Ptr TreeModel) -> IO (Ptr TreeModel)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreeModel)
model
    Maybe TreeModel
maybeModel' <- Ptr TreeModel
-> (Ptr TreeModel -> IO TreeModel) -> IO (Maybe TreeModel)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeModel
model' ((Ptr TreeModel -> IO TreeModel) -> IO (Maybe TreeModel))
-> (Ptr TreeModel -> IO TreeModel) -> IO (Maybe TreeModel)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeModel
model'' -> do
        TreeModel
model''' <- ((ManagedPtr TreeModel -> TreeModel)
-> Ptr TreeModel -> IO TreeModel
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeModel -> TreeModel
Gtk.TreeModel.TreeModel) Ptr TreeModel
model''
        TreeModel -> IO TreeModel
forall (m :: * -> *) a. Monad m => a -> m a
return TreeModel
model'''
    Ptr TreePath
path' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
path
    TreePath
path'' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
path'
    TreeIter
iter' <- ((ManagedPtr TreeIter -> TreeIter) -> Ptr TreeIter -> IO TreeIter
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreeIter -> TreeIter
Gtk.TreeIter.TreeIter) Ptr TreeIter
iter
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr (Ptr TreeModel) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreeModel)
model
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
path
    (Bool, Maybe TreeModel, TreePath, TreeIter)
-> IO (Bool, Maybe TreeModel, TreePath, TreeIter)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Maybe TreeModel
maybeModel', TreePath
path'', TreeIter
iter')

#if defined(ENABLE_OVERLOADING)
data TreeViewGetTooltipContextMethodInfo
instance (signature ~ (Int32 -> Int32 -> Bool -> m ((Bool, Maybe Gtk.TreeModel.TreeModel, Gtk.TreePath.TreePath, Gtk.TreeIter.TreeIter))), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetTooltipContextMethodInfo a signature where
    overloadedMethod = treeViewGetTooltipContext

instance O.OverloadedMethodInfo TreeViewGetTooltipContextMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetTooltipContext",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetTooltipContext"
        }


#endif

-- method TreeView::get_visible_range
-- 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_path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "Return location for start of region,\n             or %NULL."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "end_path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Return location for end of region, or %NULL."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Sets /@startPath@/ and /@endPath@/ to be the first and last visible path.
-- Note that there may be invisible paths in between.
-- 
-- The paths should be freed with 'GI.Gtk.Structs.TreePath.treePathFree' after use.
treeViewGetVisibleRange ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> m ((Bool, Gtk.TreePath.TreePath, Gtk.TreePath.TreePath))
    -- ^ __Returns:__ 'P.True', if valid paths were placed in /@startPath@/ and /@endPath@/.
treeViewGetVisibleRange :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m (Bool, TreePath, TreePath)
treeViewGetVisibleRange a
treeView = IO (Bool, TreePath, TreePath) -> m (Bool, TreePath, TreePath)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, TreePath, TreePath) -> m (Bool, TreePath, TreePath))
-> IO (Bool, TreePath, TreePath) -> m (Bool, TreePath, TreePath)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr (Ptr TreePath)
startPath <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    Ptr (Ptr TreePath)
endPath <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    CInt
result <- Ptr TreeView -> Ptr (Ptr TreePath) -> Ptr (Ptr TreePath) -> IO CInt
gtk_tree_view_get_visible_range Ptr TreeView
treeView' Ptr (Ptr TreePath)
startPath Ptr (Ptr TreePath)
endPath
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    Ptr TreePath
startPath' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
startPath
    TreePath
startPath'' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
startPath'
    Ptr TreePath
endPath' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
endPath
    TreePath
endPath'' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
endPath'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
startPath
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
endPath
    (Bool, TreePath, TreePath) -> IO (Bool, TreePath, TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', TreePath
startPath'', TreePath
endPath'')

#if defined(ENABLE_OVERLOADING)
data TreeViewGetVisibleRangeMethodInfo
instance (signature ~ (m ((Bool, Gtk.TreePath.TreePath, Gtk.TreePath.TreePath))), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetVisibleRangeMethodInfo a signature where
    overloadedMethod = treeViewGetVisibleRange

instance O.OverloadedMethodInfo TreeViewGetVisibleRangeMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetVisibleRange",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetVisibleRange"
        }


#endif

-- method TreeView::get_visible_rect
-- 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 = "visible_rect"
--           , argType =
--               TInterface Name { namespace = "Gdk" , name = "Rectangle" }
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "rectangle to fill" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = True
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_visible_rect" gtk_tree_view_get_visible_rect :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gdk.Rectangle.Rectangle ->          -- visible_rect : TInterface (Name {namespace = "Gdk", name = "Rectangle"})
    IO ()

-- | Fills /@visibleRect@/ with the currently-visible region of the
-- buffer, in tree coordinates. Convert to bin_window coordinates with
-- 'GI.Gtk.Objects.TreeView.treeViewConvertTreeToBinWindowCoords'.
-- Tree coordinates start at 0,0 for row 0 of the tree, and cover the entire
-- scrollable area of the tree.
treeViewGetVisibleRect ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m (Gdk.Rectangle.Rectangle)
treeViewGetVisibleRect :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Rectangle
treeViewGetVisibleRect a
treeView = IO Rectangle -> m Rectangle
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Rectangle -> m Rectangle) -> IO Rectangle -> m Rectangle
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Rectangle
visibleRect <- Int -> IO (Ptr Rectangle)
forall a. GBoxed a => Int -> IO (Ptr a)
SP.callocBoxedBytes Int
16 :: IO (Ptr Gdk.Rectangle.Rectangle)
    Ptr TreeView -> Ptr Rectangle -> IO ()
gtk_tree_view_get_visible_rect Ptr TreeView
treeView' Ptr Rectangle
visibleRect
    Rectangle
visibleRect' <- ((ManagedPtr Rectangle -> Rectangle)
-> Ptr Rectangle -> IO Rectangle
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Rectangle -> Rectangle
Gdk.Rectangle.Rectangle) Ptr Rectangle
visibleRect
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Rectangle -> IO Rectangle
forall (m :: * -> *) a. Monad m => a -> m a
return Rectangle
visibleRect'

#if defined(ENABLE_OVERLOADING)
data TreeViewGetVisibleRectMethodInfo
instance (signature ~ (m (Gdk.Rectangle.Rectangle)), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewGetVisibleRectMethodInfo a signature where
    overloadedMethod = treeViewGetVisibleRect

instance O.OverloadedMethodInfo TreeViewGetVisibleRectMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewGetVisibleRect",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewGetVisibleRect"
        }


#endif

-- method TreeView::insert_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 be inserted."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "position"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The position to insert @column in."
--                 , 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_insert_column" gtk_tree_view_insert_column :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Int32 ->                                -- position : TBasicType TInt
    IO Int32

-- | This inserts the /@column@/ into the /@treeView@/ at /@position@/.  If /@position@/ is
-- -1, then the column is inserted at the end. If /@treeView@/ has
-- “fixed_height” mode enabled, then /@column@/ must have its “sizing” property
-- set to be GTK_TREE_VIEW_COLUMN_FIXED.
treeViewInsertColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> b
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to be inserted.
    -> Int32
    -- ^ /@position@/: The position to insert /@column@/ in.
    -> m Int32
    -- ^ __Returns:__ The number of columns in /@treeView@/ after insertion.
treeViewInsertColumn :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> b -> Int32 -> m Int32
treeViewInsertColumn a
treeView b
column Int32
position = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
column' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
column
    Int32
result <- Ptr TreeView -> Ptr TreeViewColumn -> Int32 -> IO Int32
gtk_tree_view_insert_column Ptr TreeView
treeView' Ptr TreeViewColumn
column' Int32
position
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
column
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data TreeViewInsertColumnMethodInfo
instance (signature ~ (b -> Int32 -> m Int32), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewInsertColumnMethodInfo a signature where
    overloadedMethod = treeViewInsertColumn

instance O.OverloadedMethodInfo TreeViewInsertColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewInsertColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewInsertColumn"
        }


#endif

-- method TreeView::insert_column_with_data_func
-- 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 = "position"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Position to insert, -1 for append"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "title"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "column title" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "cell renderer for column"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "func"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeCellDataFunc" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "function to set attributes of cell renderer"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeNotified
--           , argClosure = 5
--           , argDestroy = 6
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "data for @func" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "dnotify"
--           , argType =
--               TInterface Name { namespace = "GLib" , name = "DestroyNotify" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "destroy notifier for @data"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeAsync
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_insert_column_with_data_func" gtk_tree_view_insert_column_with_data_func :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- position : TBasicType TInt
    CString ->                              -- title : TBasicType TUTF8
    Ptr Gtk.CellRenderer.CellRenderer ->    -- cell : TInterface (Name {namespace = "Gtk", name = "CellRenderer"})
    FunPtr Gtk.Callbacks.C_TreeCellDataFunc -> -- func : TInterface (Name {namespace = "Gtk", name = "TreeCellDataFunc"})
    Ptr () ->                               -- data : TBasicType TPtr
    FunPtr GLib.Callbacks.C_DestroyNotify -> -- dnotify : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})
    IO Int32

-- | Convenience function that inserts a new column into the t'GI.Gtk.Objects.TreeView.TreeView'
-- with the given cell renderer and a t'GI.Gtk.Callbacks.TreeCellDataFunc' to set cell renderer
-- attributes (normally using data from the model). See also
-- 'GI.Gtk.Objects.TreeViewColumn.treeViewColumnSetCellDataFunc', 'GI.Gtk.Objects.TreeViewColumn.treeViewColumnPackStart'.
-- If /@treeView@/ has “fixed_height” mode enabled, then the new column will have its
-- “sizing” property set to be GTK_TREE_VIEW_COLUMN_FIXED.
treeViewInsertColumnWithDataFunc ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.CellRenderer.IsCellRenderer b) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@position@/: Position to insert, -1 for append
    -> T.Text
    -- ^ /@title@/: column title
    -> b
    -- ^ /@cell@/: cell renderer for column
    -> Gtk.Callbacks.TreeCellDataFunc
    -- ^ /@func@/: function to set attributes of cell renderer
    -> m Int32
    -- ^ __Returns:__ number of columns in the tree view post-insert
treeViewInsertColumnWithDataFunc :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsCellRenderer b) =>
a -> Int32 -> Text -> b -> TreeCellDataFunc -> m Int32
treeViewInsertColumnWithDataFunc a
treeView Int32
position Text
title b
cell TreeCellDataFunc
func = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CString
title' <- Text -> IO CString
textToCString Text
title
    Ptr CellRenderer
cell' <- b -> IO (Ptr CellRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
cell
    FunPtr C_TreeCellDataFunc
func' <- C_TreeCellDataFunc -> IO (FunPtr C_TreeCellDataFunc)
Gtk.Callbacks.mk_TreeCellDataFunc (Maybe (Ptr (FunPtr C_TreeCellDataFunc))
-> TreeCellDataFunc_WithClosures -> C_TreeCellDataFunc
Gtk.Callbacks.wrap_TreeCellDataFunc Maybe (Ptr (FunPtr C_TreeCellDataFunc))
forall a. Maybe a
Nothing (TreeCellDataFunc -> TreeCellDataFunc_WithClosures
Gtk.Callbacks.drop_closures_TreeCellDataFunc TreeCellDataFunc
func))
    let data_ :: Ptr ()
data_ = FunPtr C_TreeCellDataFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_TreeCellDataFunc
func'
    let dnotify :: FunPtr (Ptr a -> IO ())
dnotify = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
SP.safeFreeFunPtrPtr
    Int32
result <- Ptr TreeView
-> Int32
-> CString
-> Ptr CellRenderer
-> FunPtr C_TreeCellDataFunc
-> Ptr ()
-> FunPtr C_DestroyNotify
-> IO Int32
gtk_tree_view_insert_column_with_data_func Ptr TreeView
treeView' Int32
position CString
title' Ptr CellRenderer
cell' FunPtr C_TreeCellDataFunc
func' Ptr ()
data_ FunPtr C_DestroyNotify
forall a. FunPtr (Ptr a -> IO ())
dnotify
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
cell
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
title'
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data TreeViewInsertColumnWithDataFuncMethodInfo
instance (signature ~ (Int32 -> T.Text -> b -> Gtk.Callbacks.TreeCellDataFunc -> m Int32), MonadIO m, IsTreeView a, Gtk.CellRenderer.IsCellRenderer b) => O.OverloadedMethod TreeViewInsertColumnWithDataFuncMethodInfo a signature where
    overloadedMethod = treeViewInsertColumnWithDataFunc

instance O.OverloadedMethodInfo TreeViewInsertColumnWithDataFuncMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewInsertColumnWithDataFunc",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewInsertColumnWithDataFunc"
        }


#endif

-- method TreeView::is_blank_at_pos
-- 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 = "x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The x position to be identified (relative to bin_window)"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The y position to be identified (relative to bin_window)"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "path"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreePath" }
--           , direction = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer to a #GtkTreePath pointer to\n  be filled in, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionOut
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer to a\n  #GtkTreeViewColumn pointer to be filled in, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell_x"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer where the X coordinate relative to the\n  cell can be placed, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       , Arg
--           { argCName = "cell_y"
--           , argType = TBasicType TInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A pointer where the Y coordinate relative to the\n  cell can be placed, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_is_blank_at_pos" gtk_tree_view_is_blank_at_pos :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- x : TBasicType TInt
    Int32 ->                                -- y : TBasicType TInt
    Ptr (Ptr Gtk.TreePath.TreePath) ->      -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr (Ptr Gtk.TreeViewColumn.TreeViewColumn) -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Ptr Int32 ->                            -- cell_x : TBasicType TInt
    Ptr Int32 ->                            -- cell_y : TBasicType TInt
    IO CInt

-- | Determine whether the point (/@x@/, /@y@/) in /@treeView@/ is blank, that is no
-- cell content nor an expander arrow is drawn at the location. If so, the
-- location can be considered as the background. You might wish to take
-- special action on clicks on the background, such as clearing a current
-- selection, having a custom context menu or starting rubber banding.
-- 
-- The /@x@/ and /@y@/ coordinate that are provided must be relative to bin_window
-- coordinates.  Widget-relative coordinates must be converted using
-- 'GI.Gtk.Objects.TreeView.treeViewConvertWidgetToBinWindowCoords'.
-- 
-- For converting widget coordinates (eg. the ones you get from
-- GtkWidget[queryTooltip](#g:signal:queryTooltip)), please see
-- 'GI.Gtk.Objects.TreeView.treeViewConvertWidgetToBinWindowCoords'.
-- 
-- The /@path@/, /@column@/, /@cellX@/ and /@cellY@/ arguments will be filled in
-- likewise as for 'GI.Gtk.Objects.TreeView.treeViewGetPathAtPos'.  Please see
-- 'GI.Gtk.Objects.TreeView.treeViewGetPathAtPos' for more information.
treeViewIsBlankAtPos ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@x@/: The x position to be identified (relative to bin_window)
    -> Int32
    -- ^ /@y@/: The y position to be identified (relative to bin_window)
    -> m ((Bool, Maybe Gtk.TreePath.TreePath, Maybe Gtk.TreeViewColumn.TreeViewColumn, Int32, Int32))
    -- ^ __Returns:__ 'P.True' if the area at the given coordinates is blank,
    -- 'P.False' otherwise.
treeViewIsBlankAtPos :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a
-> Int32
-> Int32
-> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
treeViewIsBlankAtPos a
treeView Int32
x Int32
y = IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
-> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
 -> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32))
-> IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
-> m (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr (Ptr TreePath)
path <- IO (Ptr (Ptr TreePath))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreePath.TreePath))
    Ptr (Ptr TreeViewColumn)
column <- IO (Ptr (Ptr TreeViewColumn))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (Ptr Gtk.TreeViewColumn.TreeViewColumn))
    Ptr Int32
cellX <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    Ptr Int32
cellY <- IO (Ptr Int32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Int32)
    CInt
result <- Ptr TreeView
-> Int32
-> Int32
-> Ptr (Ptr TreePath)
-> Ptr (Ptr TreeViewColumn)
-> Ptr Int32
-> Ptr Int32
-> IO CInt
gtk_tree_view_is_blank_at_pos Ptr TreeView
treeView' Int32
x Int32
y Ptr (Ptr TreePath)
path Ptr (Ptr TreeViewColumn)
column Ptr Int32
cellX Ptr Int32
cellY
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    Ptr TreePath
path' <- Ptr (Ptr TreePath) -> IO (Ptr TreePath)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreePath)
path
    Maybe TreePath
maybePath' <- Ptr TreePath
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreePath
path' ((Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath))
-> (Ptr TreePath -> IO TreePath) -> IO (Maybe TreePath)
forall a b. (a -> b) -> a -> b
$ \Ptr TreePath
path'' -> do
        TreePath
path''' <- ((ManagedPtr TreePath -> TreePath) -> Ptr TreePath -> IO TreePath
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr TreePath -> TreePath
Gtk.TreePath.TreePath) Ptr TreePath
path''
        TreePath -> IO TreePath
forall (m :: * -> *) a. Monad m => a -> m a
return TreePath
path'''
    Ptr TreeViewColumn
column' <- Ptr (Ptr TreeViewColumn) -> IO (Ptr TreeViewColumn)
forall a. Storable a => Ptr a -> IO a
peek Ptr (Ptr TreeViewColumn)
column
    Maybe TreeViewColumn
maybeColumn' <- Ptr TreeViewColumn
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr TreeViewColumn
column' ((Ptr TreeViewColumn -> IO TreeViewColumn)
 -> IO (Maybe TreeViewColumn))
-> (Ptr TreeViewColumn -> IO TreeViewColumn)
-> IO (Maybe TreeViewColumn)
forall a b. (a -> b) -> a -> b
$ \Ptr TreeViewColumn
column'' -> do
        TreeViewColumn
column''' <- ((ManagedPtr TreeViewColumn -> TreeViewColumn)
-> Ptr TreeViewColumn -> IO TreeViewColumn
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr TreeViewColumn -> TreeViewColumn
Gtk.TreeViewColumn.TreeViewColumn) Ptr TreeViewColumn
column''
        TreeViewColumn -> IO TreeViewColumn
forall (m :: * -> *) a. Monad m => a -> m a
return TreeViewColumn
column'''
    Int32
cellX' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
cellX
    Int32
cellY' <- Ptr Int32 -> IO Int32
forall a. Storable a => Ptr a -> IO a
peek Ptr Int32
cellY
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Ptr (Ptr TreePath) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreePath)
path
    Ptr (Ptr TreeViewColumn) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr TreeViewColumn)
column
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
cellX
    Ptr Int32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Int32
cellY
    (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
-> IO (Bool, Maybe TreePath, Maybe TreeViewColumn, Int32, Int32)
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Maybe TreePath
maybePath', Maybe TreeViewColumn
maybeColumn', Int32
cellX', Int32
cellY')

#if defined(ENABLE_OVERLOADING)
data TreeViewIsBlankAtPosMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ((Bool, Maybe Gtk.TreePath.TreePath, Maybe Gtk.TreeViewColumn.TreeViewColumn, Int32, Int32))), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewIsBlankAtPosMethodInfo a signature where
    overloadedMethod = treeViewIsBlankAtPos

instance O.OverloadedMethodInfo TreeViewIsBlankAtPosMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewIsBlankAtPos",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewIsBlankAtPos"
        }


#endif

-- method TreeView::is_rubber_banding_active
-- 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: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

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

-- | Returns whether a rubber banding operation is currently being done
-- in /@treeView@/.
treeViewIsRubberBandingActive ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m Bool
    -- ^ __Returns:__ 'P.True' if a rubber banding operation is currently being
    -- done in /@treeView@/.
treeViewIsRubberBandingActive :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m Bool
treeViewIsRubberBandingActive a
treeView = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    CInt
result <- Ptr TreeView -> IO CInt
gtk_tree_view_is_rubber_banding_active Ptr TreeView
treeView'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewIsRubberBandingActiveMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewIsRubberBandingActiveMethodInfo a signature where
    overloadedMethod = treeViewIsRubberBandingActive

instance O.OverloadedMethodInfo TreeViewIsRubberBandingActiveMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewIsRubberBandingActive",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewIsRubberBandingActive"
        }


#endif

-- method TreeView::map_expanded_rows
-- 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 = "func"
--           , argType =
--               TInterface
--                 Name { namespace = "Gtk" , name = "TreeViewMappingFunc" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A function to be called"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeCall
--           , argClosure = 2
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "User data to be passed to the function."
--                 , 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_map_expanded_rows" gtk_tree_view_map_expanded_rows :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    FunPtr Gtk.Callbacks.C_TreeViewMappingFunc -> -- func : TInterface (Name {namespace = "Gtk", name = "TreeViewMappingFunc"})
    Ptr () ->                               -- data : TBasicType TPtr
    IO ()

-- | Calls /@func@/ on all expanded rows.
treeViewMapExpandedRows ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.Callbacks.TreeViewMappingFunc
    -- ^ /@func@/: A function to be called
    -> m ()
treeViewMapExpandedRows :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreeViewMappingFunc -> m ()
treeViewMapExpandedRows a
treeView TreeViewMappingFunc
func = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    FunPtr C_TreeViewMappingFunc
func' <- C_TreeViewMappingFunc -> IO (FunPtr C_TreeViewMappingFunc)
Gtk.Callbacks.mk_TreeViewMappingFunc (Maybe (Ptr (FunPtr C_TreeViewMappingFunc))
-> TreeViewMappingFunc_WithClosures -> C_TreeViewMappingFunc
Gtk.Callbacks.wrap_TreeViewMappingFunc Maybe (Ptr (FunPtr C_TreeViewMappingFunc))
forall a. Maybe a
Nothing (TreeViewMappingFunc -> TreeViewMappingFunc_WithClosures
Gtk.Callbacks.drop_closures_TreeViewMappingFunc TreeViewMappingFunc
func))
    let data_ :: Ptr a
data_ = Ptr a
forall a. Ptr a
nullPtr
    Ptr TreeView -> FunPtr C_TreeViewMappingFunc -> C_DestroyNotify
gtk_tree_view_map_expanded_rows Ptr TreeView
treeView' FunPtr C_TreeViewMappingFunc
func' Ptr ()
forall a. Ptr a
data_
    Ptr Any -> IO ()
forall a. Ptr a -> IO ()
safeFreeFunPtr (Ptr Any -> IO ()) -> Ptr Any -> IO ()
forall a b. (a -> b) -> a -> b
$ FunPtr C_TreeViewMappingFunc -> Ptr Any
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_TreeViewMappingFunc
func'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewMapExpandedRowsMethodInfo
instance (signature ~ (Gtk.Callbacks.TreeViewMappingFunc -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewMapExpandedRowsMethodInfo a signature where
    overloadedMethod = treeViewMapExpandedRows

instance O.OverloadedMethodInfo TreeViewMapExpandedRowsMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewMapExpandedRows",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewMapExpandedRows"
        }


#endif

-- method TreeView::move_column_after
-- 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 be moved."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "base_column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The #GtkTreeViewColumn to be moved relative to, or %NULL."
--                 , 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_move_column_after" gtk_tree_view_move_column_after :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- base_column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    IO ()

-- | Moves /@column@/ to be after to /@baseColumn@/.  If /@baseColumn@/ is 'P.Nothing', then
-- /@column@/ is placed in the first position.
treeViewMoveColumnAfter ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b, Gtk.TreeViewColumn.IsTreeViewColumn c) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> b
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to be moved.
    -> Maybe (c)
    -- ^ /@baseColumn@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to be moved relative to, or 'P.Nothing'.
    -> m ()
treeViewMoveColumnAfter :: forall (m :: * -> *) a b c.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b,
 IsTreeViewColumn c) =>
a -> b -> Maybe c -> m ()
treeViewMoveColumnAfter a
treeView b
column Maybe c
baseColumn = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
column' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
column
    Ptr TreeViewColumn
maybeBaseColumn <- case Maybe c
baseColumn of
        Maybe c
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just c
jBaseColumn -> do
            Ptr TreeViewColumn
jBaseColumn' <- c -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jBaseColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jBaseColumn'
    Ptr TreeView -> Ptr TreeViewColumn -> Ptr TreeViewColumn -> IO ()
gtk_tree_view_move_column_after Ptr TreeView
treeView' Ptr TreeViewColumn
column' Ptr TreeViewColumn
maybeBaseColumn
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
column
    Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
baseColumn c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewMoveColumnAfterMethodInfo
instance (signature ~ (b -> Maybe (c) -> m ()), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b, Gtk.TreeViewColumn.IsTreeViewColumn c) => O.OverloadedMethod TreeViewMoveColumnAfterMethodInfo a signature where
    overloadedMethod = treeViewMoveColumnAfter

instance O.OverloadedMethodInfo TreeViewMoveColumnAfterMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewMoveColumnAfter",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewMoveColumnAfter"
        }


#endif

-- method TreeView::remove_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 remove."
--                 , 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_remove_column" gtk_tree_view_remove_column :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    IO Int32

-- | Removes /@column@/ from /@treeView@/.
treeViewRemoveColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> b
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to remove.
    -> m Int32
    -- ^ __Returns:__ The number of columns in /@treeView@/ after removing.
treeViewRemoveColumn :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> b -> m Int32
treeViewRemoveColumn a
treeView b
column = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
column' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
column
    Int32
result <- Ptr TreeView -> Ptr TreeViewColumn -> IO Int32
gtk_tree_view_remove_column Ptr TreeView
treeView' Ptr TreeViewColumn
column'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
column
    Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result

#if defined(ENABLE_OVERLOADING)
data TreeViewRemoveColumnMethodInfo
instance (signature ~ (b -> m Int32), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewRemoveColumnMethodInfo a signature where
    overloadedMethod = treeViewRemoveColumn

instance O.OverloadedMethodInfo TreeViewRemoveColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewRemoveColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewRemoveColumn"
        }


#endif

-- method TreeView::row_activated
-- 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 "The #GtkTreePath to be activated."
--                 , 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 be activated."
--                 , 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_row_activated" gtk_tree_view_row_activated :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    IO ()

-- | Activates the cell determined by /@path@/ and /@column@/.
treeViewRowActivated ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: The t'GI.Gtk.Structs.TreePath.TreePath' to be activated.
    -> b
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to be activated.
    -> m ()
treeViewRowActivated :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> TreePath -> b -> m ()
treeViewRowActivated a
treeView TreePath
path b
column = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr TreeViewColumn
column' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
column
    Ptr TreeView -> Ptr TreePath -> Ptr TreeViewColumn -> IO ()
gtk_tree_view_row_activated Ptr TreeView
treeView' Ptr TreePath
path' Ptr TreeViewColumn
column'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
column
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewRowActivatedMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> b -> m ()), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewRowActivatedMethodInfo a signature where
    overloadedMethod = treeViewRowActivated

instance O.OverloadedMethodInfo TreeViewRowActivatedMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewRowActivated",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewRowActivated"
        }


#endif

-- method TreeView::row_expanded
-- 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 to test expansion state."
--                 , 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_row_expanded" gtk_tree_view_row_expanded :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    IO CInt

-- | Returns 'P.True' if the node pointed to by /@path@/ is expanded in /@treeView@/.
treeViewRowExpanded ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: A t'GI.Gtk.Structs.TreePath.TreePath' to test expansion state.
    -> m Bool
    -- ^ __Returns:__ 'P.True' if @/path/@ is expanded.
treeViewRowExpanded :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreePath -> m Bool
treeViewRowExpanded a
treeView TreePath
path = TreeViewSelectAllCallback -> m Bool
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (TreeViewSelectAllCallback -> m Bool)
-> TreeViewSelectAllCallback -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    CInt
result <- Ptr TreeView -> Ptr TreePath -> IO CInt
gtk_tree_view_row_expanded Ptr TreeView
treeView' Ptr TreePath
path'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    TreeViewSelectCursorRowCallback
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data TreeViewRowExpandedMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> m Bool), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewRowExpandedMethodInfo a signature where
    overloadedMethod = treeViewRowExpanded

instance O.OverloadedMethodInfo TreeViewRowExpandedMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewRowExpanded",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewRowExpanded"
        }


#endif

-- method TreeView::scroll_to_cell
-- 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The path of the row to move to, or %NULL."
--                 , 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The #GtkTreeViewColumn to move horizontally to, or %NULL."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "use_align"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "whether to use alignment arguments, or %FALSE."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "row_align"
--           , argType = TBasicType TFloat
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The vertical alignment of the row specified by @path."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "col_align"
--           , argType = TBasicType TFloat
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "The horizontal alignment of the column specified by @column."
--                 , 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_scroll_to_cell" gtk_tree_view_scroll_to_cell :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    CInt ->                                 -- use_align : TBasicType TBoolean
    CFloat ->                               -- row_align : TBasicType TFloat
    CFloat ->                               -- col_align : TBasicType TFloat
    IO ()

-- | Moves the alignments of /@treeView@/ to the position specified by /@column@/ and
-- /@path@/.  If /@column@/ is 'P.Nothing', then no horizontal scrolling occurs.  Likewise,
-- if /@path@/ is 'P.Nothing' no vertical scrolling occurs.  At a minimum, one of /@column@/
-- or /@path@/ need to be non-'P.Nothing'.  /@rowAlign@/ determines where the row is
-- placed, and /@colAlign@/ determines where /@column@/ is placed.  Both are expected
-- to be between 0.0 and 1.0. 0.0 means left\/top alignment, 1.0 means
-- right\/bottom alignment, 0.5 means center.
-- 
-- If /@useAlign@/ is 'P.False', then the alignment arguments are ignored, and the
-- tree does the minimum amount of work to scroll the cell onto the screen.
-- This means that the cell will be scrolled to the edge closest to its current
-- position.  If the cell is currently visible on the screen, nothing is done.
-- 
-- This function only works if the model is set, and /@path@/ is a valid row on the
-- model.  If the model changes before the /@treeView@/ is realized, the centered
-- path will be modified to reflect this change.
treeViewScrollToCell ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Maybe (Gtk.TreePath.TreePath)
    -- ^ /@path@/: The path of the row to move to, or 'P.Nothing'.
    -> Maybe (b)
    -- ^ /@column@/: The t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' to move horizontally to, or 'P.Nothing'.
    -> Bool
    -- ^ /@useAlign@/: whether to use alignment arguments, or 'P.False'.
    -> Float
    -- ^ /@rowAlign@/: The vertical alignment of the row specified by /@path@/.
    -> Float
    -- ^ /@colAlign@/: The horizontal alignment of the column specified by /@column@/.
    -> m ()
treeViewScrollToCell :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> Maybe TreePath -> Maybe b -> Bool -> Float -> Float -> m ()
treeViewScrollToCell a
treeView Maybe TreePath
path Maybe b
column Bool
useAlign Float
rowAlign Float
colAlign = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
maybePath <- case Maybe TreePath
path of
        Maybe TreePath
Nothing -> Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
forall a. Ptr a
nullPtr
        Just TreePath
jPath -> do
            Ptr TreePath
jPath' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
jPath
            Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
jPath'
    Ptr TreeViewColumn
maybeColumn <- case Maybe b
column of
        Maybe b
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just b
jColumn -> do
            Ptr TreeViewColumn
jColumn' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jColumn'
    let useAlign' :: CInt
useAlign' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
useAlign
    let rowAlign' :: CFloat
rowAlign' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
rowAlign
    let colAlign' :: CFloat
colAlign' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
colAlign
    Ptr TreeView
-> Ptr TreePath
-> Ptr TreeViewColumn
-> CInt
-> CFloat
-> CFloat
-> IO ()
gtk_tree_view_scroll_to_cell Ptr TreeView
treeView' Ptr TreePath
maybePath Ptr TreeViewColumn
maybeColumn CInt
useAlign' CFloat
rowAlign' CFloat
colAlign'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe TreePath -> (TreePath -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe TreePath
path TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
column b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewScrollToCellMethodInfo
instance (signature ~ (Maybe (Gtk.TreePath.TreePath) -> Maybe (b) -> Bool -> Float -> Float -> m ()), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewScrollToCellMethodInfo a signature where
    overloadedMethod = treeViewScrollToCell

instance O.OverloadedMethodInfo TreeViewScrollToCellMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewScrollToCell",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewScrollToCell"
        }


#endif

-- method TreeView::scroll_to_point
-- 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 = "tree_x"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "X coordinate of new top-left pixel of visible area, or -1"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "tree_y"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "Y coordinate of new top-left pixel of visible area, or -1"
--                 , 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_scroll_to_point" gtk_tree_view_scroll_to_point :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- tree_x : TBasicType TInt
    Int32 ->                                -- tree_y : TBasicType TInt
    IO ()

-- | Scrolls the tree view such that the top-left corner of the visible
-- area is /@treeX@/, /@treeY@/, where /@treeX@/ and /@treeY@/ are specified
-- in tree coordinates.  The /@treeView@/ must be realized before
-- this function is called.  If it isn\'t, you probably want to be
-- using 'GI.Gtk.Objects.TreeView.treeViewScrollToCell'.
-- 
-- If either /@treeX@/ or /@treeY@/ are -1, then that direction isn’t scrolled.
treeViewScrollToPoint ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@treeX@/: X coordinate of new top-left pixel of visible area, or -1
    -> Int32
    -- ^ /@treeY@/: Y coordinate of new top-left pixel of visible area, or -1
    -> m ()
treeViewScrollToPoint :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> Int32 -> m ()
treeViewScrollToPoint a
treeView Int32
treeX Int32
treeY = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> Int32 -> Int32 -> IO ()
gtk_tree_view_scroll_to_point Ptr TreeView
treeView' Int32
treeX Int32
treeY
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewScrollToPointMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewScrollToPointMethodInfo a signature where
    overloadedMethod = treeViewScrollToPoint

instance O.OverloadedMethodInfo TreeViewScrollToPointMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewScrollToPoint",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewScrollToPoint"
        }


#endif

-- method TreeView::set_activate_on_single_click
-- 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 = "single"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE to emit row-activated on a single click"
--                 , 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_set_activate_on_single_click" gtk_tree_view_set_activate_on_single_click :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- single : TBasicType TBoolean
    IO ()

-- | Cause the [rowActivated]("GI.Gtk.Objects.TreeView#g:signal:rowActivated") signal to be emitted
-- on a single click instead of a double click.
treeViewSetActivateOnSingleClick ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@single@/: 'P.True' to emit row-activated on a single click
    -> m ()
treeViewSetActivateOnSingleClick :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetActivateOnSingleClick a
treeView Bool
single = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let single' :: CInt
single' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
single
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_activate_on_single_click Ptr TreeView
treeView' CInt
single'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetActivateOnSingleClickMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetActivateOnSingleClickMethodInfo a signature where
    overloadedMethod = treeViewSetActivateOnSingleClick

instance O.OverloadedMethodInfo TreeViewSetActivateOnSingleClickMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetActivateOnSingleClick",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetActivateOnSingleClick"
        }


#endif

-- method TreeView::set_column_drag_function
-- 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 = "func"
--           , argType =
--               TInterface
--                 Name { namespace = "Gtk" , name = "TreeViewColumnDropFunc" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "A function to determine which columns are reorderable, or %NULL."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeNotified
--           , argClosure = 2
--           , argDestroy = 3
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "User data to be passed to @func, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "destroy"
--           , argType =
--               TInterface Name { namespace = "GLib" , name = "DestroyNotify" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "Destroy notifier for @user_data, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeAsync
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_column_drag_function" gtk_tree_view_set_column_drag_function :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    FunPtr Gtk.Callbacks.C_TreeViewColumnDropFunc -> -- func : TInterface (Name {namespace = "Gtk", name = "TreeViewColumnDropFunc"})
    Ptr () ->                               -- user_data : TBasicType TPtr
    FunPtr GLib.Callbacks.C_DestroyNotify -> -- destroy : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})
    IO ()

-- | Sets a user function for determining where a column may be dropped when
-- dragged.  This function is called on every column pair in turn at the
-- beginning of a column drag to determine where a drop can take place.  The
-- arguments passed to /@func@/ are: the /@treeView@/, the t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' being
-- dragged, the two t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' s determining the drop spot, and
-- /@userData@/.  If either of the t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' arguments for the drop spot
-- are 'P.Nothing', then they indicate an edge.  If /@func@/ is set to be 'P.Nothing', then
-- /@treeView@/ reverts to the default behavior of allowing all columns to be
-- dropped everywhere.
treeViewSetColumnDragFunction ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Maybe (Gtk.Callbacks.TreeViewColumnDropFunc)
    -- ^ /@func@/: A function to determine which columns are reorderable, or 'P.Nothing'.
    -> m ()
treeViewSetColumnDragFunction :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Maybe TreeViewColumnDropFunc -> m ()
treeViewSetColumnDragFunction a
treeView Maybe TreeViewColumnDropFunc
func = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    FunPtr C_TreeViewColumnDropFunc
maybeFunc <- case Maybe TreeViewColumnDropFunc
func of
        Maybe TreeViewColumnDropFunc
Nothing -> FunPtr C_TreeViewColumnDropFunc
-> IO (FunPtr C_TreeViewColumnDropFunc)
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr Any -> FunPtr C_TreeViewColumnDropFunc
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr)
        Just TreeViewColumnDropFunc
jFunc -> do
            FunPtr C_TreeViewColumnDropFunc
jFunc' <- C_TreeViewColumnDropFunc -> IO (FunPtr C_TreeViewColumnDropFunc)
Gtk.Callbacks.mk_TreeViewColumnDropFunc (Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc))
-> TreeViewColumnDropFunc_WithClosures -> C_TreeViewColumnDropFunc
Gtk.Callbacks.wrap_TreeViewColumnDropFunc Maybe (Ptr (FunPtr C_TreeViewColumnDropFunc))
forall a. Maybe a
Nothing (TreeViewColumnDropFunc -> TreeViewColumnDropFunc_WithClosures
Gtk.Callbacks.drop_closures_TreeViewColumnDropFunc TreeViewColumnDropFunc
jFunc))
            FunPtr C_TreeViewColumnDropFunc
-> IO (FunPtr C_TreeViewColumnDropFunc)
forall (m :: * -> *) a. Monad m => a -> m a
return FunPtr C_TreeViewColumnDropFunc
jFunc'
    let userData :: Ptr ()
userData = FunPtr C_TreeViewColumnDropFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_TreeViewColumnDropFunc
maybeFunc
    let destroy :: FunPtr (Ptr a -> IO ())
destroy = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
SP.safeFreeFunPtrPtr
    Ptr TreeView
-> FunPtr C_TreeViewColumnDropFunc
-> Ptr ()
-> FunPtr C_DestroyNotify
-> IO ()
gtk_tree_view_set_column_drag_function Ptr TreeView
treeView' FunPtr C_TreeViewColumnDropFunc
maybeFunc Ptr ()
userData FunPtr C_DestroyNotify
forall a. FunPtr (Ptr a -> IO ())
destroy
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetColumnDragFunctionMethodInfo
instance (signature ~ (Maybe (Gtk.Callbacks.TreeViewColumnDropFunc) -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetColumnDragFunctionMethodInfo a signature where
    overloadedMethod = treeViewSetColumnDragFunction

instance O.OverloadedMethodInfo TreeViewSetColumnDragFunctionMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetColumnDragFunction",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetColumnDragFunction"
        }


#endif

-- method TreeView::set_cursor
-- 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" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "focus_column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeViewColumn, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "start_editing"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "%TRUE if the specified cell should start being edited."
--                 , 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_set_cursor" gtk_tree_view_set_cursor :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- focus_column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    CInt ->                                 -- start_editing : TBasicType TBoolean
    IO ()

-- | Sets the current keyboard focus to be at /@path@/, and selects it.  This is
-- useful when you want to focus the user’s attention on a particular row.  If
-- /@focusColumn@/ is not 'P.Nothing', then focus is given to the column specified by
-- it. Additionally, if /@focusColumn@/ is specified, and /@startEditing@/ is
-- 'P.True', then editing should be started in the specified cell.
-- This function is often followed by /@gtkWidgetGrabFocus@/ (/@treeView@/)
-- in order to give keyboard focus to the widget.  Please note that editing
-- can only happen when the widget is realized.
-- 
-- If /@path@/ is invalid for /@model@/, the current cursor (if any) will be unset
-- and the function will return without failing.
treeViewSetCursor ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: A t'GI.Gtk.Structs.TreePath.TreePath'
    -> Maybe (b)
    -- ^ /@focusColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn', or 'P.Nothing'
    -> Bool
    -- ^ /@startEditing@/: 'P.True' if the specified cell should start being edited.
    -> m ()
treeViewSetCursor :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> TreePath -> Maybe b -> Bool -> m ()
treeViewSetCursor a
treeView TreePath
path Maybe b
focusColumn Bool
startEditing = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr TreeViewColumn
maybeFocusColumn <- case Maybe b
focusColumn of
        Maybe b
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just b
jFocusColumn -> do
            Ptr TreeViewColumn
jFocusColumn' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jFocusColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jFocusColumn'
    let startEditing' :: CInt
startEditing' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
startEditing
    Ptr TreeView -> Ptr TreePath -> Ptr TreeViewColumn -> CInt -> IO ()
gtk_tree_view_set_cursor Ptr TreeView
treeView' Ptr TreePath
path' Ptr TreeViewColumn
maybeFocusColumn CInt
startEditing'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
focusColumn b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetCursorMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> Maybe (b) -> Bool -> m ()), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewSetCursorMethodInfo a signature where
    overloadedMethod = treeViewSetCursor

instance O.OverloadedMethodInfo TreeViewSetCursorMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetCursor",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetCursor"
        }


#endif

-- method TreeView::set_cursor_on_cell
-- 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" , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "focus_column"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewColumn" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkTreeViewColumn, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "focus_cell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A #GtkCellRenderer, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "start_editing"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "%TRUE if the specified cell should start being edited."
--                 , 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_set_cursor_on_cell" gtk_tree_view_set_cursor_on_cell :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- focus_column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Ptr Gtk.CellRenderer.CellRenderer ->    -- focus_cell : TInterface (Name {namespace = "Gtk", name = "CellRenderer"})
    CInt ->                                 -- start_editing : TBasicType TBoolean
    IO ()

-- | Sets the current keyboard focus to be at /@path@/, and selects it.  This is
-- useful when you want to focus the user’s attention on a particular row.  If
-- /@focusColumn@/ is not 'P.Nothing', then focus is given to the column specified by
-- it. If /@focusColumn@/ and /@focusCell@/ are not 'P.Nothing', and /@focusColumn@/
-- contains 2 or more editable or activatable cells, then focus is given to
-- the cell specified by /@focusCell@/. Additionally, if /@focusColumn@/ is
-- specified, and /@startEditing@/ is 'P.True', then editing should be started in
-- the specified cell.  This function is often followed by
-- /@gtkWidgetGrabFocus@/ (/@treeView@/) in order to give keyboard focus to the
-- widget.  Please note that editing can only happen when the widget is
-- realized.
-- 
-- If /@path@/ is invalid for /@model@/, the current cursor (if any) will be unset
-- and the function will return without failing.
treeViewSetCursorOnCell ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b, Gtk.CellRenderer.IsCellRenderer c) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: A t'GI.Gtk.Structs.TreePath.TreePath'
    -> Maybe (b)
    -- ^ /@focusColumn@/: A t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn', or 'P.Nothing'
    -> Maybe (c)
    -- ^ /@focusCell@/: A t'GI.Gtk.Objects.CellRenderer.CellRenderer', or 'P.Nothing'
    -> Bool
    -- ^ /@startEditing@/: 'P.True' if the specified cell should start being edited.
    -> m ()
treeViewSetCursorOnCell :: forall (m :: * -> *) a b c.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b,
 IsCellRenderer c) =>
a -> TreePath -> Maybe b -> Maybe c -> Bool -> m ()
treeViewSetCursorOnCell a
treeView TreePath
path Maybe b
focusColumn Maybe c
focusCell Bool
startEditing = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr TreeViewColumn
maybeFocusColumn <- case Maybe b
focusColumn of
        Maybe b
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just b
jFocusColumn -> do
            Ptr TreeViewColumn
jFocusColumn' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jFocusColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jFocusColumn'
    Ptr CellRenderer
maybeFocusCell <- case Maybe c
focusCell of
        Maybe c
Nothing -> Ptr CellRenderer -> IO (Ptr CellRenderer)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CellRenderer
forall a. Ptr a
nullPtr
        Just c
jFocusCell -> do
            Ptr CellRenderer
jFocusCell' <- c -> IO (Ptr CellRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jFocusCell
            Ptr CellRenderer -> IO (Ptr CellRenderer)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CellRenderer
jFocusCell'
    let startEditing' :: CInt
startEditing' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
startEditing
    Ptr TreeView
-> Ptr TreePath
-> Ptr TreeViewColumn
-> Ptr CellRenderer
-> CInt
-> IO ()
gtk_tree_view_set_cursor_on_cell Ptr TreeView
treeView' Ptr TreePath
path' Ptr TreeViewColumn
maybeFocusColumn Ptr CellRenderer
maybeFocusCell CInt
startEditing'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
focusColumn b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
focusCell c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetCursorOnCellMethodInfo
instance (signature ~ (Gtk.TreePath.TreePath -> Maybe (b) -> Maybe (c) -> Bool -> m ()), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b, Gtk.CellRenderer.IsCellRenderer c) => O.OverloadedMethod TreeViewSetCursorOnCellMethodInfo a signature where
    overloadedMethod = treeViewSetCursorOnCell

instance O.OverloadedMethodInfo TreeViewSetCursorOnCellMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetCursorOnCell",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetCursorOnCell"
        }


#endif

-- method TreeView::set_drag_dest_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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The path of the row to highlight, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "pos"
--           , argType =
--               TInterface
--                 Name { namespace = "Gtk" , name = "TreeViewDropPosition" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "Specifies whether to drop before, after or into the row"
--                 , 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_set_drag_dest_row" gtk_tree_view_set_drag_dest_row :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    CUInt ->                                -- pos : TInterface (Name {namespace = "Gtk", name = "TreeViewDropPosition"})
    IO ()

-- | Sets the row that is highlighted for feedback.
-- If /@path@/ is 'P.Nothing', an existing highlight is removed.
treeViewSetDragDestRow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Maybe (Gtk.TreePath.TreePath)
    -- ^ /@path@/: The path of the row to highlight, or 'P.Nothing'
    -> Gtk.Enums.TreeViewDropPosition
    -- ^ /@pos@/: Specifies whether to drop before, after or into the row
    -> m ()
treeViewSetDragDestRow :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Maybe TreePath -> TreeViewDropPosition -> m ()
treeViewSetDragDestRow a
treeView Maybe TreePath
path TreeViewDropPosition
pos = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreePath
maybePath <- case Maybe TreePath
path of
        Maybe TreePath
Nothing -> Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
forall a. Ptr a
nullPtr
        Just TreePath
jPath -> do
            Ptr TreePath
jPath' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
jPath
            Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
jPath'
    let pos' :: CUInt
pos' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (TreeViewDropPosition -> Int) -> TreeViewDropPosition -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TreeViewDropPosition -> Int
forall a. Enum a => a -> Int
fromEnum) TreeViewDropPosition
pos
    Ptr TreeView -> Ptr TreePath -> CUInt -> IO ()
gtk_tree_view_set_drag_dest_row Ptr TreeView
treeView' Ptr TreePath
maybePath CUInt
pos'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe TreePath -> (TreePath -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe TreePath
path TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetDragDestRowMethodInfo
instance (signature ~ (Maybe (Gtk.TreePath.TreePath) -> Gtk.Enums.TreeViewDropPosition -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetDragDestRowMethodInfo a signature where
    overloadedMethod = treeViewSetDragDestRow

instance O.OverloadedMethodInfo TreeViewSetDragDestRowMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetDragDestRow",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetDragDestRow"
        }


#endif

-- method TreeView::set_enable_search
-- 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 = "enable_search"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE, if the user can search interactively"
--                 , 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_set_enable_search" gtk_tree_view_set_enable_search :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- enable_search : TBasicType TBoolean
    IO ()

-- | If /@enableSearch@/ is set, then the user can type in text to search through
-- the tree interactively (this is sometimes called \"typeahead find\").
-- 
-- Note that even if this is 'P.False', the user can still initiate a search
-- using the “start-interactive-search” key binding.
treeViewSetEnableSearch ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@enableSearch@/: 'P.True', if the user can search interactively
    -> m ()
treeViewSetEnableSearch :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetEnableSearch a
treeView Bool
enableSearch = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let enableSearch' :: CInt
enableSearch' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
enableSearch
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_enable_search Ptr TreeView
treeView' CInt
enableSearch'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetEnableSearchMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetEnableSearchMethodInfo a signature where
    overloadedMethod = treeViewSetEnableSearch

instance O.OverloadedMethodInfo TreeViewSetEnableSearchMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetEnableSearch",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetEnableSearch"
        }


#endif

-- method TreeView::set_enable_tree_lines
-- 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 = "enabled"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "%TRUE to enable tree line drawing, %FALSE otherwise."
--                 , 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_set_enable_tree_lines" gtk_tree_view_set_enable_tree_lines :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- enabled : TBasicType TBoolean
    IO ()

-- | Sets whether to draw lines interconnecting the expanders in /@treeView@/.
-- This does not have any visible effects for lists.
treeViewSetEnableTreeLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@enabled@/: 'P.True' to enable tree line drawing, 'P.False' otherwise.
    -> m ()
treeViewSetEnableTreeLines :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetEnableTreeLines a
treeView Bool
enabled = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let enabled' :: CInt
enabled' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
enabled
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_enable_tree_lines Ptr TreeView
treeView' CInt
enabled'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetEnableTreeLinesMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetEnableTreeLinesMethodInfo a signature where
    overloadedMethod = treeViewSetEnableTreeLines

instance O.OverloadedMethodInfo TreeViewSetEnableTreeLinesMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetEnableTreeLines",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetEnableTreeLines"
        }


#endif

-- method TreeView::set_expander_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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "%NULL, or the column to draw the expander arrow at."
--                 , 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_set_expander_column" gtk_tree_view_set_expander_column :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    IO ()

-- | Sets the column to draw the expander arrow at. It must be in /@treeView@/.
-- If /@column@/ is 'P.Nothing', then the expander arrow is always at the first
-- visible column.
-- 
-- If you do not want expander arrow to appear in your tree, set the
-- expander column to a hidden column.
treeViewSetExpanderColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Maybe (b)
    -- ^ /@column@/: 'P.Nothing', or the column to draw the expander arrow at.
    -> m ()
treeViewSetExpanderColumn :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeViewColumn b) =>
a -> Maybe b -> m ()
treeViewSetExpanderColumn a
treeView Maybe b
column = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeViewColumn
maybeColumn <- case Maybe b
column of
        Maybe b
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just b
jColumn -> do
            Ptr TreeViewColumn
jColumn' <- b -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jColumn'
    Ptr TreeView -> Ptr TreeViewColumn -> IO ()
gtk_tree_view_set_expander_column Ptr TreeView
treeView' Ptr TreeViewColumn
maybeColumn
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
column b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetExpanderColumnMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsTreeView a, Gtk.TreeViewColumn.IsTreeViewColumn b) => O.OverloadedMethod TreeViewSetExpanderColumnMethodInfo a signature where
    overloadedMethod = treeViewSetExpanderColumn

instance O.OverloadedMethodInfo TreeViewSetExpanderColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetExpanderColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetExpanderColumn"
        }


#endif

-- method TreeView::set_fixed_height_mode
-- 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 = "enable"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE to enable fixed height mode"
--                 , 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_set_fixed_height_mode" gtk_tree_view_set_fixed_height_mode :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- enable : TBasicType TBoolean
    IO ()

-- | Enables or disables the fixed height mode of /@treeView@/.
-- Fixed height mode speeds up t'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 and all
-- columns are of type 'GI.Gtk.Enums.TreeViewColumnSizingFixed'.
treeViewSetFixedHeightMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@enable@/: 'P.True' to enable fixed height mode
    -> m ()
treeViewSetFixedHeightMode :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetFixedHeightMode a
treeView Bool
enable = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let enable' :: CInt
enable' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
enable
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_fixed_height_mode Ptr TreeView
treeView' CInt
enable'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetFixedHeightModeMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetFixedHeightModeMethodInfo a signature where
    overloadedMethod = treeViewSetFixedHeightMode

instance O.OverloadedMethodInfo TreeViewSetFixedHeightModeMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetFixedHeightMode",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetFixedHeightMode"
        }


#endif

-- method TreeView::set_grid_lines
-- 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 = "grid_lines"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeViewGridLines" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "a #GtkTreeViewGridLines value indicating which grid lines to\nenable."
--                 , 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_set_grid_lines" gtk_tree_view_set_grid_lines :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CUInt ->                                -- grid_lines : TInterface (Name {namespace = "Gtk", name = "TreeViewGridLines"})
    IO ()

-- | Sets which grid lines to draw in /@treeView@/.
treeViewSetGridLines ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.Enums.TreeViewGridLines
    -- ^ /@gridLines@/: a t'GI.Gtk.Enums.TreeViewGridLines' value indicating which grid lines to
    -- enable.
    -> m ()
treeViewSetGridLines :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreeViewGridLines -> m ()
treeViewSetGridLines a
treeView TreeViewGridLines
gridLines = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let gridLines' :: CUInt
gridLines' = (Int -> CUInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CUInt)
-> (TreeViewGridLines -> Int) -> TreeViewGridLines -> CUInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TreeViewGridLines -> Int
forall a. Enum a => a -> Int
fromEnum) TreeViewGridLines
gridLines
    Ptr TreeView -> CUInt -> IO ()
gtk_tree_view_set_grid_lines Ptr TreeView
treeView' CUInt
gridLines'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetGridLinesMethodInfo
instance (signature ~ (Gtk.Enums.TreeViewGridLines -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetGridLinesMethodInfo a signature where
    overloadedMethod = treeViewSetGridLines

instance O.OverloadedMethodInfo TreeViewSetGridLinesMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetGridLines",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetGridLines"
        }


#endif

-- method TreeView::set_headers_clickable
-- 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 = "setting"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE if the columns are clickable."
--                 , 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_set_headers_clickable" gtk_tree_view_set_headers_clickable :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()

-- | Allow the column title buttons to be clicked.
treeViewSetHeadersClickable ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Bool
    -- ^ /@setting@/: 'P.True' if the columns are clickable.
    -> m ()
treeViewSetHeadersClickable :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetHeadersClickable a
treeView Bool
setting = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let setting' :: CInt
setting' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
setting
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_headers_clickable Ptr TreeView
treeView' CInt
setting'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetHeadersClickableMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetHeadersClickableMethodInfo a signature where
    overloadedMethod = treeViewSetHeadersClickable

instance O.OverloadedMethodInfo TreeViewSetHeadersClickableMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetHeadersClickable",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetHeadersClickable"
        }


#endif

-- method TreeView::set_headers_visible
-- 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 = "headers_visible"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE if the headers are visible"
--                 , 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_set_headers_visible" gtk_tree_view_set_headers_visible :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- headers_visible : TBasicType TBoolean
    IO ()

-- | Sets the visibility state of the headers.
treeViewSetHeadersVisible ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Bool
    -- ^ /@headersVisible@/: 'P.True' if the headers are visible
    -> m ()
treeViewSetHeadersVisible :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetHeadersVisible a
treeView Bool
headersVisible = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let headersVisible' :: CInt
headersVisible' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
headersVisible
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_headers_visible Ptr TreeView
treeView' CInt
headersVisible'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetHeadersVisibleMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetHeadersVisibleMethodInfo a signature where
    overloadedMethod = treeViewSetHeadersVisible

instance O.OverloadedMethodInfo TreeViewSetHeadersVisibleMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetHeadersVisible",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetHeadersVisible"
        }


#endif

-- method TreeView::set_hover_expand
-- 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 = "expand"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE to enable hover selection mode"
--                 , 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_set_hover_expand" gtk_tree_view_set_hover_expand :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- expand : TBasicType TBoolean
    IO ()

-- | Enables or disables the hover expansion mode of /@treeView@/.
-- Hover expansion makes rows expand or collapse if the pointer
-- moves over them.
treeViewSetHoverExpand ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@expand@/: 'P.True' to enable hover selection mode
    -> m ()
treeViewSetHoverExpand :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetHoverExpand a
treeView Bool
expand = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let expand' :: CInt
expand' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
expand
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_hover_expand Ptr TreeView
treeView' CInt
expand'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetHoverExpandMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetHoverExpandMethodInfo a signature where
    overloadedMethod = treeViewSetHoverExpand

instance O.OverloadedMethodInfo TreeViewSetHoverExpandMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetHoverExpand",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetHoverExpand"
        }


#endif

-- method TreeView::set_hover_selection
-- 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 = "hover"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE to enable hover selection mode"
--                 , 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_set_hover_selection" gtk_tree_view_set_hover_selection :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- hover : TBasicType TBoolean
    IO ()

-- | 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'.
treeViewSetHoverSelection ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@hover@/: 'P.True' to enable hover selection mode
    -> m ()
treeViewSetHoverSelection :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetHoverSelection a
treeView Bool
hover = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let hover' :: CInt
hover' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
hover
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_hover_selection Ptr TreeView
treeView' CInt
hover'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetHoverSelectionMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetHoverSelectionMethodInfo a signature where
    overloadedMethod = treeViewSetHoverSelection

instance O.OverloadedMethodInfo TreeViewSetHoverSelectionMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetHoverSelection",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetHoverSelection"
        }


#endif

-- method TreeView::set_level_indentation
-- 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 = "indentation"
--           , argType = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the amount, in pixels, of extra indentation in @tree_view."
--                 , 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_set_level_indentation" gtk_tree_view_set_level_indentation :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- indentation : TBasicType TInt
    IO ()

-- | Sets the amount of extra indentation for child levels to use in /@treeView@/
-- in addition to the default indentation.  The value should be specified in
-- pixels, a value of 0 disables this feature and in this case only the default
-- indentation will be used.
-- This does not have any visible effects for lists.
treeViewSetLevelIndentation ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@indentation@/: the amount, in pixels, of extra indentation in /@treeView@/.
    -> m ()
treeViewSetLevelIndentation :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> m ()
treeViewSetLevelIndentation a
treeView Int32
indentation = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> Int32 -> IO ()
gtk_tree_view_set_level_indentation Ptr TreeView
treeView' Int32
indentation
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetLevelIndentationMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetLevelIndentationMethodInfo a signature where
    overloadedMethod = treeViewSetLevelIndentation

instance O.OverloadedMethodInfo TreeViewSetLevelIndentationMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetLevelIndentation",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetLevelIndentation"
        }


#endif

-- method TreeView::set_model
-- 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 = "model"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "TreeModel" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "The model." , 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_set_model" gtk_tree_view_set_model :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.TreeModel.TreeModel ->          -- model : TInterface (Name {namespace = "Gtk", name = "TreeModel"})
    IO ()

-- | Sets the model for a t'GI.Gtk.Objects.TreeView.TreeView'.  If the /@treeView@/ already has a model
-- set, it will remove it before setting the new model.  If /@model@/ is 'P.Nothing',
-- then it will unset the old model.
treeViewSetModel ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.TreeModel.IsTreeModel b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Maybe (b)
    -- ^ /@model@/: The model.
    -> m ()
treeViewSetModel :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTreeModel b) =>
a -> Maybe b -> m ()
treeViewSetModel a
treeView Maybe b
model = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeModel
maybeModel <- case Maybe b
model of
        Maybe b
Nothing -> Ptr TreeModel -> IO (Ptr TreeModel)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeModel
forall a. Ptr a
nullPtr
        Just b
jModel -> do
            Ptr TreeModel
jModel' <- b -> IO (Ptr TreeModel)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jModel
            Ptr TreeModel -> IO (Ptr TreeModel)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeModel
jModel'
    Ptr TreeView -> Ptr TreeModel -> IO ()
gtk_tree_view_set_model Ptr TreeView
treeView' Ptr TreeModel
maybeModel
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
model b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetModelMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsTreeView a, Gtk.TreeModel.IsTreeModel b) => O.OverloadedMethod TreeViewSetModelMethodInfo a signature where
    overloadedMethod = treeViewSetModel

instance O.OverloadedMethodInfo TreeViewSetModelMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetModel",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetModel"
        }


#endif

-- method TreeView::set_reorderable
-- 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 = "reorderable"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE, if the tree can be reordered."
--                 , 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_set_reorderable" gtk_tree_view_set_reorderable :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- reorderable : TBasicType TBoolean
    IO ()

-- | This function is a convenience function to allow you to reorder
-- models that support the t'GI.Gtk.Structs.TreeDragSourceIface.TreeDragSourceIface' and the
-- t'GI.Gtk.Structs.TreeDragDestIface.TreeDragDestIface'.  Both t'GI.Gtk.Objects.TreeStore.TreeStore' and t'GI.Gtk.Objects.ListStore.ListStore' support
-- these.  If /@reorderable@/ is 'P.True', then the user can reorder the
-- model by dragging and dropping rows. The developer can listen to
-- these changes by connecting to the model’s [rowInserted]("GI.Gtk.Interfaces.TreeModel#g:signal:rowInserted")
-- and [rowDeleted]("GI.Gtk.Interfaces.TreeModel#g:signal:rowDeleted") signals. The reordering is implemented
-- by setting up the tree view as a drag source and destination.
-- Therefore, drag and drop can not be used in a reorderable view for any
-- other purpose.
-- 
-- This function does not give you any degree of control over the order -- any
-- reordering is allowed.  If more control is needed, you should probably
-- handle drag and drop manually.
treeViewSetReorderable ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'.
    -> Bool
    -- ^ /@reorderable@/: 'P.True', if the tree can be reordered.
    -> m ()
treeViewSetReorderable :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetReorderable a
treeView Bool
reorderable = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let reorderable' :: CInt
reorderable' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
reorderable
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_reorderable Ptr TreeView
treeView' CInt
reorderable'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetReorderableMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetReorderableMethodInfo a signature where
    overloadedMethod = treeViewSetReorderable

instance O.OverloadedMethodInfo TreeViewSetReorderableMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetReorderable",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetReorderable"
        }


#endif

-- method TreeView::set_row_separator_func
-- 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 = "func"
--           , argType =
--               TInterface
--                 Name { namespace = "Gtk" , name = "TreeViewRowSeparatorFunc" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkTreeViewRowSeparatorFunc"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeNotified
--           , argClosure = 2
--           , argDestroy = 3
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "user data to pass to @func, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "destroy"
--           , argType =
--               TInterface Name { namespace = "GLib" , name = "DestroyNotify" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "destroy notifier for @data, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeAsync
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_row_separator_func" gtk_tree_view_set_row_separator_func :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    FunPtr Gtk.Callbacks.C_TreeViewRowSeparatorFunc -> -- func : TInterface (Name {namespace = "Gtk", name = "TreeViewRowSeparatorFunc"})
    Ptr () ->                               -- data : TBasicType TPtr
    FunPtr GLib.Callbacks.C_DestroyNotify -> -- destroy : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})
    IO ()

-- | Sets the row separator function, which is used to determine
-- whether a row should be drawn as a separator. If the row separator
-- function is 'P.Nothing', no separators are drawn. This is the default value.
treeViewSetRowSeparatorFunc ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Maybe (Gtk.Callbacks.TreeViewRowSeparatorFunc)
    -- ^ /@func@/: a t'GI.Gtk.Callbacks.TreeViewRowSeparatorFunc'
    -> m ()
treeViewSetRowSeparatorFunc :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Maybe TreeViewRowSeparatorFunc -> m ()
treeViewSetRowSeparatorFunc a
treeView Maybe TreeViewRowSeparatorFunc
func = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    FunPtr C_TreeViewRowSeparatorFunc
maybeFunc <- case Maybe TreeViewRowSeparatorFunc
func of
        Maybe TreeViewRowSeparatorFunc
Nothing -> FunPtr C_TreeViewRowSeparatorFunc
-> IO (FunPtr C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr Any -> FunPtr C_TreeViewRowSeparatorFunc
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr)
        Just TreeViewRowSeparatorFunc
jFunc -> do
            FunPtr C_TreeViewRowSeparatorFunc
jFunc' <- C_TreeViewRowSeparatorFunc
-> IO (FunPtr C_TreeViewRowSeparatorFunc)
Gtk.Callbacks.mk_TreeViewRowSeparatorFunc (Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
-> TreeViewRowSeparatorFunc_WithClosures
-> C_TreeViewRowSeparatorFunc
Gtk.Callbacks.wrap_TreeViewRowSeparatorFunc Maybe (Ptr (FunPtr C_TreeViewRowSeparatorFunc))
forall a. Maybe a
Nothing (TreeViewRowSeparatorFunc -> TreeViewRowSeparatorFunc_WithClosures
Gtk.Callbacks.drop_closures_TreeViewRowSeparatorFunc TreeViewRowSeparatorFunc
jFunc))
            FunPtr C_TreeViewRowSeparatorFunc
-> IO (FunPtr C_TreeViewRowSeparatorFunc)
forall (m :: * -> *) a. Monad m => a -> m a
return FunPtr C_TreeViewRowSeparatorFunc
jFunc'
    let data_ :: Ptr ()
data_ = FunPtr C_TreeViewRowSeparatorFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_TreeViewRowSeparatorFunc
maybeFunc
    let destroy :: FunPtr (Ptr a -> IO ())
destroy = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
SP.safeFreeFunPtrPtr
    Ptr TreeView
-> FunPtr C_TreeViewRowSeparatorFunc
-> Ptr ()
-> FunPtr C_DestroyNotify
-> IO ()
gtk_tree_view_set_row_separator_func Ptr TreeView
treeView' FunPtr C_TreeViewRowSeparatorFunc
maybeFunc Ptr ()
data_ FunPtr C_DestroyNotify
forall a. FunPtr (Ptr a -> IO ())
destroy
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetRowSeparatorFuncMethodInfo
instance (signature ~ (Maybe (Gtk.Callbacks.TreeViewRowSeparatorFunc) -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetRowSeparatorFuncMethodInfo a signature where
    overloadedMethod = treeViewSetRowSeparatorFunc

instance O.OverloadedMethodInfo TreeViewSetRowSeparatorFuncMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetRowSeparatorFunc",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetRowSeparatorFunc"
        }


#endif

-- method TreeView::set_rubber_banding
-- 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 = "enable"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "%TRUE to enable rubber banding"
--                 , 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_set_rubber_banding" gtk_tree_view_set_rubber_banding :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- enable : TBasicType TBoolean
    IO ()

-- | Enables or disables rubber banding in /@treeView@/.  If the selection mode
-- is @/GTK_SELECTION_MULTIPLE/@, rubber banding will allow the user to select
-- multiple rows by dragging the mouse.
treeViewSetRubberBanding ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@enable@/: 'P.True' to enable rubber banding
    -> m ()
treeViewSetRubberBanding :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetRubberBanding a
treeView Bool
enable = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let enable' :: CInt
enable' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
enable
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_rubber_banding Ptr TreeView
treeView' CInt
enable'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetRubberBandingMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetRubberBandingMethodInfo a signature where
    overloadedMethod = treeViewSetRubberBanding

instance O.OverloadedMethodInfo TreeViewSetRubberBandingMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetRubberBanding",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetRubberBanding"
        }


#endif

-- method TreeView::set_search_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 = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the column of the model to search in, or -1 to disable searching"
--                 , 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_set_search_column" gtk_tree_view_set_search_column :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- column : TBasicType TInt
    IO ()

-- | Sets /@column@/ as the column where the interactive search code should
-- search in for the current model.
-- 
-- If the search column is set, users can use the “start-interactive-search”
-- key binding to bring up search popup. The enable-search property controls
-- whether simply typing text will also start an interactive search.
-- 
-- Note that /@column@/ refers to a column of the current model. The search
-- column is reset to -1 when the model is changed.
treeViewSetSearchColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@column@/: the column of the model to search in, or -1 to disable searching
    -> m ()
treeViewSetSearchColumn :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> m ()
treeViewSetSearchColumn a
treeView Int32
column = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> Int32 -> IO ()
gtk_tree_view_set_search_column Ptr TreeView
treeView' Int32
column
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetSearchColumnMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetSearchColumnMethodInfo a signature where
    overloadedMethod = treeViewSetSearchColumn

instance O.OverloadedMethodInfo TreeViewSetSearchColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetSearchColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetSearchColumn"
        }


#endif

-- method TreeView::set_search_entry
-- 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 = "entry"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Editable" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "the entry the interactive search code of @tree_view should use or %NULL"
--                 , 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_set_search_entry" gtk_tree_view_set_search_entry :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.Editable.Editable ->            -- entry : TInterface (Name {namespace = "Gtk", name = "Editable"})
    IO ()

-- | Sets the entry which the interactive search code will use for this
-- /@treeView@/.  This is useful when you want to provide a search entry
-- in our interface at all time at a fixed position.  Passing 'P.Nothing' for
-- /@entry@/ will make the interactive search code use the built-in popup
-- entry again.
treeViewSetSearchEntry ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.Editable.IsEditable b) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Maybe (b)
    -- ^ /@entry@/: the entry the interactive search code of /@treeView@/ should use or 'P.Nothing'
    -> m ()
treeViewSetSearchEntry :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsEditable b) =>
a -> Maybe b -> m ()
treeViewSetSearchEntry a
treeView Maybe b
entry = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Editable
maybeEntry <- case Maybe b
entry of
        Maybe b
Nothing -> Ptr Editable -> IO (Ptr Editable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Editable
forall a. Ptr a
nullPtr
        Just b
jEntry -> do
            Ptr Editable
jEntry' <- b -> IO (Ptr Editable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jEntry
            Ptr Editable -> IO (Ptr Editable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Editable
jEntry'
    Ptr TreeView -> Ptr Editable -> IO ()
gtk_tree_view_set_search_entry Ptr TreeView
treeView' Ptr Editable
maybeEntry
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
entry b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetSearchEntryMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsTreeView a, Gtk.Editable.IsEditable b) => O.OverloadedMethod TreeViewSetSearchEntryMethodInfo a signature where
    overloadedMethod = treeViewSetSearchEntry

instance O.OverloadedMethodInfo TreeViewSetSearchEntryMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetSearchEntry",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetSearchEntry"
        }


#endif

-- method TreeView::set_search_equal_func
-- 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 = "search_equal_func"
--           , argType =
--               TInterface
--                 Name { namespace = "Gtk" , name = "TreeViewSearchEqualFunc" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the compare function to use during the search"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeNotified
--           , argClosure = 2
--           , argDestroy = 3
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "search_user_data"
--           , argType = TBasicType TPtr
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "user data to pass to @search_equal_func, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "search_destroy"
--           , argType =
--               TInterface Name { namespace = "GLib" , name = "DestroyNotify" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "Destroy notifier for @search_user_data, or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeAsync
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_search_equal_func" gtk_tree_view_set_search_equal_func :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    FunPtr Gtk.Callbacks.C_TreeViewSearchEqualFunc -> -- search_equal_func : TInterface (Name {namespace = "Gtk", name = "TreeViewSearchEqualFunc"})
    Ptr () ->                               -- search_user_data : TBasicType TPtr
    FunPtr GLib.Callbacks.C_DestroyNotify -> -- search_destroy : TInterface (Name {namespace = "GLib", name = "DestroyNotify"})
    IO ()

-- | Sets the compare function for the interactive search capabilities; note
-- that somewhat like @/strcmp()/@ returning 0 for equality
-- t'GI.Gtk.Callbacks.TreeViewSearchEqualFunc' returns 'P.False' on matches.
treeViewSetSearchEqualFunc ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: A t'GI.Gtk.Objects.TreeView.TreeView'
    -> Gtk.Callbacks.TreeViewSearchEqualFunc
    -- ^ /@searchEqualFunc@/: the compare function to use during the search
    -> m ()
treeViewSetSearchEqualFunc :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> TreeViewSearchEqualFunc -> m ()
treeViewSetSearchEqualFunc a
treeView TreeViewSearchEqualFunc
searchEqualFunc = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    FunPtr C_TreeViewSearchEqualFunc
searchEqualFunc' <- C_TreeViewSearchEqualFunc -> IO (FunPtr C_TreeViewSearchEqualFunc)
Gtk.Callbacks.mk_TreeViewSearchEqualFunc (Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc))
-> TreeViewSearchEqualFunc_WithClosures
-> C_TreeViewSearchEqualFunc
Gtk.Callbacks.wrap_TreeViewSearchEqualFunc Maybe (Ptr (FunPtr C_TreeViewSearchEqualFunc))
forall a. Maybe a
Nothing (TreeViewSearchEqualFunc -> TreeViewSearchEqualFunc_WithClosures
Gtk.Callbacks.drop_closures_TreeViewSearchEqualFunc TreeViewSearchEqualFunc
searchEqualFunc))
    let searchUserData :: Ptr ()
searchUserData = FunPtr C_TreeViewSearchEqualFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_TreeViewSearchEqualFunc
searchEqualFunc'
    let searchDestroy :: FunPtr (Ptr a -> IO ())
searchDestroy = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
SP.safeFreeFunPtrPtr
    Ptr TreeView
-> FunPtr C_TreeViewSearchEqualFunc
-> Ptr ()
-> FunPtr C_DestroyNotify
-> IO ()
gtk_tree_view_set_search_equal_func Ptr TreeView
treeView' FunPtr C_TreeViewSearchEqualFunc
searchEqualFunc' Ptr ()
searchUserData FunPtr C_DestroyNotify
forall a. FunPtr (Ptr a -> IO ())
searchDestroy
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetSearchEqualFuncMethodInfo
instance (signature ~ (Gtk.Callbacks.TreeViewSearchEqualFunc -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetSearchEqualFuncMethodInfo a signature where
    overloadedMethod = treeViewSetSearchEqualFunc

instance O.OverloadedMethodInfo TreeViewSetSearchEqualFuncMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetSearchEqualFunc",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetSearchEqualFunc"
        }


#endif

-- method TreeView::set_show_expanders
-- 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 = "enabled"
--           , argType = TBasicType TBoolean
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "%TRUE to enable expander drawing, %FALSE otherwise."
--                 , 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_set_show_expanders" gtk_tree_view_set_show_expanders :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    CInt ->                                 -- enabled : TBasicType TBoolean
    IO ()

-- | Sets whether to draw and enable expanders and indent child rows in
-- /@treeView@/.  When disabled there will be no expanders visible in trees
-- and there will be no way to expand and collapse rows by default.  Also
-- note that hiding the expanders will disable the default indentation.  You
-- can set a custom indentation in this case using
-- 'GI.Gtk.Objects.TreeView.treeViewSetLevelIndentation'.
-- This does not have any visible effects for lists.
treeViewSetShowExpanders ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Bool
    -- ^ /@enabled@/: 'P.True' to enable expander drawing, 'P.False' otherwise.
    -> m ()
treeViewSetShowExpanders :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Bool -> m ()
treeViewSetShowExpanders a
treeView Bool
enabled = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    let enabled' :: CInt
enabled' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
enabled
    Ptr TreeView -> CInt -> IO ()
gtk_tree_view_set_show_expanders Ptr TreeView
treeView' CInt
enabled'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetShowExpandersMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetShowExpandersMethodInfo a signature where
    overloadedMethod = treeViewSetShowExpanders

instance O.OverloadedMethodInfo TreeViewSetShowExpandersMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetShowExpanders",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetShowExpanders"
        }


#endif

-- method TreeView::set_tooltip_cell
-- 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 = "tooltip"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Tooltip" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkTooltip" , 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkTreePath or %NULL"
--                 , 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 = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkTreeViewColumn or %NULL"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "cell"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "CellRenderer" }
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkCellRenderer or %NULL"
--                 , 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_set_tooltip_cell" gtk_tree_view_set_tooltip_cell :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.Tooltip.Tooltip ->              -- tooltip : TInterface (Name {namespace = "Gtk", name = "Tooltip"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    Ptr Gtk.TreeViewColumn.TreeViewColumn -> -- column : TInterface (Name {namespace = "Gtk", name = "TreeViewColumn"})
    Ptr Gtk.CellRenderer.CellRenderer ->    -- cell : TInterface (Name {namespace = "Gtk", name = "CellRenderer"})
    IO ()

-- | Sets the tip area of /@tooltip@/ to the area /@path@/, /@column@/ and /@cell@/ have
-- in common.  For example if /@path@/ is 'P.Nothing' and /@column@/ is set, the tip
-- area will be set to the full area covered by /@column@/.  See also
-- 'GI.Gtk.Objects.Tooltip.tooltipSetTipArea'.
-- 
-- Note that if /@path@/ is not specified and /@cell@/ is set and part of a column
-- containing the expander, the tooltip might not show and hide at the correct
-- position.  In such cases /@path@/ must be set to the current node under the
-- mouse cursor for this function to operate correctly.
-- 
-- See also 'GI.Gtk.Objects.TreeView.treeViewSetTooltipColumn' for a simpler alternative.
treeViewSetTooltipCell ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.Tooltip.IsTooltip b, Gtk.TreeViewColumn.IsTreeViewColumn c, Gtk.CellRenderer.IsCellRenderer d) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> b
    -- ^ /@tooltip@/: a t'GI.Gtk.Objects.Tooltip.Tooltip'
    -> Maybe (Gtk.TreePath.TreePath)
    -- ^ /@path@/: a t'GI.Gtk.Structs.TreePath.TreePath' or 'P.Nothing'
    -> Maybe (c)
    -- ^ /@column@/: a t'GI.Gtk.Objects.TreeViewColumn.TreeViewColumn' or 'P.Nothing'
    -> Maybe (d)
    -- ^ /@cell@/: a t'GI.Gtk.Objects.CellRenderer.CellRenderer' or 'P.Nothing'
    -> m ()
treeViewSetTooltipCell :: forall (m :: * -> *) a b c d.
(HasCallStack, MonadIO m, IsTreeView a, IsTooltip b,
 IsTreeViewColumn c, IsCellRenderer d) =>
a -> b -> Maybe TreePath -> Maybe c -> Maybe d -> m ()
treeViewSetTooltipCell a
treeView b
tooltip Maybe TreePath
path Maybe c
column Maybe d
cell = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Tooltip
tooltip' <- b -> IO (Ptr Tooltip)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
tooltip
    Ptr TreePath
maybePath <- case Maybe TreePath
path of
        Maybe TreePath
Nothing -> Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
forall a. Ptr a
nullPtr
        Just TreePath
jPath -> do
            Ptr TreePath
jPath' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
jPath
            Ptr TreePath -> IO (Ptr TreePath)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreePath
jPath'
    Ptr TreeViewColumn
maybeColumn <- case Maybe c
column of
        Maybe c
Nothing -> Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
forall a. Ptr a
nullPtr
        Just c
jColumn -> do
            Ptr TreeViewColumn
jColumn' <- c -> IO (Ptr TreeViewColumn)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr c
jColumn
            Ptr TreeViewColumn -> IO (Ptr TreeViewColumn)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr TreeViewColumn
jColumn'
    Ptr CellRenderer
maybeCell <- case Maybe d
cell of
        Maybe d
Nothing -> Ptr CellRenderer -> IO (Ptr CellRenderer)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CellRenderer
forall a. Ptr a
nullPtr
        Just d
jCell -> do
            Ptr CellRenderer
jCell' <- d -> IO (Ptr CellRenderer)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr d
jCell
            Ptr CellRenderer -> IO (Ptr CellRenderer)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CellRenderer
jCell'
    Ptr TreeView
-> Ptr Tooltip
-> Ptr TreePath
-> Ptr TreeViewColumn
-> Ptr CellRenderer
-> IO ()
gtk_tree_view_set_tooltip_cell Ptr TreeView
treeView' Ptr Tooltip
tooltip' Ptr TreePath
maybePath Ptr TreeViewColumn
maybeColumn Ptr CellRenderer
maybeCell
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
tooltip
    Maybe TreePath -> (TreePath -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe TreePath
path TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Maybe c -> (c -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe c
column c -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    Maybe d -> (d -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe d
cell d -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetTooltipCellMethodInfo
instance (signature ~ (b -> Maybe (Gtk.TreePath.TreePath) -> Maybe (c) -> Maybe (d) -> m ()), MonadIO m, IsTreeView a, Gtk.Tooltip.IsTooltip b, Gtk.TreeViewColumn.IsTreeViewColumn c, Gtk.CellRenderer.IsCellRenderer d) => O.OverloadedMethod TreeViewSetTooltipCellMethodInfo a signature where
    overloadedMethod = treeViewSetTooltipCell

instance O.OverloadedMethodInfo TreeViewSetTooltipCellMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetTooltipCell",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetTooltipCell"
        }


#endif

-- method TreeView::set_tooltip_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 = TBasicType TInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just
--                       "an integer, which is a valid column number for @tree_view\8217s model"
--                 , 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_set_tooltip_column" gtk_tree_view_set_tooltip_column :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Int32 ->                                -- column : TBasicType TInt
    IO ()

-- | If you only plan to have simple (text-only) tooltips on full rows, you
-- can use this function to have t'GI.Gtk.Objects.TreeView.TreeView' handle these automatically
-- for you. /@column@/ should be set to the column in /@treeView@/’s model
-- containing the tooltip texts, or -1 to disable this feature.
-- 
-- When enabled, t'GI.Gtk.Objects.Widget.Widget':@/has-tooltip/@ will be set to 'P.True' and
-- /@treeView@/ will connect a [queryTooltip]("GI.Gtk.Objects.Widget#g:signal:queryTooltip") signal handler.
-- 
-- Note that the signal handler sets the text with 'GI.Gtk.Objects.Tooltip.tooltipSetMarkup',
-- so &, \<, etc have to be escaped in the text.
treeViewSetTooltipColumn ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> Int32
    -- ^ /@column@/: an integer, which is a valid column number for /@treeView@/’s model
    -> m ()
treeViewSetTooltipColumn :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> Int32 -> m ()
treeViewSetTooltipColumn a
treeView Int32
column = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> Int32 -> IO ()
gtk_tree_view_set_tooltip_column Ptr TreeView
treeView' Int32
column
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetTooltipColumnMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewSetTooltipColumnMethodInfo a signature where
    overloadedMethod = treeViewSetTooltipColumn

instance O.OverloadedMethodInfo TreeViewSetTooltipColumnMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetTooltipColumn",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetTooltipColumn"
        }


#endif

-- method TreeView::set_tooltip_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 = "tooltip"
--           , argType =
--               TInterface Name { namespace = "Gtk" , name = "Tooltip" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkTooltip" , 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" , 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_set_tooltip_row" gtk_tree_view_set_tooltip_row :: 
    Ptr TreeView ->                         -- tree_view : TInterface (Name {namespace = "Gtk", name = "TreeView"})
    Ptr Gtk.Tooltip.Tooltip ->              -- tooltip : TInterface (Name {namespace = "Gtk", name = "Tooltip"})
    Ptr Gtk.TreePath.TreePath ->            -- path : TInterface (Name {namespace = "Gtk", name = "TreePath"})
    IO ()

-- | Sets the tip area of /@tooltip@/ to be the area covered by the row at /@path@/.
-- See also 'GI.Gtk.Objects.TreeView.treeViewSetTooltipColumn' for a simpler alternative.
-- See also 'GI.Gtk.Objects.Tooltip.tooltipSetTipArea'.
treeViewSetTooltipRow ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a, Gtk.Tooltip.IsTooltip b) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> b
    -- ^ /@tooltip@/: a t'GI.Gtk.Objects.Tooltip.Tooltip'
    -> Gtk.TreePath.TreePath
    -- ^ /@path@/: a t'GI.Gtk.Structs.TreePath.TreePath'
    -> m ()
treeViewSetTooltipRow :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsTreeView a, IsTooltip b) =>
a -> b -> TreePath -> m ()
treeViewSetTooltipRow a
treeView b
tooltip TreePath
path = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr Tooltip
tooltip' <- b -> IO (Ptr Tooltip)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
tooltip
    Ptr TreePath
path' <- TreePath -> IO (Ptr TreePath)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TreePath
path
    Ptr TreeView -> Ptr Tooltip -> Ptr TreePath -> IO ()
gtk_tree_view_set_tooltip_row Ptr TreeView
treeView' Ptr Tooltip
tooltip' Ptr TreePath
path'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
tooltip
    TreePath -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TreePath
path
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewSetTooltipRowMethodInfo
instance (signature ~ (b -> Gtk.TreePath.TreePath -> m ()), MonadIO m, IsTreeView a, Gtk.Tooltip.IsTooltip b) => O.OverloadedMethod TreeViewSetTooltipRowMethodInfo a signature where
    overloadedMethod = treeViewSetTooltipRow

instance O.OverloadedMethodInfo TreeViewSetTooltipRowMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewSetTooltipRow",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewSetTooltipRow"
        }


#endif

-- method TreeView::unset_rows_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
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

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

-- | Undoes the effect of
-- 'GI.Gtk.Objects.TreeView.treeViewEnableModelDragDest'. Calling this method sets
-- t'GI.Gtk.Objects.TreeView.TreeView':@/reorderable/@ to 'P.False'.
treeViewUnsetRowsDragDest ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m ()
treeViewUnsetRowsDragDest :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m ()
treeViewUnsetRowsDragDest a
treeView = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> IO ()
gtk_tree_view_unset_rows_drag_dest Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewUnsetRowsDragDestMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewUnsetRowsDragDestMethodInfo a signature where
    overloadedMethod = treeViewUnsetRowsDragDest

instance O.OverloadedMethodInfo TreeViewUnsetRowsDragDestMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewUnsetRowsDragDest",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewUnsetRowsDragDest"
        }


#endif

-- method TreeView::unset_rows_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
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

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

-- | Undoes the effect of
-- 'GI.Gtk.Objects.TreeView.treeViewEnableModelDragSource'. Calling this method sets
-- t'GI.Gtk.Objects.TreeView.TreeView':@/reorderable/@ to 'P.False'.
treeViewUnsetRowsDragSource ::
    (B.CallStack.HasCallStack, MonadIO m, IsTreeView a) =>
    a
    -- ^ /@treeView@/: a t'GI.Gtk.Objects.TreeView.TreeView'
    -> m ()
treeViewUnsetRowsDragSource :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsTreeView a) =>
a -> m ()
treeViewUnsetRowsDragSource a
treeView = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr TreeView
treeView' <- a -> IO (Ptr TreeView)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
treeView
    Ptr TreeView -> IO ()
gtk_tree_view_unset_rows_drag_source Ptr TreeView
treeView'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
treeView
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data TreeViewUnsetRowsDragSourceMethodInfo
instance (signature ~ (m ()), MonadIO m, IsTreeView a) => O.OverloadedMethod TreeViewUnsetRowsDragSourceMethodInfo a signature where
    overloadedMethod = treeViewUnsetRowsDragSource

instance O.OverloadedMethodInfo TreeViewUnsetRowsDragSourceMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.Gtk.Objects.TreeView.treeViewUnsetRowsDragSource",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-gtk-4.0.4/docs/GI-Gtk-Objects-TreeView.html#v:treeViewUnsetRowsDragSource"
        }


#endif