{- |
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.TreeViewColumn
    ( 

-- * Exported types
    TreeViewColumn(..)                      ,
    TreeViewColumnK                         ,
    toTreeViewColumn                        ,
    noTreeViewColumn                        ,


 -- * Methods
-- ** treeViewColumnAddAttribute
    treeViewColumnAddAttribute              ,


-- ** treeViewColumnCellGetPosition
    treeViewColumnCellGetPosition           ,


-- ** treeViewColumnCellGetSize
    treeViewColumnCellGetSize               ,


-- ** treeViewColumnCellIsVisible
    treeViewColumnCellIsVisible             ,


-- ** treeViewColumnCellSetCellData
    treeViewColumnCellSetCellData           ,


-- ** treeViewColumnClear
    treeViewColumnClear                     ,


-- ** treeViewColumnClearAttributes
    treeViewColumnClearAttributes           ,


-- ** treeViewColumnClicked
    treeViewColumnClicked                   ,


-- ** treeViewColumnFocusCell
    treeViewColumnFocusCell                 ,


-- ** treeViewColumnGetAlignment
    treeViewColumnGetAlignment              ,


-- ** treeViewColumnGetButton
    treeViewColumnGetButton                 ,


-- ** treeViewColumnGetClickable
    treeViewColumnGetClickable              ,


-- ** treeViewColumnGetExpand
    treeViewColumnGetExpand                 ,


-- ** treeViewColumnGetFixedWidth
    treeViewColumnGetFixedWidth             ,


-- ** treeViewColumnGetMaxWidth
    treeViewColumnGetMaxWidth               ,


-- ** treeViewColumnGetMinWidth
    treeViewColumnGetMinWidth               ,


-- ** treeViewColumnGetReorderable
    treeViewColumnGetReorderable            ,


-- ** treeViewColumnGetResizable
    treeViewColumnGetResizable              ,


-- ** treeViewColumnGetSizing
    treeViewColumnGetSizing                 ,


-- ** treeViewColumnGetSortColumnId
    treeViewColumnGetSortColumnId           ,


-- ** treeViewColumnGetSortIndicator
    treeViewColumnGetSortIndicator          ,


-- ** treeViewColumnGetSortOrder
    treeViewColumnGetSortOrder              ,


-- ** treeViewColumnGetSpacing
    treeViewColumnGetSpacing                ,


-- ** treeViewColumnGetTitle
    treeViewColumnGetTitle                  ,


-- ** treeViewColumnGetTreeView
    treeViewColumnGetTreeView               ,


-- ** treeViewColumnGetVisible
    treeViewColumnGetVisible                ,


-- ** treeViewColumnGetWidget
    treeViewColumnGetWidget                 ,


-- ** treeViewColumnGetWidth
    treeViewColumnGetWidth                  ,


-- ** treeViewColumnGetXOffset
    treeViewColumnGetXOffset                ,


-- ** treeViewColumnNew
    treeViewColumnNew                       ,


-- ** treeViewColumnNewWithArea
    treeViewColumnNewWithArea               ,


-- ** treeViewColumnPackEnd
    treeViewColumnPackEnd                   ,


-- ** treeViewColumnPackStart
    treeViewColumnPackStart                 ,


-- ** treeViewColumnQueueResize
    treeViewColumnQueueResize               ,


-- ** treeViewColumnSetAlignment
    treeViewColumnSetAlignment              ,


-- ** treeViewColumnSetCellDataFunc
    treeViewColumnSetCellDataFunc           ,


-- ** treeViewColumnSetClickable
    treeViewColumnSetClickable              ,


-- ** treeViewColumnSetExpand
    treeViewColumnSetExpand                 ,


-- ** treeViewColumnSetFixedWidth
    treeViewColumnSetFixedWidth             ,


-- ** treeViewColumnSetMaxWidth
    treeViewColumnSetMaxWidth               ,


-- ** treeViewColumnSetMinWidth
    treeViewColumnSetMinWidth               ,


-- ** treeViewColumnSetReorderable
    treeViewColumnSetReorderable            ,


-- ** treeViewColumnSetResizable
    treeViewColumnSetResizable              ,


-- ** treeViewColumnSetSizing
    treeViewColumnSetSizing                 ,


-- ** treeViewColumnSetSortColumnId
    treeViewColumnSetSortColumnId           ,


-- ** treeViewColumnSetSortIndicator
    treeViewColumnSetSortIndicator          ,


-- ** treeViewColumnSetSortOrder
    treeViewColumnSetSortOrder              ,


-- ** treeViewColumnSetSpacing
    treeViewColumnSetSpacing                ,


-- ** treeViewColumnSetTitle
    treeViewColumnSetTitle                  ,


-- ** treeViewColumnSetVisible
    treeViewColumnSetVisible                ,


-- ** treeViewColumnSetWidget
    treeViewColumnSetWidget                 ,




 -- * Properties
-- ** Alignment
    TreeViewColumnAlignmentPropertyInfo     ,
    constructTreeViewColumnAlignment        ,
    getTreeViewColumnAlignment              ,
    setTreeViewColumnAlignment              ,


-- ** CellArea
    TreeViewColumnCellAreaPropertyInfo      ,
    constructTreeViewColumnCellArea         ,
    getTreeViewColumnCellArea               ,


-- ** Clickable
    TreeViewColumnClickablePropertyInfo     ,
    constructTreeViewColumnClickable        ,
    getTreeViewColumnClickable              ,
    setTreeViewColumnClickable              ,


-- ** Expand
    TreeViewColumnExpandPropertyInfo        ,
    constructTreeViewColumnExpand           ,
    getTreeViewColumnExpand                 ,
    setTreeViewColumnExpand                 ,


-- ** FixedWidth
    TreeViewColumnFixedWidthPropertyInfo    ,
    constructTreeViewColumnFixedWidth       ,
    getTreeViewColumnFixedWidth             ,
    setTreeViewColumnFixedWidth             ,


-- ** MaxWidth
    TreeViewColumnMaxWidthPropertyInfo      ,
    constructTreeViewColumnMaxWidth         ,
    getTreeViewColumnMaxWidth               ,
    setTreeViewColumnMaxWidth               ,


-- ** MinWidth
    TreeViewColumnMinWidthPropertyInfo      ,
    constructTreeViewColumnMinWidth         ,
    getTreeViewColumnMinWidth               ,
    setTreeViewColumnMinWidth               ,


-- ** Reorderable
    TreeViewColumnReorderablePropertyInfo   ,
    constructTreeViewColumnReorderable      ,
    getTreeViewColumnReorderable            ,
    setTreeViewColumnReorderable            ,


-- ** Resizable
    TreeViewColumnResizablePropertyInfo     ,
    constructTreeViewColumnResizable        ,
    getTreeViewColumnResizable              ,
    setTreeViewColumnResizable              ,


-- ** Sizing
    TreeViewColumnSizingPropertyInfo        ,
    constructTreeViewColumnSizing           ,
    getTreeViewColumnSizing                 ,
    setTreeViewColumnSizing                 ,


-- ** SortColumnId
    TreeViewColumnSortColumnIdPropertyInfo  ,
    constructTreeViewColumnSortColumnId     ,
    getTreeViewColumnSortColumnId           ,
    setTreeViewColumnSortColumnId           ,


-- ** SortIndicator
    TreeViewColumnSortIndicatorPropertyInfo ,
    constructTreeViewColumnSortIndicator    ,
    getTreeViewColumnSortIndicator          ,
    setTreeViewColumnSortIndicator          ,


-- ** SortOrder
    TreeViewColumnSortOrderPropertyInfo     ,
    constructTreeViewColumnSortOrder        ,
    getTreeViewColumnSortOrder              ,
    setTreeViewColumnSortOrder              ,


-- ** Spacing
    TreeViewColumnSpacingPropertyInfo       ,
    constructTreeViewColumnSpacing          ,
    getTreeViewColumnSpacing                ,
    setTreeViewColumnSpacing                ,


-- ** Title
    TreeViewColumnTitlePropertyInfo         ,
    constructTreeViewColumnTitle            ,
    getTreeViewColumnTitle                  ,
    setTreeViewColumnTitle                  ,


-- ** Visible
    TreeViewColumnVisiblePropertyInfo       ,
    constructTreeViewColumnVisible          ,
    getTreeViewColumnVisible                ,
    setTreeViewColumnVisible                ,


-- ** Widget
    TreeViewColumnWidgetPropertyInfo        ,
    constructTreeViewColumnWidget           ,
    getTreeViewColumnWidget                 ,
    setTreeViewColumnWidget                 ,


-- ** Width
    TreeViewColumnWidthPropertyInfo         ,
    getTreeViewColumnWidth                  ,


-- ** XOffset
    TreeViewColumnXOffsetPropertyInfo       ,
    getTreeViewColumnXOffset                ,




 -- * Signals
-- ** Clicked
    TreeViewColumnClickedCallback           ,
    TreeViewColumnClickedCallbackC          ,
    TreeViewColumnClickedSignalInfo         ,
    afterTreeViewColumnClicked              ,
    mkTreeViewColumnClickedCallback         ,
    noTreeViewColumnClickedCallback         ,
    onTreeViewColumnClicked                 ,
    treeViewColumnClickedCallbackWrapper    ,
    treeViewColumnClickedClosure            ,




    ) 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.GLib as GLib
import qualified GI.GObject as GObject
import qualified GI.Gdk as Gdk

newtype TreeViewColumn = TreeViewColumn (ForeignPtr TreeViewColumn)
foreign import ccall "gtk_tree_view_column_get_type"
    c_gtk_tree_view_column_get_type :: IO GType

type instance ParentTypes TreeViewColumn = TreeViewColumnParentTypes
type TreeViewColumnParentTypes = '[GObject.Object, Buildable, CellLayout]

instance GObject TreeViewColumn where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_tree_view_column_get_type
    

class GObject o => TreeViewColumnK o
instance (GObject o, IsDescendantOf TreeViewColumn o) => TreeViewColumnK o

toTreeViewColumn :: TreeViewColumnK o => o -> IO TreeViewColumn
toTreeViewColumn = unsafeCastTo TreeViewColumn

noTreeViewColumn :: Maybe TreeViewColumn
noTreeViewColumn = Nothing

-- signal TreeViewColumn::clicked
type TreeViewColumnClickedCallback =
    IO ()

noTreeViewColumnClickedCallback :: Maybe TreeViewColumnClickedCallback
noTreeViewColumnClickedCallback = Nothing

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

foreign import ccall "wrapper"
    mkTreeViewColumnClickedCallback :: TreeViewColumnClickedCallbackC -> IO (FunPtr TreeViewColumnClickedCallbackC)

treeViewColumnClickedClosure :: TreeViewColumnClickedCallback -> IO Closure
treeViewColumnClickedClosure cb = newCClosure =<< mkTreeViewColumnClickedCallback wrapped
    where wrapped = treeViewColumnClickedCallbackWrapper cb

treeViewColumnClickedCallbackWrapper ::
    TreeViewColumnClickedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
treeViewColumnClickedCallbackWrapper _cb _ _ = do
    _cb 

onTreeViewColumnClicked :: (GObject a, MonadIO m) => a -> TreeViewColumnClickedCallback -> m SignalHandlerId
onTreeViewColumnClicked obj cb = liftIO $ connectTreeViewColumnClicked obj cb SignalConnectBefore
afterTreeViewColumnClicked :: (GObject a, MonadIO m) => a -> TreeViewColumnClickedCallback -> m SignalHandlerId
afterTreeViewColumnClicked obj cb = connectTreeViewColumnClicked obj cb SignalConnectAfter

connectTreeViewColumnClicked :: (GObject a, MonadIO m) =>
                                a -> TreeViewColumnClickedCallback -> SignalConnectMode -> m SignalHandlerId
connectTreeViewColumnClicked obj cb after = liftIO $ do
    cb' <- mkTreeViewColumnClickedCallback (treeViewColumnClickedCallbackWrapper cb)
    connectSignalFunPtr obj "clicked" cb' after

-- VVV Prop "alignment"
   -- Type: TBasicType TFloat
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnAlignment :: (MonadIO m, TreeViewColumnK o) => o -> m Float
getTreeViewColumnAlignment obj = liftIO $ getObjectPropertyFloat obj "alignment"

setTreeViewColumnAlignment :: (MonadIO m, TreeViewColumnK o) => o -> Float -> m ()
setTreeViewColumnAlignment obj val = liftIO $ setObjectPropertyFloat obj "alignment" val

constructTreeViewColumnAlignment :: Float -> IO ([Char], GValue)
constructTreeViewColumnAlignment val = constructObjectPropertyFloat "alignment" val

data TreeViewColumnAlignmentPropertyInfo
instance AttrInfo TreeViewColumnAlignmentPropertyInfo where
    type AttrAllowedOps TreeViewColumnAlignmentPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnAlignmentPropertyInfo = (~) Float
    type AttrBaseTypeConstraint TreeViewColumnAlignmentPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnAlignmentPropertyInfo = Float
    type AttrLabel TreeViewColumnAlignmentPropertyInfo = "TreeViewColumn::alignment"
    attrGet _ = getTreeViewColumnAlignment
    attrSet _ = setTreeViewColumnAlignment
    attrConstruct _ = constructTreeViewColumnAlignment

-- VVV Prop "cell-area"
   -- Type: TInterface "Gtk" "CellArea"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getTreeViewColumnCellArea :: (MonadIO m, TreeViewColumnK o) => o -> m CellArea
getTreeViewColumnCellArea obj = liftIO $ getObjectPropertyObject obj "cell-area" CellArea

constructTreeViewColumnCellArea :: (CellAreaK a) => a -> IO ([Char], GValue)
constructTreeViewColumnCellArea val = constructObjectPropertyObject "cell-area" val

data TreeViewColumnCellAreaPropertyInfo
instance AttrInfo TreeViewColumnCellAreaPropertyInfo where
    type AttrAllowedOps TreeViewColumnCellAreaPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnCellAreaPropertyInfo = CellAreaK
    type AttrBaseTypeConstraint TreeViewColumnCellAreaPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnCellAreaPropertyInfo = CellArea
    type AttrLabel TreeViewColumnCellAreaPropertyInfo = "TreeViewColumn::cell-area"
    attrGet _ = getTreeViewColumnCellArea
    attrSet _ = undefined
    attrConstruct _ = constructTreeViewColumnCellArea

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

getTreeViewColumnClickable :: (MonadIO m, TreeViewColumnK o) => o -> m Bool
getTreeViewColumnClickable obj = liftIO $ getObjectPropertyBool obj "clickable"

setTreeViewColumnClickable :: (MonadIO m, TreeViewColumnK o) => o -> Bool -> m ()
setTreeViewColumnClickable obj val = liftIO $ setObjectPropertyBool obj "clickable" val

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

data TreeViewColumnClickablePropertyInfo
instance AttrInfo TreeViewColumnClickablePropertyInfo where
    type AttrAllowedOps TreeViewColumnClickablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnClickablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewColumnClickablePropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnClickablePropertyInfo = Bool
    type AttrLabel TreeViewColumnClickablePropertyInfo = "TreeViewColumn::clickable"
    attrGet _ = getTreeViewColumnClickable
    attrSet _ = setTreeViewColumnClickable
    attrConstruct _ = constructTreeViewColumnClickable

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

getTreeViewColumnExpand :: (MonadIO m, TreeViewColumnK o) => o -> m Bool
getTreeViewColumnExpand obj = liftIO $ getObjectPropertyBool obj "expand"

setTreeViewColumnExpand :: (MonadIO m, TreeViewColumnK o) => o -> Bool -> m ()
setTreeViewColumnExpand obj val = liftIO $ setObjectPropertyBool obj "expand" val

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

data TreeViewColumnExpandPropertyInfo
instance AttrInfo TreeViewColumnExpandPropertyInfo where
    type AttrAllowedOps TreeViewColumnExpandPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnExpandPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewColumnExpandPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnExpandPropertyInfo = Bool
    type AttrLabel TreeViewColumnExpandPropertyInfo = "TreeViewColumn::expand"
    attrGet _ = getTreeViewColumnExpand
    attrSet _ = setTreeViewColumnExpand
    attrConstruct _ = constructTreeViewColumnExpand

-- VVV Prop "fixed-width"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnFixedWidth :: (MonadIO m, TreeViewColumnK o) => o -> m Int32
getTreeViewColumnFixedWidth obj = liftIO $ getObjectPropertyCInt obj "fixed-width"

setTreeViewColumnFixedWidth :: (MonadIO m, TreeViewColumnK o) => o -> Int32 -> m ()
setTreeViewColumnFixedWidth obj val = liftIO $ setObjectPropertyCInt obj "fixed-width" val

constructTreeViewColumnFixedWidth :: Int32 -> IO ([Char], GValue)
constructTreeViewColumnFixedWidth val = constructObjectPropertyCInt "fixed-width" val

data TreeViewColumnFixedWidthPropertyInfo
instance AttrInfo TreeViewColumnFixedWidthPropertyInfo where
    type AttrAllowedOps TreeViewColumnFixedWidthPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnFixedWidthPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewColumnFixedWidthPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnFixedWidthPropertyInfo = Int32
    type AttrLabel TreeViewColumnFixedWidthPropertyInfo = "TreeViewColumn::fixed-width"
    attrGet _ = getTreeViewColumnFixedWidth
    attrSet _ = setTreeViewColumnFixedWidth
    attrConstruct _ = constructTreeViewColumnFixedWidth

-- VVV Prop "max-width"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnMaxWidth :: (MonadIO m, TreeViewColumnK o) => o -> m Int32
getTreeViewColumnMaxWidth obj = liftIO $ getObjectPropertyCInt obj "max-width"

setTreeViewColumnMaxWidth :: (MonadIO m, TreeViewColumnK o) => o -> Int32 -> m ()
setTreeViewColumnMaxWidth obj val = liftIO $ setObjectPropertyCInt obj "max-width" val

constructTreeViewColumnMaxWidth :: Int32 -> IO ([Char], GValue)
constructTreeViewColumnMaxWidth val = constructObjectPropertyCInt "max-width" val

data TreeViewColumnMaxWidthPropertyInfo
instance AttrInfo TreeViewColumnMaxWidthPropertyInfo where
    type AttrAllowedOps TreeViewColumnMaxWidthPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnMaxWidthPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewColumnMaxWidthPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnMaxWidthPropertyInfo = Int32
    type AttrLabel TreeViewColumnMaxWidthPropertyInfo = "TreeViewColumn::max-width"
    attrGet _ = getTreeViewColumnMaxWidth
    attrSet _ = setTreeViewColumnMaxWidth
    attrConstruct _ = constructTreeViewColumnMaxWidth

-- VVV Prop "min-width"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnMinWidth :: (MonadIO m, TreeViewColumnK o) => o -> m Int32
getTreeViewColumnMinWidth obj = liftIO $ getObjectPropertyCInt obj "min-width"

setTreeViewColumnMinWidth :: (MonadIO m, TreeViewColumnK o) => o -> Int32 -> m ()
setTreeViewColumnMinWidth obj val = liftIO $ setObjectPropertyCInt obj "min-width" val

constructTreeViewColumnMinWidth :: Int32 -> IO ([Char], GValue)
constructTreeViewColumnMinWidth val = constructObjectPropertyCInt "min-width" val

data TreeViewColumnMinWidthPropertyInfo
instance AttrInfo TreeViewColumnMinWidthPropertyInfo where
    type AttrAllowedOps TreeViewColumnMinWidthPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnMinWidthPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewColumnMinWidthPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnMinWidthPropertyInfo = Int32
    type AttrLabel TreeViewColumnMinWidthPropertyInfo = "TreeViewColumn::min-width"
    attrGet _ = getTreeViewColumnMinWidth
    attrSet _ = setTreeViewColumnMinWidth
    attrConstruct _ = constructTreeViewColumnMinWidth

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

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

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

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

data TreeViewColumnReorderablePropertyInfo
instance AttrInfo TreeViewColumnReorderablePropertyInfo where
    type AttrAllowedOps TreeViewColumnReorderablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnReorderablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewColumnReorderablePropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnReorderablePropertyInfo = Bool
    type AttrLabel TreeViewColumnReorderablePropertyInfo = "TreeViewColumn::reorderable"
    attrGet _ = getTreeViewColumnReorderable
    attrSet _ = setTreeViewColumnReorderable
    attrConstruct _ = constructTreeViewColumnReorderable

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

getTreeViewColumnResizable :: (MonadIO m, TreeViewColumnK o) => o -> m Bool
getTreeViewColumnResizable obj = liftIO $ getObjectPropertyBool obj "resizable"

setTreeViewColumnResizable :: (MonadIO m, TreeViewColumnK o) => o -> Bool -> m ()
setTreeViewColumnResizable obj val = liftIO $ setObjectPropertyBool obj "resizable" val

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

data TreeViewColumnResizablePropertyInfo
instance AttrInfo TreeViewColumnResizablePropertyInfo where
    type AttrAllowedOps TreeViewColumnResizablePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnResizablePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewColumnResizablePropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnResizablePropertyInfo = Bool
    type AttrLabel TreeViewColumnResizablePropertyInfo = "TreeViewColumn::resizable"
    attrGet _ = getTreeViewColumnResizable
    attrSet _ = setTreeViewColumnResizable
    attrConstruct _ = constructTreeViewColumnResizable

-- VVV Prop "sizing"
   -- Type: TInterface "Gtk" "TreeViewColumnSizing"
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnSizing :: (MonadIO m, TreeViewColumnK o) => o -> m TreeViewColumnSizing
getTreeViewColumnSizing obj = liftIO $ getObjectPropertyEnum obj "sizing"

setTreeViewColumnSizing :: (MonadIO m, TreeViewColumnK o) => o -> TreeViewColumnSizing -> m ()
setTreeViewColumnSizing obj val = liftIO $ setObjectPropertyEnum obj "sizing" val

constructTreeViewColumnSizing :: TreeViewColumnSizing -> IO ([Char], GValue)
constructTreeViewColumnSizing val = constructObjectPropertyEnum "sizing" val

data TreeViewColumnSizingPropertyInfo
instance AttrInfo TreeViewColumnSizingPropertyInfo where
    type AttrAllowedOps TreeViewColumnSizingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnSizingPropertyInfo = (~) TreeViewColumnSizing
    type AttrBaseTypeConstraint TreeViewColumnSizingPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnSizingPropertyInfo = TreeViewColumnSizing
    type AttrLabel TreeViewColumnSizingPropertyInfo = "TreeViewColumn::sizing"
    attrGet _ = getTreeViewColumnSizing
    attrSet _ = setTreeViewColumnSizing
    attrConstruct _ = constructTreeViewColumnSizing

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

getTreeViewColumnSortColumnId :: (MonadIO m, TreeViewColumnK o) => o -> m Int32
getTreeViewColumnSortColumnId obj = liftIO $ getObjectPropertyCInt obj "sort-column-id"

setTreeViewColumnSortColumnId :: (MonadIO m, TreeViewColumnK o) => o -> Int32 -> m ()
setTreeViewColumnSortColumnId obj val = liftIO $ setObjectPropertyCInt obj "sort-column-id" val

constructTreeViewColumnSortColumnId :: Int32 -> IO ([Char], GValue)
constructTreeViewColumnSortColumnId val = constructObjectPropertyCInt "sort-column-id" val

data TreeViewColumnSortColumnIdPropertyInfo
instance AttrInfo TreeViewColumnSortColumnIdPropertyInfo where
    type AttrAllowedOps TreeViewColumnSortColumnIdPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnSortColumnIdPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewColumnSortColumnIdPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnSortColumnIdPropertyInfo = Int32
    type AttrLabel TreeViewColumnSortColumnIdPropertyInfo = "TreeViewColumn::sort-column-id"
    attrGet _ = getTreeViewColumnSortColumnId
    attrSet _ = setTreeViewColumnSortColumnId
    attrConstruct _ = constructTreeViewColumnSortColumnId

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

getTreeViewColumnSortIndicator :: (MonadIO m, TreeViewColumnK o) => o -> m Bool
getTreeViewColumnSortIndicator obj = liftIO $ getObjectPropertyBool obj "sort-indicator"

setTreeViewColumnSortIndicator :: (MonadIO m, TreeViewColumnK o) => o -> Bool -> m ()
setTreeViewColumnSortIndicator obj val = liftIO $ setObjectPropertyBool obj "sort-indicator" val

constructTreeViewColumnSortIndicator :: Bool -> IO ([Char], GValue)
constructTreeViewColumnSortIndicator val = constructObjectPropertyBool "sort-indicator" val

data TreeViewColumnSortIndicatorPropertyInfo
instance AttrInfo TreeViewColumnSortIndicatorPropertyInfo where
    type AttrAllowedOps TreeViewColumnSortIndicatorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnSortIndicatorPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewColumnSortIndicatorPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnSortIndicatorPropertyInfo = Bool
    type AttrLabel TreeViewColumnSortIndicatorPropertyInfo = "TreeViewColumn::sort-indicator"
    attrGet _ = getTreeViewColumnSortIndicator
    attrSet _ = setTreeViewColumnSortIndicator
    attrConstruct _ = constructTreeViewColumnSortIndicator

-- VVV Prop "sort-order"
   -- Type: TInterface "Gtk" "SortType"
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnSortOrder :: (MonadIO m, TreeViewColumnK o) => o -> m SortType
getTreeViewColumnSortOrder obj = liftIO $ getObjectPropertyEnum obj "sort-order"

setTreeViewColumnSortOrder :: (MonadIO m, TreeViewColumnK o) => o -> SortType -> m ()
setTreeViewColumnSortOrder obj val = liftIO $ setObjectPropertyEnum obj "sort-order" val

constructTreeViewColumnSortOrder :: SortType -> IO ([Char], GValue)
constructTreeViewColumnSortOrder val = constructObjectPropertyEnum "sort-order" val

data TreeViewColumnSortOrderPropertyInfo
instance AttrInfo TreeViewColumnSortOrderPropertyInfo where
    type AttrAllowedOps TreeViewColumnSortOrderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnSortOrderPropertyInfo = (~) SortType
    type AttrBaseTypeConstraint TreeViewColumnSortOrderPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnSortOrderPropertyInfo = SortType
    type AttrLabel TreeViewColumnSortOrderPropertyInfo = "TreeViewColumn::sort-order"
    attrGet _ = getTreeViewColumnSortOrder
    attrSet _ = setTreeViewColumnSortOrder
    attrConstruct _ = constructTreeViewColumnSortOrder

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

getTreeViewColumnSpacing :: (MonadIO m, TreeViewColumnK o) => o -> m Int32
getTreeViewColumnSpacing obj = liftIO $ getObjectPropertyCInt obj "spacing"

setTreeViewColumnSpacing :: (MonadIO m, TreeViewColumnK o) => o -> Int32 -> m ()
setTreeViewColumnSpacing obj val = liftIO $ setObjectPropertyCInt obj "spacing" val

constructTreeViewColumnSpacing :: Int32 -> IO ([Char], GValue)
constructTreeViewColumnSpacing val = constructObjectPropertyCInt "spacing" val

data TreeViewColumnSpacingPropertyInfo
instance AttrInfo TreeViewColumnSpacingPropertyInfo where
    type AttrAllowedOps TreeViewColumnSpacingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnSpacingPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint TreeViewColumnSpacingPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnSpacingPropertyInfo = Int32
    type AttrLabel TreeViewColumnSpacingPropertyInfo = "TreeViewColumn::spacing"
    attrGet _ = getTreeViewColumnSpacing
    attrSet _ = setTreeViewColumnSpacing
    attrConstruct _ = constructTreeViewColumnSpacing

-- VVV Prop "title"
   -- Type: TBasicType TUTF8
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnTitle :: (MonadIO m, TreeViewColumnK o) => o -> m T.Text
getTreeViewColumnTitle obj = liftIO $ getObjectPropertyString obj "title"

setTreeViewColumnTitle :: (MonadIO m, TreeViewColumnK o) => o -> T.Text -> m ()
setTreeViewColumnTitle obj val = liftIO $ setObjectPropertyString obj "title" val

constructTreeViewColumnTitle :: T.Text -> IO ([Char], GValue)
constructTreeViewColumnTitle val = constructObjectPropertyString "title" val

data TreeViewColumnTitlePropertyInfo
instance AttrInfo TreeViewColumnTitlePropertyInfo where
    type AttrAllowedOps TreeViewColumnTitlePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnTitlePropertyInfo = (~) T.Text
    type AttrBaseTypeConstraint TreeViewColumnTitlePropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnTitlePropertyInfo = T.Text
    type AttrLabel TreeViewColumnTitlePropertyInfo = "TreeViewColumn::title"
    attrGet _ = getTreeViewColumnTitle
    attrSet _ = setTreeViewColumnTitle
    attrConstruct _ = constructTreeViewColumnTitle

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

getTreeViewColumnVisible :: (MonadIO m, TreeViewColumnK o) => o -> m Bool
getTreeViewColumnVisible obj = liftIO $ getObjectPropertyBool obj "visible"

setTreeViewColumnVisible :: (MonadIO m, TreeViewColumnK o) => o -> Bool -> m ()
setTreeViewColumnVisible obj val = liftIO $ setObjectPropertyBool obj "visible" val

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

data TreeViewColumnVisiblePropertyInfo
instance AttrInfo TreeViewColumnVisiblePropertyInfo where
    type AttrAllowedOps TreeViewColumnVisiblePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnVisiblePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint TreeViewColumnVisiblePropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnVisiblePropertyInfo = Bool
    type AttrLabel TreeViewColumnVisiblePropertyInfo = "TreeViewColumn::visible"
    attrGet _ = getTreeViewColumnVisible
    attrSet _ = setTreeViewColumnVisible
    attrConstruct _ = constructTreeViewColumnVisible

-- VVV Prop "widget"
   -- Type: TInterface "Gtk" "Widget"
   -- Flags: [PropertyReadable,PropertyWritable]

getTreeViewColumnWidget :: (MonadIO m, TreeViewColumnK o) => o -> m Widget
getTreeViewColumnWidget obj = liftIO $ getObjectPropertyObject obj "widget" Widget

setTreeViewColumnWidget :: (MonadIO m, TreeViewColumnK o, WidgetK a) => o -> a -> m ()
setTreeViewColumnWidget obj val = liftIO $ setObjectPropertyObject obj "widget" val

constructTreeViewColumnWidget :: (WidgetK a) => a -> IO ([Char], GValue)
constructTreeViewColumnWidget val = constructObjectPropertyObject "widget" val

data TreeViewColumnWidgetPropertyInfo
instance AttrInfo TreeViewColumnWidgetPropertyInfo where
    type AttrAllowedOps TreeViewColumnWidgetPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnWidgetPropertyInfo = WidgetK
    type AttrBaseTypeConstraint TreeViewColumnWidgetPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnWidgetPropertyInfo = Widget
    type AttrLabel TreeViewColumnWidgetPropertyInfo = "TreeViewColumn::widget"
    attrGet _ = getTreeViewColumnWidget
    attrSet _ = setTreeViewColumnWidget
    attrConstruct _ = constructTreeViewColumnWidget

-- VVV Prop "width"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable]

getTreeViewColumnWidth :: (MonadIO m, TreeViewColumnK o) => o -> m Int32
getTreeViewColumnWidth obj = liftIO $ getObjectPropertyCInt obj "width"

data TreeViewColumnWidthPropertyInfo
instance AttrInfo TreeViewColumnWidthPropertyInfo where
    type AttrAllowedOps TreeViewColumnWidthPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnWidthPropertyInfo = (~) ()
    type AttrBaseTypeConstraint TreeViewColumnWidthPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnWidthPropertyInfo = Int32
    type AttrLabel TreeViewColumnWidthPropertyInfo = "TreeViewColumn::width"
    attrGet _ = getTreeViewColumnWidth
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "x-offset"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable]

getTreeViewColumnXOffset :: (MonadIO m, TreeViewColumnK o) => o -> m Int32
getTreeViewColumnXOffset obj = liftIO $ getObjectPropertyCInt obj "x-offset"

data TreeViewColumnXOffsetPropertyInfo
instance AttrInfo TreeViewColumnXOffsetPropertyInfo where
    type AttrAllowedOps TreeViewColumnXOffsetPropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint TreeViewColumnXOffsetPropertyInfo = (~) ()
    type AttrBaseTypeConstraint TreeViewColumnXOffsetPropertyInfo = TreeViewColumnK
    type AttrGetType TreeViewColumnXOffsetPropertyInfo = Int32
    type AttrLabel TreeViewColumnXOffsetPropertyInfo = "TreeViewColumn::x-offset"
    attrGet _ = getTreeViewColumnXOffset
    attrSet _ = undefined
    attrConstruct _ = undefined

type instance AttributeList TreeViewColumn = TreeViewColumnAttributeList
type TreeViewColumnAttributeList = ('[ '("alignment", TreeViewColumnAlignmentPropertyInfo), '("cell-area", TreeViewColumnCellAreaPropertyInfo), '("clickable", TreeViewColumnClickablePropertyInfo), '("expand", TreeViewColumnExpandPropertyInfo), '("fixed-width", TreeViewColumnFixedWidthPropertyInfo), '("max-width", TreeViewColumnMaxWidthPropertyInfo), '("min-width", TreeViewColumnMinWidthPropertyInfo), '("reorderable", TreeViewColumnReorderablePropertyInfo), '("resizable", TreeViewColumnResizablePropertyInfo), '("sizing", TreeViewColumnSizingPropertyInfo), '("sort-column-id", TreeViewColumnSortColumnIdPropertyInfo), '("sort-indicator", TreeViewColumnSortIndicatorPropertyInfo), '("sort-order", TreeViewColumnSortOrderPropertyInfo), '("spacing", TreeViewColumnSpacingPropertyInfo), '("title", TreeViewColumnTitlePropertyInfo), '("visible", TreeViewColumnVisiblePropertyInfo), '("widget", TreeViewColumnWidgetPropertyInfo), '("width", TreeViewColumnWidthPropertyInfo), '("x-offset", TreeViewColumnXOffsetPropertyInfo)] :: [(Symbol, *)])

data TreeViewColumnClickedSignalInfo
instance SignalInfo TreeViewColumnClickedSignalInfo where
    type HaskellCallbackType TreeViewColumnClickedSignalInfo = TreeViewColumnClickedCallback
    connectSignal _ = connectTreeViewColumnClicked

type instance SignalList TreeViewColumn = TreeViewColumnSignalList
type TreeViewColumnSignalList = ('[ '("clicked", TreeViewColumnClickedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

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

foreign import ccall "gtk_tree_view_column_new" gtk_tree_view_column_new :: 
    IO (Ptr TreeViewColumn)


treeViewColumnNew ::
    (MonadIO m) =>
    m TreeViewColumn
treeViewColumnNew  = liftIO $ do
    result <- gtk_tree_view_column_new
    checkUnexpectedReturnNULL "gtk_tree_view_column_new" result
    result' <- (newObject TreeViewColumn) result
    return result'

-- method TreeViewColumn::new_with_area
-- method type : Constructor
-- Args : [Arg {argName = "area", argType = TInterface "Gtk" "CellArea", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "area", argType = TInterface "Gtk" "CellArea", 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_column_new_with_area" gtk_tree_view_column_new_with_area :: 
    Ptr CellArea ->                         -- area : TInterface "Gtk" "CellArea"
    IO (Ptr TreeViewColumn)


treeViewColumnNewWithArea ::
    (MonadIO m, CellAreaK a) =>
    a ->                                    -- area
    m TreeViewColumn
treeViewColumnNewWithArea area = liftIO $ do
    let area' = unsafeManagedPtrCastPtr area
    result <- gtk_tree_view_column_new_with_area area'
    checkUnexpectedReturnNULL "gtk_tree_view_column_new_with_area" result
    result' <- (newObject TreeViewColumn) result
    touchManagedPtr area
    return result'

-- method TreeViewColumn::add_attribute
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attribute", argType = TBasicType TUTF8, 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" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attribute", argType = TBasicType TUTF8, 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_column_add_attribute" gtk_tree_view_column_add_attribute :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell_renderer : TInterface "Gtk" "CellRenderer"
    CString ->                              -- attribute : TBasicType TUTF8
    Int32 ->                                -- column : TBasicType TInt32
    IO ()


treeViewColumnAddAttribute ::
    (MonadIO m, TreeViewColumnK a, CellRendererK b) =>
    a ->                                    -- _obj
    b ->                                    -- cell_renderer
    T.Text ->                               -- attribute
    Int32 ->                                -- column
    m ()
treeViewColumnAddAttribute _obj cell_renderer attribute column = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let cell_renderer' = unsafeManagedPtrCastPtr cell_renderer
    attribute' <- textToCString attribute
    gtk_tree_view_column_add_attribute _obj' cell_renderer' attribute' column
    touchManagedPtr _obj
    touchManagedPtr cell_renderer
    freeMem attribute'
    return ()

-- method TreeViewColumn::cell_get_position
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", argType = TInterface "Gtk" "CellRenderer", 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_column_cell_get_position" gtk_tree_view_column_cell_get_position :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell_renderer : TInterface "Gtk" "CellRenderer"
    Ptr Int32 ->                            -- x_offset : TBasicType TInt32
    Ptr Int32 ->                            -- width : TBasicType TInt32
    IO CInt


treeViewColumnCellGetPosition ::
    (MonadIO m, TreeViewColumnK a, CellRendererK b) =>
    a ->                                    -- _obj
    b ->                                    -- cell_renderer
    m (Bool,Int32,Int32)
treeViewColumnCellGetPosition _obj cell_renderer = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let cell_renderer' = unsafeManagedPtrCastPtr cell_renderer
    x_offset <- allocMem :: IO (Ptr Int32)
    width <- allocMem :: IO (Ptr Int32)
    result <- gtk_tree_view_column_cell_get_position _obj' cell_renderer' x_offset width
    let result' = (/= 0) result
    x_offset' <- peek x_offset
    width' <- peek width
    touchManagedPtr _obj
    touchManagedPtr cell_renderer
    freeMem x_offset
    freeMem width
    return (result', x_offset', width')

-- method TreeViewColumn::cell_get_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_area", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_offset", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_area", argType = TInterface "Gdk" "Rectangle", 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_column_cell_get_size" gtk_tree_view_column_cell_get_size :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr Gdk.Rectangle ->                    -- cell_area : TInterface "Gdk" "Rectangle"
    Ptr Int32 ->                            -- x_offset : TBasicType TInt32
    Ptr Int32 ->                            -- y_offset : TBasicType TInt32
    Ptr Int32 ->                            -- width : TBasicType TInt32
    Ptr Int32 ->                            -- height : TBasicType TInt32
    IO ()


treeViewColumnCellGetSize ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Maybe (Gdk.Rectangle) ->                -- cell_area
    m (Int32,Int32,Int32,Int32)
treeViewColumnCellGetSize _obj cell_area = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeCell_area <- case cell_area of
        Nothing -> return nullPtr
        Just jCell_area -> do
            let jCell_area' = unsafeManagedPtrGetPtr jCell_area
            return jCell_area'
    x_offset <- allocMem :: IO (Ptr Int32)
    y_offset <- allocMem :: IO (Ptr Int32)
    width <- allocMem :: IO (Ptr Int32)
    height <- allocMem :: IO (Ptr Int32)
    gtk_tree_view_column_cell_get_size _obj' maybeCell_area x_offset y_offset width height
    x_offset' <- peek x_offset
    y_offset' <- peek y_offset
    width' <- peek width
    height' <- peek height
    touchManagedPtr _obj
    whenJust cell_area touchManagedPtr
    freeMem x_offset
    freeMem y_offset
    freeMem width
    freeMem height
    return (x_offset', y_offset', width', height')

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


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

-- method TreeViewColumn::cell_set_cell_data
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tree_model", argType = TInterface "Gtk" "TreeModel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_expander", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_expanded", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tree_model", argType = TInterface "Gtk" "TreeModel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iter", argType = TInterface "Gtk" "TreeIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_expander", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_expanded", 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_column_cell_set_cell_data" gtk_tree_view_column_cell_set_cell_data :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr TreeModel ->                        -- tree_model : TInterface "Gtk" "TreeModel"
    Ptr TreeIter ->                         -- iter : TInterface "Gtk" "TreeIter"
    CInt ->                                 -- is_expander : TBasicType TBoolean
    CInt ->                                 -- is_expanded : TBasicType TBoolean
    IO ()


treeViewColumnCellSetCellData ::
    (MonadIO m, TreeViewColumnK a, TreeModelK b) =>
    a ->                                    -- _obj
    b ->                                    -- tree_model
    TreeIter ->                             -- iter
    Bool ->                                 -- is_expander
    Bool ->                                 -- is_expanded
    m ()
treeViewColumnCellSetCellData _obj tree_model iter is_expander is_expanded = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let tree_model' = unsafeManagedPtrCastPtr tree_model
    let iter' = unsafeManagedPtrGetPtr iter
    let is_expander' = (fromIntegral . fromEnum) is_expander
    let is_expanded' = (fromIntegral . fromEnum) is_expanded
    gtk_tree_view_column_cell_set_cell_data _obj' tree_model' iter' is_expander' is_expanded'
    touchManagedPtr _obj
    touchManagedPtr tree_model
    touchManagedPtr iter
    return ()

-- method TreeViewColumn::clear
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", 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_column_clear" gtk_tree_view_column_clear :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO ()


treeViewColumnClear ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m ()
treeViewColumnClear _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_clear _obj'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::clear_attributes
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", argType = TInterface "Gtk" "CellRenderer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", argType = TInterface "Gtk" "CellRenderer", 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_column_clear_attributes" gtk_tree_view_column_clear_attributes :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell_renderer : TInterface "Gtk" "CellRenderer"
    IO ()


treeViewColumnClearAttributes ::
    (MonadIO m, TreeViewColumnK a, CellRendererK b) =>
    a ->                                    -- _obj
    b ->                                    -- cell_renderer
    m ()
treeViewColumnClearAttributes _obj cell_renderer = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let cell_renderer' = unsafeManagedPtrCastPtr cell_renderer
    gtk_tree_view_column_clear_attributes _obj' cell_renderer'
    touchManagedPtr _obj
    touchManagedPtr cell_renderer
    return ()

-- method TreeViewColumn::clicked
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", 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_column_clicked" gtk_tree_view_column_clicked :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO ()


treeViewColumnClicked ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m ()
treeViewColumnClicked _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_clicked _obj'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::focus_cell
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_column_focus_cell" gtk_tree_view_column_focus_cell :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell : TInterface "Gtk" "CellRenderer"
    IO ()


treeViewColumnFocusCell ::
    (MonadIO m, TreeViewColumnK a, CellRendererK b) =>
    a ->                                    -- _obj
    b ->                                    -- cell
    m ()
treeViewColumnFocusCell _obj cell = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let cell' = unsafeManagedPtrCastPtr cell
    gtk_tree_view_column_focus_cell _obj' cell'
    touchManagedPtr _obj
    touchManagedPtr cell
    return ()

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

foreign import ccall "gtk_tree_view_column_get_alignment" gtk_tree_view_column_get_alignment :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO CFloat


treeViewColumnGetAlignment ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Float
treeViewColumnGetAlignment _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_alignment _obj'
    let result' = realToFrac result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tree_view_column_get_button" gtk_tree_view_column_get_button :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO (Ptr Widget)


treeViewColumnGetButton ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Widget
treeViewColumnGetButton _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_button _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_column_get_button" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

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


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

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


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

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


treeViewColumnGetFixedWidth ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Int32
treeViewColumnGetFixedWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_fixed_width _obj'
    touchManagedPtr _obj
    return result

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


treeViewColumnGetMaxWidth ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Int32
treeViewColumnGetMaxWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_max_width _obj'
    touchManagedPtr _obj
    return result

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


treeViewColumnGetMinWidth ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Int32
treeViewColumnGetMinWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_min_width _obj'
    touchManagedPtr _obj
    return result

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


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

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


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

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

foreign import ccall "gtk_tree_view_column_get_sizing" gtk_tree_view_column_get_sizing :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO CUInt


treeViewColumnGetSizing ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m TreeViewColumnSizing
treeViewColumnGetSizing _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_sizing _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

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


treeViewColumnGetSortColumnId ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Int32
treeViewColumnGetSortColumnId _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_sort_column_id _obj'
    touchManagedPtr _obj
    return result

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


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

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

foreign import ccall "gtk_tree_view_column_get_sort_order" gtk_tree_view_column_get_sort_order :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO CUInt


treeViewColumnGetSortOrder ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m SortType
treeViewColumnGetSortOrder _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_sort_order _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

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


treeViewColumnGetSpacing ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Int32
treeViewColumnGetSpacing _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_spacing _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gtk_tree_view_column_get_title" gtk_tree_view_column_get_title :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO CString


treeViewColumnGetTitle ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m T.Text
treeViewColumnGetTitle _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_title _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_column_get_title" result
    result' <- cstringToText result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gtk_tree_view_column_get_tree_view" gtk_tree_view_column_get_tree_view :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO (Ptr Widget)


treeViewColumnGetTreeView ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Widget
treeViewColumnGetTreeView _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_tree_view _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_column_get_tree_view" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

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


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

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

foreign import ccall "gtk_tree_view_column_get_widget" gtk_tree_view_column_get_widget :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO (Ptr Widget)


treeViewColumnGetWidget ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Widget
treeViewColumnGetWidget _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_widget _obj'
    checkUnexpectedReturnNULL "gtk_tree_view_column_get_widget" result
    result' <- (newObject Widget) result
    touchManagedPtr _obj
    return result'

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


treeViewColumnGetWidth ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Int32
treeViewColumnGetWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_width _obj'
    touchManagedPtr _obj
    return result

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


treeViewColumnGetXOffset ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m Int32
treeViewColumnGetXOffset _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gtk_tree_view_column_get_x_offset _obj'
    touchManagedPtr _obj
    return result

-- method TreeViewColumn::pack_end
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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 = "expand", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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 = "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_column_pack_end" gtk_tree_view_column_pack_end :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell : TInterface "Gtk" "CellRenderer"
    CInt ->                                 -- expand : TBasicType TBoolean
    IO ()


treeViewColumnPackEnd ::
    (MonadIO m, TreeViewColumnK a, CellRendererK b) =>
    a ->                                    -- _obj
    b ->                                    -- cell
    Bool ->                                 -- expand
    m ()
treeViewColumnPackEnd _obj cell expand = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let cell' = unsafeManagedPtrCastPtr cell
    let expand' = (fromIntegral . fromEnum) expand
    gtk_tree_view_column_pack_end _obj' cell' expand'
    touchManagedPtr _obj
    touchManagedPtr cell
    return ()

-- method TreeViewColumn::pack_start
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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 = "expand", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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 = "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_column_pack_start" gtk_tree_view_column_pack_start :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell : TInterface "Gtk" "CellRenderer"
    CInt ->                                 -- expand : TBasicType TBoolean
    IO ()


treeViewColumnPackStart ::
    (MonadIO m, TreeViewColumnK a, CellRendererK b) =>
    a ->                                    -- _obj
    b ->                                    -- cell
    Bool ->                                 -- expand
    m ()
treeViewColumnPackStart _obj cell expand = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let cell' = unsafeManagedPtrCastPtr cell
    let expand' = (fromIntegral . fromEnum) expand
    gtk_tree_view_column_pack_start _obj' cell' expand'
    touchManagedPtr _obj
    touchManagedPtr cell
    return ()

-- method TreeViewColumn::queue_resize
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", 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_column_queue_resize" gtk_tree_view_column_queue_resize :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    IO ()


treeViewColumnQueueResize ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    m ()
treeViewColumnQueueResize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_queue_resize _obj'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_alignment
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "xalign", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "xalign", 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_column_set_alignment" gtk_tree_view_column_set_alignment :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    CFloat ->                               -- xalign : TBasicType TFloat
    IO ()


treeViewColumnSetAlignment ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Float ->                                -- xalign
    m ()
treeViewColumnSetAlignment _obj xalign = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let xalign' = realToFrac xalign
    gtk_tree_view_column_set_alignment _obj' xalign'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_cell_data_func
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", 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 = True, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "func_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cell_renderer", 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 = True, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_column_set_cell_data_func" gtk_tree_view_column_set_cell_data_func :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr CellRenderer ->                     -- cell_renderer : TInterface "Gtk" "CellRenderer"
    FunPtr TreeCellDataFuncC ->             -- func : TInterface "Gtk" "TreeCellDataFunc"
    Ptr () ->                               -- func_data : TBasicType TVoid
    FunPtr GLib.DestroyNotifyC ->           -- destroy : TInterface "GLib" "DestroyNotify"
    IO ()


treeViewColumnSetCellDataFunc ::
    (MonadIO m, TreeViewColumnK a, CellRendererK b) =>
    a ->                                    -- _obj
    b ->                                    -- cell_renderer
    Maybe (TreeCellDataFunc) ->             -- func
    m ()
treeViewColumnSetCellDataFunc _obj cell_renderer func = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let cell_renderer' = unsafeManagedPtrCastPtr cell_renderer
    maybeFunc <- case func of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jFunc -> do
            jFunc' <- mkTreeCellDataFunc (treeCellDataFuncWrapper Nothing jFunc)
            return jFunc'
    let func_data = castFunPtrToPtr maybeFunc
    let destroy = safeFreeFunPtrPtr
    gtk_tree_view_column_set_cell_data_func _obj' cell_renderer' maybeFunc func_data destroy
    touchManagedPtr _obj
    touchManagedPtr cell_renderer
    return ()

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


treeViewColumnSetClickable ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- clickable
    m ()
treeViewColumnSetClickable _obj clickable = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let clickable' = (fromIntegral . fromEnum) clickable
    gtk_tree_view_column_set_clickable _obj' clickable'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_expand
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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" "TreeViewColumn", 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_column_set_expand" gtk_tree_view_column_set_expand :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    CInt ->                                 -- expand : TBasicType TBoolean
    IO ()


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

-- method TreeViewColumn::set_fixed_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fixed_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fixed_width", 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_column_set_fixed_width" gtk_tree_view_column_set_fixed_width :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Int32 ->                                -- fixed_width : TBasicType TInt32
    IO ()


treeViewColumnSetFixedWidth ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- fixed_width
    m ()
treeViewColumnSetFixedWidth _obj fixed_width = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_set_fixed_width _obj' fixed_width
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_max_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_width", 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_column_set_max_width" gtk_tree_view_column_set_max_width :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Int32 ->                                -- max_width : TBasicType TInt32
    IO ()


treeViewColumnSetMaxWidth ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- max_width
    m ()
treeViewColumnSetMaxWidth _obj max_width = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_set_max_width _obj' max_width
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_min_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "min_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "min_width", 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_column_set_min_width" gtk_tree_view_column_set_min_width :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Int32 ->                                -- min_width : TBasicType TInt32
    IO ()


treeViewColumnSetMinWidth ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- min_width
    m ()
treeViewColumnSetMinWidth _obj min_width = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_set_min_width _obj' min_width
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_reorderable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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" "TreeViewColumn", 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_column_set_reorderable" gtk_tree_view_column_set_reorderable :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    CInt ->                                 -- reorderable : TBasicType TBoolean
    IO ()


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

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


treeViewColumnSetResizable ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- resizable
    m ()
treeViewColumnSetResizable _obj resizable = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let resizable' = (fromIntegral . fromEnum) resizable
    gtk_tree_view_column_set_resizable _obj' resizable'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_sizing
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gtk" "TreeViewColumnSizing", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gtk" "TreeViewColumnSizing", 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_column_set_sizing" gtk_tree_view_column_set_sizing :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    CUInt ->                                -- type : TInterface "Gtk" "TreeViewColumnSizing"
    IO ()


treeViewColumnSetSizing ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    TreeViewColumnSizing ->                 -- type
    m ()
treeViewColumnSetSizing _obj type_ = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let type_' = (fromIntegral . fromEnum) type_
    gtk_tree_view_column_set_sizing _obj' type_'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_sort_column_id
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sort_column_id", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sort_column_id", 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_column_set_sort_column_id" gtk_tree_view_column_set_sort_column_id :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Int32 ->                                -- sort_column_id : TBasicType TInt32
    IO ()


treeViewColumnSetSortColumnId ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- sort_column_id
    m ()
treeViewColumnSetSortColumnId _obj sort_column_id = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_set_sort_column_id _obj' sort_column_id
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_sort_indicator
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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" "TreeViewColumn", 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_column_set_sort_indicator" gtk_tree_view_column_set_sort_indicator :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    CInt ->                                 -- setting : TBasicType TBoolean
    IO ()


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

-- method TreeViewColumn::set_sort_order
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "order", argType = TInterface "Gtk" "SortType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "order", argType = TInterface "Gtk" "SortType", 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_column_set_sort_order" gtk_tree_view_column_set_sort_order :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    CUInt ->                                -- order : TInterface "Gtk" "SortType"
    IO ()


treeViewColumnSetSortOrder ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    SortType ->                             -- order
    m ()
treeViewColumnSetSortOrder _obj order = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let order' = (fromIntegral . fromEnum) order
    gtk_tree_view_column_set_sort_order _obj' order'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_spacing
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spacing", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spacing", 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_column_set_spacing" gtk_tree_view_column_set_spacing :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Int32 ->                                -- spacing : TBasicType TInt32
    IO ()


treeViewColumnSetSpacing ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- spacing
    m ()
treeViewColumnSetSpacing _obj spacing = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gtk_tree_view_column_set_spacing _obj' spacing
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_title
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", 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}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gtk_tree_view_column_set_title" gtk_tree_view_column_set_title :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    CString ->                              -- title : TBasicType TUTF8
    IO ()


treeViewColumnSetTitle ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- title
    m ()
treeViewColumnSetTitle _obj title = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    title' <- textToCString title
    gtk_tree_view_column_set_title _obj' title'
    touchManagedPtr _obj
    freeMem title'
    return ()

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


treeViewColumnSetVisible ::
    (MonadIO m, TreeViewColumnK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- visible
    m ()
treeViewColumnSetVisible _obj visible = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let visible' = (fromIntegral . fromEnum) visible
    gtk_tree_view_column_set_visible _obj' visible'
    touchManagedPtr _obj
    return ()

-- method TreeViewColumn::set_widget
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "widget", argType = TInterface "Gtk" "Widget", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gtk" "TreeViewColumn", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "widget", argType = TInterface "Gtk" "Widget", 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_column_set_widget" gtk_tree_view_column_set_widget :: 
    Ptr TreeViewColumn ->                   -- _obj : TInterface "Gtk" "TreeViewColumn"
    Ptr Widget ->                           -- widget : TInterface "Gtk" "Widget"
    IO ()


treeViewColumnSetWidget ::
    (MonadIO m, TreeViewColumnK a, WidgetK b) =>
    a ->                                    -- _obj
    Maybe (b) ->                            -- widget
    m ()
treeViewColumnSetWidget _obj widget = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeWidget <- case widget of
        Nothing -> return nullPtr
        Just jWidget -> do
            let jWidget' = unsafeManagedPtrCastPtr jWidget
            return jWidget'
    gtk_tree_view_column_set_widget _obj' maybeWidget
    touchManagedPtr _obj
    whenJust widget touchManagedPtr
    return ()