    {-# LINE 2 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) TreeViewColumn TreeView
    --
    -- Author : Axel Simon
    --
    -- Created: 9 May 2001
    --
    -- Copyright (C) 2001-2005 Axel Simon
    --
    -- This library is free software; you can redistribute it and/or
    -- modify it under the terms of the GNU Lesser General Public
    -- License as published by the Free Software Foundation; either
    -- version 2.1 of the License, or (at your option) any later version.
    --
    -- This library is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    -- Lesser General Public License for more details.
    --
    -- |
    -- Maintainer : gtk2hs-users@lists.sourceforge.net
    -- Stability : provisional
    -- Portability : portable (depends on GHC)
    --
    -- A visible column in a 'TreeView' widget
    --
    module Graphics.UI.Gtk.ModelView.TreeViewColumn (
    -- * Detail
    --
    -- | The 'TreeViewColumn' object represents a visible column in a 'TreeView'
    -- widget. It allows to set properties of the column header, and functions as a
    -- holding pen for the cell renderers which determine how the data in the
    -- column is displayed.
    --

    -- * Class Hierarchy
    -- |
    -- @
    -- | 'GObject'
    -- | +----'Object'
    -- | +----TreeViewColumn
    -- @

    -- * Types
      TreeViewColumn,
      TreeViewColumnClass,
      castToTreeViewColumn, gTypeTreeViewColumn,
      toTreeViewColumn,

    -- * Constructors
      treeViewColumnNew,

    -- * Methods
      treeViewColumnPackStart,
      treeViewColumnPackEnd,
      treeViewColumnClear,

      treeViewColumnSetSpacing,
      treeViewColumnGetSpacing,
      treeViewColumnSetVisible,
      treeViewColumnGetVisible,
      treeViewColumnSetResizable,
      treeViewColumnGetResizable,
      TreeViewColumnSizing(..),
      treeViewColumnSetSizing,
      treeViewColumnGetSizing,
      treeViewColumnGetWidth,
      treeViewColumnSetFixedWidth,
      treeViewColumnGetFixedWidth,
      treeViewColumnSetMinWidth,
      treeViewColumnGetMinWidth,
      treeViewColumnSetMaxWidth,
      treeViewColumnGetMaxWidth,
      treeViewColumnClicked,
      treeViewColumnSetTitle,
      treeViewColumnGetTitle,
      treeViewColumnSetClickable,
      treeViewColumnGetClickable,
      treeViewColumnSetWidget,
      treeViewColumnGetWidget,
      treeViewColumnSetAlignment,
      treeViewColumnGetAlignment,
      treeViewColumnSetReorderable,
      treeViewColumnGetReorderable,
      treeViewColumnSetSortColumnId,
      treeViewColumnGetSortColumnId,
      treeViewColumnSetSortIndicator,
      treeViewColumnGetSortIndicator,
      treeViewColumnSetSortOrder,
      treeViewColumnGetSortOrder,
      SortType(..),

      treeViewColumnSetExpand,
      treeViewColumnGetExpand,

      treeViewColumnCellIsVisible,

      treeViewColumnFocusCell,

      treeViewColumnQueueResize,

    -- * Attributes
      treeViewColumnVisible,
      treeViewColumnResizable,
      treeViewColumnWidth,
      treeViewColumnSpacing,
      treeViewColumnSizing,
      treeViewColumnFixedWidth,
      treeViewColumnMinWidth,
      treeViewColumnMaxWidth,
      treeViewColumnTitle,
      treeViewColumnExpand,
      treeViewColumnClickable,
      treeViewColumnWidget,
      treeViewColumnAlignment,
      treeViewColumnReorderable,
      treeViewColumnSortIndicator,
      treeViewColumnSortOrder,
      treeViewColumnSortColumnId,

    -- * Signals
      onColClicked,
      afterColClicked
      ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.UTFString

    import System.Glib.Attributes
    import System.Glib.Properties
    import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
    import Graphics.UI.Gtk.Types
    {-# LINE 142 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
    import Graphics.UI.Gtk.Signals
    {-# LINE 143 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
    import Graphics.UI.Gtk.General.Enums (TreeViewColumnSizing(..),
                                                     SortType(..))
    import Graphics.UI.Gtk.General.Structs (SortColumnId)
    import Graphics.UI.Gtk.ModelView.TreeModel ()

    {-# LINE 149 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}

    --------------------
    -- Constructors

    -- | Generate a new TreeViewColumn widget.
    --
    treeViewColumnNew :: IO TreeViewColumn
    treeViewColumnNew :: IO TreeViewColumn
    treeViewColumnNew = (ForeignPtr TreeViewColumn -> TreeViewColumn,
     FinalizerPtr TreeViewColumn)
    -> IO (Ptr TreeViewColumn) -> IO TreeViewColumn
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr TreeViewColumn -> TreeViewColumn,
     FinalizerPtr TreeViewColumn)
    forall {a}.
    (ForeignPtr TreeViewColumn -> TreeViewColumn, FinalizerPtr a)
    mkTreeViewColumn
      IO (Ptr TreeViewColumn)
    gtk_tree_view_column_new
    {-# LINE 158 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}

    --------------------
    -- Methods

    -- | Add a cell renderer at the beginning of a column.
    --
    -- * Excess space is divided equally among all renderers which have
    -- @expand@ set to True.
    --
    treeViewColumnPackStart :: CellRendererClass cell => TreeViewColumn
     -> cell
     -> Bool
     -> IO ()
    treeViewColumnPackStart :: forall cell.
    CellRendererClass cell =>
    TreeViewColumn -> cell -> Bool -> IO ()
    treeViewColumnPackStart TreeViewColumn
    self cell
    cell Bool
    expand =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) (CellRenderer ForeignPtr CellRenderer
    arg2) CInt
    arg3 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->ForeignPtr CellRenderer -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CellRenderer
    arg2 ((Ptr CellRenderer -> IO ()) -> IO ())
    -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CellRenderer
    argPtr2 ->Ptr TreeViewColumn -> Ptr CellRenderer -> CInt -> IO ()
    gtk_tree_view_column_pack_start Ptr TreeViewColumn
    argPtr1 Ptr CellRenderer
    argPtr2 CInt
    arg3)
    {-# LINE 174 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (cell -> CellRenderer
    forall o. CellRendererClass o => o -> CellRenderer
    toCellRenderer cell
    cell)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    expand)

    -- | Add a cell renderer at the end of a column.
    --
    -- * Excess space is divided equally among all renderers which have
    -- @expand@ set to True.
    --
    treeViewColumnPackEnd :: CellRendererClass cell => TreeViewColumn
     -> cell
     -> Bool
     -> IO ()
    treeViewColumnPackEnd :: forall cell.
    CellRendererClass cell =>
    TreeViewColumn -> cell -> Bool -> IO ()
    treeViewColumnPackEnd TreeViewColumn
    self cell
    cell Bool
    expand =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) (CellRenderer ForeignPtr CellRenderer
    arg2) CInt
    arg3 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->ForeignPtr CellRenderer -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CellRenderer
    arg2 ((Ptr CellRenderer -> IO ()) -> IO ())
    -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CellRenderer
    argPtr2 ->Ptr TreeViewColumn -> Ptr CellRenderer -> CInt -> IO ()
    gtk_tree_view_column_pack_end Ptr TreeViewColumn
    argPtr1 Ptr CellRenderer
    argPtr2 CInt
    arg3)
    {-# LINE 189 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (cell -> CellRenderer
    forall o. CellRendererClass o => o -> CellRenderer
    toCellRenderer cell
    cell)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    expand)

    -- | Remove the associations of attributes to a store for all 'CellRenderer's.
    --
    treeViewColumnClear :: TreeViewColumn -> IO ()
    treeViewColumnClear :: TreeViewColumn -> IO ()
    treeViewColumnClear TreeViewColumn
    self =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO ()
    gtk_tree_view_column_clear Ptr TreeViewColumn
    argPtr1)
    {-# LINE 198 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
    {-# LINE 212 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
    -- | Set the number of pixels between two cell renderers.
    --
    treeViewColumnSetSpacing :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetSpacing :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetSpacing TreeViewColumn
    self Int
    spacing =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_spacing Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 217 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    spacing)

    -- | Get the number of pixels between two cell renderers.
    --
    treeViewColumnGetSpacing :: TreeViewColumn -> IO Int
    treeViewColumnGetSpacing :: TreeViewColumn -> IO Int
    treeViewColumnGetSpacing TreeViewColumn
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_spacing Ptr TreeViewColumn
    argPtr1)
    {-# LINE 227 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set the visibility of a given column.
    --
    treeViewColumnSetVisible :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetVisible :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetVisible TreeViewColumn
    self Bool
    visible =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_visible Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 234 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    visible)

    -- | Get the visibility of a given column.
    --
    treeViewColumnGetVisible :: TreeViewColumn -> IO Bool
    treeViewColumnGetVisible :: TreeViewColumn -> IO Bool
    treeViewColumnGetVisible TreeViewColumn
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_visible Ptr TreeViewColumn
    argPtr1)
    {-# LINE 243 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set if a given column is resizable by the user.
    --
    treeViewColumnSetResizable :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetResizable :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetResizable TreeViewColumn
    self Bool
    resizable =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_resizable Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 250 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    resizable)

    -- | Get if a given column is resizable by the user.
    --
    treeViewColumnGetResizable :: TreeViewColumn -> IO Bool
    treeViewColumnGetResizable :: TreeViewColumn -> IO Bool
    treeViewColumnGetResizable TreeViewColumn
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_resizable Ptr TreeViewColumn
    argPtr1)
    {-# LINE 259 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set whether the column can be resized.
    --
    treeViewColumnSetSizing :: TreeViewColumn
     -> TreeViewColumnSizing
     -> IO ()
    treeViewColumnSetSizing :: TreeViewColumn -> TreeViewColumnSizing -> IO ()
    treeViewColumnSetSizing TreeViewColumn
    self TreeViewColumnSizing
    type_ =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_sizing Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 268 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt)
    -> (TreeViewColumnSizing -> Int) -> TreeViewColumnSizing -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . TreeViewColumnSizing -> Int
    forall a. Enum a => a -> Int
    fromEnum) TreeViewColumnSizing
    type_)

    -- | Return the resizing type of the column.
    --
    treeViewColumnGetSizing :: TreeViewColumn
     -> IO TreeViewColumnSizing
    treeViewColumnGetSizing :: TreeViewColumn -> IO TreeViewColumnSizing
    treeViewColumnGetSizing TreeViewColumn
    self =
      (CInt -> TreeViewColumnSizing)
    -> IO CInt -> IO TreeViewColumnSizing
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> TreeViewColumnSizing
    forall a. Enum a => Int -> a
    toEnum (Int -> TreeViewColumnSizing)
    -> (CInt -> Int) -> CInt -> TreeViewColumnSizing
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO TreeViewColumnSizing)
    -> IO CInt -> IO TreeViewColumnSizing
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_sizing Ptr TreeViewColumn
    argPtr1)
    {-# LINE 278 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Query the current width of the column.
    --
    treeViewColumnGetWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetWidth TreeViewColumn
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_width Ptr TreeViewColumn
    argPtr1)
    {-# LINE 286 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set the width of the column.
    --
    -- * This is meaningful only if the sizing type is 'TreeViewColumnFixed'.
    --
    treeViewColumnSetFixedWidth :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetFixedWidth :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetFixedWidth TreeViewColumn
    self Int
    fixedWidth =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_fixed_width Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 295 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    fixedWidth)

    -- | Gets the fixed width of the column.
    --
    -- * This is meaningful only if the sizing type is 'TreeViewColumnFixed'.
    --
    -- * This value is only meaning may not be the actual width of the column on the
    -- screen, just what is requested.
    --
    treeViewColumnGetFixedWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetFixedWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetFixedWidth TreeViewColumn
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_fixed_width Ptr TreeViewColumn
    argPtr1)
    {-# LINE 309 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set minimum width of the column.
    --
    treeViewColumnSetMinWidth :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetMinWidth :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetMinWidth TreeViewColumn
    self Int
    minWidth =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_min_width Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 316 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    minWidth)

    -- | Get the minimum width of a column. Returns -1 if this width was not set.
    --
    treeViewColumnGetMinWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetMinWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetMinWidth TreeViewColumn
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_min_width Ptr TreeViewColumn
    argPtr1)
    {-# LINE 325 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set maximum width of the column.
    --
    treeViewColumnSetMaxWidth :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetMaxWidth :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetMaxWidth TreeViewColumn
    self Int
    maxWidth =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_max_width Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 332 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    maxWidth)

    -- | Get the maximum width of a column. Returns -1 if this width was not set.
    --
    treeViewColumnGetMaxWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetMaxWidth :: TreeViewColumn -> IO Int
    treeViewColumnGetMaxWidth TreeViewColumn
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_max_width Ptr TreeViewColumn
    argPtr1)
    {-# LINE 341 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Emit the @clicked@ signal on the column.
    --
    treeViewColumnClicked :: TreeViewColumn -> IO ()
    treeViewColumnClicked :: TreeViewColumn -> IO ()
    treeViewColumnClicked TreeViewColumn
    self =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO ()
    gtk_tree_view_column_clicked Ptr TreeViewColumn
    argPtr1)
    {-# LINE 348 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set the widget's title if a custom widget has not been set.
    --
    treeViewColumnSetTitle :: GlibString string => TreeViewColumn -> string -> IO ()
    treeViewColumnSetTitle :: forall string.
    GlibString string =>
    TreeViewColumn -> string -> IO ()
    treeViewColumnSetTitle TreeViewColumn
    self string
    title =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    title ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    titlePtr ->
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CString
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CString -> IO ()
    gtk_tree_view_column_set_title Ptr TreeViewColumn
    argPtr1 CString
    arg2)
    {-# LINE 356 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        CString
    titlePtr

    -- | Get the widget's title.
    --
    treeViewColumnGetTitle :: GlibString string => TreeViewColumn -> IO (Maybe string)
    treeViewColumnGetTitle :: forall string.
    GlibString string =>
    TreeViewColumn -> IO (Maybe string)
    treeViewColumnGetTitle TreeViewColumn
    self =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CString) -> IO CString)
    -> (Ptr TreeViewColumn -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CString
    gtk_tree_view_column_get_title Ptr TreeViewColumn
    argPtr1)
    {-# LINE 364 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
      IO CString -> (CString -> IO (Maybe string)) -> IO (Maybe string)
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (CString -> IO string) -> CString -> IO (Maybe string)
    forall a b. (Ptr a -> IO b) -> Ptr a -> IO (Maybe b)
    maybePeek CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Set if the column should be sensitive to mouse clicks.
    --
    treeViewColumnSetClickable :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetClickable :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetClickable TreeViewColumn
    self Bool
    clickable =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_clickable Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 372 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    clickable)

    -- | Returns True if the user can click on the header for the column.
    --
    treeViewColumnGetClickable :: TreeViewColumn -> IO Bool
    treeViewColumnGetClickable :: TreeViewColumn -> IO Bool
    treeViewColumnGetClickable TreeViewColumn
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_clickable Ptr TreeViewColumn
    argPtr1)
    {-# LINE 381 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set the column's title to this widget.
    --
    treeViewColumnSetWidget :: WidgetClass widget => TreeViewColumn
     -> Maybe widget
     -> IO ()
    treeViewColumnSetWidget :: forall widget.
    WidgetClass widget =>
    TreeViewColumn -> Maybe widget -> IO ()
    treeViewColumnSetWidget TreeViewColumn
    self Maybe widget
    widget =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) (Widget ForeignPtr Widget
    arg2) -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->ForeignPtr Widget -> (Ptr Widget -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr Widget
    arg2 ((Ptr Widget -> IO ()) -> IO ()) -> (Ptr Widget -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr Widget
    argPtr2 ->Ptr TreeViewColumn -> Ptr Widget -> IO ()
    gtk_tree_view_column_set_widget Ptr TreeViewColumn
    argPtr1 Ptr Widget
    argPtr2)
    {-# LINE 390 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Widget -> (widget -> Widget) -> Maybe widget -> Widget
    forall b a. b -> (a -> b) -> Maybe a -> b
    maybe (ForeignPtr Widget -> Widget
    Widget ForeignPtr Widget
    forall a. ForeignPtr a
    nullForeignPtr) widget -> Widget
    forall o. WidgetClass o => o -> Widget
    toWidget Maybe widget
    widget)

    -- | Retrieve the widget responsible for
    -- showing the column title. In case only a text title was set this will be a
    -- 'Alignment' widget with a 'Label' inside.
    --
    treeViewColumnGetWidget :: TreeViewColumn
     -> IO (Maybe Widget) -- ^ returns the 'Widget' in the column header, or 'Nothing'
    treeViewColumnGetWidget :: TreeViewColumn -> IO (Maybe Widget)
    treeViewColumnGetWidget TreeViewColumn
    self = do
      widgetPtr <- (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO (Ptr Widget)) -> IO (Ptr Widget))
    -> (Ptr TreeViewColumn -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO (Ptr Widget)
    gtk_tree_view_column_get_widget Ptr TreeViewColumn
    argPtr1) TreeViewColumn
    self
      if widgetPtr == nullPtr
         then return Nothing
         else liftM Just $ makeNewObject mkWidget (return widgetPtr)

    -- | Sets the alignment of the title or custom widget inside the column
    -- header. The alignment determines its location inside the button -- 0.0 for
    -- left, 0.5 for center, 1.0 for right.
    --
    treeViewColumnSetAlignment :: TreeViewColumn
     -> Float -- ^ @xalign@ - The alignment, which is between [0.0 and
                       -- 1.0] inclusive.
     -> IO ()
    treeViewColumnSetAlignment :: TreeViewColumn -> Float -> IO ()
    treeViewColumnSetAlignment TreeViewColumn
    self Float
    xalign =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CFloat
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CFloat -> IO ()
    gtk_tree_view_column_set_alignment Ptr TreeViewColumn
    argPtr1 CFloat
    arg2)
    {-# LINE 415 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Float -> CFloat
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Float
    xalign)

    -- | Returns the current x alignment of the tree column. This value can range
    -- between 0.0 and 1.0.
    --
    treeViewColumnGetAlignment :: TreeViewColumn -> IO Float
    treeViewColumnGetAlignment :: TreeViewColumn -> IO Float
    treeViewColumnGetAlignment TreeViewColumn
    self =
      (CFloat -> Float) -> IO CFloat -> IO Float
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CFloat -> Float
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CFloat -> IO Float) -> IO CFloat -> IO Float
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CFloat) -> IO CFloat
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CFloat) -> IO CFloat)
    -> (Ptr TreeViewColumn -> IO CFloat) -> IO CFloat
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CFloat
    gtk_tree_view_column_get_alignment Ptr TreeViewColumn
    argPtr1)
    {-# LINE 425 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set if the column can be reordered by the end user dragging the header.
    --
    treeViewColumnSetReorderable :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetReorderable :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetReorderable TreeViewColumn
    self Bool
    reorderable =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_reorderable Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 432 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    reorderable)

    -- | Returns whether the column can be reordered by the user.
    --
    treeViewColumnGetReorderable :: TreeViewColumn -> IO Bool
    treeViewColumnGetReorderable :: TreeViewColumn -> IO Bool
    treeViewColumnGetReorderable TreeViewColumn
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_reorderable Ptr TreeViewColumn
    argPtr1)
    {-# LINE 441 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set the column by which to sort.
    --
    -- * Sets the logical @columnId@ that this column sorts on when
    -- this column is selected for sorting. The selected column's header
    -- will be clickable after this call. Logical refers to the
    -- 'Graphics.UI.Gtk.ModelView.TreeSortable.SortColumnId' for which
    -- a comparison function was set.
    --
    treeViewColumnSetSortColumnId :: TreeViewColumn -> SortColumnId -> IO ()
    treeViewColumnSetSortColumnId :: TreeViewColumn -> Int -> IO ()
    treeViewColumnSetSortColumnId TreeViewColumn
    self Int
    sortColumnId =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_sort_column_id Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 454 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    sortColumnId)

    -- | Get the column by which to sort.
    --
    -- * Retrieves the logical @columnId@ that the model sorts on when this column
    -- is selected for sorting.
    --
    -- * Returns
    -- 'Graphics.UI.Gtk.ModelView.TreeSortable.treeSortableDefaultSortColumnId'
    -- if this tree view column has no
    -- 'Graphics.UI.Gtk.ModelView.TreeSortable.SortColumnId' associated with it.
    --
    treeViewColumnGetSortColumnId :: TreeViewColumn -> IO SortColumnId
    treeViewColumnGetSortColumnId :: TreeViewColumn -> IO Int
    treeViewColumnGetSortColumnId TreeViewColumn
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_sort_column_id Ptr TreeViewColumn
    argPtr1)
    {-# LINE 471 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set if a given column has sorting arrows in its heading.
    --
    treeViewColumnSetSortIndicator :: TreeViewColumn
     -> Bool -> IO ()
    treeViewColumnSetSortIndicator :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetSortIndicator TreeViewColumn
    self Bool
    setting =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_sort_indicator Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 479 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    setting)

    -- | Query if a given column has sorting arrows in its heading.
    --
    treeViewColumnGetSortIndicator :: TreeViewColumn -> IO Bool
    treeViewColumnGetSortIndicator :: TreeViewColumn -> IO Bool
    treeViewColumnGetSortIndicator TreeViewColumn
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_sort_indicator Ptr TreeViewColumn
    argPtr1)
    {-# LINE 488 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- | Set if a given column is sorted in ascending or descending order.
    --
    -- * In order for sorting to work, it is necessary to either use automatic
    -- sorting via 'treeViewColumnSetSortColumnId' or to use a
    -- user defined sorting on the elements in a 'TreeModel'.
    --
    treeViewColumnSetSortOrder :: TreeViewColumn
     -> SortType -> IO ()
    treeViewColumnSetSortOrder :: TreeViewColumn -> SortType -> IO ()
    treeViewColumnSetSortOrder TreeViewColumn
    self SortType
    order =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_sort_order Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 500 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (SortType -> Int) -> SortType -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . SortType -> Int
    forall a. Enum a => a -> Int
    fromEnum) SortType
    order)

    -- | Query if a given column is sorted in ascending or descending order.
    --
    treeViewColumnGetSortOrder :: TreeViewColumn -> IO SortType
    treeViewColumnGetSortOrder :: TreeViewColumn -> IO SortType
    treeViewColumnGetSortOrder TreeViewColumn
    self =
      (CInt -> SortType) -> IO CInt -> IO SortType
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> SortType
    forall a. Enum a => Int -> a
    toEnum (Int -> SortType) -> (CInt -> Int) -> CInt -> SortType
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO SortType) -> IO CInt -> IO SortType
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_sort_order Ptr TreeViewColumn
    argPtr1)
    {-# LINE 509 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- %hash c:7808 d:942b
    -- | Sets the column to take available extra space. This space is shared
    -- equally amongst all columns that have the expand set to @True@. If no column
    -- has this option set, then the last column gets all extra space. By default,
    -- every column is created with this @False@.
    --
    -- * Available since Gtk+ version 2.4
    --
    treeViewColumnSetExpand :: TreeViewColumn
     -> Bool -- ^ @expand@ - @True@ if the column should take available extra
             -- space, @False@ if not
     -> IO ()
    treeViewColumnSetExpand :: TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetExpand TreeViewColumn
    self Bool
    expand =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) CInt
    arg2 -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> CInt -> IO ()
    gtk_tree_view_column_set_expand Ptr TreeViewColumn
    argPtr1 CInt
    arg2)
    {-# LINE 526 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    expand)

    -- %hash c:ee41 d:f16b
    -- | Return @True@ if the column expands to take any available space.
    --
    -- * Available since Gtk+ version 2.4
    --
    treeViewColumnGetExpand :: TreeViewColumn
     -> IO Bool -- ^ returns @True@, if the column expands
    treeViewColumnGetExpand :: TreeViewColumn -> IO Bool
    treeViewColumnGetExpand TreeViewColumn
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_get_expand Ptr TreeViewColumn
    argPtr1)
    {-# LINE 539 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- %hash c:77e0 d:e1c7
    -- | Returns @True@ if any of the cells packed into the @treeColumn@ are
    -- visible. For this to be meaningful, you must first initialize the cells with
    -- 'treeViewColumnCellSetCellData'
    --
    treeViewColumnCellIsVisible :: TreeViewColumn
     -> IO Bool -- ^ returns @True@, if any of the cells packed into the
                -- @treeColumn@ are currently visible
    treeViewColumnCellIsVisible :: TreeViewColumn -> IO Bool
    treeViewColumnCellIsVisible TreeViewColumn
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO CInt) -> IO CInt)
    -> (Ptr TreeViewColumn -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO CInt
    gtk_tree_view_column_cell_is_visible Ptr TreeViewColumn
    argPtr1)
    {-# LINE 553 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    -- %hash c:a202 d:1401
    -- | Sets the current keyboard focus to be at @cell@, if the column contains 2
    -- or more editable and activatable cells.
    --
    -- * Available since Gtk+ version 2.2
    --
    treeViewColumnFocusCell :: CellRendererClass cell => TreeViewColumn
     -> cell -- ^ @cell@ - A 'CellRenderer'
     -> IO ()
    treeViewColumnFocusCell :: forall cell.
    CellRendererClass cell =>
    TreeViewColumn -> cell -> IO ()
    treeViewColumnFocusCell TreeViewColumn
    self cell
    cell =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) (CellRenderer ForeignPtr CellRenderer
    arg2) -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->ForeignPtr CellRenderer -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CellRenderer
    arg2 ((Ptr CellRenderer -> IO ()) -> IO ())
    -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CellRenderer
    argPtr2 ->Ptr TreeViewColumn -> Ptr CellRenderer -> IO ()
    gtk_tree_view_column_focus_cell Ptr TreeViewColumn
    argPtr1 Ptr CellRenderer
    argPtr2)
    {-# LINE 567 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self
        (cell -> CellRenderer
    forall o. CellRendererClass o => o -> CellRenderer
    toCellRenderer cell
    cell)

    -- %hash c:4420 d:bfde
    -- | Flags the column, and the cell renderers added to this column, to have
    -- their sizes renegotiated.
    --
    -- * Available since Gtk+ version 2.8
    --
    treeViewColumnQueueResize :: TreeViewColumn -> IO ()
    treeViewColumnQueueResize :: TreeViewColumn -> IO ()
    treeViewColumnQueueResize TreeViewColumn
    self =
      (\(TreeViewColumn ForeignPtr TreeViewColumn
    arg1) -> ForeignPtr TreeViewColumn -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeViewColumn
    arg1 ((Ptr TreeViewColumn -> IO ()) -> IO ())
    -> (Ptr TreeViewColumn -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeViewColumn
    argPtr1 ->Ptr TreeViewColumn -> IO ()
    gtk_tree_view_column_queue_resize Ptr TreeViewColumn
    argPtr1)
    {-# LINE 580 "./Graphics/UI/Gtk/ModelView/TreeViewColumn.chs" #-}
        self

    --------------------
    -- Attributes

    -- | Whether to display the column.
    --
    -- Default value: @True@
    --
    treeViewColumnVisible :: Attr TreeViewColumn Bool
    treeViewColumnVisible :: Attr TreeViewColumn Bool
    treeViewColumnVisible = (TreeViewColumn -> IO Bool)
    -> (TreeViewColumn -> Bool -> IO ()) -> Attr TreeViewColumn Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Bool
    treeViewColumnGetVisible
      TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetVisible

    -- | Column is user-resizable.
    --
    -- Default value: @False@
    --
    treeViewColumnResizable :: Attr TreeViewColumn Bool
    treeViewColumnResizable :: Attr TreeViewColumn Bool
    treeViewColumnResizable = (TreeViewColumn -> IO Bool)
    -> (TreeViewColumn -> Bool -> IO ()) -> Attr TreeViewColumn Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Bool
    treeViewColumnGetResizable
      TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetResizable

    -- | Current width of the column.
    --
    -- Allowed values: >= 0
    --
    -- Default value: 0
    --
    treeViewColumnWidth :: ReadAttr TreeViewColumn Int
    treeViewColumnWidth :: ReadAttr TreeViewColumn Int
    treeViewColumnWidth = String -> ReadAttr TreeViewColumn Int
    forall gobj. GObjectClass gobj => String -> ReadAttr gobj Int
    readAttrFromIntProperty String
    "width"

    -- | Space which is inserted between cells.
    --
    -- Allowed values: >= 0
    --
    -- Default value: 0
    --
    treeViewColumnSpacing :: Attr TreeViewColumn Int
    treeViewColumnSpacing :: Attr TreeViewColumn Int
    treeViewColumnSpacing = (TreeViewColumn -> IO Int)
    -> (TreeViewColumn -> Int -> IO ()) -> Attr TreeViewColumn Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Int
    treeViewColumnGetSpacing
      TreeViewColumn -> Int -> IO ()
    treeViewColumnSetSpacing

    -- | Resize mode of the column.
    --
    -- Default value: 'TreeViewColumnGrowOnly'
    --
    treeViewColumnSizing :: Attr TreeViewColumn TreeViewColumnSizing
    treeViewColumnSizing :: Attr TreeViewColumn TreeViewColumnSizing
    treeViewColumnSizing = (TreeViewColumn -> IO TreeViewColumnSizing)
    -> (TreeViewColumn -> TreeViewColumnSizing -> IO ())
    -> Attr TreeViewColumn TreeViewColumnSizing
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO TreeViewColumnSizing
    treeViewColumnGetSizing
      TreeViewColumn -> TreeViewColumnSizing -> IO ()
    treeViewColumnSetSizing

    -- | Current fixed width of the column.
    --
    -- Allowed values: >= 1
    --
    -- Default value: 1
    --
    treeViewColumnFixedWidth :: Attr TreeViewColumn Int
    treeViewColumnFixedWidth :: Attr TreeViewColumn Int
    treeViewColumnFixedWidth = (TreeViewColumn -> IO Int)
    -> (TreeViewColumn -> Int -> IO ()) -> Attr TreeViewColumn Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Int
    treeViewColumnGetFixedWidth
      TreeViewColumn -> Int -> IO ()
    treeViewColumnSetFixedWidth

    -- | Minimum allowed width of the column.
    --
    -- Allowed values: >= -1
    --
    -- Default value: -1
    --
    treeViewColumnMinWidth :: Attr TreeViewColumn Int
    treeViewColumnMinWidth :: Attr TreeViewColumn Int
    treeViewColumnMinWidth = (TreeViewColumn -> IO Int)
    -> (TreeViewColumn -> Int -> IO ()) -> Attr TreeViewColumn Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Int
    treeViewColumnGetMinWidth
      TreeViewColumn -> Int -> IO ()
    treeViewColumnSetMinWidth

    -- | Maximum allowed width of the column.
    --
    -- Allowed values: >= -1
    --
    -- Default value: -1
    --
    treeViewColumnMaxWidth :: Attr TreeViewColumn Int
    treeViewColumnMaxWidth :: Attr TreeViewColumn Int
    treeViewColumnMaxWidth = (TreeViewColumn -> IO Int)
    -> (TreeViewColumn -> Int -> IO ()) -> Attr TreeViewColumn Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Int
    treeViewColumnGetMaxWidth
      TreeViewColumn -> Int -> IO ()
    treeViewColumnSetMaxWidth

    -- | Title to appear in column header.
    --
    -- Default value: \"\"
    --
    treeViewColumnTitle :: GlibString string => ReadWriteAttr TreeViewColumn (Maybe string) string
    treeViewColumnTitle :: forall string.
    GlibString string =>
    ReadWriteAttr TreeViewColumn (Maybe string) string
    treeViewColumnTitle = (TreeViewColumn -> IO (Maybe string))
    -> (TreeViewColumn -> string -> IO ())
    -> ReadWriteAttr TreeViewColumn (Maybe string) string
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO (Maybe string)
    forall string.
    GlibString string =>
    TreeViewColumn -> IO (Maybe string)
    treeViewColumnGetTitle
      TreeViewColumn -> string -> IO ()
    forall string.
    GlibString string =>
    TreeViewColumn -> string -> IO ()
    treeViewColumnSetTitle

    -- %hash c:800 d:eb1a
    -- | Column gets share of extra width allocated to the widget.
    --
    -- Default value: @False@
    --
    treeViewColumnExpand :: Attr TreeViewColumn Bool
    treeViewColumnExpand :: Attr TreeViewColumn Bool
    treeViewColumnExpand = String -> Attr TreeViewColumn Bool
    forall gobj. GObjectClass gobj => String -> Attr gobj Bool
    newAttrFromBoolProperty String
    "expand"

    -- | Whether the header can be clicked.
    --
    -- Default value: @False@
    --
    treeViewColumnClickable :: Attr TreeViewColumn Bool
    treeViewColumnClickable :: Attr TreeViewColumn Bool
    treeViewColumnClickable = (TreeViewColumn -> IO Bool)
    -> (TreeViewColumn -> Bool -> IO ()) -> Attr TreeViewColumn Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Bool
    treeViewColumnGetClickable
      TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetClickable

    -- | Widget to put in column header button instead of column title.
    --
    treeViewColumnWidget :: WidgetClass widget => ReadWriteAttr TreeViewColumn (Maybe Widget) (Maybe widget)
    treeViewColumnWidget :: forall widget.
    WidgetClass widget =>
    ReadWriteAttr TreeViewColumn (Maybe Widget) (Maybe widget)
    treeViewColumnWidget = (TreeViewColumn -> IO (Maybe Widget))
    -> (TreeViewColumn -> Maybe widget -> IO ())
    -> ReadWriteAttr TreeViewColumn (Maybe Widget) (Maybe widget)
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO (Maybe Widget)
    treeViewColumnGetWidget
      TreeViewColumn -> Maybe widget -> IO ()
    forall widget.
    WidgetClass widget =>
    TreeViewColumn -> Maybe widget -> IO ()
    treeViewColumnSetWidget

    -- | X Alignment of the column header text or widget.
    --
    -- Allowed values: [0,1]
    --
    -- Default value: 0
    --
    treeViewColumnAlignment :: Attr TreeViewColumn Float
    treeViewColumnAlignment :: Attr TreeViewColumn Float
    treeViewColumnAlignment = (TreeViewColumn -> IO Float)
    -> (TreeViewColumn -> Float -> IO ()) -> Attr TreeViewColumn Float
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Float
    treeViewColumnGetAlignment
      TreeViewColumn -> Float -> IO ()
    treeViewColumnSetAlignment

    -- | Whether the column can be reordered around the headers.
    --
    -- Default value: @False@
    --
    treeViewColumnReorderable :: Attr TreeViewColumn Bool
    treeViewColumnReorderable :: Attr TreeViewColumn Bool
    treeViewColumnReorderable = (TreeViewColumn -> IO Bool)
    -> (TreeViewColumn -> Bool -> IO ()) -> Attr TreeViewColumn Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Bool
    treeViewColumnGetReorderable
      TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetReorderable

    -- | Whether to show a sort indicator.
    --
    -- Default value: @False@
    --
    treeViewColumnSortIndicator :: Attr TreeViewColumn Bool
    treeViewColumnSortIndicator :: Attr TreeViewColumn Bool
    treeViewColumnSortIndicator = (TreeViewColumn -> IO Bool)
    -> (TreeViewColumn -> Bool -> IO ()) -> Attr TreeViewColumn Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Bool
    treeViewColumnGetSortIndicator
      TreeViewColumn -> Bool -> IO ()
    treeViewColumnSetSortIndicator

    -- | Sort direction the sort indicator should indicate.
    --
    -- Default value: 'SortAscending'
    --
    treeViewColumnSortOrder :: Attr TreeViewColumn SortType
    treeViewColumnSortOrder :: Attr TreeViewColumn SortType
    treeViewColumnSortOrder = (TreeViewColumn -> IO SortType)
    -> (TreeViewColumn -> SortType -> IO ())
    -> Attr TreeViewColumn SortType
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO SortType
    treeViewColumnGetSortOrder
      TreeViewColumn -> SortType -> IO ()
    treeViewColumnSetSortOrder

    -- | \'sortColumnId\' property. See 'treeViewColumnGetSortColumnId' and
    -- 'treeViewColumnSetSortColumnId'
    --
    treeViewColumnSortColumnId :: Attr TreeViewColumn SortColumnId
    treeViewColumnSortColumnId :: Attr TreeViewColumn Int
    treeViewColumnSortColumnId = (TreeViewColumn -> IO Int)
    -> (TreeViewColumn -> Int -> IO ()) -> Attr TreeViewColumn Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      TreeViewColumn -> IO Int
    treeViewColumnGetSortColumnId
      TreeViewColumn -> Int -> IO ()
    treeViewColumnSetSortColumnId

    --------------------
    -- Signals

    -- | Emitted when the header of this column has been clicked on.
    --
    onColClicked, afterColClicked :: TreeViewColumnClass self => self
     -> IO ()
     -> IO (ConnectId self)
    onColClicked :: forall self.
    TreeViewColumnClass self =>
    self -> IO () -> IO (ConnectId self)
    onColClicked = String -> Bool -> self -> IO () -> IO (ConnectId self)
    forall obj.
    GObjectClass obj =>
    String -> Bool -> obj -> IO () -> IO (ConnectId obj)
    connect_NONE__NONE String
    "clicked" Bool
    False
    afterColClicked :: forall self.
    TreeViewColumnClass self =>
    self -> IO () -> IO (ConnectId self)
    afterColClicked = String -> Bool -> self -> IO () -> IO (ConnectId self)
    forall obj.
    GObjectClass obj =>
    String -> Bool -> obj -> IO () -> IO (ConnectId obj)
    connect_NONE__NONE String
    "clicked" Bool
    True

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

    foreign import ccall unsafe "gtk_tree_view_column_pack_start"
      gtk_tree_view_column_pack_start :: ((Ptr TreeViewColumn) -> ((Ptr CellRenderer) -> (CInt -> (IO ()))))

    foreign import ccall unsafe "gtk_tree_view_column_pack_end"
      gtk_tree_view_column_pack_end :: ((Ptr TreeViewColumn) -> ((Ptr CellRenderer) -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_tree_view_column_clear"
      gtk_tree_view_column_clear :: ((Ptr TreeViewColumn) -> (IO ()))

    foreign import ccall safe "gtk_tree_view_column_set_spacing"
      gtk_tree_view_column_set_spacing :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_spacing"
      gtk_tree_view_column_get_spacing :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_visible"
      gtk_tree_view_column_set_visible :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_visible"
      gtk_tree_view_column_get_visible :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_resizable"
      gtk_tree_view_column_set_resizable :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_resizable"
      gtk_tree_view_column_get_resizable :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_sizing"
      gtk_tree_view_column_set_sizing :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_sizing"
      gtk_tree_view_column_get_sizing :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall unsafe "gtk_tree_view_column_get_width"
      gtk_tree_view_column_get_width :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_fixed_width"
      gtk_tree_view_column_set_fixed_width :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_fixed_width"
      gtk_tree_view_column_get_fixed_width :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_min_width"
      gtk_tree_view_column_set_min_width :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_min_width"
      gtk_tree_view_column_get_min_width :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_max_width"
      gtk_tree_view_column_set_max_width :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_max_width"
      gtk_tree_view_column_get_max_width :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_clicked"
      gtk_tree_view_column_clicked :: ((Ptr TreeViewColumn) -> (IO ()))

    foreign import ccall safe "gtk_tree_view_column_set_title"
      gtk_tree_view_column_set_title :: ((Ptr TreeViewColumn) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_title"
      gtk_tree_view_column_get_title :: ((Ptr TreeViewColumn) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_tree_view_column_set_clickable"
      gtk_tree_view_column_set_clickable :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_tree_view_column_get_clickable"
      gtk_tree_view_column_get_clickable :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_widget"
      gtk_tree_view_column_set_widget :: ((Ptr TreeViewColumn) -> ((Ptr Widget) -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_widget"
      gtk_tree_view_column_get_widget :: ((Ptr TreeViewColumn) -> (IO (Ptr Widget)))

    foreign import ccall safe "gtk_tree_view_column_set_alignment"
      gtk_tree_view_column_set_alignment :: ((Ptr TreeViewColumn) -> (CFloat -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_alignment"
      gtk_tree_view_column_get_alignment :: ((Ptr TreeViewColumn) -> (IO CFloat))

    foreign import ccall safe "gtk_tree_view_column_set_reorderable"
      gtk_tree_view_column_set_reorderable :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_reorderable"
      gtk_tree_view_column_get_reorderable :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_sort_column_id"
      gtk_tree_view_column_set_sort_column_id :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_sort_column_id"
      gtk_tree_view_column_get_sort_column_id :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_sort_indicator"
      gtk_tree_view_column_set_sort_indicator :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_sort_indicator"
      gtk_tree_view_column_get_sort_indicator :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_sort_order"
      gtk_tree_view_column_set_sort_order :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall unsafe "gtk_tree_view_column_get_sort_order"
      gtk_tree_view_column_get_sort_order :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_set_expand"
      gtk_tree_view_column_set_expand :: ((Ptr TreeViewColumn) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_tree_view_column_get_expand"
      gtk_tree_view_column_get_expand :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_cell_is_visible"
      gtk_tree_view_column_cell_is_visible :: ((Ptr TreeViewColumn) -> (IO CInt))

    foreign import ccall safe "gtk_tree_view_column_focus_cell"
      gtk_tree_view_column_focus_cell :: ((Ptr TreeViewColumn) -> ((Ptr CellRenderer) -> (IO ())))

    foreign import ccall safe "gtk_tree_view_column_queue_resize"
      gtk_tree_view_column_queue_resize :: ((Ptr TreeViewColumn) -> (IO ()))