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

module GI.Gtk.Objects.TreeView
    ( 

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


 -- * Methods
-- ** treeViewAppendColumn
    treeViewAppendColumn                    ,


-- ** treeViewCollapseAll
    treeViewCollapseAll                     ,


-- ** treeViewCollapseRow
    treeViewCollapseRow                     ,


-- ** treeViewColumnsAutosize
    treeViewColumnsAutosize                 ,


-- ** treeViewConvertBinWindowToTreeCoords
    treeViewConvertBinWindowToTreeCoords    ,


-- ** treeViewConvertBinWindowToWidgetCoords
    treeViewConvertBinWindowToWidgetCoords  ,


-- ** treeViewConvertTreeToBinWindowCoords
    treeViewConvertTreeToBinWindowCoords    ,


-- ** treeViewConvertTreeToWidgetCoords
    treeViewConvertTreeToWidgetCoords       ,


-- ** treeViewConvertWidgetToBinWindowCoords
    treeViewConvertWidgetToBinWindowCoords  ,


-- ** treeViewConvertWidgetToTreeCoords
    treeViewConvertWidgetToTreeCoords       ,


-- ** treeViewCreateRowDragIcon
    treeViewCreateRowDragIcon               ,


-- ** treeViewEnableModelDragDest
    treeViewEnableModelDragDest             ,


-- ** treeViewEnableModelDragSource
    treeViewEnableModelDragSource           ,


-- ** treeViewExpandAll
    treeViewExpandAll                       ,


-- ** treeViewExpandRow
    treeViewExpandRow                       ,


-- ** treeViewExpandToPath
    treeViewExpandToPath                    ,


-- ** treeViewGetActivateOnSingleClick
    treeViewGetActivateOnSingleClick        ,


-- ** treeViewGetBackgroundArea
    treeViewGetBackgroundArea               ,


-- ** treeViewGetBinWindow
    treeViewGetBinWindow                    ,


-- ** treeViewGetCellArea
    treeViewGetCellArea                     ,


-- ** treeViewGetColumn
    treeViewGetColumn                       ,


-- ** treeViewGetColumns
    treeViewGetColumns                      ,


-- ** treeViewGetCursor
    treeViewGetCursor                       ,


-- ** treeViewGetDestRowAtPos
    treeViewGetDestRowAtPos                 ,


-- ** treeViewGetDragDestRow
    treeViewGetDragDestRow                  ,


-- ** treeViewGetEnableSearch
    treeViewGetEnableSearch                 ,


-- ** treeViewGetEnableTreeLines
    treeViewGetEnableTreeLines              ,


-- ** treeViewGetExpanderColumn
    treeViewGetExpanderColumn               ,


-- ** treeViewGetFixedHeightMode
    treeViewGetFixedHeightMode              ,


-- ** treeViewGetGridLines
    treeViewGetGridLines                    ,


-- ** treeViewGetHadjustment
    treeViewGetHadjustment                  ,


-- ** treeViewGetHeadersClickable
    treeViewGetHeadersClickable             ,


-- ** treeViewGetHeadersVisible
    treeViewGetHeadersVisible               ,


-- ** treeViewGetHoverExpand
    treeViewGetHoverExpand                  ,


-- ** treeViewGetHoverSelection
    treeViewGetHoverSelection               ,


-- ** treeViewGetLevelIndentation
    treeViewGetLevelIndentation             ,


-- ** treeViewGetModel
    treeViewGetModel                        ,


-- ** treeViewGetNColumns
    treeViewGetNColumns                     ,


-- ** treeViewGetPathAtPos
    treeViewGetPathAtPos                    ,


-- ** treeViewGetReorderable
    treeViewGetReorderable                  ,


-- ** treeViewGetRubberBanding
    treeViewGetRubberBanding                ,


-- ** treeViewGetRulesHint
    treeViewGetRulesHint                    ,


-- ** treeViewGetSearchColumn
    treeViewGetSearchColumn                 ,


-- ** treeViewGetSearchEntry
    treeViewGetSearchEntry                  ,


-- ** treeViewGetSelection
    treeViewGetSelection                    ,


-- ** treeViewGetShowExpanders
    treeViewGetShowExpanders                ,


-- ** treeViewGetTooltipColumn
    treeViewGetTooltipColumn                ,


-- ** treeViewGetTooltipContext
    treeViewGetTooltipContext               ,


-- ** treeViewGetVadjustment
    treeViewGetVadjustment                  ,


-- ** treeViewGetVisibleRange
    treeViewGetVisibleRange                 ,


-- ** treeViewGetVisibleRect
    treeViewGetVisibleRect                  ,


-- ** treeViewInsertColumn
    treeViewInsertColumn                    ,


-- ** treeViewInsertColumnWithDataFunc
    treeViewInsertColumnWithDataFunc        ,


-- ** treeViewIsBlankAtPos
    treeViewIsBlankAtPos                    ,


-- ** treeViewIsRubberBandingActive
    treeViewIsRubberBandingActive           ,


-- ** treeViewMapExpandedRows
    treeViewMapExpandedRows                 ,


-- ** treeViewMoveColumnAfter
    treeViewMoveColumnAfter                 ,


-- ** treeViewNew
    treeViewNew                             ,


-- ** treeViewNewWithModel
    treeViewNewWithModel                    ,


-- ** treeViewRemoveColumn
    treeViewRemoveColumn                    ,


-- ** treeViewRowActivated
    treeViewRowActivated                    ,


-- ** treeViewRowExpanded
    treeViewRowExpanded                     ,


-- ** treeViewScrollToCell
    treeViewScrollToCell                    ,


-- ** treeViewScrollToPoint
    treeViewScrollToPoint                   ,


-- ** treeViewSetActivateOnSingleClick
    treeViewSetActivateOnSingleClick        ,


-- ** treeViewSetColumnDragFunction
    treeViewSetColumnDragFunction           ,


-- ** treeViewSetCursor
    treeViewSetCursor                       ,


-- ** treeViewSetCursorOnCell
    treeViewSetCursorOnCell                 ,


-- ** treeViewSetDestroyCountFunc
    treeViewSetDestroyCountFunc             ,


-- ** treeViewSetDragDestRow
    treeViewSetDragDestRow                  ,


-- ** treeViewSetEnableSearch
    treeViewSetEnableSearch                 ,


-- ** treeViewSetEnableTreeLines
    treeViewSetEnableTreeLines              ,


-- ** treeViewSetExpanderColumn
    treeViewSetExpanderColumn               ,


-- ** treeViewSetFixedHeightMode
    treeViewSetFixedHeightMode              ,


-- ** treeViewSetGridLines
    treeViewSetGridLines                    ,


-- ** treeViewSetHadjustment
    treeViewSetHadjustment                  ,


-- ** treeViewSetHeadersClickable
    treeViewSetHeadersClickable             ,


-- ** treeViewSetHeadersVisible
    treeViewSetHeadersVisible               ,


-- ** treeViewSetHoverExpand
    treeViewSetHoverExpand                  ,


-- ** treeViewSetHoverSelection
    treeViewSetHoverSelection               ,


-- ** treeViewSetLevelIndentation
    treeViewSetLevelIndentation             ,


-- ** treeViewSetModel
    treeViewSetModel                        ,


-- ** treeViewSetReorderable
    treeViewSetReorderable                  ,


-- ** treeViewSetRowSeparatorFunc
    treeViewSetRowSeparatorFunc             ,


-- ** treeViewSetRubberBanding
    treeViewSetRubberBanding                ,


-- ** treeViewSetRulesHint
    treeViewSetRulesHint                    ,


-- ** treeViewSetSearchColumn
    treeViewSetSearchColumn                 ,


-- ** treeViewSetSearchEntry
    treeViewSetSearchEntry                  ,


-- ** treeViewSetSearchEqualFunc
    treeViewSetSearchEqualFunc              ,


-- ** treeViewSetSearchPositionFunc
    treeViewSetSearchPositionFunc           ,


-- ** treeViewSetShowExpanders
    treeViewSetShowExpanders                ,


-- ** treeViewSetTooltipCell
    treeViewSetTooltipCell                  ,


-- ** treeViewSetTooltipColumn
    treeViewSetTooltipColumn                ,


-- ** treeViewSetTooltipRow
    treeViewSetTooltipRow                   ,


-- ** treeViewSetVadjustment
    treeViewSetVadjustment                  ,


-- ** treeViewUnsetRowsDragDest
    treeViewUnsetRowsDragDest               ,


-- ** treeViewUnsetRowsDragSource
    treeViewUnsetRowsDragSource             ,




 -- * Properties
-- ** ActivateOnSingleClick
    TreeViewActivateOnSingleClickPropertyInfo,
    constructTreeViewActivateOnSingleClick  ,
    getTreeViewActivateOnSingleClick        ,
    setTreeViewActivateOnSingleClick        ,


-- ** EnableGridLines
    TreeViewEnableGridLinesPropertyInfo     ,
    constructTreeViewEnableGridLines        ,
    getTreeViewEnableGridLines              ,
    setTreeViewEnableGridLines              ,


-- ** EnableSearch
    TreeViewEnableSearchPropertyInfo        ,
    constructTreeViewEnableSearch           ,
    getTreeViewEnableSearch                 ,
    setTreeViewEnableSearch                 ,


-- ** EnableTreeLines
    TreeViewEnableTreeLinesPropertyInfo     ,
    constructTreeViewEnableTreeLines        ,
    getTreeViewEnableTreeLines              ,
    setTreeViewEnableTreeLines              ,


-- ** ExpanderColumn
    TreeViewExpanderColumnPropertyInfo      ,
    constructTreeViewExpanderColumn         ,
    getTreeViewExpanderColumn               ,
    setTreeViewExpanderColumn               ,


-- ** FixedHeightMode
    TreeViewFixedHeightModePropertyInfo     ,
    constructTreeViewFixedHeightMode        ,
    getTreeViewFixedHeightMode              ,
    setTreeViewFixedHeightMode              ,


-- ** HeadersClickable
    TreeViewHeadersClickablePropertyInfo    ,
    constructTreeViewHeadersClickable       ,
    getTreeViewHeadersClickable             ,
    setTreeViewHeadersClickable             ,


-- ** HeadersVisible
    TreeViewHeadersVisiblePropertyInfo      ,
    constructTreeViewHeadersVisible         ,
    getTreeViewHeadersVisible               ,
    setTreeViewHeadersVisible               ,


-- ** HoverExpand
    TreeViewHoverExpandPropertyInfo         ,
    constructTreeViewHoverExpand            ,
    getTreeViewHoverExpand                  ,
    setTreeViewHoverExpand                  ,


-- ** HoverSelection
    TreeViewHoverSelectionPropertyInfo      ,
    constructTreeViewHoverSelection         ,
    getTreeViewHoverSelection               ,
    setTreeViewHoverSelection               ,


-- ** LevelIndentation
    TreeViewLevelIndentationPropertyInfo    ,
    constructTreeViewLevelIndentation       ,
    getTreeViewLevelIndentation             ,
    setTreeViewLevelIndentation             ,


-- ** Model
    TreeViewModelPropertyInfo               ,
    constructTreeViewModel                  ,
    getTreeViewModel                        ,
    setTreeViewModel                        ,


-- ** Reorderable
    TreeViewReorderablePropertyInfo         ,
    constructTreeViewReorderable            ,
    getTreeViewReorderable                  ,
    setTreeViewReorderable                  ,


-- ** RubberBanding
    TreeViewRubberBandingPropertyInfo       ,
    constructTreeViewRubberBanding          ,
    getTreeViewRubberBanding                ,
    setTreeViewRubberBanding                ,


-- ** RulesHint
    TreeViewRulesHintPropertyInfo           ,
    constructTreeViewRulesHint              ,
    getTreeViewRulesHint                    ,
    setTreeViewRulesHint                    ,


-- ** SearchColumn
    TreeViewSearchColumnPropertyInfo        ,
    constructTreeViewSearchColumn           ,
    getTreeViewSearchColumn                 ,
    setTreeViewSearchColumn                 ,


-- ** ShowExpanders
    TreeViewShowExpandersPropertyInfo       ,
    constructTreeViewShowExpanders          ,
    getTreeViewShowExpanders                ,
    setTreeViewShowExpanders                ,


-- ** TooltipColumn
    TreeViewTooltipColumnPropertyInfo       ,
    constructTreeViewTooltipColumn          ,
    getTreeViewTooltipColumn                ,
    setTreeViewTooltipColumn                ,




 -- * Signals
-- ** ColumnsChanged
    TreeViewColumnsChangedCallback          ,
    TreeViewColumnsChangedCallbackC         ,
    TreeViewColumnsChangedSignalInfo        ,
    afterTreeViewColumnsChanged             ,
    mkTreeViewColumnsChangedCallback        ,
    noTreeViewColumnsChangedCallback        ,
    onTreeViewColumnsChanged                ,
    treeViewColumnsChangedCallbackWrapper   ,
    treeViewColumnsChangedClosure           ,


-- ** CursorChanged
    TreeViewCursorChangedCallback           ,
    TreeViewCursorChangedCallbackC          ,
    TreeViewCursorChangedSignalInfo         ,
    afterTreeViewCursorChanged              ,
    mkTreeViewCursorChangedCallback         ,
    noTreeViewCursorChangedCallback         ,
    onTreeViewCursorChanged                 ,
    treeViewCursorChangedCallbackWrapper    ,
    treeViewCursorChangedClosure            ,


-- ** ExpandCollapseCursorRow
    TreeViewExpandCollapseCursorRowCallback ,
    TreeViewExpandCollapseCursorRowCallbackC,
    TreeViewExpandCollapseCursorRowSignalInfo,
    afterTreeViewExpandCollapseCursorRow    ,
    mkTreeViewExpandCollapseCursorRowCallback,
    noTreeViewExpandCollapseCursorRowCallback,
    onTreeViewExpandCollapseCursorRow       ,
    treeViewExpandCollapseCursorRowCallbackWrapper,
    treeViewExpandCollapseCursorRowClosure  ,


-- ** MoveCursor
    TreeViewMoveCursorCallback              ,
    TreeViewMoveCursorCallbackC             ,
    TreeViewMoveCursorSignalInfo            ,
    afterTreeViewMoveCursor                 ,
    mkTreeViewMoveCursorCallback            ,
    noTreeViewMoveCursorCallback            ,
    onTreeViewMoveCursor                    ,
    treeViewMoveCursorCallbackWrapper       ,
    treeViewMoveCursorClosure               ,


-- ** RowActivated
    TreeViewRowActivatedCallback            ,
    TreeViewRowActivatedCallbackC           ,
    TreeViewRowActivatedSignalInfo          ,
    afterTreeViewRowActivated               ,
    mkTreeViewRowActivatedCallback          ,
    noTreeViewRowActivatedCallback          ,
    onTreeViewRowActivated                  ,
    treeViewRowActivatedCallbackWrapper     ,
    treeViewRowActivatedClosure             ,


-- ** RowCollapsed
    TreeViewRowCollapsedCallback            ,
    TreeViewRowCollapsedCallbackC           ,
    TreeViewRowCollapsedSignalInfo          ,
    afterTreeViewRowCollapsed               ,
    mkTreeViewRowCollapsedCallback          ,
    noTreeViewRowCollapsedCallback          ,
    onTreeViewRowCollapsed                  ,
    treeViewRowCollapsedCallbackWrapper     ,
    treeViewRowCollapsedClosure             ,


-- ** RowExpanded
    TreeViewRowExpandedCallback             ,
    TreeViewRowExpandedCallbackC            ,
    TreeViewRowExpandedSignalInfo           ,
    afterTreeViewRowExpanded                ,
    mkTreeViewRowExpandedCallback           ,
    noTreeViewRowExpandedCallback           ,
    onTreeViewRowExpanded                   ,
    treeViewRowExpandedCallbackWrapper      ,
    treeViewRowExpandedClosure              ,


-- ** SelectAll
    TreeViewSelectAllCallback               ,
    TreeViewSelectAllCallbackC              ,
    TreeViewSelectAllSignalInfo             ,
    afterTreeViewSelectAll                  ,
    mkTreeViewSelectAllCallback             ,
    noTreeViewSelectAllCallback             ,
    onTreeViewSelectAll                     ,
    treeViewSelectAllCallbackWrapper        ,
    treeViewSelectAllClosure                ,


-- ** SelectCursorParent
    TreeViewSelectCursorParentCallback      ,
    TreeViewSelectCursorParentCallbackC     ,
    TreeViewSelectCursorParentSignalInfo    ,
    afterTreeViewSelectCursorParent         ,
    mkTreeViewSelectCursorParentCallback    ,
    noTreeViewSelectCursorParentCallback    ,
    onTreeViewSelectCursorParent            ,
    treeViewSelectCursorParentCallbackWrapper,
    treeViewSelectCursorParentClosure       ,


-- ** SelectCursorRow
    TreeViewSelectCursorRowCallback         ,
    TreeViewSelectCursorRowCallbackC        ,
    TreeViewSelectCursorRowSignalInfo       ,
    afterTreeViewSelectCursorRow            ,
    mkTreeViewSelectCursorRowCallback       ,
    noTreeViewSelectCursorRowCallback       ,
    onTreeViewSelectCursorRow               ,
    treeViewSelectCursorRowCallbackWrapper  ,
    treeViewSelectCursorRowClosure          ,


-- ** StartInteractiveSearch
    TreeViewStartInteractiveSearchCallback  ,
    TreeViewStartInteractiveSearchCallbackC ,
    TreeViewStartInteractiveSearchSignalInfo,
    afterTreeViewStartInteractiveSearch     ,
    mkTreeViewStartInteractiveSearchCallback,
    noTreeViewStartInteractiveSearchCallback,
    onTreeViewStartInteractiveSearch        ,
    treeViewStartInteractiveSearchCallbackWrapper,
    treeViewStartInteractiveSearchClosure   ,


-- ** TestCollapseRow
    TreeViewTestCollapseRowCallback         ,
    TreeViewTestCollapseRowCallbackC        ,
    TreeViewTestCollapseRowSignalInfo       ,
    afterTreeViewTestCollapseRow            ,
    mkTreeViewTestCollapseRowCallback       ,
    noTreeViewTestCollapseRowCallback       ,
    onTreeViewTestCollapseRow               ,
    treeViewTestCollapseRowCallbackWrapper  ,
    treeViewTestCollapseRowClosure          ,


-- ** TestExpandRow
    TreeViewTestExpandRowCallback           ,
    TreeViewTestExpandRowCallbackC          ,
    TreeViewTestExpandRowSignalInfo         ,
    afterTreeViewTestExpandRow              ,
    mkTreeViewTestExpandRowCallback         ,
    noTreeViewTestExpandRowCallback         ,
    onTreeViewTestExpandRow                 ,
    treeViewTestExpandRowCallbackWrapper    ,
    treeViewTestExpandRowClosure            ,


-- ** ToggleCursorRow
    TreeViewToggleCursorRowCallback         ,
    TreeViewToggleCursorRowCallbackC        ,
    TreeViewToggleCursorRowSignalInfo       ,
    afterTreeViewToggleCursorRow            ,
    mkTreeViewToggleCursorRowCallback       ,
    noTreeViewToggleCursorRowCallback       ,
    onTreeViewToggleCursorRow               ,
    treeViewToggleCursorRowCallbackWrapper  ,
    treeViewToggleCursorRowClosure          ,


-- ** UnselectAll
    TreeViewUnselectAllCallback             ,
    TreeViewUnselectAllCallbackC            ,
    TreeViewUnselectAllSignalInfo           ,
    afterTreeViewUnselectAll                ,
    mkTreeViewUnselectAllCallback           ,
    noTreeViewUnselectAllCallback           ,
    onTreeViewUnselectAll                   ,
    treeViewUnselectAllCallbackWrapper      ,
    treeViewUnselectAllClosure              ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.Atk as Atk
import qualified GI.GLib as GLib
import qualified GI.GObject as GObject
import qualified GI.Gdk as Gdk
import qualified GI.Cairo as Cairo

newtype TreeView = TreeView (ForeignPtr TreeView)
foreign import ccall "gtk_tree_view_get_type"
    c_gtk_tree_view_get_type :: IO GType

type instance ParentTypes TreeView = TreeViewParentTypes
type TreeViewParentTypes = '[Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable, Scrollable]

instance GObject TreeView where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_tree_view_get_type
    

class GObject o => TreeViewK o
instance (GObject o, IsDescendantOf TreeView o) => TreeViewK o

toTreeView :: TreeViewK o => o -> IO TreeView
toTreeView = unsafeCastTo TreeView

noTreeView :: Maybe TreeView
noTreeView = Nothing

-- signal TreeView::columns-changed
type TreeViewColumnsChangedCallback =
    IO ()

noTreeViewColumnsChangedCallback :: Maybe TreeViewColumnsChangedCallback
noTreeViewColumnsChangedCallback = Nothing

type TreeViewColumnsChangedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkTreeViewColumnsChangedCallback :: TreeViewColumnsChangedCallbackC -> IO (FunPtr TreeViewColumnsChangedCallbackC)

treeViewColumnsChangedClosure :: TreeViewColumnsChangedCallback -> IO Closure
treeViewColumnsChangedClosure cb = newCClosure =<< mkTreeViewColumnsChangedCallback wrapped
    where wrapped = treeViewColumnsChangedCallbackWrapper cb

treeViewColumnsChangedCallbackWrapper ::
    TreeViewColumnsChangedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
treeViewColumnsChangedCallbackWrapper _cb _ _ = do
    _cb 

onTreeViewColumnsChanged :: (GObject a, MonadIO m) => a -> TreeViewColumnsChangedCallback -> m SignalHandlerId
onTreeViewColumnsChanged obj cb = liftIO $ connectTreeViewColumnsChanged obj cb SignalConnectBefore
afterTreeViewColumnsChanged :: (GObject a, MonadIO m) => a -> TreeViewColumnsChangedCallback -> m SignalHandlerId
afterTreeViewColumnsChanged obj cb = connectTreeViewColumnsChanged obj cb SignalConnectAfter

connectTreeViewColumnsChanged :: (GObject a, MonadIO m) =>
                                 a -> TreeViewColumnsChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewColumnsChanged obj cb after = liftIO $ do
    cb' <- mkTreeViewColumnsChangedCallback (treeViewColumnsChangedCallbackWrapper cb)
    connectSignalFunPtr obj "columns-changed" cb' after

-- signal TreeView::cursor-changed
type TreeViewCursorChangedCallback =
    IO ()

noTreeViewCursorChangedCallback :: Maybe TreeViewCursorChangedCallback
noTreeViewCursorChangedCallback = Nothing

type TreeViewCursorChangedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkTreeViewCursorChangedCallback :: TreeViewCursorChangedCallbackC -> IO (FunPtr TreeViewCursorChangedCallbackC)

treeViewCursorChangedClosure :: TreeViewCursorChangedCallback -> IO Closure
treeViewCursorChangedClosure cb = newCClosure =<< mkTreeViewCursorChangedCallback wrapped
    where wrapped = treeViewCursorChangedCallbackWrapper cb

treeViewCursorChangedCallbackWrapper ::
    TreeViewCursorChangedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
treeViewCursorChangedCallbackWrapper _cb _ _ = do
    _cb 

onTreeViewCursorChanged :: (GObject a, MonadIO m) => a -> TreeViewCursorChangedCallback -> m SignalHandlerId
onTreeViewCursorChanged obj cb = liftIO $ connectTreeViewCursorChanged obj cb SignalConnectBefore
afterTreeViewCursorChanged :: (GObject a, MonadIO m) => a -> TreeViewCursorChangedCallback -> m SignalHandlerId
afterTreeViewCursorChanged obj cb = connectTreeViewCursorChanged obj cb SignalConnectAfter

connectTreeViewCursorChanged :: (GObject a, MonadIO m) =>
                                a -> TreeViewCursorChangedCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewCursorChanged obj cb after = liftIO $ do
    cb' <- mkTreeViewCursorChangedCallback (treeViewCursorChangedCallbackWrapper cb)
    connectSignalFunPtr obj "cursor-changed" cb' after

-- signal TreeView::expand-collapse-cursor-row
type TreeViewExpandCollapseCursorRowCallback =
    Bool ->
    Bool ->
    Bool ->
    IO Bool

noTreeViewExpandCollapseCursorRowCallback :: Maybe TreeViewExpandCollapseCursorRowCallback
noTreeViewExpandCollapseCursorRowCallback = Nothing

type TreeViewExpandCollapseCursorRowCallbackC =
    Ptr () ->                               -- object
    CInt ->
    CInt ->
    CInt ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewExpandCollapseCursorRowCallback :: TreeViewExpandCollapseCursorRowCallbackC -> IO (FunPtr TreeViewExpandCollapseCursorRowCallbackC)

treeViewExpandCollapseCursorRowClosure :: TreeViewExpandCollapseCursorRowCallback -> IO Closure
treeViewExpandCollapseCursorRowClosure cb = newCClosure =<< mkTreeViewExpandCollapseCursorRowCallback wrapped
    where wrapped = treeViewExpandCollapseCursorRowCallbackWrapper cb

treeViewExpandCollapseCursorRowCallbackWrapper ::
    TreeViewExpandCollapseCursorRowCallback ->
    Ptr () ->
    CInt ->
    CInt ->
    CInt ->
    Ptr () ->
    IO CInt
treeViewExpandCollapseCursorRowCallbackWrapper _cb _ object p0 p1 _ = do
    let object' = (/= 0) object
    let p0' = (/= 0) p0
    let p1' = (/= 0) p1
    result <- _cb  object' p0' p1'
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewExpandCollapseCursorRow :: (GObject a, MonadIO m) => a -> TreeViewExpandCollapseCursorRowCallback -> m SignalHandlerId
onTreeViewExpandCollapseCursorRow obj cb = liftIO $ connectTreeViewExpandCollapseCursorRow obj cb SignalConnectBefore
afterTreeViewExpandCollapseCursorRow :: (GObject a, MonadIO m) => a -> TreeViewExpandCollapseCursorRowCallback -> m SignalHandlerId
afterTreeViewExpandCollapseCursorRow obj cb = connectTreeViewExpandCollapseCursorRow obj cb SignalConnectAfter

connectTreeViewExpandCollapseCursorRow :: (GObject a, MonadIO m) =>
                                          a -> TreeViewExpandCollapseCursorRowCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewExpandCollapseCursorRow obj cb after = liftIO $ do
    cb' <- mkTreeViewExpandCollapseCursorRowCallback (treeViewExpandCollapseCursorRowCallbackWrapper cb)
    connectSignalFunPtr obj "expand-collapse-cursor-row" cb' after

-- signal TreeView::move-cursor
type TreeViewMoveCursorCallback =
    MovementStep ->
    Int32 ->
    IO Bool

noTreeViewMoveCursorCallback :: Maybe TreeViewMoveCursorCallback
noTreeViewMoveCursorCallback = Nothing

type TreeViewMoveCursorCallbackC =
    Ptr () ->                               -- object
    CUInt ->
    Int32 ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewMoveCursorCallback :: TreeViewMoveCursorCallbackC -> IO (FunPtr TreeViewMoveCursorCallbackC)

treeViewMoveCursorClosure :: TreeViewMoveCursorCallback -> IO Closure
treeViewMoveCursorClosure cb = newCClosure =<< mkTreeViewMoveCursorCallback wrapped
    where wrapped = treeViewMoveCursorCallbackWrapper cb

treeViewMoveCursorCallbackWrapper ::
    TreeViewMoveCursorCallback ->
    Ptr () ->
    CUInt ->
    Int32 ->
    Ptr () ->
    IO CInt
treeViewMoveCursorCallbackWrapper _cb _ step direction _ = do
    let step' = (toEnum . fromIntegral) step
    result <- _cb  step' direction
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewMoveCursor :: (GObject a, MonadIO m) => a -> TreeViewMoveCursorCallback -> m SignalHandlerId
onTreeViewMoveCursor obj cb = liftIO $ connectTreeViewMoveCursor obj cb SignalConnectBefore
afterTreeViewMoveCursor :: (GObject a, MonadIO m) => a -> TreeViewMoveCursorCallback -> m SignalHandlerId
afterTreeViewMoveCursor obj cb = connectTreeViewMoveCursor obj cb SignalConnectAfter

connectTreeViewMoveCursor :: (GObject a, MonadIO m) =>
                             a -> TreeViewMoveCursorCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewMoveCursor obj cb after = liftIO $ do
    cb' <- mkTreeViewMoveCursorCallback (treeViewMoveCursorCallbackWrapper cb)
    connectSignalFunPtr obj "move-cursor" cb' after

-- signal TreeView::row-activated
type TreeViewRowActivatedCallback =
    TreePath ->
    TreeViewColumn ->
    IO ()

noTreeViewRowActivatedCallback :: Maybe TreeViewRowActivatedCallback
noTreeViewRowActivatedCallback = Nothing

type TreeViewRowActivatedCallbackC =
    Ptr () ->                               -- object
    Ptr TreePath ->
    Ptr TreeViewColumn ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkTreeViewRowActivatedCallback :: TreeViewRowActivatedCallbackC -> IO (FunPtr TreeViewRowActivatedCallbackC)

treeViewRowActivatedClosure :: TreeViewRowActivatedCallback -> IO Closure
treeViewRowActivatedClosure cb = newCClosure =<< mkTreeViewRowActivatedCallback wrapped
    where wrapped = treeViewRowActivatedCallbackWrapper cb

treeViewRowActivatedCallbackWrapper ::
    TreeViewRowActivatedCallback ->
    Ptr () ->
    Ptr TreePath ->
    Ptr TreeViewColumn ->
    Ptr () ->
    IO ()
treeViewRowActivatedCallbackWrapper _cb _ path column _ = do
    path' <- (newBoxed TreePath) path
    column' <- (newObject TreeViewColumn) column
    _cb  path' column'

onTreeViewRowActivated :: (GObject a, MonadIO m) => a -> TreeViewRowActivatedCallback -> m SignalHandlerId
onTreeViewRowActivated obj cb = liftIO $ connectTreeViewRowActivated obj cb SignalConnectBefore
afterTreeViewRowActivated :: (GObject a, MonadIO m) => a -> TreeViewRowActivatedCallback -> m SignalHandlerId
afterTreeViewRowActivated obj cb = connectTreeViewRowActivated obj cb SignalConnectAfter

connectTreeViewRowActivated :: (GObject a, MonadIO m) =>
                               a -> TreeViewRowActivatedCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewRowActivated obj cb after = liftIO $ do
    cb' <- mkTreeViewRowActivatedCallback (treeViewRowActivatedCallbackWrapper cb)
    connectSignalFunPtr obj "row-activated" cb' after

-- signal TreeView::row-collapsed
type TreeViewRowCollapsedCallback =
    TreeIter ->
    TreePath ->
    IO ()

noTreeViewRowCollapsedCallback :: Maybe TreeViewRowCollapsedCallback
noTreeViewRowCollapsedCallback = Nothing

type TreeViewRowCollapsedCallbackC =
    Ptr () ->                               -- object
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkTreeViewRowCollapsedCallback :: TreeViewRowCollapsedCallbackC -> IO (FunPtr TreeViewRowCollapsedCallbackC)

treeViewRowCollapsedClosure :: TreeViewRowCollapsedCallback -> IO Closure
treeViewRowCollapsedClosure cb = newCClosure =<< mkTreeViewRowCollapsedCallback wrapped
    where wrapped = treeViewRowCollapsedCallbackWrapper cb

treeViewRowCollapsedCallbackWrapper ::
    TreeViewRowCollapsedCallback ->
    Ptr () ->
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->
    IO ()
treeViewRowCollapsedCallbackWrapper _cb _ iter path _ = do
    iter' <- (newBoxed TreeIter) iter
    path' <- (newBoxed TreePath) path
    _cb  iter' path'

onTreeViewRowCollapsed :: (GObject a, MonadIO m) => a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
onTreeViewRowCollapsed obj cb = liftIO $ connectTreeViewRowCollapsed obj cb SignalConnectBefore
afterTreeViewRowCollapsed :: (GObject a, MonadIO m) => a -> TreeViewRowCollapsedCallback -> m SignalHandlerId
afterTreeViewRowCollapsed obj cb = connectTreeViewRowCollapsed obj cb SignalConnectAfter

connectTreeViewRowCollapsed :: (GObject a, MonadIO m) =>
                               a -> TreeViewRowCollapsedCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewRowCollapsed obj cb after = liftIO $ do
    cb' <- mkTreeViewRowCollapsedCallback (treeViewRowCollapsedCallbackWrapper cb)
    connectSignalFunPtr obj "row-collapsed" cb' after

-- signal TreeView::row-expanded
type TreeViewRowExpandedCallback =
    TreeIter ->
    TreePath ->
    IO ()

noTreeViewRowExpandedCallback :: Maybe TreeViewRowExpandedCallback
noTreeViewRowExpandedCallback = Nothing

type TreeViewRowExpandedCallbackC =
    Ptr () ->                               -- object
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkTreeViewRowExpandedCallback :: TreeViewRowExpandedCallbackC -> IO (FunPtr TreeViewRowExpandedCallbackC)

treeViewRowExpandedClosure :: TreeViewRowExpandedCallback -> IO Closure
treeViewRowExpandedClosure cb = newCClosure =<< mkTreeViewRowExpandedCallback wrapped
    where wrapped = treeViewRowExpandedCallbackWrapper cb

treeViewRowExpandedCallbackWrapper ::
    TreeViewRowExpandedCallback ->
    Ptr () ->
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->
    IO ()
treeViewRowExpandedCallbackWrapper _cb _ iter path _ = do
    iter' <- (newBoxed TreeIter) iter
    path' <- (newBoxed TreePath) path
    _cb  iter' path'

onTreeViewRowExpanded :: (GObject a, MonadIO m) => a -> TreeViewRowExpandedCallback -> m SignalHandlerId
onTreeViewRowExpanded obj cb = liftIO $ connectTreeViewRowExpanded obj cb SignalConnectBefore
afterTreeViewRowExpanded :: (GObject a, MonadIO m) => a -> TreeViewRowExpandedCallback -> m SignalHandlerId
afterTreeViewRowExpanded obj cb = connectTreeViewRowExpanded obj cb SignalConnectAfter

connectTreeViewRowExpanded :: (GObject a, MonadIO m) =>
                              a -> TreeViewRowExpandedCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewRowExpanded obj cb after = liftIO $ do
    cb' <- mkTreeViewRowExpandedCallback (treeViewRowExpandedCallbackWrapper cb)
    connectSignalFunPtr obj "row-expanded" cb' after

-- signal TreeView::select-all
type TreeViewSelectAllCallback =
    IO Bool

noTreeViewSelectAllCallback :: Maybe TreeViewSelectAllCallback
noTreeViewSelectAllCallback = Nothing

type TreeViewSelectAllCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewSelectAllCallback :: TreeViewSelectAllCallbackC -> IO (FunPtr TreeViewSelectAllCallbackC)

treeViewSelectAllClosure :: TreeViewSelectAllCallback -> IO Closure
treeViewSelectAllClosure cb = newCClosure =<< mkTreeViewSelectAllCallback wrapped
    where wrapped = treeViewSelectAllCallbackWrapper cb

treeViewSelectAllCallbackWrapper ::
    TreeViewSelectAllCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
treeViewSelectAllCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewSelectAll :: (GObject a, MonadIO m) => a -> TreeViewSelectAllCallback -> m SignalHandlerId
onTreeViewSelectAll obj cb = liftIO $ connectTreeViewSelectAll obj cb SignalConnectBefore
afterTreeViewSelectAll :: (GObject a, MonadIO m) => a -> TreeViewSelectAllCallback -> m SignalHandlerId
afterTreeViewSelectAll obj cb = connectTreeViewSelectAll obj cb SignalConnectAfter

connectTreeViewSelectAll :: (GObject a, MonadIO m) =>
                            a -> TreeViewSelectAllCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewSelectAll obj cb after = liftIO $ do
    cb' <- mkTreeViewSelectAllCallback (treeViewSelectAllCallbackWrapper cb)
    connectSignalFunPtr obj "select-all" cb' after

-- signal TreeView::select-cursor-parent
type TreeViewSelectCursorParentCallback =
    IO Bool

noTreeViewSelectCursorParentCallback :: Maybe TreeViewSelectCursorParentCallback
noTreeViewSelectCursorParentCallback = Nothing

type TreeViewSelectCursorParentCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewSelectCursorParentCallback :: TreeViewSelectCursorParentCallbackC -> IO (FunPtr TreeViewSelectCursorParentCallbackC)

treeViewSelectCursorParentClosure :: TreeViewSelectCursorParentCallback -> IO Closure
treeViewSelectCursorParentClosure cb = newCClosure =<< mkTreeViewSelectCursorParentCallback wrapped
    where wrapped = treeViewSelectCursorParentCallbackWrapper cb

treeViewSelectCursorParentCallbackWrapper ::
    TreeViewSelectCursorParentCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
treeViewSelectCursorParentCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewSelectCursorParent :: (GObject a, MonadIO m) => a -> TreeViewSelectCursorParentCallback -> m SignalHandlerId
onTreeViewSelectCursorParent obj cb = liftIO $ connectTreeViewSelectCursorParent obj cb SignalConnectBefore
afterTreeViewSelectCursorParent :: (GObject a, MonadIO m) => a -> TreeViewSelectCursorParentCallback -> m SignalHandlerId
afterTreeViewSelectCursorParent obj cb = connectTreeViewSelectCursorParent obj cb SignalConnectAfter

connectTreeViewSelectCursorParent :: (GObject a, MonadIO m) =>
                                     a -> TreeViewSelectCursorParentCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewSelectCursorParent obj cb after = liftIO $ do
    cb' <- mkTreeViewSelectCursorParentCallback (treeViewSelectCursorParentCallbackWrapper cb)
    connectSignalFunPtr obj "select-cursor-parent" cb' after

-- signal TreeView::select-cursor-row
type TreeViewSelectCursorRowCallback =
    Bool ->
    IO Bool

noTreeViewSelectCursorRowCallback :: Maybe TreeViewSelectCursorRowCallback
noTreeViewSelectCursorRowCallback = Nothing

type TreeViewSelectCursorRowCallbackC =
    Ptr () ->                               -- object
    CInt ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewSelectCursorRowCallback :: TreeViewSelectCursorRowCallbackC -> IO (FunPtr TreeViewSelectCursorRowCallbackC)

treeViewSelectCursorRowClosure :: TreeViewSelectCursorRowCallback -> IO Closure
treeViewSelectCursorRowClosure cb = newCClosure =<< mkTreeViewSelectCursorRowCallback wrapped
    where wrapped = treeViewSelectCursorRowCallbackWrapper cb

treeViewSelectCursorRowCallbackWrapper ::
    TreeViewSelectCursorRowCallback ->
    Ptr () ->
    CInt ->
    Ptr () ->
    IO CInt
treeViewSelectCursorRowCallbackWrapper _cb _ object _ = do
    let object' = (/= 0) object
    result <- _cb  object'
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewSelectCursorRow :: (GObject a, MonadIO m) => a -> TreeViewSelectCursorRowCallback -> m SignalHandlerId
onTreeViewSelectCursorRow obj cb = liftIO $ connectTreeViewSelectCursorRow obj cb SignalConnectBefore
afterTreeViewSelectCursorRow :: (GObject a, MonadIO m) => a -> TreeViewSelectCursorRowCallback -> m SignalHandlerId
afterTreeViewSelectCursorRow obj cb = connectTreeViewSelectCursorRow obj cb SignalConnectAfter

connectTreeViewSelectCursorRow :: (GObject a, MonadIO m) =>
                                  a -> TreeViewSelectCursorRowCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewSelectCursorRow obj cb after = liftIO $ do
    cb' <- mkTreeViewSelectCursorRowCallback (treeViewSelectCursorRowCallbackWrapper cb)
    connectSignalFunPtr obj "select-cursor-row" cb' after

-- signal TreeView::start-interactive-search
type TreeViewStartInteractiveSearchCallback =
    IO Bool

noTreeViewStartInteractiveSearchCallback :: Maybe TreeViewStartInteractiveSearchCallback
noTreeViewStartInteractiveSearchCallback = Nothing

type TreeViewStartInteractiveSearchCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewStartInteractiveSearchCallback :: TreeViewStartInteractiveSearchCallbackC -> IO (FunPtr TreeViewStartInteractiveSearchCallbackC)

treeViewStartInteractiveSearchClosure :: TreeViewStartInteractiveSearchCallback -> IO Closure
treeViewStartInteractiveSearchClosure cb = newCClosure =<< mkTreeViewStartInteractiveSearchCallback wrapped
    where wrapped = treeViewStartInteractiveSearchCallbackWrapper cb

treeViewStartInteractiveSearchCallbackWrapper ::
    TreeViewStartInteractiveSearchCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
treeViewStartInteractiveSearchCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewStartInteractiveSearch :: (GObject a, MonadIO m) => a -> TreeViewStartInteractiveSearchCallback -> m SignalHandlerId
onTreeViewStartInteractiveSearch obj cb = liftIO $ connectTreeViewStartInteractiveSearch obj cb SignalConnectBefore
afterTreeViewStartInteractiveSearch :: (GObject a, MonadIO m) => a -> TreeViewStartInteractiveSearchCallback -> m SignalHandlerId
afterTreeViewStartInteractiveSearch obj cb = connectTreeViewStartInteractiveSearch obj cb SignalConnectAfter

connectTreeViewStartInteractiveSearch :: (GObject a, MonadIO m) =>
                                         a -> TreeViewStartInteractiveSearchCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewStartInteractiveSearch obj cb after = liftIO $ do
    cb' <- mkTreeViewStartInteractiveSearchCallback (treeViewStartInteractiveSearchCallbackWrapper cb)
    connectSignalFunPtr obj "start-interactive-search" cb' after

-- signal TreeView::test-collapse-row
type TreeViewTestCollapseRowCallback =
    TreeIter ->
    TreePath ->
    IO Bool

noTreeViewTestCollapseRowCallback :: Maybe TreeViewTestCollapseRowCallback
noTreeViewTestCollapseRowCallback = Nothing

type TreeViewTestCollapseRowCallbackC =
    Ptr () ->                               -- object
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewTestCollapseRowCallback :: TreeViewTestCollapseRowCallbackC -> IO (FunPtr TreeViewTestCollapseRowCallbackC)

treeViewTestCollapseRowClosure :: TreeViewTestCollapseRowCallback -> IO Closure
treeViewTestCollapseRowClosure cb = newCClosure =<< mkTreeViewTestCollapseRowCallback wrapped
    where wrapped = treeViewTestCollapseRowCallbackWrapper cb

treeViewTestCollapseRowCallbackWrapper ::
    TreeViewTestCollapseRowCallback ->
    Ptr () ->
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->
    IO CInt
treeViewTestCollapseRowCallbackWrapper _cb _ iter path _ = do
    iter' <- (newBoxed TreeIter) iter
    path' <- (newBoxed TreePath) path
    result <- _cb  iter' path'
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewTestCollapseRow :: (GObject a, MonadIO m) => a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
onTreeViewTestCollapseRow obj cb = liftIO $ connectTreeViewTestCollapseRow obj cb SignalConnectBefore
afterTreeViewTestCollapseRow :: (GObject a, MonadIO m) => a -> TreeViewTestCollapseRowCallback -> m SignalHandlerId
afterTreeViewTestCollapseRow obj cb = connectTreeViewTestCollapseRow obj cb SignalConnectAfter

connectTreeViewTestCollapseRow :: (GObject a, MonadIO m) =>
                                  a -> TreeViewTestCollapseRowCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewTestCollapseRow obj cb after = liftIO $ do
    cb' <- mkTreeViewTestCollapseRowCallback (treeViewTestCollapseRowCallbackWrapper cb)
    connectSignalFunPtr obj "test-collapse-row" cb' after

-- signal TreeView::test-expand-row
type TreeViewTestExpandRowCallback =
    TreeIter ->
    TreePath ->
    IO Bool

noTreeViewTestExpandRowCallback :: Maybe TreeViewTestExpandRowCallback
noTreeViewTestExpandRowCallback = Nothing

type TreeViewTestExpandRowCallbackC =
    Ptr () ->                               -- object
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewTestExpandRowCallback :: TreeViewTestExpandRowCallbackC -> IO (FunPtr TreeViewTestExpandRowCallbackC)

treeViewTestExpandRowClosure :: TreeViewTestExpandRowCallback -> IO Closure
treeViewTestExpandRowClosure cb = newCClosure =<< mkTreeViewTestExpandRowCallback wrapped
    where wrapped = treeViewTestExpandRowCallbackWrapper cb

treeViewTestExpandRowCallbackWrapper ::
    TreeViewTestExpandRowCallback ->
    Ptr () ->
    Ptr TreeIter ->
    Ptr TreePath ->
    Ptr () ->
    IO CInt
treeViewTestExpandRowCallbackWrapper _cb _ iter path _ = do
    iter' <- (newBoxed TreeIter) iter
    path' <- (newBoxed TreePath) path
    result <- _cb  iter' path'
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewTestExpandRow :: (GObject a, MonadIO m) => a -> TreeViewTestExpandRowCallback -> m SignalHandlerId
onTreeViewTestExpandRow obj cb = liftIO $ connectTreeViewTestExpandRow obj cb SignalConnectBefore
afterTreeViewTestExpandRow :: (GObject a, MonadIO m) => a -> TreeViewTestExpandRowCallback -> m SignalHandlerId
afterTreeViewTestExpandRow obj cb = connectTreeViewTestExpandRow obj cb SignalConnectAfter

connectTreeViewTestExpandRow :: (GObject a, MonadIO m) =>
                                a -> TreeViewTestExpandRowCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewTestExpandRow obj cb after = liftIO $ do
    cb' <- mkTreeViewTestExpandRowCallback (treeViewTestExpandRowCallbackWrapper cb)
    connectSignalFunPtr obj "test-expand-row" cb' after

-- signal TreeView::toggle-cursor-row
type TreeViewToggleCursorRowCallback =
    IO Bool

noTreeViewToggleCursorRowCallback :: Maybe TreeViewToggleCursorRowCallback
noTreeViewToggleCursorRowCallback = Nothing

type TreeViewToggleCursorRowCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewToggleCursorRowCallback :: TreeViewToggleCursorRowCallbackC -> IO (FunPtr TreeViewToggleCursorRowCallbackC)

treeViewToggleCursorRowClosure :: TreeViewToggleCursorRowCallback -> IO Closure
treeViewToggleCursorRowClosure cb = newCClosure =<< mkTreeViewToggleCursorRowCallback wrapped
    where wrapped = treeViewToggleCursorRowCallbackWrapper cb

treeViewToggleCursorRowCallbackWrapper ::
    TreeViewToggleCursorRowCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
treeViewToggleCursorRowCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewToggleCursorRow :: (GObject a, MonadIO m) => a -> TreeViewToggleCursorRowCallback -> m SignalHandlerId
onTreeViewToggleCursorRow obj cb = liftIO $ connectTreeViewToggleCursorRow obj cb SignalConnectBefore
afterTreeViewToggleCursorRow :: (GObject a, MonadIO m) => a -> TreeViewToggleCursorRowCallback -> m SignalHandlerId
afterTreeViewToggleCursorRow obj cb = connectTreeViewToggleCursorRow obj cb SignalConnectAfter

connectTreeViewToggleCursorRow :: (GObject a, MonadIO m) =>
                                  a -> TreeViewToggleCursorRowCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewToggleCursorRow obj cb after = liftIO $ do
    cb' <- mkTreeViewToggleCursorRowCallback (treeViewToggleCursorRowCallbackWrapper cb)
    connectSignalFunPtr obj "toggle-cursor-row" cb' after

-- signal TreeView::unselect-all
type TreeViewUnselectAllCallback =
    IO Bool

noTreeViewUnselectAllCallback :: Maybe TreeViewUnselectAllCallback
noTreeViewUnselectAllCallback = Nothing

type TreeViewUnselectAllCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO CInt

foreign import ccall "wrapper"
    mkTreeViewUnselectAllCallback :: TreeViewUnselectAllCallbackC -> IO (FunPtr TreeViewUnselectAllCallbackC)

treeViewUnselectAllClosure :: TreeViewUnselectAllCallback -> IO Closure
treeViewUnselectAllClosure cb = newCClosure =<< mkTreeViewUnselectAllCallback wrapped
    where wrapped = treeViewUnselectAllCallbackWrapper cb

treeViewUnselectAllCallbackWrapper ::
    TreeViewUnselectAllCallback ->
    Ptr () ->
    Ptr () ->
    IO CInt
treeViewUnselectAllCallbackWrapper _cb _ _ = do
    result <- _cb 
    let result' = (fromIntegral . fromEnum) result
    return result'

onTreeViewUnselectAll :: (GObject a, MonadIO m) => a -> TreeViewUnselectAllCallback -> m SignalHandlerId
onTreeViewUnselectAll obj cb = liftIO $ connectTreeViewUnselectAll obj cb SignalConnectBefore
afterTreeViewUnselectAll :: (GObject a, MonadIO m) => a -> TreeViewUnselectAllCallback -> m SignalHandlerId
afterTreeViewUnselectAll obj cb = connectTreeViewUnselectAll obj cb SignalConnectAfter

connectTreeViewUnselectAll :: (GObject a, MonadIO m) =>
                              a -> TreeViewUnselectAllCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewUnselectAll obj cb after = liftIO $ do
    cb' <- mkTreeViewUnselectAllCallback (treeViewUnselectAllCallbackWrapper cb)
    connectSignalFunPtr obj "unselect-all" cb' after

-- VVV Prop "activate-on-single-click"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewActivateOnSingleClick :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewActivateOnSingleClick obj = liftIO $ getObjectPropertyBool obj "activate-on-single-click"

setTreeViewActivateOnSingleClick :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewActivateOnSingleClick obj val = liftIO $ setObjectPropertyBool obj "activate-on-single-click" val

constructTreeViewActivateOnSingleClick :: Bool -> IO ([Char], GValue)
constructTreeViewActivateOnSingleClick val = constructObjectPropertyBool "activate-on-single-click" val

data TreeViewActivateOnSingleClickPropertyInfo
instance AttrInfo TreeViewActivateOnSingleClickPropertyInfo where
    type AttrAllowedOps TreeViewActivateOnSingleClickPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewActivateOnSingleClickPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewActivateOnSingleClickPropertyInfo = TreeViewK
    type AttrGetType TreeViewActivateOnSingleClickPropertyInfo = Bool
    type AttrLabel TreeViewActivateOnSingleClickPropertyInfo = "TreeView::activate-on-single-click"
    attrGet _ = getTreeViewActivateOnSingleClick
    attrSet _ = setTreeViewActivateOnSingleClick
    attrConstruct _ = constructTreeViewActivateOnSingleClick

-- VVV Prop "enable-grid-lines"
   -- Type: TInterface "Gtk" "TreeViewGridLines"
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewEnableGridLines :: (MonadIO m, TreeViewK o) => o -> m TreeViewGridLines
getTreeViewEnableGridLines obj = liftIO $ getObjectPropertyEnum obj "enable-grid-lines"

setTreeViewEnableGridLines :: (MonadIO m, TreeViewK o) => o -> TreeViewGridLines -> m ()
setTreeViewEnableGridLines obj val = liftIO $ setObjectPropertyEnum obj "enable-grid-lines" val

constructTreeViewEnableGridLines :: TreeViewGridLines -> IO ([Char], GValue)
constructTreeViewEnableGridLines val = constructObjectPropertyEnum "enable-grid-lines" val

data TreeViewEnableGridLinesPropertyInfo
instance AttrInfo TreeViewEnableGridLinesPropertyInfo where
    type AttrAllowedOps TreeViewEnableGridLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewEnableGridLinesPropertyInfo = (~) TreeViewGridLines
    type AttrBaseTypeConstraint TreeViewEnableGridLinesPropertyInfo = TreeViewK
    type AttrGetType TreeViewEnableGridLinesPropertyInfo = TreeViewGridLines
    type AttrLabel TreeViewEnableGridLinesPropertyInfo = "TreeView::enable-grid-lines"
    attrGet _ = getTreeViewEnableGridLines
    attrSet _ = setTreeViewEnableGridLines
    attrConstruct _ = constructTreeViewEnableGridLines

-- VVV Prop "enable-search"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewEnableSearch :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewEnableSearch obj = liftIO $ getObjectPropertyBool obj "enable-search"

setTreeViewEnableSearch :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewEnableSearch obj val = liftIO $ setObjectPropertyBool obj "enable-search" val

constructTreeViewEnableSearch :: Bool -> IO ([Char], GValue)
constructTreeViewEnableSearch val = constructObjectPropertyBool "enable-search" val

data TreeViewEnableSearchPropertyInfo
instance AttrInfo TreeViewEnableSearchPropertyInfo where
    type AttrAllowedOps TreeViewEnableSearchPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewEnableSearchPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewEnableSearchPropertyInfo = TreeViewK
    type AttrGetType TreeViewEnableSearchPropertyInfo = Bool
    type AttrLabel TreeViewEnableSearchPropertyInfo = "TreeView::enable-search"
    attrGet _ = getTreeViewEnableSearch
    attrSet _ = setTreeViewEnableSearch
    attrConstruct _ = constructTreeViewEnableSearch

-- VVV Prop "enable-tree-lines"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewEnableTreeLines :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewEnableTreeLines obj = liftIO $ getObjectPropertyBool obj "enable-tree-lines"

setTreeViewEnableTreeLines :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewEnableTreeLines obj val = liftIO $ setObjectPropertyBool obj "enable-tree-lines" val

constructTreeViewEnableTreeLines :: Bool -> IO ([Char], GValue)
constructTreeViewEnableTreeLines val = constructObjectPropertyBool "enable-tree-lines" val

data TreeViewEnableTreeLinesPropertyInfo
instance AttrInfo TreeViewEnableTreeLinesPropertyInfo where
    type AttrAllowedOps TreeViewEnableTreeLinesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewEnableTreeLinesPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewEnableTreeLinesPropertyInfo = TreeViewK
    type AttrGetType TreeViewEnableTreeLinesPropertyInfo = Bool
    type AttrLabel TreeViewEnableTreeLinesPropertyInfo = "TreeView::enable-tree-lines"
    attrGet _ = getTreeViewEnableTreeLines
    attrSet _ = setTreeViewEnableTreeLines
    attrConstruct _ = constructTreeViewEnableTreeLines

-- VVV Prop "expander-column"
   -- Type: TInterface "Gtk" "TreeViewColumn"
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewExpanderColumn :: (MonadIO m, TreeViewK o) => o -> m TreeViewColumn
getTreeViewExpanderColumn obj = liftIO $ getObjectPropertyObject obj "expander-column" TreeViewColumn

setTreeViewExpanderColumn :: (MonadIO m, TreeViewK o, TreeViewColumnK a) => o -> a -> m ()
setTreeViewExpanderColumn obj val = liftIO $ setObjectPropertyObject obj "expander-column" val

constructTreeViewExpanderColumn :: (TreeViewColumnK a) => a -> IO ([Char], GValue)
constructTreeViewExpanderColumn val = constructObjectPropertyObject "expander-column" val

data TreeViewExpanderColumnPropertyInfo
instance AttrInfo TreeViewExpanderColumnPropertyInfo where
    type AttrAllowedOps TreeViewExpanderColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewExpanderColumnPropertyInfo = TreeViewColumnK
    type AttrBaseTypeConstraint TreeViewExpanderColumnPropertyInfo = TreeViewK
    type AttrGetType TreeViewExpanderColumnPropertyInfo = TreeViewColumn
    type AttrLabel TreeViewExpanderColumnPropertyInfo = "TreeView::expander-column"
    attrGet _ = getTreeViewExpanderColumn
    attrSet _ = setTreeViewExpanderColumn
    attrConstruct _ = constructTreeViewExpanderColumn

-- VVV Prop "fixed-height-mode"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewFixedHeightMode :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewFixedHeightMode obj = liftIO $ getObjectPropertyBool obj "fixed-height-mode"

setTreeViewFixedHeightMode :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewFixedHeightMode obj val = liftIO $ setObjectPropertyBool obj "fixed-height-mode" val

constructTreeViewFixedHeightMode :: Bool -> IO ([Char], GValue)
constructTreeViewFixedHeightMode val = constructObjectPropertyBool "fixed-height-mode" val

data TreeViewFixedHeightModePropertyInfo
instance AttrInfo TreeViewFixedHeightModePropertyInfo where
    type AttrAllowedOps TreeViewFixedHeightModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewFixedHeightModePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewFixedHeightModePropertyInfo = TreeViewK
    type AttrGetType TreeViewFixedHeightModePropertyInfo = Bool
    type AttrLabel TreeViewFixedHeightModePropertyInfo = "TreeView::fixed-height-mode"
    attrGet _ = getTreeViewFixedHeightMode
    attrSet _ = setTreeViewFixedHeightMode
    attrConstruct _ = constructTreeViewFixedHeightMode

-- VVV Prop "headers-clickable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewHeadersClickable :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewHeadersClickable obj = liftIO $ getObjectPropertyBool obj "headers-clickable"

setTreeViewHeadersClickable :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewHeadersClickable obj val = liftIO $ setObjectPropertyBool obj "headers-clickable" val

constructTreeViewHeadersClickable :: Bool -> IO ([Char], GValue)
constructTreeViewHeadersClickable val = constructObjectPropertyBool "headers-clickable" val

data TreeViewHeadersClickablePropertyInfo
instance AttrInfo TreeViewHeadersClickablePropertyInfo where
    type AttrAllowedOps TreeViewHeadersClickablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHeadersClickablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHeadersClickablePropertyInfo = TreeViewK
    type AttrGetType TreeViewHeadersClickablePropertyInfo = Bool
    type AttrLabel TreeViewHeadersClickablePropertyInfo = "TreeView::headers-clickable"
    attrGet _ = getTreeViewHeadersClickable
    attrSet _ = setTreeViewHeadersClickable
    attrConstruct _ = constructTreeViewHeadersClickable

-- VVV Prop "headers-visible"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewHeadersVisible :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewHeadersVisible obj = liftIO $ getObjectPropertyBool obj "headers-visible"

setTreeViewHeadersVisible :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewHeadersVisible obj val = liftIO $ setObjectPropertyBool obj "headers-visible" val

constructTreeViewHeadersVisible :: Bool -> IO ([Char], GValue)
constructTreeViewHeadersVisible val = constructObjectPropertyBool "headers-visible" val

data TreeViewHeadersVisiblePropertyInfo
instance AttrInfo TreeViewHeadersVisiblePropertyInfo where
    type AttrAllowedOps TreeViewHeadersVisiblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHeadersVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHeadersVisiblePropertyInfo = TreeViewK
    type AttrGetType TreeViewHeadersVisiblePropertyInfo = Bool
    type AttrLabel TreeViewHeadersVisiblePropertyInfo = "TreeView::headers-visible"
    attrGet _ = getTreeViewHeadersVisible
    attrSet _ = setTreeViewHeadersVisible
    attrConstruct _ = constructTreeViewHeadersVisible

-- VVV Prop "hover-expand"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewHoverExpand :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewHoverExpand obj = liftIO $ getObjectPropertyBool obj "hover-expand"

setTreeViewHoverExpand :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewHoverExpand obj val = liftIO $ setObjectPropertyBool obj "hover-expand" val

constructTreeViewHoverExpand :: Bool -> IO ([Char], GValue)
constructTreeViewHoverExpand val = constructObjectPropertyBool "hover-expand" val

data TreeViewHoverExpandPropertyInfo
instance AttrInfo TreeViewHoverExpandPropertyInfo where
    type AttrAllowedOps TreeViewHoverExpandPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHoverExpandPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHoverExpandPropertyInfo = TreeViewK
    type AttrGetType TreeViewHoverExpandPropertyInfo = Bool
    type AttrLabel TreeViewHoverExpandPropertyInfo = "TreeView::hover-expand"
    attrGet _ = getTreeViewHoverExpand
    attrSet _ = setTreeViewHoverExpand
    attrConstruct _ = constructTreeViewHoverExpand

-- VVV Prop "hover-selection"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewHoverSelection :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewHoverSelection obj = liftIO $ getObjectPropertyBool obj "hover-selection"

setTreeViewHoverSelection :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewHoverSelection obj val = liftIO $ setObjectPropertyBool obj "hover-selection" val

constructTreeViewHoverSelection :: Bool -> IO ([Char], GValue)
constructTreeViewHoverSelection val = constructObjectPropertyBool "hover-selection" val

data TreeViewHoverSelectionPropertyInfo
instance AttrInfo TreeViewHoverSelectionPropertyInfo where
    type AttrAllowedOps TreeViewHoverSelectionPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewHoverSelectionPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewHoverSelectionPropertyInfo = TreeViewK
    type AttrGetType TreeViewHoverSelectionPropertyInfo = Bool
    type AttrLabel TreeViewHoverSelectionPropertyInfo = "TreeView::hover-selection"
    attrGet _ = getTreeViewHoverSelection
    attrSet _ = setTreeViewHoverSelection
    attrConstruct _ = constructTreeViewHoverSelection

-- VVV Prop "level-indentation"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewLevelIndentation :: (MonadIO m, TreeViewK o) => o -> m Int32
getTreeViewLevelIndentation obj = liftIO $ getObjectPropertyCInt obj "level-indentation"

setTreeViewLevelIndentation :: (MonadIO m, TreeViewK o) => o -> Int32 -> m ()
setTreeViewLevelIndentation obj val = liftIO $ setObjectPropertyCInt obj "level-indentation" val

constructTreeViewLevelIndentation :: Int32 -> IO ([Char], GValue)
constructTreeViewLevelIndentation val = constructObjectPropertyCInt "level-indentation" val

data TreeViewLevelIndentationPropertyInfo
instance AttrInfo TreeViewLevelIndentationPropertyInfo where
    type AttrAllowedOps TreeViewLevelIndentationPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewLevelIndentationPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewLevelIndentationPropertyInfo = TreeViewK
    type AttrGetType TreeViewLevelIndentationPropertyInfo = Int32
    type AttrLabel TreeViewLevelIndentationPropertyInfo = "TreeView::level-indentation"
    attrGet _ = getTreeViewLevelIndentation
    attrSet _ = setTreeViewLevelIndentation
    attrConstruct _ = constructTreeViewLevelIndentation

-- VVV Prop "model"
   -- Type: TInterface "Gtk" "TreeModel"
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewModel :: (MonadIO m, TreeViewK o) => o -> m TreeModel
getTreeViewModel obj = liftIO $ getObjectPropertyObject obj "model" TreeModel

setTreeViewModel :: (MonadIO m, TreeViewK o, TreeModelK a) => o -> a -> m ()
setTreeViewModel obj val = liftIO $ setObjectPropertyObject obj "model" val

constructTreeViewModel :: (TreeModelK a) => a -> IO ([Char], GValue)
constructTreeViewModel val = constructObjectPropertyObject "model" val

data TreeViewModelPropertyInfo
instance AttrInfo TreeViewModelPropertyInfo where
    type AttrAllowedOps TreeViewModelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewModelPropertyInfo = TreeModelK
    type AttrBaseTypeConstraint TreeViewModelPropertyInfo = TreeViewK
    type AttrGetType TreeViewModelPropertyInfo = TreeModel
    type AttrLabel TreeViewModelPropertyInfo = "TreeView::model"
    attrGet _ = getTreeViewModel
    attrSet _ = setTreeViewModel
    attrConstruct _ = constructTreeViewModel

-- VVV Prop "reorderable"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewReorderable :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewReorderable obj = liftIO $ getObjectPropertyBool obj "reorderable"

setTreeViewReorderable :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewReorderable obj val = liftIO $ setObjectPropertyBool obj "reorderable" val

constructTreeViewReorderable :: Bool -> IO ([Char], GValue)
constructTreeViewReorderable val = constructObjectPropertyBool "reorderable" val

data TreeViewReorderablePropertyInfo
instance AttrInfo TreeViewReorderablePropertyInfo where
    type AttrAllowedOps TreeViewReorderablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewReorderablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewReorderablePropertyInfo = TreeViewK
    type AttrGetType TreeViewReorderablePropertyInfo = Bool
    type AttrLabel TreeViewReorderablePropertyInfo = "TreeView::reorderable"
    attrGet _ = getTreeViewReorderable
    attrSet _ = setTreeViewReorderable
    attrConstruct _ = constructTreeViewReorderable

-- VVV Prop "rubber-banding"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewRubberBanding :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewRubberBanding obj = liftIO $ getObjectPropertyBool obj "rubber-banding"

setTreeViewRubberBanding :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewRubberBanding obj val = liftIO $ setObjectPropertyBool obj "rubber-banding" val

constructTreeViewRubberBanding :: Bool -> IO ([Char], GValue)
constructTreeViewRubberBanding val = constructObjectPropertyBool "rubber-banding" val

data TreeViewRubberBandingPropertyInfo
instance AttrInfo TreeViewRubberBandingPropertyInfo where
    type AttrAllowedOps TreeViewRubberBandingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewRubberBandingPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewRubberBandingPropertyInfo = TreeViewK
    type AttrGetType TreeViewRubberBandingPropertyInfo = Bool
    type AttrLabel TreeViewRubberBandingPropertyInfo = "TreeView::rubber-banding"
    attrGet _ = getTreeViewRubberBanding
    attrSet _ = setTreeViewRubberBanding
    attrConstruct _ = constructTreeViewRubberBanding

-- VVV Prop "rules-hint"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewRulesHint :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewRulesHint obj = liftIO $ getObjectPropertyBool obj "rules-hint"

setTreeViewRulesHint :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewRulesHint obj val = liftIO $ setObjectPropertyBool obj "rules-hint" val

constructTreeViewRulesHint :: Bool -> IO ([Char], GValue)
constructTreeViewRulesHint val = constructObjectPropertyBool "rules-hint" val

data TreeViewRulesHintPropertyInfo
instance AttrInfo TreeViewRulesHintPropertyInfo where
    type AttrAllowedOps TreeViewRulesHintPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewRulesHintPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewRulesHintPropertyInfo = TreeViewK
    type AttrGetType TreeViewRulesHintPropertyInfo = Bool
    type AttrLabel TreeViewRulesHintPropertyInfo = "TreeView::rules-hint"
    attrGet _ = getTreeViewRulesHint
    attrSet _ = setTreeViewRulesHint
    attrConstruct _ = constructTreeViewRulesHint

-- VVV Prop "search-column"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewSearchColumn :: (MonadIO m, TreeViewK o) => o -> m Int32
getTreeViewSearchColumn obj = liftIO $ getObjectPropertyCInt obj "search-column"

setTreeViewSearchColumn :: (MonadIO m, TreeViewK o) => o -> Int32 -> m ()
setTreeViewSearchColumn obj val = liftIO $ setObjectPropertyCInt obj "search-column" val

constructTreeViewSearchColumn :: Int32 -> IO ([Char], GValue)
constructTreeViewSearchColumn val = constructObjectPropertyCInt "search-column" val

data TreeViewSearchColumnPropertyInfo
instance AttrInfo TreeViewSearchColumnPropertyInfo where
    type AttrAllowedOps TreeViewSearchColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewSearchColumnPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewSearchColumnPropertyInfo = TreeViewK
    type AttrGetType TreeViewSearchColumnPropertyInfo = Int32
    type AttrLabel TreeViewSearchColumnPropertyInfo = "TreeView::search-column"
    attrGet _ = getTreeViewSearchColumn
    attrSet _ = setTreeViewSearchColumn
    attrConstruct _ = constructTreeViewSearchColumn

-- VVV Prop "show-expanders"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewShowExpanders :: (MonadIO m, TreeViewK o) => o -> m Bool
getTreeViewShowExpanders obj = liftIO $ getObjectPropertyBool obj "show-expanders"

setTreeViewShowExpanders :: (MonadIO m, TreeViewK o) => o -> Bool -> m ()
setTreeViewShowExpanders obj val = liftIO $ setObjectPropertyBool obj "show-expanders" val

constructTreeViewShowExpanders :: Bool -> IO ([Char], GValue)
constructTreeViewShowExpanders val = constructObjectPropertyBool "show-expanders" val

data TreeViewShowExpandersPropertyInfo
instance AttrInfo TreeViewShowExpandersPropertyInfo where
    type AttrAllowedOps TreeViewShowExpandersPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewShowExpandersPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewShowExpandersPropertyInfo = TreeViewK
    type AttrGetType TreeViewShowExpandersPropertyInfo = Bool
    type AttrLabel TreeViewShowExpandersPropertyInfo = "TreeView::show-expanders"
    attrGet _ = getTreeViewShowExpanders
    attrSet _ = setTreeViewShowExpanders
    attrConstruct _ = constructTreeViewShowExpanders

-- VVV Prop "tooltip-column"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewTooltipColumn :: (MonadIO m, TreeViewK o) => o -> m Int32
getTreeViewTooltipColumn obj = liftIO $ getObjectPropertyCInt obj "tooltip-column"

setTreeViewTooltipColumn :: (MonadIO m, TreeViewK o) => o -> Int32 -> m ()
setTreeViewTooltipColumn obj val = liftIO $ setObjectPropertyCInt obj "tooltip-column" val

constructTreeViewTooltipColumn :: Int32 -> IO ([Char], GValue)
constructTreeViewTooltipColumn val = constructObjectPropertyCInt "tooltip-column" val

data TreeViewTooltipColumnPropertyInfo
instance AttrInfo TreeViewTooltipColumnPropertyInfo where
    type AttrAllowedOps TreeViewTooltipColumnPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewTooltipColumnPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewTooltipColumnPropertyInfo = TreeViewK
    type AttrGetType TreeViewTooltipColumnPropertyInfo = Int32
    type AttrLabel TreeViewTooltipColumnPropertyInfo = "TreeView::tooltip-column"
    attrGet _ = getTreeViewTooltipColumn
    attrSet _ = setTreeViewTooltipColumn
    attrConstruct _ = constructTreeViewTooltipColumn

type instance AttributeList TreeView = TreeViewAttributeList
type TreeViewAttributeList = ('[ '("activate-on-single-click", TreeViewActivateOnSingleClickPropertyInfo), '("app-paintable", WidgetAppPaintablePropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("enable-grid-lines", TreeViewEnableGridLinesPropertyInfo), '("enable-search", TreeViewEnableSearchPropertyInfo), '("enable-tree-lines", TreeViewEnableTreeLinesPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("expander-column", TreeViewExpanderColumnPropertyInfo), '("fixed-height-mode", TreeViewFixedHeightModePropertyInfo), '("hadjustment", ScrollableHadjustmentPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("headers-clickable", TreeViewHeadersClickablePropertyInfo), '("headers-visible", TreeViewHeadersVisiblePropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("hover-expand", TreeViewHoverExpandPropertyInfo), '("hover-selection", TreeViewHoverSelectionPropertyInfo), '("hscroll-policy", ScrollableHscrollPolicyPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("level-indentation", TreeViewLevelIndentationPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("model", TreeViewModelPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("parent", WidgetParentPropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("reorderable", TreeViewReorderablePropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("rubber-banding", TreeViewRubberBandingPropertyInfo), '("rules-hint", TreeViewRulesHintPropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("search-column", TreeViewSearchColumnPropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("show-expanders", TreeViewShowExpandersPropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-column", TreeViewTooltipColumnPropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("vadjustment", ScrollableVadjustmentPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("vscroll-policy", ScrollableVscrollPolicyPropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

data TreeViewColumnsChangedSignalInfo
instance SignalInfo TreeViewColumnsChangedSignalInfo where
    type HaskellCallbackType TreeViewColumnsChangedSignalInfo = TreeViewColumnsChangedCallback
    connectSignal _ = connectTreeViewColumnsChanged

data TreeViewCursorChangedSignalInfo
instance SignalInfo TreeViewCursorChangedSignalInfo where
    type HaskellCallbackType TreeViewCursorChangedSignalInfo = TreeViewCursorChangedCallback
    connectSignal _ = connectTreeViewCursorChanged

data TreeViewExpandCollapseCursorRowSignalInfo
instance SignalInfo TreeViewExpandCollapseCursorRowSignalInfo where
    type HaskellCallbackType TreeViewExpandCollapseCursorRowSignalInfo = TreeViewExpandCollapseCursorRowCallback
    connectSignal _ = connectTreeViewExpandCollapseCursorRow

data TreeViewMoveCursorSignalInfo
instance SignalInfo TreeViewMoveCursorSignalInfo where
    type HaskellCallbackType TreeViewMoveCursorSignalInfo = TreeViewMoveCursorCallback
    connectSignal _ = connectTreeViewMoveCursor

data TreeViewRowActivatedSignalInfo
instance SignalInfo TreeViewRowActivatedSignalInfo where
    type HaskellCallbackType TreeViewRowActivatedSignalInfo = TreeViewRowActivatedCallback
    connectSignal _ = connectTreeViewRowActivated

data TreeViewRowCollapsedSignalInfo
instance SignalInfo TreeViewRowCollapsedSignalInfo where
    type HaskellCallbackType TreeViewRowCollapsedSignalInfo = TreeViewRowCollapsedCallback
    connectSignal _ = connectTreeViewRowCollapsed

data TreeViewRowExpandedSignalInfo
instance SignalInfo TreeViewRowExpandedSignalInfo where
    type HaskellCallbackType TreeViewRowExpandedSignalInfo = TreeViewRowExpandedCallback
    connectSignal _ = connectTreeViewRowExpanded

data TreeViewSelectAllSignalInfo
instance SignalInfo TreeViewSelectAllSignalInfo where
    type HaskellCallbackType TreeViewSelectAllSignalInfo = TreeViewSelectAllCallback
    connectSignal _ = connectTreeViewSelectAll

data TreeViewSelectCursorParentSignalInfo
instance SignalInfo TreeViewSelectCursorParentSignalInfo where
    type HaskellCallbackType TreeViewSelectCursorParentSignalInfo = TreeViewSelectCursorParentCallback
    connectSignal _ = connectTreeViewSelectCursorParent

data TreeViewSelectCursorRowSignalInfo
instance SignalInfo TreeViewSelectCursorRowSignalInfo where
    type HaskellCallbackType TreeViewSelectCursorRowSignalInfo = TreeViewSelectCursorRowCallback
    connectSignal _ = connectTreeViewSelectCursorRow

data TreeViewStartInteractiveSearchSignalInfo
instance SignalInfo TreeViewStartInteractiveSearchSignalInfo where
    type HaskellCallbackType TreeViewStartInteractiveSearchSignalInfo = TreeViewStartInteractiveSearchCallback
    connectSignal _ = connectTreeViewStartInteractiveSearch

data TreeViewTestCollapseRowSignalInfo
instance SignalInfo TreeViewTestCollapseRowSignalInfo where
    type HaskellCallbackType TreeViewTestCollapseRowSignalInfo = TreeViewTestCollapseRowCallback
    connectSignal _ = connectTreeViewTestCollapseRow

data TreeViewTestExpandRowSignalInfo
instance SignalInfo TreeViewTestExpandRowSignalInfo where
    type HaskellCallbackType TreeViewTestExpandRowSignalInfo = TreeViewTestExpandRowCallback
    connectSignal _ = connectTreeViewTestExpandRow

data TreeViewToggleCursorRowSignalInfo
instance SignalInfo TreeViewToggleCursorRowSignalInfo where
    type HaskellCallbackType TreeViewToggleCursorRowSignalInfo = TreeViewToggleCursorRowCallback
    connectSignal _ = connectTreeViewToggleCursorRow

data TreeViewUnselectAllSignalInfo
instance SignalInfo TreeViewUnselectAllSignalInfo where
    type HaskellCallbackType TreeViewUnselectAllSignalInfo = TreeViewUnselectAllCallback
    connectSignal _ = connectTreeViewUnselectAll

type instance SignalList TreeView = TreeViewSignalList
type TreeViewSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("add", ContainerAddSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("columns-changed", TreeViewColumnsChangedSignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("cursor-changed", TreeViewCursorChangedSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("delete-event", WidgetDeleteEventSignalInfo), '("destroy", WidgetDestroySignalInfo), '("destroy-event", WidgetDestroyEventSignalInfo), '("direction-changed", WidgetDirectionChangedSignalInfo), '("drag-begin", WidgetDragBeginSignalInfo), '("drag-data-delete", WidgetDragDataDeleteSignalInfo), '("drag-data-get", WidgetDragDataGetSignalInfo), '("drag-data-received", WidgetDragDataReceivedSignalInfo), '("drag-drop", WidgetDragDropSignalInfo), '("drag-end", WidgetDragEndSignalInfo), '("drag-failed", WidgetDragFailedSignalInfo), '("drag-leave", WidgetDragLeaveSignalInfo), '("drag-motion", WidgetDragMotionSignalInfo), '("draw", WidgetDrawSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("event", WidgetEventSignalInfo), '("event-after", WidgetEventAfterSignalInfo), '("expand-collapse-cursor-row", TreeViewExpandCollapseCursorRowSignalInfo), '("focus", WidgetFocusSignalInfo), '("focus-in-event", WidgetFocusInEventSignalInfo), '("focus-out-event", WidgetFocusOutEventSignalInfo), '("grab-broken-event", WidgetGrabBrokenEventSignalInfo), '("grab-focus", WidgetGrabFocusSignalInfo), '("grab-notify", WidgetGrabNotifySignalInfo), '("hide", WidgetHideSignalInfo), '("hierarchy-changed", WidgetHierarchyChangedSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-cursor", TreeViewMoveCursorSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("popup-menu", WidgetPopupMenuSignalInfo), '("property-notify-event", WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", WidgetProximityInEventSignalInfo), '("proximity-out-event", WidgetProximityOutEventSignalInfo), '("query-tooltip", WidgetQueryTooltipSignalInfo), '("realize", WidgetRealizeSignalInfo), '("remove", ContainerRemoveSignalInfo), '("row-activated", TreeViewRowActivatedSignalInfo), '("row-collapsed", TreeViewRowCollapsedSignalInfo), '("row-expanded", TreeViewRowExpandedSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("select-all", TreeViewSelectAllSignalInfo), '("select-cursor-parent", TreeViewSelectCursorParentSignalInfo), '("select-cursor-row", TreeViewSelectCursorRowSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("set-focus-child", ContainerSetFocusChildSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("start-interactive-search", TreeViewStartInteractiveSearchSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("test-collapse-row", TreeViewTestCollapseRowSignalInfo), '("test-expand-row", TreeViewTestExpandRowSignalInfo), '("toggle-cursor-row", TreeViewToggleCursorRowSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("unselect-all", TreeViewUnselectAllSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method TreeView::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "Gtk" "TreeView"
-- throws : False
-- Skip return : False

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


treeViewNew ::
    (MonadIO m) =>
    m TreeView
treeViewNew  = liftIO $ do
    result <- gtk_tree_view_new
    checkUnexpectedReturnNULL "gtk_tree_view_new" result
    result' <- (newObject TreeView) result
    return result'

-- method TreeView::new_with_model
-- method type : Constructor
-- Args : [Arg {argName = "model", argType = TInterface "Gtk" "TreeModel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "model", argType = TInterface "Gtk" "TreeModel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "TreeView"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_new_with_model" gtk_tree_view_new_with_model :: 
    Ptr TreeModel ->                        -- model : TInterface "Gtk" "TreeModel"
    IO (Ptr TreeView)


treeViewNewWithModel ::
    (MonadIO m, TreeModelK a) =>
    a ->                                    -- model
    m TreeView
treeViewNewWithModel model = liftIO $ do
    let model' = unsafeManagedPtrCastPtr model
    result <- gtk_tree_view_new_with_model model'
    checkUnexpectedReturnNULL "gtk_tree_view_new_with_model" result
    result' <- (newObject TreeView) result
    touchManagedPtr model
    return result'

-- method TreeView::append_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_append_column" gtk_tree_view_append_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    IO Int32


treeViewAppendColumn ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    b ->                                    -- column
    m Int32
treeViewAppendColumn _obj column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let column' = unsafeManagedPtrCastPtr column
    result <- gtk_tree_view_append_column _obj' column'
    touchManagedPtr _obj
    touchManagedPtr column
    return result

-- method TreeView::collapse_all
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_collapse_all" gtk_tree_view_collapse_all :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO ()


treeViewCollapseAll ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m ()
treeViewCollapseAll _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_collapse_all _obj'
    touchManagedPtr _obj
    return ()

-- method TreeView::collapse_row
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_collapse_row" gtk_tree_view_collapse_row :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    IO CInt


treeViewCollapseRow ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    m Bool
treeViewCollapseRow _obj path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    result <- gtk_tree_view_collapse_row _obj' path'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr path
    return result'

-- method TreeView::columns_autosize
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_columns_autosize" gtk_tree_view_columns_autosize :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO ()


treeViewColumnsAutosize ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m ()
treeViewColumnsAutosize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_columns_autosize _obj'
    touchManagedPtr _obj
    return ()

-- method TreeView::convert_bin_window_to_tree_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "by", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "ty", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "by", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- bx : TBasicType TInt32
    Int32 ->                                -- by : TBasicType TInt32
    Ptr Int32 ->                            -- tx : TBasicType TInt32
    Ptr Int32 ->                            -- ty : TBasicType TInt32
    IO ()


treeViewConvertBinWindowToTreeCoords ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- bx
    Int32 ->                                -- by
    m (Int32,Int32)
treeViewConvertBinWindowToTreeCoords _obj bx by = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    tx <- allocMem :: IO (Ptr Int32)
    ty <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_bin_window_to_tree_coords _obj' bx by tx ty
    tx' <- peek tx
    ty' <- peek ty
    touchManagedPtr _obj
    freeMem tx
    freeMem ty
    return (tx', ty')

-- method TreeView::convert_bin_window_to_widget_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "by", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wx", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "wy", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "by", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- bx : TBasicType TInt32
    Int32 ->                                -- by : TBasicType TInt32
    Ptr Int32 ->                            -- wx : TBasicType TInt32
    Ptr Int32 ->                            -- wy : TBasicType TInt32
    IO ()


treeViewConvertBinWindowToWidgetCoords ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- bx
    Int32 ->                                -- by
    m (Int32,Int32)
treeViewConvertBinWindowToWidgetCoords _obj bx by = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    wx <- allocMem :: IO (Ptr Int32)
    wy <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_bin_window_to_widget_coords _obj' bx by wx wy
    wx' <- peek wx
    wy' <- peek wy
    touchManagedPtr _obj
    freeMem wx
    freeMem wy
    return (wx', wy')

-- method TreeView::convert_tree_to_bin_window_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ty", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bx", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "by", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ty", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- tx : TBasicType TInt32
    Int32 ->                                -- ty : TBasicType TInt32
    Ptr Int32 ->                            -- bx : TBasicType TInt32
    Ptr Int32 ->                            -- by : TBasicType TInt32
    IO ()


treeViewConvertTreeToBinWindowCoords ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- tx
    Int32 ->                                -- ty
    m (Int32,Int32)
treeViewConvertTreeToBinWindowCoords _obj tx ty = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    bx <- allocMem :: IO (Ptr Int32)
    by <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_tree_to_bin_window_coords _obj' tx ty bx by
    bx' <- peek bx
    by' <- peek by
    touchManagedPtr _obj
    freeMem bx
    freeMem by
    return (bx', by')

-- method TreeView::convert_tree_to_widget_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ty", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wx", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "wy", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ty", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- tx : TBasicType TInt32
    Int32 ->                                -- ty : TBasicType TInt32
    Ptr Int32 ->                            -- wx : TBasicType TInt32
    Ptr Int32 ->                            -- wy : TBasicType TInt32
    IO ()


treeViewConvertTreeToWidgetCoords ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- tx
    Int32 ->                                -- ty
    m (Int32,Int32)
treeViewConvertTreeToWidgetCoords _obj tx ty = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    wx <- allocMem :: IO (Ptr Int32)
    wy <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_tree_to_widget_coords _obj' tx ty wx wy
    wx' <- peek wx
    wy' <- peek wy
    touchManagedPtr _obj
    freeMem wx
    freeMem wy
    return (wx', wy')

-- method TreeView::convert_widget_to_bin_window_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bx", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "by", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- wx : TBasicType TInt32
    Int32 ->                                -- wy : TBasicType TInt32
    Ptr Int32 ->                            -- bx : TBasicType TInt32
    Ptr Int32 ->                            -- by : TBasicType TInt32
    IO ()


treeViewConvertWidgetToBinWindowCoords ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- wx
    Int32 ->                                -- wy
    m (Int32,Int32)
treeViewConvertWidgetToBinWindowCoords _obj wx wy = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    bx <- allocMem :: IO (Ptr Int32)
    by <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_widget_to_bin_window_coords _obj' wx wy bx by
    bx' <- peek bx
    by' <- peek by
    touchManagedPtr _obj
    freeMem bx
    freeMem by
    return (bx', by')

-- method TreeView::convert_widget_to_tree_coords
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tx", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "ty", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- wx : TBasicType TInt32
    Int32 ->                                -- wy : TBasicType TInt32
    Ptr Int32 ->                            -- tx : TBasicType TInt32
    Ptr Int32 ->                            -- ty : TBasicType TInt32
    IO ()


treeViewConvertWidgetToTreeCoords ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- wx
    Int32 ->                                -- wy
    m (Int32,Int32)
treeViewConvertWidgetToTreeCoords _obj wx wy = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    tx <- allocMem :: IO (Ptr Int32)
    ty <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_convert_widget_to_tree_coords _obj' wx wy tx ty
    tx' <- peek tx
    ty' <- peek ty
    touchManagedPtr _obj
    freeMem tx
    freeMem ty
    return (tx', ty')

-- method TreeView::create_row_drag_icon
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "cairo" "Surface"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_create_row_drag_icon" gtk_tree_view_create_row_drag_icon :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    IO (Ptr Cairo.Surface)


treeViewCreateRowDragIcon ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    m Cairo.Surface
treeViewCreateRowDragIcon _obj path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    result <- gtk_tree_view_create_row_drag_icon _obj' path'
    checkUnexpectedReturnNULL "gtk_tree_view_create_row_drag_icon" result
    result' <- (wrapBoxed Cairo.Surface) result
    touchManagedPtr _obj
    touchManagedPtr path
    return result'

-- method TreeView::enable_model_drag_dest
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 2 (TInterface "Gtk" "TargetEntry"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : [Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 2 (TInterface "Gtk" "TargetEntry"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_enable_model_drag_dest" gtk_tree_view_enable_model_drag_dest :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TargetEntry ->                      -- targets : TCArray False (-1) 2 (TInterface "Gtk" "TargetEntry")
    Int32 ->                                -- n_targets : TBasicType TInt32
    CUInt ->                                -- actions : TInterface "Gdk" "DragAction"
    IO ()


treeViewEnableModelDragDest ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    [TargetEntry] ->                        -- targets
    [Gdk.DragAction] ->                     -- actions
    m ()
treeViewEnableModelDragDest _obj targets actions = liftIO $ do
    let n_targets = fromIntegral $ length targets
    let _obj' = unsafeManagedPtrCastPtr _obj
    let targets' = map unsafeManagedPtrGetPtr targets
    targets'' <- packBlockArray 16 targets'
    let actions' = gflagsToWord actions
    gtk_tree_view_enable_model_drag_dest _obj' targets'' n_targets actions'
    touchManagedPtr _obj
    mapM_ touchManagedPtr targets
    freeMem targets''
    return ()

-- method TreeView::enable_model_drag_source
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_button_mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 3 (TInterface "Gtk" "TargetEntry"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : [Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_button_mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 3 (TInterface "Gtk" "TargetEntry"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_enable_model_drag_source" gtk_tree_view_enable_model_drag_source :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CUInt ->                                -- start_button_mask : TInterface "Gdk" "ModifierType"
    Ptr TargetEntry ->                      -- targets : TCArray False (-1) 3 (TInterface "Gtk" "TargetEntry")
    Int32 ->                                -- n_targets : TBasicType TInt32
    CUInt ->                                -- actions : TInterface "Gdk" "DragAction"
    IO ()


treeViewEnableModelDragSource ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    [Gdk.ModifierType] ->                   -- start_button_mask
    [TargetEntry] ->                        -- targets
    [Gdk.DragAction] ->                     -- actions
    m ()
treeViewEnableModelDragSource _obj start_button_mask targets actions = liftIO $ do
    let n_targets = fromIntegral $ length targets
    let _obj' = unsafeManagedPtrCastPtr _obj
    let start_button_mask' = gflagsToWord start_button_mask
    let targets' = map unsafeManagedPtrGetPtr targets
    targets'' <- packBlockArray 16 targets'
    let actions' = gflagsToWord actions
    gtk_tree_view_enable_model_drag_source _obj' start_button_mask' targets'' n_targets actions'
    touchManagedPtr _obj
    mapM_ touchManagedPtr targets
    freeMem targets''
    return ()

-- method TreeView::expand_all
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_expand_all" gtk_tree_view_expand_all :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO ()


treeViewExpandAll ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m ()
treeViewExpandAll _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_expand_all _obj'
    touchManagedPtr _obj
    return ()

-- method TreeView::expand_row
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "open_all", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "open_all", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_expand_row" gtk_tree_view_expand_row :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    CInt ->                                 -- open_all : TBasicType TBoolean
    IO CInt


treeViewExpandRow ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    Bool ->                                 -- open_all
    m Bool
treeViewExpandRow _obj path open_all = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    let open_all' = (fromIntegral . fromEnum) open_all
    result <- gtk_tree_view_expand_row _obj' path' open_all'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr path
    return result'

-- method TreeView::expand_to_path
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_expand_to_path" gtk_tree_view_expand_to_path :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    IO ()


treeViewExpandToPath ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    m ()
treeViewExpandToPath _obj path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    gtk_tree_view_expand_to_path _obj' path'
    touchManagedPtr _obj
    touchManagedPtr path
    return ()

-- method TreeView::get_activate_on_single_click
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetActivateOnSingleClick ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetActivateOnSingleClick _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_activate_on_single_click _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_background_area
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_background_area" gtk_tree_view_get_background_area :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    Ptr Gdk.Rectangle ->                    -- rect : TInterface "Gdk" "Rectangle"
    IO ()


treeViewGetBackgroundArea ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    Maybe (TreePath) ->                     -- path
    Maybe (b) ->                            -- column
    m (Gdk.Rectangle)
treeViewGetBackgroundArea _obj path column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybePath <- case path of
        Nothing -> return nullPtr
        Just jPath -> do
            let jPath' = unsafeManagedPtrGetPtr jPath
            return jPath'
    maybeColumn <- case column of
        Nothing -> return nullPtr
        Just jColumn -> do
            let jColumn' = unsafeManagedPtrCastPtr jColumn
            return jColumn'
    rect <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle)
    gtk_tree_view_get_background_area _obj' maybePath maybeColumn rect
    rect' <- (wrapBoxed Gdk.Rectangle) rect
    touchManagedPtr _obj
    whenJust path touchManagedPtr
    whenJust column touchManagedPtr
    return rect'

-- method TreeView::get_bin_window
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gdk" "Window"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_bin_window" gtk_tree_view_get_bin_window :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr Gdk.Window)


treeViewGetBinWindow ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Gdk.Window
treeViewGetBinWindow _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_bin_window _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_bin_window" result
    result' <- (newObject Gdk.Window) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_cell_area
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_cell_area" gtk_tree_view_get_cell_area :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    Ptr Gdk.Rectangle ->                    -- rect : TInterface "Gdk" "Rectangle"
    IO ()


treeViewGetCellArea ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    Maybe (TreePath) ->                     -- path
    Maybe (b) ->                            -- column
    m (Gdk.Rectangle)
treeViewGetCellArea _obj path column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybePath <- case path of
        Nothing -> return nullPtr
        Just jPath -> do
            let jPath' = unsafeManagedPtrGetPtr jPath
            return jPath'
    maybeColumn <- case column of
        Nothing -> return nullPtr
        Just jColumn -> do
            let jColumn' = unsafeManagedPtrCastPtr jColumn
            return jColumn'
    rect <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle)
    gtk_tree_view_get_cell_area _obj' maybePath maybeColumn rect
    rect' <- (wrapBoxed Gdk.Rectangle) rect
    touchManagedPtr _obj
    whenJust path touchManagedPtr
    whenJust column touchManagedPtr
    return rect'

-- method TreeView::get_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "TreeViewColumn"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_column" gtk_tree_view_get_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- n : TBasicType TInt32
    IO (Ptr TreeViewColumn)


treeViewGetColumn ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- n
    m TreeViewColumn
treeViewGetColumn _obj n = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_column _obj' n
    checkUnexpectedReturnNULL "gtk_tree_view_get_column" result
    result' <- (newObject TreeViewColumn) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_columns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TGList (TInterface "Gtk" "TreeViewColumn")
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_columns" gtk_tree_view_get_columns :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr (GList (Ptr TreeViewColumn)))


treeViewGetColumns ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m [TreeViewColumn]
treeViewGetColumns _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_columns _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_columns" result
    result' <- unpackGList result
    result'' <- mapM (newObject TreeViewColumn) result'
    g_list_free result
    touchManagedPtr _obj
    return result''

-- method TreeView::get_cursor
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "focus_column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionOut, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_cursor" gtk_tree_view_get_cursor :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr (Ptr TreePath) ->                   -- path : TInterface "Gtk" "TreePath"
    Ptr (Ptr TreeViewColumn) ->             -- focus_column : TInterface "Gtk" "TreeViewColumn"
    IO ()


treeViewGetCursor ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m ((Maybe TreePath),(Maybe TreeViewColumn))
treeViewGetCursor _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    path <- allocMem :: IO (Ptr (Ptr TreePath))
    focus_column <- allocMem :: IO (Ptr (Ptr TreeViewColumn))
    gtk_tree_view_get_cursor _obj' path focus_column
    path' <- peek path
    maybePath' <- convertIfNonNull path' $ \path'' -> do
        path''' <- (wrapBoxed TreePath) path''
        return path'''
    focus_column' <- peek focus_column
    maybeFocus_column' <- convertIfNonNull focus_column' $ \focus_column'' -> do
        focus_column''' <- (newObject TreeViewColumn) focus_column''
        return focus_column'''
    touchManagedPtr _obj
    freeMem path
    freeMem focus_column
    return (maybePath', maybeFocus_column')

-- method TreeView::get_dest_row_at_pos
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "pos", argType = TInterface "Gtk" "TreeViewDropPosition", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- drag_x : TBasicType TInt32
    Int32 ->                                -- drag_y : TBasicType TInt32
    Ptr (Ptr TreePath) ->                   -- path : TInterface "Gtk" "TreePath"
    Ptr CUInt ->                            -- pos : TInterface "Gtk" "TreeViewDropPosition"
    IO CInt


treeViewGetDestRowAtPos ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- drag_x
    Int32 ->                                -- drag_y
    m (Bool,(Maybe TreePath),TreeViewDropPosition)
treeViewGetDestRowAtPos _obj drag_x drag_y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    path <- allocMem :: IO (Ptr (Ptr TreePath))
    pos <- allocMem :: IO (Ptr CUInt)
    result <- gtk_tree_view_get_dest_row_at_pos _obj' drag_x drag_y path pos
    let result' = (/= 0) result
    path' <- peek path
    maybePath' <- convertIfNonNull path' $ \path'' -> do
        path''' <- (wrapBoxed TreePath) path''
        return path'''
    pos' <- peek pos
    let pos'' = (toEnum . fromIntegral) pos'
    touchManagedPtr _obj
    freeMem path
    freeMem pos
    return (result', maybePath', pos'')

-- method TreeView::get_drag_dest_row
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "pos", argType = TInterface "Gtk" "TreeViewDropPosition", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_drag_dest_row" gtk_tree_view_get_drag_dest_row :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr (Ptr TreePath) ->                   -- path : TInterface "Gtk" "TreePath"
    Ptr CUInt ->                            -- pos : TInterface "Gtk" "TreeViewDropPosition"
    IO ()


treeViewGetDragDestRow ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m ((Maybe TreePath),TreeViewDropPosition)
treeViewGetDragDestRow _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    path <- allocMem :: IO (Ptr (Ptr TreePath))
    pos <- allocMem :: IO (Ptr CUInt)
    gtk_tree_view_get_drag_dest_row _obj' path pos
    path' <- peek path
    maybePath' <- convertIfNonNull path' $ \path'' -> do
        path''' <- (wrapBoxed TreePath) path''
        return path'''
    pos' <- peek pos
    let pos'' = (toEnum . fromIntegral) pos'
    touchManagedPtr _obj
    freeMem path
    freeMem pos
    return (maybePath', pos'')

-- method TreeView::get_enable_search
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_enable_search" gtk_tree_view_get_enable_search :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetEnableSearch ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetEnableSearch _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_enable_search _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_enable_tree_lines
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetEnableTreeLines ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetEnableTreeLines _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_enable_tree_lines _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_expander_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "TreeViewColumn"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_expander_column" gtk_tree_view_get_expander_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr TreeViewColumn)


treeViewGetExpanderColumn ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m TreeViewColumn
treeViewGetExpanderColumn _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_expander_column _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_expander_column" result
    result' <- (newObject TreeViewColumn) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_fixed_height_mode
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetFixedHeightMode ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetFixedHeightMode _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_fixed_height_mode _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_grid_lines
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "TreeViewGridLines"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_grid_lines" gtk_tree_view_get_grid_lines :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CUInt


treeViewGetGridLines ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m TreeViewGridLines
treeViewGetGridLines _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_grid_lines _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_hadjustment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Adjustment"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_hadjustment" gtk_tree_view_get_hadjustment :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr Adjustment)

{-# DEPRECATED treeViewGetHadjustment ["(Since version 3.0)","Use gtk_scrollable_get_hadjustment()"]#-}
treeViewGetHadjustment ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Adjustment
treeViewGetHadjustment _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_hadjustment _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_hadjustment" result
    result' <- (newObject Adjustment) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_headers_clickable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_headers_clickable" gtk_tree_view_get_headers_clickable :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetHeadersClickable ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetHeadersClickable _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_headers_clickable _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_headers_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_headers_visible" gtk_tree_view_get_headers_visible :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetHeadersVisible ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetHeadersVisible _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_headers_visible _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_hover_expand
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_hover_expand" gtk_tree_view_get_hover_expand :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetHoverExpand ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetHoverExpand _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_hover_expand _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_hover_selection
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_hover_selection" gtk_tree_view_get_hover_selection :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetHoverSelection ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetHoverSelection _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_hover_selection _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_level_indentation
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_level_indentation" gtk_tree_view_get_level_indentation :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO Int32


treeViewGetLevelIndentation ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Int32
treeViewGetLevelIndentation _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_level_indentation _obj'
    touchManagedPtr _obj
    return result

-- method TreeView::get_model
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "TreeModel"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_model" gtk_tree_view_get_model :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr TreeModel)


treeViewGetModel ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m TreeModel
treeViewGetModel _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_model _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_model" result
    result' <- (newObject TreeModel) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_n_columns
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_n_columns" gtk_tree_view_get_n_columns :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO Word32


treeViewGetNColumns ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Word32
treeViewGetNColumns _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_n_columns _obj'
    touchManagedPtr _obj
    return result

-- method TreeView::get_path_at_pos
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionOut, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "cell_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- x : TBasicType TInt32
    Int32 ->                                -- y : TBasicType TInt32
    Ptr (Ptr TreePath) ->                   -- path : TInterface "Gtk" "TreePath"
    Ptr (Ptr TreeViewColumn) ->             -- column : TInterface "Gtk" "TreeViewColumn"
    Ptr Int32 ->                            -- cell_x : TBasicType TInt32
    Ptr Int32 ->                            -- cell_y : TBasicType TInt32
    IO CInt


treeViewGetPathAtPos ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- x
    Int32 ->                                -- y
    m (Bool,(Maybe TreePath),(Maybe TreeViewColumn),Int32,Int32)
treeViewGetPathAtPos _obj x y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    path <- allocMem :: IO (Ptr (Ptr TreePath))
    column <- allocMem :: IO (Ptr (Ptr TreeViewColumn))
    cell_x <- allocMem :: IO (Ptr Int32)
    cell_y <- allocMem :: IO (Ptr Int32)
    result <- gtk_tree_view_get_path_at_pos _obj' x y path column cell_x cell_y
    let result' = (/= 0) result
    path' <- peek path
    maybePath' <- convertIfNonNull path' $ \path'' -> do
        path''' <- (wrapBoxed TreePath) path''
        return path'''
    column' <- peek column
    maybeColumn' <- convertIfNonNull column' $ \column'' -> do
        column''' <- (newObject TreeViewColumn) column''
        return column'''
    cell_x' <- peek cell_x
    cell_y' <- peek cell_y
    touchManagedPtr _obj
    freeMem path
    freeMem column
    freeMem cell_x
    freeMem cell_y
    return (result', maybePath', maybeColumn', cell_x', cell_y')

-- method TreeView::get_reorderable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_reorderable" gtk_tree_view_get_reorderable :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetReorderable ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetReorderable _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_reorderable _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_rubber_banding
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_rubber_banding" gtk_tree_view_get_rubber_banding :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetRubberBanding ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetRubberBanding _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_rubber_banding _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_rules_hint
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_rules_hint" gtk_tree_view_get_rules_hint :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt

{-# DEPRECATED treeViewGetRulesHint ["(Since version 3.14)"]#-}
treeViewGetRulesHint ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetRulesHint _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_rules_hint _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_search_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_search_column" gtk_tree_view_get_search_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO Int32


treeViewGetSearchColumn ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Int32
treeViewGetSearchColumn _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_search_column _obj'
    touchManagedPtr _obj
    return result

-- method TreeView::get_search_entry
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Entry"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_search_entry" gtk_tree_view_get_search_entry :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr Entry)


treeViewGetSearchEntry ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Entry
treeViewGetSearchEntry _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_search_entry _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_search_entry" result
    result' <- (newObject Entry) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_selection
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "TreeSelection"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_selection" gtk_tree_view_get_selection :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr TreeSelection)


treeViewGetSelection ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m TreeSelection
treeViewGetSelection _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_selection _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_selection" result
    result' <- (newObject TreeSelection) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_show_expanders
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_show_expanders" gtk_tree_view_get_show_expanders :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewGetShowExpanders ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewGetShowExpanders _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_show_expanders _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_tooltip_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_tooltip_column" gtk_tree_view_get_tooltip_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO Int32


treeViewGetTooltipColumn ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Int32
treeViewGetTooltipColumn _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_tooltip_column _obj'
    touchManagedPtr _obj
    return result

-- method TreeView::get_tooltip_context
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "keyboard_tip", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "model", argType = TInterface "Gtk" "TreeModel", direction = DirectionOut, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "keyboard_tip", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_tooltip_context" gtk_tree_view_get_tooltip_context :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr Int32 ->                            -- x : TBasicType TInt32
    Ptr Int32 ->                            -- y : TBasicType TInt32
    CInt ->                                 -- keyboard_tip : TBasicType TBoolean
    Ptr (Ptr TreeModel) ->                  -- model : TInterface "Gtk" "TreeModel"
    Ptr (Ptr TreePath) ->                   -- path : TInterface "Gtk" "TreePath"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    IO CInt


treeViewGetTooltipContext ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- x
    Int32 ->                                -- y
    Bool ->                                 -- keyboard_tip
    m (Bool,Int32,Int32,(Maybe TreeModel),TreePath,TreeIter)
treeViewGetTooltipContext _obj x y keyboard_tip = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    x' <- allocMem :: IO (Ptr Int32)
    poke x' x
    y' <- allocMem :: IO (Ptr Int32)
    poke y' y
    let keyboard_tip' = (fromIntegral . fromEnum) keyboard_tip
    model <- allocMem :: IO (Ptr (Ptr TreeModel))
    path <- allocMem :: IO (Ptr (Ptr TreePath))
    iter <- callocBoxedBytes 32 :: IO (Ptr TreeIter)
    result <- gtk_tree_view_get_tooltip_context _obj' x' y' keyboard_tip' model path iter
    let result' = (/= 0) result
    x'' <- peek x'
    y'' <- peek y'
    model' <- peek model
    maybeModel' <- convertIfNonNull model' $ \model'' -> do
        model''' <- (newObject TreeModel) model''
        return model'''
    path' <- peek path
    path'' <- (wrapBoxed TreePath) path'
    iter' <- (wrapBoxed TreeIter) iter
    touchManagedPtr _obj
    freeMem x'
    freeMem y'
    freeMem model
    freeMem path
    return (result', x'', y'', maybeModel', path'', iter')

-- method TreeView::get_vadjustment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "Adjustment"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_vadjustment" gtk_tree_view_get_vadjustment :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO (Ptr Adjustment)

{-# DEPRECATED treeViewGetVadjustment ["(Since version 3.0)","Use gtk_scrollable_get_vadjustment()"]#-}
treeViewGetVadjustment ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Adjustment
treeViewGetVadjustment _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_get_vadjustment _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_get_vadjustment" result
    result' <- (newObject Adjustment) result
    touchManagedPtr _obj
    return result'

-- method TreeView::get_visible_range
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "end_path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_visible_range" gtk_tree_view_get_visible_range :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr (Ptr TreePath) ->                   -- start_path : TInterface "Gtk" "TreePath"
    Ptr (Ptr TreePath) ->                   -- end_path : TInterface "Gtk" "TreePath"
    IO CInt


treeViewGetVisibleRange ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m (Bool,TreePath,TreePath)
treeViewGetVisibleRange _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    start_path <- allocMem :: IO (Ptr (Ptr TreePath))
    end_path <- allocMem :: IO (Ptr (Ptr TreePath))
    result <- gtk_tree_view_get_visible_range _obj' start_path end_path
    let result' = (/= 0) result
    start_path' <- peek start_path
    start_path'' <- (wrapBoxed TreePath) start_path'
    end_path' <- peek end_path
    end_path'' <- (wrapBoxed TreePath) end_path'
    touchManagedPtr _obj
    freeMem start_path
    freeMem end_path
    return (result', start_path'', end_path'')

-- method TreeView::get_visible_rect
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visible_rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_get_visible_rect" gtk_tree_view_get_visible_rect :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr Gdk.Rectangle ->                    -- visible_rect : TInterface "Gdk" "Rectangle"
    IO ()


treeViewGetVisibleRect ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m (Gdk.Rectangle)
treeViewGetVisibleRect _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    visible_rect <- callocBoxedBytes 16 :: IO (Ptr Gdk.Rectangle)
    gtk_tree_view_get_visible_rect _obj' visible_rect
    visible_rect' <- (wrapBoxed Gdk.Rectangle) visible_rect
    touchManagedPtr _obj
    return visible_rect'

-- method TreeView::insert_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_insert_column" gtk_tree_view_insert_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    Int32 ->                                -- position : TBasicType TInt32
    IO Int32


treeViewInsertColumn ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    b ->                                    -- column
    Int32 ->                                -- position
    m Int32
treeViewInsertColumn _obj column position = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let column' = unsafeManagedPtrCastPtr column
    result <- gtk_tree_view_insert_column _obj' column' position
    touchManagedPtr _obj
    touchManagedPtr column
    return result

-- method TreeView::insert_column_with_data_func
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeCellDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 5, argDestroy = 6, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeCellDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 5, argDestroy = 6, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- position : TBasicType TInt32
    CString ->                              -- title : TBasicType TUTF8
    Ptr CellRenderer ->                     -- cell : TInterface "Gtk" "CellRenderer"
    FunPtr TreeCellDataFuncC ->             -- func : TInterface "Gtk" "TreeCellDataFunc"
    Ptr () ->                               -- data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- dnotify : TInterface "GLib" "DestroyNotify"
    IO Int32


treeViewInsertColumnWithDataFunc ::
    (MonadIO m, TreeViewK a, CellRendererK b) =>
    a ->                                    -- _obj
    Int32 ->                                -- position
    T.Text ->                               -- title
    b ->                                    -- cell
    TreeCellDataFunc ->                     -- func
    m Int32
treeViewInsertColumnWithDataFunc _obj position title cell func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    title' <- textToCString title
    let cell' = unsafeManagedPtrCastPtr cell
    func' <- mkTreeCellDataFunc (treeCellDataFuncWrapper Nothing func)
    let data_ = castFunPtrToPtr func'
    let dnotify = safeFreeFunPtrPtr
    result <- gtk_tree_view_insert_column_with_data_func _obj' position title' cell' func' data_ dnotify
    touchManagedPtr _obj
    touchManagedPtr cell
    freeMem title'
    return result

-- method TreeView::is_blank_at_pos
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "cell_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "cell_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- x : TBasicType TInt32
    Int32 ->                                -- y : TBasicType TInt32
    Ptr (Ptr TreePath) ->                   -- path : TInterface "Gtk" "TreePath"
    Ptr (Ptr TreeViewColumn) ->             -- column : TInterface "Gtk" "TreeViewColumn"
    Ptr Int32 ->                            -- cell_x : TBasicType TInt32
    Ptr Int32 ->                            -- cell_y : TBasicType TInt32
    IO CInt


treeViewIsBlankAtPos ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- x
    Int32 ->                                -- y
    m (Bool,TreePath,TreeViewColumn,Int32,Int32)
treeViewIsBlankAtPos _obj x y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    path <- allocMem :: IO (Ptr (Ptr TreePath))
    column <- allocMem :: IO (Ptr (Ptr TreeViewColumn))
    cell_x <- allocMem :: IO (Ptr Int32)
    cell_y <- allocMem :: IO (Ptr Int32)
    result <- gtk_tree_view_is_blank_at_pos _obj' x y path column cell_x cell_y
    let result' = (/= 0) result
    path' <- peek path
    path'' <- (wrapBoxed TreePath) path'
    column' <- peek column
    column'' <- (wrapObject TreeViewColumn) column'
    cell_x' <- peek cell_x
    cell_y' <- peek cell_y
    touchManagedPtr _obj
    freeMem path
    freeMem column
    freeMem cell_x
    freeMem cell_y
    return (result', path'', column'', cell_x', cell_y')

-- method TreeView::is_rubber_banding_active
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO CInt


treeViewIsRubberBandingActive ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m Bool
treeViewIsRubberBandingActive _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_is_rubber_banding_active _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method TreeView::map_expanded_rows
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewMappingFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewMappingFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_map_expanded_rows" gtk_tree_view_map_expanded_rows :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    FunPtr TreeViewMappingFuncC ->          -- func : TInterface "Gtk" "TreeViewMappingFunc"
    Ptr () ->                               -- data : TBasicType TVoid
    IO ()


treeViewMapExpandedRows ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreeViewMappingFunc ->                  -- func
    m ()
treeViewMapExpandedRows _obj func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    func' <- mkTreeViewMappingFunc (treeViewMappingFuncWrapper Nothing func)
    let data_ = nullPtr
    gtk_tree_view_map_expanded_rows _obj' func' data_
    safeFreeFunPtr $ castFunPtrToPtr func'
    touchManagedPtr _obj
    return ()

-- method TreeView::move_column_after
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_move_column_after" gtk_tree_view_move_column_after :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    Ptr TreeViewColumn ->                   -- base_column : TInterface "Gtk" "TreeViewColumn"
    IO ()


treeViewMoveColumnAfter ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b, TreeViewColumnK c) =>
    a ->                                    -- _obj
    b ->                                    -- column
    Maybe (c) ->                            -- base_column
    m ()
treeViewMoveColumnAfter _obj column base_column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let column' = unsafeManagedPtrCastPtr column
    maybeBase_column <- case base_column of
        Nothing -> return nullPtr
        Just jBase_column -> do
            let jBase_column' = unsafeManagedPtrCastPtr jBase_column
            return jBase_column'
    gtk_tree_view_move_column_after _obj' column' maybeBase_column
    touchManagedPtr _obj
    touchManagedPtr column
    whenJust base_column touchManagedPtr
    return ()

-- method TreeView::remove_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_remove_column" gtk_tree_view_remove_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    IO Int32


treeViewRemoveColumn ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    b ->                                    -- column
    m Int32
treeViewRemoveColumn _obj column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let column' = unsafeManagedPtrCastPtr column
    result <- gtk_tree_view_remove_column _obj' column'
    touchManagedPtr _obj
    touchManagedPtr column
    return result

-- method TreeView::row_activated
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_row_activated" gtk_tree_view_row_activated :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    IO ()


treeViewRowActivated ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    b ->                                    -- column
    m ()
treeViewRowActivated _obj path column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    let column' = unsafeManagedPtrCastPtr column
    gtk_tree_view_row_activated _obj' path' column'
    touchManagedPtr _obj
    touchManagedPtr path
    touchManagedPtr column
    return ()

-- method TreeView::row_expanded
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_row_expanded" gtk_tree_view_row_expanded :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    IO CInt


treeViewRowExpanded ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    m Bool
treeViewRowExpanded _obj path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    result <- gtk_tree_view_row_expanded _obj' path'
    let result' = (/= 0) result
    touchManagedPtr _obj
    touchManagedPtr path
    return result'

-- method TreeView::scroll_to_cell
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_align", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "row_align", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "col_align", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_align", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "row_align", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "col_align", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_scroll_to_cell" gtk_tree_view_scroll_to_cell :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    CInt ->                                 -- use_align : TBasicType TBoolean
    CFloat ->                               -- row_align : TBasicType TFloat
    CFloat ->                               -- col_align : TBasicType TFloat
    IO ()


treeViewScrollToCell ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    Maybe (TreePath) ->                     -- path
    Maybe (b) ->                            -- column
    Bool ->                                 -- use_align
    Float ->                                -- row_align
    Float ->                                -- col_align
    m ()
treeViewScrollToCell _obj path column use_align row_align col_align = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybePath <- case path of
        Nothing -> return nullPtr
        Just jPath -> do
            let jPath' = unsafeManagedPtrGetPtr jPath
            return jPath'
    maybeColumn <- case column of
        Nothing -> return nullPtr
        Just jColumn -> do
            let jColumn' = unsafeManagedPtrCastPtr jColumn
            return jColumn'
    let use_align' = (fromIntegral . fromEnum) use_align
    let row_align' = realToFrac row_align
    let col_align' = realToFrac col_align
    gtk_tree_view_scroll_to_cell _obj' maybePath maybeColumn use_align' row_align' col_align'
    touchManagedPtr _obj
    whenJust path touchManagedPtr
    whenJust column touchManagedPtr
    return ()

-- method TreeView::scroll_to_point
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tree_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tree_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tree_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tree_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_scroll_to_point" gtk_tree_view_scroll_to_point :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- tree_x : TBasicType TInt32
    Int32 ->                                -- tree_y : TBasicType TInt32
    IO ()


treeViewScrollToPoint ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- tree_x
    Int32 ->                                -- tree_y
    m ()
treeViewScrollToPoint _obj tree_x tree_y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_scroll_to_point _obj' tree_x tree_y
    touchManagedPtr _obj
    return ()

-- method TreeView::set_activate_on_single_click
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "single", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "single", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- 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 ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- single : TBasicType TBoolean
    IO ()


treeViewSetActivateOnSingleClick ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- single
    m ()
treeViewSetActivateOnSingleClick _obj single = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let single' = (fromIntegral . fromEnum) single
    gtk_tree_view_set_activate_on_single_click _obj' single'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_column_drag_function
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewColumnDropFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewColumnDropFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_column_drag_function" gtk_tree_view_set_column_drag_function :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    FunPtr TreeViewColumnDropFuncC ->       -- func : TInterface "Gtk" "TreeViewColumnDropFunc"
    Ptr () ->                               -- user_data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
    IO ()


treeViewSetColumnDragFunction ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Maybe (TreeViewColumnDropFunc) ->       -- func
    m ()
treeViewSetColumnDragFunction _obj func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeFunc <- case func of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jFunc -> do
            jFunc' <- mkTreeViewColumnDropFunc (treeViewColumnDropFuncWrapper Nothing jFunc)
            return jFunc'
    let user_data = castFunPtrToPtr maybeFunc
    let destroy = safeFreeFunPtrPtr
    gtk_tree_view_set_column_drag_function _obj' maybeFunc user_data destroy
    touchManagedPtr _obj
    return ()

-- method TreeView::set_cursor
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_editing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_editing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_cursor" gtk_tree_view_set_cursor :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr TreeViewColumn ->                   -- focus_column : TInterface "Gtk" "TreeViewColumn"
    CInt ->                                 -- start_editing : TBasicType TBoolean
    IO ()


treeViewSetCursor ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    Maybe (b) ->                            -- focus_column
    Bool ->                                 -- start_editing
    m ()
treeViewSetCursor _obj path focus_column start_editing = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    maybeFocus_column <- case focus_column of
        Nothing -> return nullPtr
        Just jFocus_column -> do
            let jFocus_column' = unsafeManagedPtrCastPtr jFocus_column
            return jFocus_column'
    let start_editing' = (fromIntegral . fromEnum) start_editing
    gtk_tree_view_set_cursor _obj' path' maybeFocus_column start_editing'
    touchManagedPtr _obj
    touchManagedPtr path
    whenJust focus_column touchManagedPtr
    return ()

-- method TreeView::set_cursor_on_cell
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_cell", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_editing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_cell", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_editing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_cursor_on_cell" gtk_tree_view_set_cursor_on_cell :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr TreeViewColumn ->                   -- focus_column : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- focus_cell : TInterface "Gtk" "CellRenderer"
    CInt ->                                 -- start_editing : TBasicType TBoolean
    IO ()


treeViewSetCursorOnCell ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b, CellRendererK c) =>
    a ->                                    -- _obj
    TreePath ->                             -- path
    Maybe (b) ->                            -- focus_column
    Maybe (c) ->                            -- focus_cell
    Bool ->                                 -- start_editing
    m ()
treeViewSetCursorOnCell _obj path focus_column focus_cell start_editing = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let path' = unsafeManagedPtrGetPtr path
    maybeFocus_column <- case focus_column of
        Nothing -> return nullPtr
        Just jFocus_column -> do
            let jFocus_column' = unsafeManagedPtrCastPtr jFocus_column
            return jFocus_column'
    maybeFocus_cell <- case focus_cell of
        Nothing -> return nullPtr
        Just jFocus_cell -> do
            let jFocus_cell' = unsafeManagedPtrCastPtr jFocus_cell
            return jFocus_cell'
    let start_editing' = (fromIntegral . fromEnum) start_editing
    gtk_tree_view_set_cursor_on_cell _obj' path' maybeFocus_column maybeFocus_cell start_editing'
    touchManagedPtr _obj
    touchManagedPtr path
    whenJust focus_column touchManagedPtr
    whenJust focus_cell touchManagedPtr
    return ()

-- method TreeView::set_destroy_count_func
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeDestroyCountFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeDestroyCountFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_destroy_count_func" gtk_tree_view_set_destroy_count_func :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    FunPtr TreeDestroyCountFuncC ->         -- func : TInterface "Gtk" "TreeDestroyCountFunc"
    Ptr () ->                               -- data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
    IO ()

{-# DEPRECATED treeViewSetDestroyCountFunc ["(Since version 3.4)","Accessibility does not need the function anymore."]#-}
treeViewSetDestroyCountFunc ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Maybe (TreeDestroyCountFunc) ->         -- func
    m ()
treeViewSetDestroyCountFunc _obj func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeFunc <- case func of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jFunc -> do
            jFunc' <- mkTreeDestroyCountFunc (treeDestroyCountFuncWrapper Nothing jFunc)
            return jFunc'
    let data_ = castFunPtrToPtr maybeFunc
    let destroy = safeFreeFunPtrPtr
    gtk_tree_view_set_destroy_count_func _obj' maybeFunc data_ destroy
    touchManagedPtr _obj
    return ()

-- method TreeView::set_drag_dest_row
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TInterface "Gtk" "TreeViewDropPosition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TInterface "Gtk" "TreeViewDropPosition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_drag_dest_row" gtk_tree_view_set_drag_dest_row :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    CUInt ->                                -- pos : TInterface "Gtk" "TreeViewDropPosition"
    IO ()


treeViewSetDragDestRow ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Maybe (TreePath) ->                     -- path
    TreeViewDropPosition ->                 -- pos
    m ()
treeViewSetDragDestRow _obj path pos = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybePath <- case path of
        Nothing -> return nullPtr
        Just jPath -> do
            let jPath' = unsafeManagedPtrGetPtr jPath
            return jPath'
    let pos' = (fromIntegral . fromEnum) pos
    gtk_tree_view_set_drag_dest_row _obj' maybePath pos'
    touchManagedPtr _obj
    whenJust path touchManagedPtr
    return ()

-- method TreeView::set_enable_search
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enable_search", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enable_search", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_enable_search" gtk_tree_view_set_enable_search :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- enable_search : TBasicType TBoolean
    IO ()


treeViewSetEnableSearch ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- enable_search
    m ()
treeViewSetEnableSearch _obj enable_search = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let enable_search' = (fromIntegral . fromEnum) enable_search
    gtk_tree_view_set_enable_search _obj' enable_search'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_enable_tree_lines
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_enable_tree_lines" gtk_tree_view_set_enable_tree_lines :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- enabled : TBasicType TBoolean
    IO ()


treeViewSetEnableTreeLines ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- enabled
    m ()
treeViewSetEnableTreeLines _obj enabled = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let enabled' = (fromIntegral . fromEnum) enabled
    gtk_tree_view_set_enable_tree_lines _obj' enabled'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_expander_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_expander_column" gtk_tree_view_set_expander_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    IO ()


treeViewSetExpanderColumn ::
    (MonadIO m, TreeViewK a, TreeViewColumnK b) =>
    a ->                                    -- _obj
    b ->                                    -- column
    m ()
treeViewSetExpanderColumn _obj column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let column' = unsafeManagedPtrCastPtr column
    gtk_tree_view_set_expander_column _obj' column'
    touchManagedPtr _obj
    touchManagedPtr column
    return ()

-- method TreeView::set_fixed_height_mode
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_fixed_height_mode" gtk_tree_view_set_fixed_height_mode :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- enable : TBasicType TBoolean
    IO ()


treeViewSetFixedHeightMode ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- enable
    m ()
treeViewSetFixedHeightMode _obj enable = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let enable' = (fromIntegral . fromEnum) enable
    gtk_tree_view_set_fixed_height_mode _obj' enable'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_grid_lines
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grid_lines", argType = TInterface "Gtk" "TreeViewGridLines", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grid_lines", argType = TInterface "Gtk" "TreeViewGridLines", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_grid_lines" gtk_tree_view_set_grid_lines :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CUInt ->                                -- grid_lines : TInterface "Gtk" "TreeViewGridLines"
    IO ()


treeViewSetGridLines ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreeViewGridLines ->                    -- grid_lines
    m ()
treeViewSetGridLines _obj grid_lines = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let grid_lines' = (fromIntegral . fromEnum) grid_lines
    gtk_tree_view_set_grid_lines _obj' grid_lines'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_hadjustment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "adjustment", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "adjustment", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_hadjustment" gtk_tree_view_set_hadjustment :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr Adjustment ->                       -- adjustment : TInterface "Gtk" "Adjustment"
    IO ()

{-# DEPRECATED treeViewSetHadjustment ["(Since version 3.0)","Use gtk_scrollable_set_hadjustment()"]#-}
treeViewSetHadjustment ::
    (MonadIO m, TreeViewK a, AdjustmentK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- adjustment
    m ()
treeViewSetHadjustment _obj adjustment = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeAdjustment <- case adjustment of
        Nothing -> return nullPtr
        Just jAdjustment -> do
            let jAdjustment' = unsafeManagedPtrCastPtr jAdjustment
            return jAdjustment'
    gtk_tree_view_set_hadjustment _obj' maybeAdjustment
    touchManagedPtr _obj
    whenJust adjustment touchManagedPtr
    return ()

-- method TreeView::set_headers_clickable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_headers_clickable" gtk_tree_view_set_headers_clickable :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()


treeViewSetHeadersClickable ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- setting
    m ()
treeViewSetHeadersClickable _obj setting = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let setting' = (fromIntegral . fromEnum) setting
    gtk_tree_view_set_headers_clickable _obj' setting'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_headers_visible
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "headers_visible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "headers_visible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_headers_visible" gtk_tree_view_set_headers_visible :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- headers_visible : TBasicType TBoolean
    IO ()


treeViewSetHeadersVisible ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- headers_visible
    m ()
treeViewSetHeadersVisible _obj headers_visible = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let headers_visible' = (fromIntegral . fromEnum) headers_visible
    gtk_tree_view_set_headers_visible _obj' headers_visible'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_hover_expand
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expand", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expand", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_hover_expand" gtk_tree_view_set_hover_expand :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- expand : TBasicType TBoolean
    IO ()


treeViewSetHoverExpand ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- expand
    m ()
treeViewSetHoverExpand _obj expand = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let expand' = (fromIntegral . fromEnum) expand
    gtk_tree_view_set_hover_expand _obj' expand'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_hover_selection
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hover", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hover", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_hover_selection" gtk_tree_view_set_hover_selection :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- hover : TBasicType TBoolean
    IO ()


treeViewSetHoverSelection ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- hover
    m ()
treeViewSetHoverSelection _obj hover = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let hover' = (fromIntegral . fromEnum) hover
    gtk_tree_view_set_hover_selection _obj' hover'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_level_indentation
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "indentation", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "indentation", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_level_indentation" gtk_tree_view_set_level_indentation :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- indentation : TBasicType TInt32
    IO ()


treeViewSetLevelIndentation ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- indentation
    m ()
treeViewSetLevelIndentation _obj indentation = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_set_level_indentation _obj' indentation
    touchManagedPtr _obj
    return ()

-- method TreeView::set_model
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "model", argType = TInterface "Gtk" "TreeModel", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "model", argType = TInterface "Gtk" "TreeModel", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_model" gtk_tree_view_set_model :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr TreeModel ->                        -- model : TInterface "Gtk" "TreeModel"
    IO ()


treeViewSetModel ::
    (MonadIO m, TreeViewK a, TreeModelK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- model
    m ()
treeViewSetModel _obj model = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeModel <- case model of
        Nothing -> return nullPtr
        Just jModel -> do
            let jModel' = unsafeManagedPtrCastPtr jModel
            return jModel'
    gtk_tree_view_set_model _obj' maybeModel
    touchManagedPtr _obj
    whenJust model touchManagedPtr
    return ()

-- method TreeView::set_reorderable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "reorderable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "reorderable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_reorderable" gtk_tree_view_set_reorderable :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- reorderable : TBasicType TBoolean
    IO ()


treeViewSetReorderable ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- reorderable
    m ()
treeViewSetReorderable _obj reorderable = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let reorderable' = (fromIntegral . fromEnum) reorderable
    gtk_tree_view_set_reorderable _obj' reorderable'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_row_separator_func
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewRowSeparatorFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewRowSeparatorFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_row_separator_func" gtk_tree_view_set_row_separator_func :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    FunPtr TreeViewRowSeparatorFuncC ->     -- func : TInterface "Gtk" "TreeViewRowSeparatorFunc"
    Ptr () ->                               -- data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
    IO ()


treeViewSetRowSeparatorFunc ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Maybe (TreeViewRowSeparatorFunc) ->     -- func
    m ()
treeViewSetRowSeparatorFunc _obj func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeFunc <- case func of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jFunc -> do
            jFunc' <- mkTreeViewRowSeparatorFunc (treeViewRowSeparatorFuncWrapper Nothing jFunc)
            return jFunc'
    let data_ = castFunPtrToPtr maybeFunc
    let destroy = safeFreeFunPtrPtr
    gtk_tree_view_set_row_separator_func _obj' maybeFunc data_ destroy
    touchManagedPtr _obj
    return ()

-- method TreeView::set_rubber_banding
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_rubber_banding" gtk_tree_view_set_rubber_banding :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- enable : TBasicType TBoolean
    IO ()


treeViewSetRubberBanding ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- enable
    m ()
treeViewSetRubberBanding _obj enable = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let enable' = (fromIntegral . fromEnum) enable
    gtk_tree_view_set_rubber_banding _obj' enable'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_rules_hint
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_rules_hint" gtk_tree_view_set_rules_hint :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()

{-# DEPRECATED treeViewSetRulesHint ["(Since version 3.14)"]#-}
treeViewSetRulesHint ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- setting
    m ()
treeViewSetRulesHint _obj setting = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let setting' = (fromIntegral . fromEnum) setting
    gtk_tree_view_set_rules_hint _obj' setting'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_search_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_search_column" gtk_tree_view_set_search_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- column : TBasicType TInt32
    IO ()


treeViewSetSearchColumn ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- column
    m ()
treeViewSetSearchColumn _obj column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_set_search_column _obj' column
    touchManagedPtr _obj
    return ()

-- method TreeView::set_search_entry
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "entry", argType = TInterface "Gtk" "Entry", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "entry", argType = TInterface "Gtk" "Entry", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_search_entry" gtk_tree_view_set_search_entry :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr Entry ->                            -- entry : TInterface "Gtk" "Entry"
    IO ()


treeViewSetSearchEntry ::
    (MonadIO m, TreeViewK a, EntryK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- entry
    m ()
treeViewSetSearchEntry _obj entry = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeEntry <- case entry of
        Nothing -> return nullPtr
        Just jEntry -> do
            let jEntry' = unsafeManagedPtrCastPtr jEntry
            return jEntry'
    gtk_tree_view_set_search_entry _obj' maybeEntry
    touchManagedPtr _obj
    whenJust entry touchManagedPtr
    return ()

-- method TreeView::set_search_equal_func
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "search_equal_func", argType = TInterface "Gtk" "TreeViewSearchEqualFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "search_user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "search_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "search_equal_func", argType = TInterface "Gtk" "TreeViewSearchEqualFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_search_equal_func" gtk_tree_view_set_search_equal_func :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    FunPtr TreeViewSearchEqualFuncC ->      -- search_equal_func : TInterface "Gtk" "TreeViewSearchEqualFunc"
    Ptr () ->                               -- search_user_data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- search_destroy : TInterface "GLib" "DestroyNotify"
    IO ()


treeViewSetSearchEqualFunc ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    TreeViewSearchEqualFunc ->              -- search_equal_func
    m ()
treeViewSetSearchEqualFunc _obj search_equal_func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    search_equal_func' <- mkTreeViewSearchEqualFunc (treeViewSearchEqualFuncWrapper Nothing search_equal_func)
    let search_user_data = castFunPtrToPtr search_equal_func'
    let search_destroy = safeFreeFunPtrPtr
    gtk_tree_view_set_search_equal_func _obj' search_equal_func' search_user_data search_destroy
    touchManagedPtr _obj
    return ()

-- method TreeView::set_search_position_func
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewSearchPositionFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "Gtk" "TreeViewSearchPositionFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_search_position_func" gtk_tree_view_set_search_position_func :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    FunPtr TreeViewSearchPositionFuncC ->   -- func : TInterface "Gtk" "TreeViewSearchPositionFunc"
    Ptr () ->                               -- data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
    IO ()


treeViewSetSearchPositionFunc ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Maybe (TreeViewSearchPositionFunc) ->   -- func
    m ()
treeViewSetSearchPositionFunc _obj func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeFunc <- case func of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jFunc -> do
            jFunc' <- mkTreeViewSearchPositionFunc (treeViewSearchPositionFuncWrapper Nothing jFunc)
            return jFunc'
    let data_ = castFunPtrToPtr maybeFunc
    let destroy = safeFreeFunPtrPtr
    gtk_tree_view_set_search_position_func _obj' maybeFunc data_ destroy
    touchManagedPtr _obj
    return ()

-- method TreeView::set_show_expanders
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_show_expanders" gtk_tree_view_set_show_expanders :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    CInt ->                                 -- enabled : TBasicType TBoolean
    IO ()


treeViewSetShowExpanders ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- enabled
    m ()
treeViewSetShowExpanders _obj enabled = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let enabled' = (fromIntegral . fromEnum) enabled
    gtk_tree_view_set_show_expanders _obj' enabled'
    touchManagedPtr _obj
    return ()

-- method TreeView::set_tooltip_cell
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tooltip", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tooltip", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_tooltip_cell" gtk_tree_view_set_tooltip_cell :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr Tooltip ->                          -- tooltip : TInterface "Gtk" "Tooltip"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    Ptr TreeViewColumn ->                   -- column : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell : TInterface "Gtk" "CellRenderer"
    IO ()


treeViewSetTooltipCell ::
    (MonadIO m, TreeViewK a, TooltipK b, TreeViewColumnK c, CellRendererK d) =>
    a ->                                    -- _obj
    b ->                                    -- tooltip
    Maybe (TreePath) ->                     -- path
    Maybe (c) ->                            -- column
    Maybe (d) ->                            -- cell
    m ()
treeViewSetTooltipCell _obj tooltip path column cell = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let tooltip' = unsafeManagedPtrCastPtr tooltip
    maybePath <- case path of
        Nothing -> return nullPtr
        Just jPath -> do
            let jPath' = unsafeManagedPtrGetPtr jPath
            return jPath'
    maybeColumn <- case column of
        Nothing -> return nullPtr
        Just jColumn -> do
            let jColumn' = unsafeManagedPtrCastPtr jColumn
            return jColumn'
    maybeCell <- case cell of
        Nothing -> return nullPtr
        Just jCell -> do
            let jCell' = unsafeManagedPtrCastPtr jCell
            return jCell'
    gtk_tree_view_set_tooltip_cell _obj' tooltip' maybePath maybeColumn maybeCell
    touchManagedPtr _obj
    touchManagedPtr tooltip
    whenJust path touchManagedPtr
    whenJust column touchManagedPtr
    whenJust cell touchManagedPtr
    return ()

-- method TreeView::set_tooltip_column
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "column", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_tooltip_column" gtk_tree_view_set_tooltip_column :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Int32 ->                                -- column : TBasicType TInt32
    IO ()


treeViewSetTooltipColumn ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- column
    m ()
treeViewSetTooltipColumn _obj column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_set_tooltip_column _obj' column
    touchManagedPtr _obj
    return ()

-- method TreeView::set_tooltip_row
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tooltip", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tooltip", argType = TInterface "Gtk" "Tooltip", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "path", argType = TInterface "Gtk" "TreePath", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_tooltip_row" gtk_tree_view_set_tooltip_row :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr Tooltip ->                          -- tooltip : TInterface "Gtk" "Tooltip"
    Ptr TreePath ->                         -- path : TInterface "Gtk" "TreePath"
    IO ()


treeViewSetTooltipRow ::
    (MonadIO m, TreeViewK a, TooltipK b) =>
    a ->                                    -- _obj
    b ->                                    -- tooltip
    TreePath ->                             -- path
    m ()
treeViewSetTooltipRow _obj tooltip path = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let tooltip' = unsafeManagedPtrCastPtr tooltip
    let path' = unsafeManagedPtrGetPtr path
    gtk_tree_view_set_tooltip_row _obj' tooltip' path'
    touchManagedPtr _obj
    touchManagedPtr tooltip
    touchManagedPtr path
    return ()

-- method TreeView::set_vadjustment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "adjustment", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "adjustment", argType = TInterface "Gtk" "Adjustment", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_set_vadjustment" gtk_tree_view_set_vadjustment :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    Ptr Adjustment ->                       -- adjustment : TInterface "Gtk" "Adjustment"
    IO ()

{-# DEPRECATED treeViewSetVadjustment ["(Since version 3.0)","Use gtk_scrollable_set_vadjustment()"]#-}
treeViewSetVadjustment ::
    (MonadIO m, TreeViewK a, AdjustmentK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- adjustment
    m ()
treeViewSetVadjustment _obj adjustment = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeAdjustment <- case adjustment of
        Nothing -> return nullPtr
        Just jAdjustment -> do
            let jAdjustment' = unsafeManagedPtrCastPtr jAdjustment
            return jAdjustment'
    gtk_tree_view_set_vadjustment _obj' maybeAdjustment
    touchManagedPtr _obj
    whenJust adjustment touchManagedPtr
    return ()

-- method TreeView::unset_rows_drag_dest
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_unset_rows_drag_dest" gtk_tree_view_unset_rows_drag_dest :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO ()


treeViewUnsetRowsDragDest ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m ()
treeViewUnsetRowsDragDest _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_unset_rows_drag_dest _obj'
    touchManagedPtr _obj
    return ()

-- method TreeView::unset_rows_drag_source
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeView", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_unset_rows_drag_source" gtk_tree_view_unset_rows_drag_source :: 
    Ptr TreeView ->                         -- _obj : TInterface "Gtk" "TreeView"
    IO ()


treeViewUnsetRowsDragSource ::
    (MonadIO m, TreeViewK a) =>
    a ->                                    -- _obj
    m ()
treeViewUnsetRowsDragSource _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_unset_rows_drag_source _obj'
    touchManagedPtr _obj
    return ()