    {-# LINE 2 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) Widget IconView
    --
    -- Author : Duncan Coutts
    --
    -- Created: 25 March 2005
    --
    -- Copyright (C) 2005-2007 Duncan Coutts, 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 widget which displays a list of icons in a grid
    --
    -- * Module available since Gtk+ version 2.6
    --
    module Graphics.UI.Gtk.ModelView.IconView (
    -- * Detail
    --
    -- | 'IconView' provides an alternative view on a list model. It displays the
    -- model as a grid of icons with labels. Like 'TreeView', it allows to select
    -- one or multiple items (depending on the selection mode, see
    -- 'iconViewSetSelectionMode'). In addition to selection with the arrow keys,
    -- 'IconView' supports rubberband selection, which is controlled by dragging
    -- the pointer.

    -- * Class Hierarchy
    --
    -- |
    -- @
    -- | 'GObject'
    -- | +----'Object'
    -- | +----'Widget'
    -- | +----'Container'
    -- | +----IconView
    -- @

    -- * Types
      IconView,
      IconViewClass,
      castToIconView, gTypeIconView,
      toIconView,

    -- * Constructors
      iconViewNew,
      iconViewNewWithModel,

    -- * Methods
      iconViewSetModel,
      iconViewGetModel,
      iconViewSetTextColumn,
      iconViewGetTextColumn,
      iconViewSetMarkupColumn,
      iconViewGetMarkupColumn,
      iconViewSetPixbufColumn,
      iconViewGetPixbufColumn,
      iconViewGetPathAtPos,
      iconViewSelectedForeach,
      iconViewSetSelectionMode,
      iconViewGetSelectionMode,

      iconViewSetColumns,
      iconViewGetColumns,
      iconViewSetItemWidth,
      iconViewGetItemWidth,
      iconViewSetSpacing,
      iconViewGetSpacing,
      iconViewSetRowSpacing,
      iconViewGetRowSpacing,
      iconViewSetColumnSpacing,
      iconViewGetColumnSpacing,
      iconViewSetMargin,
      iconViewGetMargin,
      iconViewSelectPath,
      iconViewUnselectPath,
      iconViewPathIsSelected,
      iconViewGetSelectedItems,
      iconViewSelectAll,
      iconViewUnselectAll,
      iconViewItemActivated,

      iconViewGetItemAtPos,
      iconViewSetCursor,
      iconViewGetCursor,
      iconViewScrollToPath,
      iconViewGetVisibleRange,

      iconViewEnableModelDragSource,
      iconViewEnableModelDragDest,
      iconViewUnsetModelDragSource,
      iconViewUnsetModelDragDest,

      iconViewSetReorderable,
      iconViewGetReorderable,

      iconViewGetItemRow,
      iconViewGetItemColumn,

    -- * Attributes
      iconViewSelectionMode,
      iconViewTextColumn,
      iconViewMarkupColumn,
      iconViewPixbufColumn,
      iconViewModel,
      iconViewColumns,
      iconViewItemWidth,
      iconViewSpacing,
      iconViewRowSpacing,
      iconViewColumnSpacing,
      iconViewMargin,
      iconViewOrientation,

      iconViewReorderable,

      iconViewItemOrientation,

    -- * Signals
      setIconViewScrollAdjustments,
      itemActivated,
      selectionChanged

      ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.UTFString
    import System.Glib.Attributes
    import System.Glib.Properties
    import System.Glib.GList (fromGList)
    import System.Glib.Flags
    import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
    import Graphics.UI.Gtk.Gdk.Enums (DragAction(..))
    import Graphics.UI.Gtk.Gdk.Events (Modifier(..))
    import Graphics.UI.Gtk.Types
    {-# LINE 157 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
    import Graphics.UI.Gtk.Signals
    {-# LINE 158 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
    import Graphics.UI.Gtk.General.Enums (Orientation, SelectionMode)
    import Graphics.UI.Gtk.ModelView.TreeModel
    {-# LINE 160 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
    import Graphics.UI.Gtk.ModelView.Types
    {-# LINE 161 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
    import Graphics.UI.Gtk.General.DNDTypes (TargetList(..))

    {-# LINE 164 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}

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

    -- | Creates a new 'IconView' widget
    --
    iconViewNew :: IO IconView
    iconViewNew :: IO IconView
    iconViewNew =
      (ForeignPtr IconView -> IconView, FinalizerPtr IconView)
    -> IO (Ptr IconView) -> IO IconView
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr IconView -> IconView, FinalizerPtr IconView)
    forall {a}. (ForeignPtr IconView -> IconView, FinalizerPtr a)
    mkIconView (IO (Ptr IconView) -> IO IconView)
    -> IO (Ptr IconView) -> IO IconView
    forall a b. (a -> b) -> a -> b
    $
      (Ptr Widget -> Ptr IconView)
    -> IO (Ptr Widget) -> IO (Ptr IconView)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Ptr Widget -> Ptr IconView
    forall a b. Ptr a -> Ptr b
    castPtr :: Ptr Widget -> Ptr IconView) (IO (Ptr Widget) -> IO (Ptr IconView))
    -> IO (Ptr Widget) -> IO (Ptr IconView)
    forall a b. (a -> b) -> a -> b
    $
      IO (Ptr Widget)
    gtk_icon_view_new
    {-# LINE 176 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}

    -- %hash c:dbf4
    -- | Creates a new 'IconView' widget with the model @model@ and defines
    -- how to extract a string and a pixbuf from the model.
    --
    iconViewNewWithModel :: TreeModelClass model =>
        model -- ^ @model@ - The model.
     -> IO IconView
    iconViewNewWithModel :: forall model. TreeModelClass model => model -> IO IconView
    iconViewNewWithModel model
    model =
      (ForeignPtr IconView -> IconView, FinalizerPtr IconView)
    -> IO (Ptr IconView) -> IO IconView
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewObject (ForeignPtr IconView -> IconView, FinalizerPtr IconView)
    forall {a}. (ForeignPtr IconView -> IconView, FinalizerPtr a)
    mkIconView (IO (Ptr IconView) -> IO IconView)
    -> IO (Ptr IconView) -> IO IconView
    forall a b. (a -> b) -> a -> b
    $
        (Ptr Widget -> Ptr IconView)
    -> IO (Ptr Widget) -> IO (Ptr IconView)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Ptr Widget -> Ptr IconView
    forall a b. Ptr a -> Ptr b
    castPtr :: Ptr Widget -> Ptr IconView) (IO (Ptr Widget) -> IO (Ptr IconView))
    -> IO (Ptr Widget) -> IO (Ptr IconView)
    forall a b. (a -> b) -> a -> b
    $
        (\(TreeModel ForeignPtr TreeModel
    arg1) -> ForeignPtr TreeModel
    -> (Ptr TreeModel -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeModel
    arg1 ((Ptr TreeModel -> IO (Ptr Widget)) -> IO (Ptr Widget))
    -> (Ptr TreeModel -> IO (Ptr Widget)) -> IO (Ptr Widget)
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeModel
    argPtr1 ->Ptr TreeModel -> IO (Ptr Widget)
    gtk_icon_view_new_with_model Ptr TreeModel
    argPtr1)
    {-# LINE 188 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toTreeModel model)

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

    -- %hash c:5ba8 d:c5c8
    -- | Sets the model for a 'IconView'. If the @iconView@ already has a model
    -- set, it will remove it before setting the new model. If @model@ is
    -- @Nothing@, then it will unset the old model.
    --
    iconViewSetModel :: (IconViewClass self, TreeModelClass model) => self
     -> Maybe model -- ^ @model@ - The model.
     -> IO ()
    iconViewSetModel :: forall self model.
    (IconViewClass self, TreeModelClass model) =>
    self -> Maybe model -> IO ()
    iconViewSetModel self
    self Maybe model
    model =
      (\(IconView ForeignPtr IconView
    arg1) (TreeModel ForeignPtr TreeModel
    arg2) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->ForeignPtr TreeModel -> (Ptr TreeModel -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TreeModel
    arg2 ((Ptr TreeModel -> IO ()) -> IO ())
    -> (Ptr TreeModel -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr TreeModel
    argPtr2 ->Ptr IconView -> Ptr TreeModel -> IO ()
    gtk_icon_view_set_model Ptr IconView
    argPtr1 Ptr TreeModel
    argPtr2)
    {-# LINE 203 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (TreeModel -> (model -> TreeModel) -> Maybe model -> TreeModel
    forall b a. b -> (a -> b) -> Maybe a -> b
    maybe (ForeignPtr TreeModel -> TreeModel
    TreeModel ForeignPtr TreeModel
    forall a. ForeignPtr a
    nullForeignPtr) model -> TreeModel
    forall o. TreeModelClass o => o -> TreeModel
    toTreeModel Maybe model
    model)

    -- %hash c:6709 d:c0c5
    -- | Returns the model the 'IconView' is based on. Returns @Nothing@ if the
    -- model is unset.
    --
    iconViewGetModel :: IconViewClass self => self
     -> IO (Maybe TreeModel) -- ^ returns a 'TreeModel', or @Nothing@ if none is
                             -- currently being used.
    iconViewGetModel :: forall self. IconViewClass self => self -> IO (Maybe TreeModel)
    iconViewGetModel self
    self =
      (IO (Ptr TreeModel) -> IO TreeModel)
    -> IO (Ptr TreeModel) -> IO (Maybe TreeModel)
    forall a. (IO (Ptr a) -> IO a) -> IO (Ptr a) -> IO (Maybe a)
    maybeNull ((ForeignPtr TreeModel -> TreeModel, FinalizerPtr TreeModel)
    -> IO (Ptr TreeModel) -> IO TreeModel
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr TreeModel -> TreeModel, FinalizerPtr TreeModel)
    forall {a}. (ForeignPtr TreeModel -> TreeModel, FinalizerPtr a)
    mkTreeModel) (IO (Ptr TreeModel) -> IO (Maybe TreeModel))
    -> IO (Ptr TreeModel) -> IO (Maybe TreeModel)
    forall a b. (a -> b) -> a -> b
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView
    -> (Ptr IconView -> IO (Ptr TreeModel)) -> IO (Ptr TreeModel)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO (Ptr TreeModel)) -> IO (Ptr TreeModel))
    -> (Ptr IconView -> IO (Ptr TreeModel)) -> IO (Ptr TreeModel)
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO (Ptr TreeModel)
    gtk_icon_view_get_model Ptr IconView
    argPtr1)
    {-# LINE 216 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:c3fe d:fb7b
    -- | Sets the column of the text for entries in the 'IconView'. If a markup
    -- source is set using 'iconViewSetMarkupSource', then the text source is
    -- ignored.
    --
    iconViewSetTextColumn :: (IconViewClass self, GlibString string) => self
     -> ColumnId row string -- ^ @column@ - A column in the currently used model.
     -> IO ()
    iconViewSetTextColumn :: forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> ColumnId row string -> IO ()
    iconViewSetTextColumn self
    self ColumnId row string
    column =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_text_column Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 228 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt)
    -> (ColumnId row string -> Int) -> ColumnId row string -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ColumnId row string -> Int
    forall row ty. ColumnId row ty -> Int
    columnIdToNumber) ColumnId row string
    column)

    -- | Returns the column with text for @iconView@.
    --
    iconViewGetTextColumn :: (IconViewClass self, GlibString string) => self
     -> IO (ColumnId row string) -- ^ returns the text column, or 'invalidColumnId' if it's unset.
    iconViewGetTextColumn :: forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> IO (ColumnId row string)
    iconViewGetTextColumn self
    self =
      (CInt -> ColumnId row string)
    -> IO CInt -> IO (ColumnId row string)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> ColumnId row string
    forall string row. GlibString string => Int -> ColumnId row string
    makeColumnIdString (Int -> ColumnId row string)
    -> (CInt -> Int) -> CInt -> ColumnId row string
    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 (ColumnId row string))
    -> IO CInt -> IO (ColumnId row string)
    forall a b. (a -> b) -> a -> b
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_text_column Ptr IconView
    argPtr1)
    {-# LINE 238 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:995f d:801c
    -- | Sets the column of the text for entries in the 'IconView' as a markup
    -- string (see 'Graphics.Rendering.Pango.Markup'). A text source that is set
    -- using 'iconViewSetTextSource' is ignored once a markup source is set.
    --
    iconViewSetMarkupColumn :: (IconViewClass self, GlibString markup) => self
     -> ColumnId row markup -- ^ @column@ - A column in the currently used model.
     -> IO ()
    iconViewSetMarkupColumn :: forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> ColumnId row string -> IO ()
    iconViewSetMarkupColumn self
    self ColumnId row markup
    column =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_markup_column Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 251 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt)
    -> (ColumnId row markup -> Int) -> ColumnId row markup -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ColumnId row markup -> Int
    forall row ty. ColumnId row ty -> Int
    columnIdToNumber) ColumnId row markup
    column)

    -- | Returns the column with markup text for @iconView@.
    --
    iconViewGetMarkupColumn :: (IconViewClass self, GlibString markup) => self
     -> IO (ColumnId row markup) -- ^ returns the markup column, or 'invalidColumnId' if it's unset.
    iconViewGetMarkupColumn :: forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> IO (ColumnId row string)
    iconViewGetMarkupColumn self
    self =
      (CInt -> ColumnId row markup)
    -> IO CInt -> IO (ColumnId row markup)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> ColumnId row markup
    forall string row. GlibString string => Int -> ColumnId row string
    makeColumnIdString (Int -> ColumnId row markup)
    -> (CInt -> Int) -> CInt -> ColumnId row markup
    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 (ColumnId row markup))
    -> IO CInt -> IO (ColumnId row markup)
    forall a b. (a -> b) -> a -> b
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_markup_column Ptr IconView
    argPtr1)
    {-# LINE 261 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:4079 d:bf8
    -- | Sets the column of the 'Graphics.UI.Gtk.Gdk.Pixbuf' for entries in the
    -- 'IconView'.
    --
    iconViewSetPixbufColumn :: IconViewClass self => self
     -> ColumnId row Pixbuf -- ^ @column@ - A column in the currently used model.
     -> IO ()
    iconViewSetPixbufColumn :: forall self row.
    IconViewClass self =>
    self -> ColumnId row Pixbuf -> IO ()
    iconViewSetPixbufColumn self
    self ColumnId row Pixbuf
    column =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_pixbuf_column Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 273 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt)
    -> (ColumnId row Pixbuf -> Int) -> ColumnId row Pixbuf -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . ColumnId row Pixbuf -> Int
    forall row ty. ColumnId row ty -> Int
    columnIdToNumber) ColumnId row Pixbuf
    column)

    -- | Returns the column with pixbufs for @iconView@.
    --
    iconViewGetPixbufColumn :: IconViewClass self => self
     -> IO (ColumnId row Pixbuf) -- ^ returns the pixbuf column, or 'invalidColumnId' if it's unset.
    iconViewGetPixbufColumn :: forall self row.
    IconViewClass self =>
    self -> IO (ColumnId row Pixbuf)
    iconViewGetPixbufColumn self
    self =
      (CInt -> ColumnId row Pixbuf)
    -> IO CInt -> IO (ColumnId row Pixbuf)
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> ColumnId row Pixbuf
    forall row. Int -> ColumnId row Pixbuf
    makeColumnIdPixbuf (Int -> ColumnId row Pixbuf)
    -> (CInt -> Int) -> CInt -> ColumnId row Pixbuf
    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 (ColumnId row Pixbuf))
    -> IO CInt -> IO (ColumnId row Pixbuf)
    forall a b. (a -> b) -> a -> b
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_pixbuf_column Ptr IconView
    argPtr1)
    {-# LINE 283 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:2486 d:5e7
    -- | Finds the path at the point (@x@, @y@), relative to widget coordinates.
    -- See 'iconViewGetItemAtPos', if you are also interested in the cell at the
    -- specified position.
    --
    iconViewGetPathAtPos :: IconViewClass self => self
     -> Int -- ^ @x@ - The x position to be identified
     -> Int -- ^ @y@ - The y position to be identified
     -> IO TreePath -- ^ returns The 'TreePath' corresponding to the icon or @[]@
                    -- if no icon exists at that position.
    iconViewGetPathAtPos :: forall self.
    IconViewClass self =>
    self -> Int -> Int -> IO TreePath
    iconViewGetPathAtPos self
    self Int
    x Int
    y =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 CInt
    arg3 -> ForeignPtr IconView
    -> (Ptr IconView -> IO (Ptr NativeTreePath))
    -> IO (Ptr NativeTreePath)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO (Ptr NativeTreePath))
     -> IO (Ptr NativeTreePath))
    -> (Ptr IconView -> IO (Ptr NativeTreePath))
    -> IO (Ptr NativeTreePath)
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> CInt -> IO (Ptr NativeTreePath)
    gtk_icon_view_get_path_at_pos Ptr IconView
    argPtr1 CInt
    arg2 CInt
    arg3)
    {-# LINE 297 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    x)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    y)
      IO (Ptr NativeTreePath)
    -> (Ptr NativeTreePath -> IO TreePath) -> IO TreePath
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= Ptr NativeTreePath -> IO TreePath
    fromTreePath

    -- %hash c:dfc5
    -- | Calls a function for each selected icon. Note that the model or selection
    -- cannot be modified from within this function.
    --
    iconViewSelectedForeach :: IconViewClass self => self
     -> (TreePath -> IO ()) -- ^ @(\path -> ...)@ - The function to call for each
                            -- selected icon.
     -> IO ()
    iconViewSelectedForeach :: forall self.
    IconViewClass self =>
    self -> (TreePath -> IO ()) -> IO ()
    iconViewSelectedForeach self
    self TreePath -> IO ()
    func = do
      funcPtr <- (Ptr IconView -> Ptr NativeTreePath -> Ptr () -> IO ())
    -> IO IconViewForeachFunc
    mkIconViewForeachFunc (\Ptr IconView
    _ Ptr NativeTreePath
    tpPtr Ptr ()
    _ -> do
        path <- Ptr NativeTreePath -> IO TreePath
    peekTreePath Ptr NativeTreePath
    tpPtr
        func path
        )
      (\(IconView ForeignPtr IconView
    arg1) IconViewForeachFunc
    arg2 Ptr ()
    arg3 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IconViewForeachFunc -> Ptr () -> IO ()
    gtk_icon_view_selected_foreach Ptr IconView
    argPtr1 IconViewForeachFunc
    arg2 Ptr ()
    arg3)
    {-# LINE 316 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        funcPtr
        nullPtr
      freeHaskellFunPtr funcPtr

    type IconViewForeachFunc = FunPtr (((Ptr IconView) -> ((Ptr NativeTreePath) -> ((Ptr ()) -> (IO ())))))
    {-# LINE 322 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}

    foreign import ccall "wrapper" mkIconViewForeachFunc ::
      (Ptr IconView -> Ptr NativeTreePath -> Ptr () -> IO ()) -> IO IconViewForeachFunc

    -- | Sets the selection mode of the @iconView@.
    --
    iconViewSetSelectionMode :: IconViewClass self => self
     -> SelectionMode -- ^ @mode@ - The selection mode
     -> IO ()
    iconViewSetSelectionMode :: forall self. IconViewClass self => self -> SelectionMode -> IO ()
    iconViewSetSelectionMode self
    self SelectionMode
    mode =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_selection_mode Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 333 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (SelectionMode -> Int) -> SelectionMode -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . SelectionMode -> Int
    forall a. Enum a => a -> Int
    fromEnum) SelectionMode
    mode)

    -- | Gets the selection mode of the @iconView@.
    --
    iconViewGetSelectionMode :: IconViewClass self => self
     -> IO SelectionMode -- ^ returns the current selection mode
    iconViewGetSelectionMode :: forall self. IconViewClass self => self -> IO SelectionMode
    iconViewGetSelectionMode self
    self =
      (CInt -> SelectionMode) -> IO CInt -> IO SelectionMode
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> SelectionMode
    forall a. Enum a => Int -> a
    toEnum (Int -> SelectionMode) -> (CInt -> Int) -> CInt -> SelectionMode
    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 SelectionMode) -> IO CInt -> IO SelectionMode
    forall a b. (a -> b) -> a -> b
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_selection_mode Ptr IconView
    argPtr1)
    {-# LINE 343 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
    {-# LINE 368 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
    -- %hash c:7d23 d:d4e7
    -- | Sets the ::columns property which determines in how many columns the
    -- icons are arranged. If @columns@ is -1, the number of columns will be chosen
    -- automatically to fill the available area.
    --
    iconViewSetColumns :: IconViewClass self => self
     -> Int -- ^ @columns@ - the number of columns
     -> IO ()
    iconViewSetColumns :: forall self. IconViewClass self => self -> Int -> IO ()
    iconViewSetColumns self
    self Int
    columns =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_columns Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 378 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    columns)

    -- %hash c:f0f6 d:fc0e
    -- | Returns the value of the ::columns property.
    --
    iconViewGetColumns :: IconViewClass self => self
     -> IO Int -- ^ returns the number of columns, or -1
    iconViewGetColumns :: forall self. IconViewClass self => self -> IO Int
    iconViewGetColumns self
    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
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_columns Ptr IconView
    argPtr1)
    {-# LINE 389 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:643e d:b756
    -- | Sets the ::item-width property which specifies the width to use for each
    -- item. If it is set to -1, the icon view will automatically determine a
    -- suitable item size.
    --
    iconViewSetItemWidth :: IconViewClass self => self
     -> Int -- ^ @itemWidth@ - the width for each item
     -> IO ()
    iconViewSetItemWidth :: forall self. IconViewClass self => self -> Int -> IO ()
    iconViewSetItemWidth self
    self Int
    itemWidth =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_item_width Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 401 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    itemWidth)

    -- %hash c:9f27 d:8569
    -- | Returns the value of the ::item-width property.
    --
    iconViewGetItemWidth :: IconViewClass self => self
     -> IO Int -- ^ returns the width of a single item, or -1
    iconViewGetItemWidth :: forall self. IconViewClass self => self -> IO Int
    iconViewGetItemWidth self
    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
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_item_width Ptr IconView
    argPtr1)
    {-# LINE 412 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:7e61 d:3186
    -- | Sets the ::spacing property which specifies the space which is inserted
    -- between the cells (i.e. the icon and the text) of an item.
    --
    iconViewSetSpacing :: IconViewClass self => self
     -> Int -- ^ @spacing@ - the spacing
     -> IO ()
    iconViewSetSpacing :: forall self. IconViewClass self => self -> Int -> IO ()
    iconViewSetSpacing self
    self Int
    spacing =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_spacing Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 423 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    spacing)

    -- %hash c:5bc1 d:a1d2
    -- | Returns the value of the ::spacing property.
    --
    iconViewGetSpacing :: IconViewClass self => self
     -> IO Int -- ^ returns the space between cells
    iconViewGetSpacing :: forall self. IconViewClass self => self -> IO Int
    iconViewGetSpacing self
    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
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_spacing Ptr IconView
    argPtr1)
    {-# LINE 434 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:dd08 d:730c
    -- | Sets the ::row-spacing property which specifies the space which is
    -- inserted between the rows of the icon view.
    --
    iconViewSetRowSpacing :: IconViewClass self => self
     -> Int -- ^ @rowSpacing@ - the row spacing
     -> IO ()
    iconViewSetRowSpacing :: forall self. IconViewClass self => self -> Int -> IO ()
    iconViewSetRowSpacing self
    self Int
    rowSpacing =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_row_spacing Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 445 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    rowSpacing)

    -- %hash c:a040 d:bc37
    -- | Returns the value of the ::row-spacing property.
    --
    iconViewGetRowSpacing :: IconViewClass self => self
     -> IO Int -- ^ returns the space between rows
    iconViewGetRowSpacing :: forall self. IconViewClass self => self -> IO Int
    iconViewGetRowSpacing self
    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
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_row_spacing Ptr IconView
    argPtr1)
    {-# LINE 456 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:3042 d:b4f8
    -- | Sets the ::column-spacing property which specifies the space which is
    -- inserted between the columns of the icon view.
    --
    iconViewSetColumnSpacing :: IconViewClass self => self
     -> Int -- ^ @columnSpacing@ - the column spacing
     -> IO ()
    iconViewSetColumnSpacing :: forall self. IconViewClass self => self -> Int -> IO ()
    iconViewSetColumnSpacing self
    self Int
    columnSpacing =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_column_spacing Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 467 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    columnSpacing)

    -- %hash c:3818 d:c1cd
    -- | Returns the value of the ::column-spacing property.
    --
    iconViewGetColumnSpacing :: IconViewClass self => self
     -> IO Int -- ^ returns the space between columns
    iconViewGetColumnSpacing :: forall self. IconViewClass self => self -> IO Int
    iconViewGetColumnSpacing self
    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
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_column_spacing Ptr IconView
    argPtr1)
    {-# LINE 478 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:990 d:d43c
    -- | Sets the ::margin property which specifies the space which is inserted at
    -- the top, bottom, left and right of the icon view.
    --
    iconViewSetMargin :: IconViewClass self => self
     -> Int -- ^ @margin@ - the margin
     -> IO ()
    iconViewSetMargin :: forall self. IconViewClass self => self -> Int -> IO ()
    iconViewSetMargin self
    self Int
    margin =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_margin Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 489 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    margin)

    -- %hash c:a116 d:6fab
    -- | Returns the value of the ::margin property.
    --
    iconViewGetMargin :: IconViewClass self => self
     -> IO Int -- ^ returns the space at the borders
    iconViewGetMargin :: forall self. IconViewClass self => self -> IO Int
    iconViewGetMargin self
    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
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_margin Ptr IconView
    argPtr1)
    {-# LINE 500 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:77b3
    -- | Selects the row at @path@.
    --
    iconViewSelectPath :: IconViewClass self => self
     -> TreePath -- ^ @path@ - The 'TreePath' to be selected.
     -> IO ()
    iconViewSelectPath :: forall self. IconViewClass self => self -> TreePath -> IO ()
    iconViewSelectPath self
    self TreePath
    path =
      TreePath -> (NativeTreePath -> IO ()) -> IO ()
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO ()) -> IO ())
    -> (NativeTreePath -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> IO ()
    gtk_icon_view_select_path Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2)
    {-# LINE 511 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path

    -- %hash c:7e5f
    -- | Unselects the row at @path@.
    --
    iconViewUnselectPath :: IconViewClass self => self
     -> TreePath -- ^ @path@ - The 'TreePath' to be unselected.
     -> IO ()
    iconViewUnselectPath :: forall self. IconViewClass self => self -> TreePath -> IO ()
    iconViewUnselectPath self
    self TreePath
    path =
      TreePath -> (NativeTreePath -> IO ()) -> IO ()
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO ()) -> IO ())
    -> (NativeTreePath -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> IO ()
    gtk_icon_view_unselect_path Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2)
    {-# LINE 523 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path

    -- %hash c:8ea0
    -- | Returns @True@ if the icon pointed to by @path@ is currently selected. If
    -- @icon@ does not point to a valid location, @False@ is returned.
    --
    iconViewPathIsSelected :: IconViewClass self => self
     -> TreePath -- ^ @path@ - A 'TreePath' to check selection on.
     -> IO Bool -- ^ returns @True@ if @path@ is selected.
    iconViewPathIsSelected :: forall self. IconViewClass self => self -> TreePath -> IO Bool
    iconViewPathIsSelected self
    self TreePath
    path =
      (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
    $
      TreePath -> (NativeTreePath -> IO CInt) -> IO CInt
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO CInt) -> IO CInt)
    -> (NativeTreePath -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> IO CInt
    gtk_icon_view_path_is_selected Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2)
    {-# LINE 537 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path

    -- %hash c:90f8 d:9c43
    -- | Creates a list of paths of all selected items. Additionally, if you are
    -- planning on modifying the model after calling this function, you may want
    -- to convert the returned list into a list of 'TreeRowReference's. To do
    -- this, you can use 'treeRowReferenceNew'.
    --
    iconViewGetSelectedItems :: IconViewClass self => self
     -> IO [TreePath] -- ^ returns a list of 'TreePath's, one for each selected row.
    iconViewGetSelectedItems :: forall self. IconViewClass self => self -> IO [TreePath]
    iconViewGetSelectedItems self
    self =
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO (Ptr ())) -> IO (Ptr ()))
    -> (Ptr IconView -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO (Ptr ())
    gtk_icon_view_get_selected_items Ptr IconView
    argPtr1)
    {-# LINE 550 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
      IO (Ptr ())
    -> (Ptr () -> IO [Ptr NativeTreePath]) -> IO [Ptr NativeTreePath]
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= Ptr () -> IO [Ptr NativeTreePath]
    forall a. Ptr () -> IO [Ptr a]
    fromGList
      IO [Ptr NativeTreePath]
    -> ([Ptr NativeTreePath] -> IO [TreePath]) -> IO [TreePath]
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= (Ptr NativeTreePath -> IO TreePath)
    -> [Ptr NativeTreePath] -> IO [TreePath]
    forall (t :: * -> *) (m :: * -> *) a b.
    (Traversable t, Monad m) =>
    (a -> m b) -> t a -> m (t b)
    forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
    mapM Ptr NativeTreePath -> IO TreePath
    fromTreePath

    -- | Selects all the icons. @iconView@ must has its selection mode set to
    -- 'SelectionMultiple'.
    --
    iconViewSelectAll :: IconViewClass self => self -> IO ()
    iconViewSelectAll :: forall self. IconViewClass self => self -> IO ()
    iconViewSelectAll self
    self =
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO ()
    gtk_icon_view_select_all Ptr IconView
    argPtr1)
    {-# LINE 560 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- | Unselects all the icons.
    --
    iconViewUnselectAll :: IconViewClass self => self -> IO ()
    iconViewUnselectAll :: forall self. IconViewClass self => self -> IO ()
    iconViewUnselectAll self
    self =
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO ()
    gtk_icon_view_unselect_all Ptr IconView
    argPtr1)
    {-# LINE 567 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:6916
    -- | Activates the item determined by @path@.
    --
    iconViewItemActivated :: IconViewClass self => self
     -> TreePath -- ^ @path@ - The 'TreePath' to be activated
     -> IO ()
    iconViewItemActivated :: forall self. IconViewClass self => self -> TreePath -> IO ()
    iconViewItemActivated self
    self TreePath
    path =
      TreePath -> (NativeTreePath -> IO ()) -> IO ()
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO ()) -> IO ())
    -> (NativeTreePath -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> IO ()
    gtk_icon_view_item_activated Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2)
    {-# LINE 578 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path

    -- %hash c:3122 d:346e
    -- | Finds the path at the point (@x@, @y@), relative to widget coordinates.
    -- In contrast to 'iconViewGetPathAtPos', this function also obtains the cell
    -- at the specified position.
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewGetItemAtPos :: IconViewClass self => self
     -> Int -- ^ @x@ - The x position to be identified
     -> Int -- ^ @y@ - The y position to be identified
     -> IO (Maybe (TreePath, CellRenderer))
                              -- specified position
    iconViewGetItemAtPos :: forall self.
    IconViewClass self =>
    self -> Int -> Int -> IO (Maybe (TreePath, CellRenderer))
    iconViewGetItemAtPos self
    self Int
    x Int
    y =
      (Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, CellRenderer)))
    -> IO (Maybe (TreePath, CellRenderer))
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, CellRenderer)))
     -> IO (Maybe (TreePath, CellRenderer)))
    -> (Ptr (Ptr NativeTreePath)
        -> IO (Maybe (TreePath, CellRenderer)))
    -> IO (Maybe (TreePath, CellRenderer))
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr NativeTreePath)
    pathPtrPtr -> (Ptr (Ptr CellRenderer) -> IO (Maybe (TreePath, CellRenderer)))
    -> IO (Maybe (TreePath, CellRenderer))
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr (Ptr CellRenderer) -> IO (Maybe (TreePath, CellRenderer)))
     -> IO (Maybe (TreePath, CellRenderer)))
    -> (Ptr (Ptr CellRenderer) -> IO (Maybe (TreePath, CellRenderer)))
    -> IO (Maybe (TreePath, CellRenderer))
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr CellRenderer)
    crPtrPtr -> do
      success <- (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
    $ (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 CInt
    arg3 Ptr NativeTreePath
    arg4 Ptr CellRenderer
    arg5 -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView
    -> CInt
    -> CInt
    -> Ptr NativeTreePath
    -> Ptr CellRenderer
    -> IO CInt
    gtk_icon_view_get_item_at_pos Ptr IconView
    argPtr1 CInt
    arg2 CInt
    arg3 Ptr NativeTreePath
    arg4 Ptr CellRenderer
    arg5)
    {-# LINE 598 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    x)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    y)
        (Ptr (Ptr NativeTreePath) -> Ptr NativeTreePath
    forall a b. Ptr a -> Ptr b
    castPtr Ptr (Ptr NativeTreePath)
    pathPtrPtr)
        (Ptr (Ptr CellRenderer) -> Ptr CellRenderer
    forall a b. Ptr a -> Ptr b
    castPtr Ptr (Ptr CellRenderer)
    crPtrPtr)
      if not success then return Nothing else do
      pathPtr <- peek pathPtrPtr
      crPtr <- peek crPtrPtr
      path <- fromTreePath pathPtr
      cr <- makeNewGObject mkCellRenderer (return crPtr)
      return (Just (path, cr))

    -- %hash c:357b d:32d6
    -- | Given @Left path@ as argument , sets the current keyboard focus to be at
    -- @path@, and selects it. This is useful when you want to focus the user's
    -- attention on a particular item. If @Right cell@ is given, then focus is
    -- given to the cell specified by it. Additionally, if @startEditing@ is
    -- @True@, then editing should be started in the specified cell.
    --
    -- This function is often followed by
    -- 'Graphics.UI.Gtk.Abstract.Widget.widgetGrabFocus' in order to give keyboard
    -- focus to the widget. Please note that editing can only happen when the
    -- widget is realized.
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewSetCursor :: (IconViewClass self, CellRendererClass cell) => self
     -> (Either TreePath cell) -- ^ the path or the cell
     -> Bool -- ^ @startEditing@ - @True@ if the specified cell should start
                 -- being edited.
     -> IO ()
    iconViewSetCursor :: forall self cell.
    (IconViewClass self, CellRendererClass cell) =>
    self -> Either TreePath cell -> Bool -> IO ()
    iconViewSetCursor self
    self (Left TreePath
    path) Bool
    startEditing =
      TreePath -> (NativeTreePath -> IO ()) -> IO ()
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO ()) -> IO ())
    -> (NativeTreePath -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) (CellRenderer ForeignPtr CellRenderer
    arg3) CInt
    arg4 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->ForeignPtr CellRenderer -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CellRenderer
    arg3 ((Ptr CellRenderer -> IO ()) -> IO ())
    -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CellRenderer
    argPtr3 ->Ptr IconView
    -> Ptr NativeTreePath -> Ptr CellRenderer -> CInt -> IO ()
    gtk_icon_view_set_cursor Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2 Ptr CellRenderer
    argPtr3 CInt
    arg4)
    {-# LINE 632 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path
        (ForeignPtr CellRenderer -> CellRenderer
    CellRenderer ForeignPtr CellRenderer
    forall a. ForeignPtr a
    nullForeignPtr)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    startEditing)
    iconViewSetCursor self
    self (Right cell
    cell) Bool
    startEditing =
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) (CellRenderer ForeignPtr CellRenderer
    arg3) CInt
    arg4 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->ForeignPtr CellRenderer -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr CellRenderer
    arg3 ((Ptr CellRenderer -> IO ()) -> IO ())
    -> (Ptr CellRenderer -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CellRenderer
    argPtr3 ->Ptr IconView
    -> Ptr NativeTreePath -> Ptr CellRenderer -> CInt -> IO ()
    gtk_icon_view_set_cursor Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2 Ptr CellRenderer
    argPtr3 CInt
    arg4)
    {-# LINE 638 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Ptr NativeTreePath -> NativeTreePath
    NativeTreePath Ptr NativeTreePath
    forall a. Ptr a
    nullPtr)
        (cell -> CellRenderer
    forall o. CellRendererClass o => o -> CellRenderer
    toCellRenderer cell
    cell)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    startEditing)

    -- %hash c:3307 d:9cf8
    -- | Return a @path@ and a @cell@ with the current cursor path and cell. If the
    -- cursor isn't currently set, then @[]@ will be returned for the @path@. If no cell currently has focus,
    -- then @cell@ will be @Nothing@.
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewGetCursor :: IconViewClass self => self
     -> IO (TreePath, Maybe CellRenderer) -- ^ returns a @path@ to the cursor and a @cell@ if the widget has the input focus
    iconViewGetCursor :: forall self.
    IconViewClass self =>
    self -> IO (TreePath, Maybe CellRenderer)
    iconViewGetCursor self
    self =
      (Ptr (Ptr NativeTreePath) -> IO (TreePath, Maybe CellRenderer))
    -> IO (TreePath, Maybe CellRenderer)
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr (Ptr NativeTreePath) -> IO (TreePath, Maybe CellRenderer))
     -> IO (TreePath, Maybe CellRenderer))
    -> (Ptr (Ptr NativeTreePath) -> IO (TreePath, Maybe CellRenderer))
    -> IO (TreePath, Maybe CellRenderer)
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr NativeTreePath)
    pathPtrPtr -> (Ptr (Ptr CellRenderer) -> IO (TreePath, Maybe CellRenderer))
    -> IO (TreePath, Maybe CellRenderer)
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr (Ptr CellRenderer) -> IO (TreePath, Maybe CellRenderer))
     -> IO (TreePath, Maybe CellRenderer))
    -> (Ptr (Ptr CellRenderer) -> IO (TreePath, Maybe CellRenderer))
    -> IO (TreePath, Maybe CellRenderer)
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr CellRenderer)
    crPtrPtr -> do
      (\(IconView ForeignPtr IconView
    arg1) Ptr NativeTreePath
    arg2 Ptr CellRenderer
    arg3 -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> Ptr CellRenderer -> IO CInt
    gtk_icon_view_get_cursor Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2 Ptr CellRenderer
    arg3)
    {-# LINE 655 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Ptr (Ptr NativeTreePath) -> Ptr NativeTreePath
    forall a b. Ptr a -> Ptr b
    castPtr Ptr (Ptr NativeTreePath)
    pathPtrPtr)
        (Ptr (Ptr CellRenderer) -> Ptr CellRenderer
    forall a b. Ptr a -> Ptr b
    castPtr Ptr (Ptr CellRenderer)
    crPtrPtr)
      pathPtr <- Ptr (Ptr NativeTreePath) -> IO (Ptr NativeTreePath)
    forall a. Storable a => Ptr a -> IO a
    peek Ptr (Ptr NativeTreePath)
    pathPtrPtr
      crPtr <- peek crPtrPtr
      path <- fromTreePath pathPtr
      cr <- if crPtr==nullPtr then return Nothing else
            liftM Just $ makeNewGObject mkCellRenderer (return crPtr)
      return (path, cr)

    -- %hash c:1c9e d:20c5
    -- | Moves the alignments of @iconView@ to the position specified by @path@.
    -- @rowAlign@ determines where the row is placed, and @colAlign@ determines
    -- where @column@ is placed. Both are expected to be between 0.0 and 1.0. 0.0
    -- means left\/top alignment, 1.0 means right\/bottom alignment, 0.5 means
    -- center.
    --
    -- If @useAlign@ is @False@, then the alignment arguments are ignored, and the
    -- tree does the minimum amount of work to scroll the item onto the screen.
    -- This means that the item will be scrolled to the edge closest to its
    -- current position. If the item is currently visible on the screen, nothing
    -- is done.
    --
    -- This function only works if the model is set, and @path@ is a valid row on
    -- the model. If the model changes before the @iconView@ is realized, the
    -- centered path will be modified to reflect this change.
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewScrollToPath :: IconViewClass self => self
     -> TreePath -- ^ @path@ - The path of the item to move to.
     -> Bool -- ^ @useAlign@ - whether to use alignment arguments, or @False@.
     -> Float -- ^ @rowAlign@ - The vertical alignment of the item specified by
                 -- @path@.
     -> Float -- ^ @colAlign@ - The horizontal alignment of the item specified
                 -- by @path@.
     -> IO ()
    iconViewScrollToPath :: forall self.
    IconViewClass self =>
    self -> TreePath -> Bool -> Float -> Float -> IO ()
    iconViewScrollToPath self
    self TreePath
    path Bool
    useAlign Float
    rowAlign Float
    colAlign =
      TreePath -> (NativeTreePath -> IO ()) -> IO ()
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO ()) -> IO ())
    -> (NativeTreePath -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) CInt
    arg3 CFloat
    arg4 CFloat
    arg5 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView
    -> Ptr NativeTreePath -> CInt -> CFloat -> CFloat -> IO ()
    gtk_icon_view_scroll_to_path Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2 CInt
    arg3 CFloat
    arg4 CFloat
    arg5)
    {-# LINE 695 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    useAlign)
        (Float -> CFloat
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Float
    rowAlign)
        (Float -> CFloat
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Float
    colAlign)

    -- %hash c:8354 d:f7f3
    -- | Retrieve the first and last visible path.
    -- Note that there may be invisible paths in between.
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewGetVisibleRange :: IconViewClass self => self
     -> IO (Maybe (TreePath, TreePath))
                    -- ^ returns the first and last visible path, the return value
                    -- @Nothing@ if every element is visible
    iconViewGetVisibleRange :: forall self.
    IconViewClass self =>
    self -> IO (Maybe (TreePath, TreePath))
    iconViewGetVisibleRange self
    self = (Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, TreePath)))
    -> IO (Maybe (TreePath, TreePath))
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, TreePath)))
     -> IO (Maybe (TreePath, TreePath)))
    -> (Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, TreePath)))
    -> IO (Maybe (TreePath, TreePath))
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr NativeTreePath)
    fPtrPtr -> (Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, TreePath)))
    -> IO (Maybe (TreePath, TreePath))
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, TreePath)))
     -> IO (Maybe (TreePath, TreePath)))
    -> (Ptr (Ptr NativeTreePath) -> IO (Maybe (TreePath, TreePath)))
    -> IO (Maybe (TreePath, TreePath))
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr NativeTreePath)
    lPtrPtr -> do
      success <- (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
    $ (\(IconView ForeignPtr IconView
    arg1) Ptr NativeTreePath
    arg2 Ptr NativeTreePath
    arg3 -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> Ptr NativeTreePath -> IO CInt
    gtk_icon_view_get_visible_range Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2 Ptr NativeTreePath
    arg3)
    {-# LINE 713 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Ptr (Ptr NativeTreePath) -> Ptr NativeTreePath
    forall a b. Ptr a -> Ptr b
    castPtr Ptr (Ptr NativeTreePath)
    fPtrPtr)
        (Ptr (Ptr NativeTreePath) -> Ptr NativeTreePath
    forall a b. Ptr a -> Ptr b
    castPtr Ptr (Ptr NativeTreePath)
    lPtrPtr)
      if not success then return Nothing else do
      fPtr <- peek fPtrPtr
      lPtr <- peek lPtrPtr
      f <- fromTreePath fPtr
      l <- fromTreePath lPtr
      return (Just (f,l))

    -- %hash c:bd16 d:3f4f
    -- | Turns @iconView@ into a drag source for automatic DND.
    --
    -- * Available since Gtk+ version 2.10
    --
    iconViewEnableModelDragSource :: IconViewClass self => self
      -> [Modifier] -- ^ @startButtonMask@ - Mask of allowed buttons
                            -- to start drag
      -> TargetList -- ^ @targets@ - the list of targets that the
                            -- the view will support
      -> [DragAction] -- ^ @actions@ - flags denoting the possible actions
                            -- for a drag from this widget
      -> IO ()
    iconViewEnableModelDragSource :: forall self.
    IconViewClass self =>
    self -> [Modifier] -> TargetList -> [DragAction] -> IO ()
    iconViewEnableModelDragSource self
    self [Modifier]
    startButtonMask TargetList
    targets [DragAction]
    actions =
      (Ptr CInt -> IO ()) -> IO ()
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr CInt -> IO ()) -> IO ()) -> (Ptr CInt -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CInt
    nTargetsPtr -> do
      tlPtr <- (\(TargetList ForeignPtr TargetList
    arg1) Ptr CInt
    arg2 -> ForeignPtr TargetList
    -> (Ptr TargetList -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TargetList
    arg1 ((Ptr TargetList -> IO (Ptr ())) -> IO (Ptr ()))
    -> (Ptr TargetList -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. (a -> b) -> a -> b
    $ \Ptr TargetList
    argPtr1 ->Ptr TargetList -> Ptr CInt -> IO (Ptr ())
    gtk_target_table_new_from_list Ptr TargetList
    argPtr1 Ptr CInt
    arg2) TargetList
    targets Ptr CInt
    nTargetsPtr
      nTargets <- peek nTargetsPtr
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 Ptr ()
    arg3 CInt
    arg4 CInt
    arg5 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> Ptr () -> CInt -> CInt -> IO ()
    gtk_icon_view_enable_model_drag_source Ptr IconView
    argPtr1 CInt
    arg2 Ptr ()
    arg3 CInt
    arg4 CInt
    arg5)
    {-# LINE 742 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        ((fromIntegral . fromFlags) startButtonMask)
        tlPtr
        nTargets
        ((fromIntegral . fromFlags) actions)
      gtk_target_table_free tlPtr nTargets

    -- %hash c:b14d d:23d7
    -- | Turns @iconView@ into a drop destination for automatic DND.
    --
    -- * Available since Gtk+ version 2.10
    --
    iconViewEnableModelDragDest :: IconViewClass self => self
      -> TargetList -- ^ @targets@ - the list of targets that the
                                   -- the view will support
      -> [DragAction] -- ^ @actions@ - flags denoting the possible actions
                                   -- for a drop into this widget
      -> IO ()
    iconViewEnableModelDragDest :: forall self.
    IconViewClass self =>
    self -> TargetList -> [DragAction] -> IO ()
    iconViewEnableModelDragDest self
    self TargetList
    targets [DragAction]
    actions =
      (Ptr CInt -> IO ()) -> IO ()
    forall a b. Storable a => (Ptr a -> IO b) -> IO b
    alloca ((Ptr CInt -> IO ()) -> IO ()) -> (Ptr CInt -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr CInt
    nTargetsPtr -> do
      tlPtr <- (\(TargetList ForeignPtr TargetList
    arg1) Ptr CInt
    arg2 -> ForeignPtr TargetList
    -> (Ptr TargetList -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr TargetList
    arg1 ((Ptr TargetList -> IO (Ptr ())) -> IO (Ptr ()))
    -> (Ptr TargetList -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. (a -> b) -> a -> b
    $ \Ptr TargetList
    argPtr1 ->Ptr TargetList -> Ptr CInt -> IO (Ptr ())
    gtk_target_table_new_from_list Ptr TargetList
    argPtr1 Ptr CInt
    arg2) TargetList
    targets Ptr CInt
    nTargetsPtr
      nTargets <- peek nTargetsPtr
      (\(IconView ForeignPtr IconView
    arg1) Ptr ()
    arg2 CInt
    arg3 CInt
    arg4 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr () -> CInt -> CInt -> IO ()
    gtk_icon_view_enable_model_drag_dest Ptr IconView
    argPtr1 Ptr ()
    arg2 CInt
    arg3 CInt
    arg4)
    {-# LINE 765 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        tlPtr
        nTargets
        ((fromIntegral . fromFlags) actions)

    -- %hash c:25b0 d:5a6b
    -- | Undoes the effect of 'iconViewEnableModelDragSource'.
    --
    -- * Available since Gtk+ version 2.10
    --
    iconViewUnsetModelDragSource :: IconViewClass self => self -> IO ()
    iconViewUnsetModelDragSource :: forall self. IconViewClass self => self -> IO ()
    iconViewUnsetModelDragSource self
    self =
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO ()
    gtk_icon_view_unset_model_drag_source Ptr IconView
    argPtr1)
    {-# LINE 778 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:d76d d:f18a
    -- | Undoes the effect of 'iconViewEnableModelDragDest'.
    --
    -- * Available since Gtk+ version 2.10
    --
    iconViewUnsetModelDragDest :: IconViewClass self => self -> IO ()
    iconViewUnsetModelDragDest :: forall self. IconViewClass self => self -> IO ()
    iconViewUnsetModelDragDest self
    self =
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO ()
    gtk_icon_view_unset_model_drag_dest Ptr IconView
    argPtr1)
    {-# LINE 788 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- %hash c:c270 d:b94d
    -- | Check if icons can be moved around.
    --
    -- * Set whether the user can use drag and drop (DND) to reorder the rows in
    -- the store. This works on both 'TreeStore' and 'ListStore' models. If @ro@
    -- is @True@, then the user can reorder the model by dragging and dropping
    -- rows. The developer can listen to these changes by connecting to the
    -- model's signals. If you need to control which rows may be dragged or
    -- where rows may be dropped, you can override the
    -- 'Graphics.UI.Gtk.ModelView.CustomStore.treeDragSourceRowDraggable'
    -- function in the default DND implementation of the model.
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewSetReorderable :: IconViewClass self => self
     -> Bool -- ^ @reorderable@ - @True@, if the list of items can be reordered.
     -> IO ()
    iconViewSetReorderable :: forall self. IconViewClass self => self -> Bool -> IO ()
    iconViewSetReorderable self
    self Bool
    reorderable =
      (\(IconView ForeignPtr IconView
    arg1) CInt
    arg2 -> ForeignPtr IconView -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO ()) -> IO ())
    -> (Ptr IconView -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> CInt -> IO ()
    gtk_icon_view_set_reorderable Ptr IconView
    argPtr1 CInt
    arg2)
    {-# LINE 810 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    reorderable)

    -- %hash c:532 d:1d07
    -- | Retrieves whether the user can reorder the list via drag-and-drop. See
    -- 'iconViewSetReorderable'.
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewGetReorderable :: IconViewClass self => self
     -> IO Bool -- ^ returns @True@ if the list can be reordered.
    iconViewGetReorderable :: forall self. IconViewClass self => self -> IO Bool
    iconViewGetReorderable self
    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
    $
      (\(IconView ForeignPtr IconView
    arg1) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> IO CInt
    gtk_icon_view_get_reorderable Ptr IconView
    argPtr1)
    {-# LINE 824 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)

    -- | Gets the row in which the item path is currently displayed. Row numbers start at 0.
    --
    -- * Available since Gtk+ version 2.22
    --
    iconViewGetItemRow :: IconViewClass self => self
                       -> TreePath -- ^ @path@ the 'TreePath' of the item
                       -> IO Int -- ^ returns The row in which the item is displayed
    iconViewGetItemRow :: forall self. IconViewClass self => self -> TreePath -> IO Int
    iconViewGetItemRow self
    self TreePath
    path =
      (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
    $
      TreePath -> (NativeTreePath -> IO CInt) -> IO CInt
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO CInt) -> IO CInt)
    -> (NativeTreePath -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> IO CInt
    gtk_icon_view_get_item_row Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2)
    {-# LINE 840 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path

    -- | Gets the column in which the item path is currently displayed. Column numbers start at 0.
    --
    -- * Available since Gtk+ version 2.22
    --
    iconViewGetItemColumn :: IconViewClass self => self
                       -> TreePath -- ^ @path@ the 'TreePath' of the item
                       -> IO Int -- ^ returns The column in which the item is displayed
    iconViewGetItemColumn :: forall self. IconViewClass self => self -> TreePath -> IO Int
    iconViewGetItemColumn self
    self TreePath
    path =
      (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
    $
      TreePath -> (NativeTreePath -> IO CInt) -> IO CInt
    forall a. TreePath -> (NativeTreePath -> IO a) -> IO a
    withTreePath TreePath
    path ((NativeTreePath -> IO CInt) -> IO CInt)
    -> (NativeTreePath -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \NativeTreePath
    path ->
      (\(IconView ForeignPtr IconView
    arg1) (NativeTreePath Ptr NativeTreePath
    arg2) -> ForeignPtr IconView -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr IconView
    arg1 ((Ptr IconView -> IO CInt) -> IO CInt)
    -> (Ptr IconView -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr IconView
    argPtr1 ->Ptr IconView -> Ptr NativeTreePath -> IO CInt
    gtk_icon_view_get_item_column Ptr IconView
    argPtr1 Ptr NativeTreePath
    arg2)
    {-# LINE 854 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}
        (toIconView self)
        NativeTreePath
    path

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

    -- | The ::selection-mode property specifies the selection mode of icon view.
    -- If the mode is 'SelectionMultiple', rubberband selection is enabled, for the
    -- other modes, only keyboard selection is possible.
    --
    -- Default value: 'SelectionSingle'
    --
    iconViewSelectionMode :: IconViewClass self => Attr self SelectionMode
    iconViewSelectionMode :: forall self. IconViewClass self => Attr self SelectionMode
    iconViewSelectionMode = (self -> IO SelectionMode)
    -> (self -> SelectionMode -> IO ())
    -> ReadWriteAttr self SelectionMode SelectionMode
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO SelectionMode
    forall self. IconViewClass self => self -> IO SelectionMode
    iconViewGetSelectionMode
      self -> SelectionMode -> IO ()
    forall self. IconViewClass self => self -> SelectionMode -> IO ()
    iconViewSetSelectionMode

    -- %hash c:4ce5 d:c77a
    -- | The 'iconViewPixbufColumn' property contains the number of the model column
    -- containing the pixbufs which are displayed. Setting this property to
    -- 'invalidColumnId' turns off the display of pixbufs.
    --
    -- Default value: 'invalidColumnId'
    --
    iconViewPixbufColumn :: IconViewClass self => Attr self (ColumnId row Pixbuf)
    iconViewPixbufColumn :: forall self row.
    IconViewClass self =>
    Attr self (ColumnId row Pixbuf)
    iconViewPixbufColumn = (self -> IO (ColumnId row Pixbuf))
    -> (self -> ColumnId row Pixbuf -> IO ())
    -> ReadWriteAttr self (ColumnId row Pixbuf) (ColumnId row Pixbuf)
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO (ColumnId row Pixbuf)
    forall self row.
    IconViewClass self =>
    self -> IO (ColumnId row Pixbuf)
    iconViewGetPixbufColumn
      self -> ColumnId row Pixbuf -> IO ()
    forall self row.
    IconViewClass self =>
    self -> ColumnId row Pixbuf -> IO ()
    iconViewSetPixbufColumn

    -- %hash c:702a d:f7ed
    -- | The 'iconViewTextColumn' property contains the number of the model column
    -- containing the texts which are displayed. If this property and the
    -- 'iconViewMarkupColumn' property are both set to 'invalidColumnId', no texts
    -- are displayed.
    --
    -- Default value: 'invalidColumnId'
    --
    iconViewTextColumn :: (IconViewClass self, GlibString string) => Attr self (ColumnId row string)
    iconViewTextColumn :: forall self string row.
    (IconViewClass self, GlibString string) =>
    Attr self (ColumnId row string)
    iconViewTextColumn = (self -> IO (ColumnId row string))
    -> (self -> ColumnId row string -> IO ())
    -> ReadWriteAttr self (ColumnId row string) (ColumnId row string)
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO (ColumnId row string)
    forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> IO (ColumnId row string)
    iconViewGetTextColumn
      self -> ColumnId row string -> IO ()
    forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> ColumnId row string -> IO ()
    iconViewSetTextColumn

    -- %hash c:37cb d:ee83
    -- | The 'iconViewMarkupColumn' property contains the number of the model column
    -- containing markup information to be displayed. If this property and the
    -- 'iconViewTextColumn' property are both set to column numbers, it overrides the text
    -- column. If both are set to 'invalidColumnId', no texts are displayed.
    --
    -- Default value: 'invalidColumnId'
    --
    iconViewMarkupColumn :: (IconViewClass self, GlibString markup) => Attr self (ColumnId row markup)
    iconViewMarkupColumn :: forall self string row.
    (IconViewClass self, GlibString string) =>
    Attr self (ColumnId row string)
    iconViewMarkupColumn = (self -> IO (ColumnId row markup))
    -> (self -> ColumnId row markup -> IO ())
    -> ReadWriteAttr self (ColumnId row markup) (ColumnId row markup)
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO (ColumnId row markup)
    forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> IO (ColumnId row string)
    iconViewGetMarkupColumn
      self -> ColumnId row markup -> IO ()
    forall self string row.
    (IconViewClass self, GlibString string) =>
    self -> ColumnId row string -> IO ()
    iconViewSetMarkupColumn

    -- %hash c:723d
    -- | The model for the icon view.
    --
    iconViewModel :: (IconViewClass self, TreeModelClass model)
     => ReadWriteAttr self (Maybe TreeModel) (Maybe model)
    iconViewModel :: forall self model.
    (IconViewClass self, TreeModelClass model) =>
    ReadWriteAttr self (Maybe TreeModel) (Maybe model)
    iconViewModel = (self -> IO (Maybe TreeModel))
    -> (self -> Maybe model -> IO ())
    -> ReadWriteAttr self (Maybe TreeModel) (Maybe model)
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO (Maybe TreeModel)
    forall self. IconViewClass self => self -> IO (Maybe TreeModel)
    iconViewGetModel
      self -> Maybe model -> IO ()
    forall self model.
    (IconViewClass self, TreeModelClass model) =>
    self -> Maybe model -> IO ()
    iconViewSetModel

    -- %hash c:6347
    -- | The columns property contains the number of the columns in which the
    -- items should be displayed. If it is -1, the number of columns will be chosen
    -- automatically to fill the available area.
    --
    -- Allowed values: >= -1
    --
    -- Default value: -1
    --
    iconViewColumns :: IconViewClass self => Attr self Int
    iconViewColumns :: forall self. IconViewClass self => Attr self Int
    iconViewColumns = String -> Attr self Int
    forall gobj. GObjectClass gobj => String -> Attr gobj Int
    newAttrFromIntProperty String
    "columns"

    -- %hash c:d0fe d:42c5
    -- | The item-width property specifies the width to use for each item. If it
    -- is set to -1, the icon view will automatically determine a suitable item
    -- size.
    --
    -- Allowed values: >= -1
    --
    -- Default value: -1
    --
    iconViewItemWidth :: IconViewClass self => Attr self Int
    iconViewItemWidth :: forall self. IconViewClass self => Attr self Int
    iconViewItemWidth = String -> Attr self Int
    forall gobj. GObjectClass gobj => String -> Attr gobj Int
    newAttrFromIntProperty String
    "item-width"

    -- %hash c:3813 d:23f9
    -- | The spacing property specifies the space which is inserted between the
    -- cells (i.e. the icon and the text) of an item.
    --
    -- Allowed values: >= 0
    --
    -- Default value: 0
    --
    iconViewSpacing :: IconViewClass self => Attr self Int
    iconViewSpacing :: forall self. IconViewClass self => Attr self Int
    iconViewSpacing = String -> Attr self Int
    forall gobj. GObjectClass gobj => String -> Attr gobj Int
    newAttrFromIntProperty String
    "spacing"

    -- %hash c:6a28 d:8e65
    -- | The row-spacing property specifies the space which is inserted between
    -- the rows of the icon view.
    --
    -- Allowed values: >= 0
    --
    -- Default value: 6
    --
    iconViewRowSpacing :: IconViewClass self => Attr self Int
    iconViewRowSpacing :: forall self. IconViewClass self => Attr self Int
    iconViewRowSpacing = String -> Attr self Int
    forall gobj. GObjectClass gobj => String -> Attr gobj Int
    newAttrFromIntProperty String
    "row-spacing"

    -- %hash c:56a d:2971
    -- | The column-spacing property specifies the space which is inserted between
    -- the columns of the icon view.
    --
    -- Allowed values: >= 0
    --
    -- Default value: 6
    --
    iconViewColumnSpacing :: IconViewClass self => Attr self Int
    iconViewColumnSpacing :: forall self. IconViewClass self => Attr self Int
    iconViewColumnSpacing = String -> Attr self Int
    forall gobj. GObjectClass gobj => String -> Attr gobj Int
    newAttrFromIntProperty String
    "column-spacing"

    -- %hash c:89de d:8e41
    -- | The margin property specifies the space which is inserted at the edges of
    -- the icon view.
    --
    -- Allowed values: >= 0
    --
    -- Default value: 6
    --
    iconViewMargin :: IconViewClass self => Attr self Int
    iconViewMargin :: forall self. IconViewClass self => Attr self Int
    iconViewMargin = String -> Attr self Int
    forall gobj. GObjectClass gobj => String -> Attr gobj Int
    newAttrFromIntProperty String
    "margin"

    -- %hash c:b606 d:31c3
    -- | The orientation property specifies how the cells (i.e. the icon and the
    -- text) of the item are positioned relative to each other.
    --
    -- Default value: 'OrientationVertical'
    --
    iconViewOrientation :: IconViewClass self => Attr self Orientation
    iconViewOrientation :: forall self. IconViewClass self => Attr self Orientation
    iconViewOrientation = String -> GType -> Attr self Orientation
    forall gobj enum.
    (GObjectClass gobj, Enum enum) =>
    String -> GType -> Attr gobj enum
    newAttrFromEnumProperty String
    "orientation"
                            GType
    gtk_orientation_get_type
    {-# LINE 997 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}

    -- %hash c:f17b d:54d0
    -- | The reorderable property specifies if the items can be reordered by DND.
    --
    -- Default value: @False@
    --
    -- * Available since Gtk+ version 2.8
    --
    iconViewReorderable :: IconViewClass self => Attr self Bool
    iconViewReorderable :: forall self. IconViewClass self => Attr self Bool
    iconViewReorderable = String -> Attr self Bool
    forall gobj. GObjectClass gobj => String -> Attr gobj Bool
    newAttrFromBoolProperty String
    "reorderable"

    -- | The item-orientation property specifies how the cells (i.e. the icon and the text) of the item are
    -- positioned relative to each other.
    --
    -- Default value: 'OrientationVertical'
    --
    -- * Available since Gtk+ version 2.22
    --
    iconViewItemOrientation :: IconViewClass self => Attr self Orientation
    iconViewItemOrientation :: forall self. IconViewClass self => Attr self Orientation
    iconViewItemOrientation = String -> GType -> Attr self Orientation
    forall gobj enum.
    (GObjectClass gobj, Enum enum) =>
    String -> GType -> Attr gobj enum
    newAttrFromEnumProperty String
    "item-orientation"
                              GType
    gtk_orientation_get_type
    {-# LINE 1021 "./Graphics/UI/Gtk/ModelView/IconView.chs" #-}

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

    -- %hash c:4671 d:af3f
    -- | New scroll adjustment have been set for this widget.
    --
    setIconViewScrollAdjustments :: IconViewClass self => Signal self (Adjustment -> Adjustment -> IO ())
    setIconViewScrollAdjustments :: forall self.
    IconViewClass self =>
    Signal self (Adjustment -> Adjustment -> IO ())
    setIconViewScrollAdjustments = (Bool
     -> self
     -> (Adjustment -> Adjustment -> IO ())
     -> IO (ConnectId self))
    -> Signal self (Adjustment -> Adjustment -> IO ())
    forall object handler.
    (Bool -> object -> handler -> IO (ConnectId object))
    -> Signal object handler
    Signal (String
    -> Bool
    -> self
    -> (Adjustment -> Adjustment -> IO ())
    -> IO (ConnectId self)
    forall a' b' obj.
    (GObjectClass a', GObjectClass b', GObjectClass obj) =>
    String -> Bool -> obj -> (a' -> b' -> IO ()) -> IO (ConnectId obj)
    connect_OBJECT_OBJECT__NONE String
    "set-scroll-adjustments")

    -- %hash c:4090 d:af3f
    -- | A specific element has been activated (by pressing enter or double clicking).
    --
    itemActivated :: IconViewClass self => Signal self (TreePath -> IO ())
    itemActivated :: forall self. IconViewClass self => Signal self (TreePath -> IO ())
    itemActivated = (Bool -> self -> (TreePath -> IO ()) -> IO (ConnectId self))
    -> Signal self (TreePath -> IO ())
    forall object handler.
    (Bool -> object -> handler -> IO (ConnectId object))
    -> Signal object handler
    Signal (String
    -> (Ptr (ZonkAny 0) -> IO TreePath)
    -> Bool
    -> self
    -> (TreePath -> IO ())
    -> IO (ConnectId self)
    forall obj a' a.
    GObjectClass obj =>
    String
    -> (Ptr a' -> IO a)
    -> Bool
    -> obj
    -> (a -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED__NONE String
    "item-activated" (Ptr NativeTreePath -> IO TreePath
    peekTreePath (Ptr NativeTreePath -> IO TreePath)
    -> (Ptr (ZonkAny 0) -> Ptr NativeTreePath)
    -> Ptr (ZonkAny 0)
    -> IO TreePath
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Ptr (ZonkAny 0) -> Ptr NativeTreePath
    forall a b. Ptr a -> Ptr b
    castPtr))

    -- %hash c:6098 d:af3f
    -- | The selected item changed.
    --
    selectionChanged :: IconViewClass self => Signal self (IO ())
    selectionChanged :: forall self. IconViewClass self => Signal self (IO ())
    selectionChanged = (Bool -> self -> IO () -> IO (ConnectId self))
    -> Signal self (IO ())
    forall object handler.
    (Bool -> object -> handler -> IO (ConnectId object))
    -> Signal object handler
    Signal (String -> Bool -> self -> IO () -> IO (ConnectId self)
    forall obj.
    GObjectClass obj =>
    String -> Bool -> obj -> IO () -> IO (ConnectId obj)
    connect_NONE__NONE String
    "selection-changed")

    foreign import ccall safe "gtk_icon_view_new"
      gtk_icon_view_new :: (IO (Ptr Widget))

    foreign import ccall safe "gtk_icon_view_new_with_model"
      gtk_icon_view_new_with_model :: ((Ptr TreeModel) -> (IO (Ptr Widget)))

    foreign import ccall safe "gtk_icon_view_set_model"
      gtk_icon_view_set_model :: ((Ptr IconView) -> ((Ptr TreeModel) -> (IO ())))

    foreign import ccall unsafe "gtk_icon_view_get_model"
      gtk_icon_view_get_model :: ((Ptr IconView) -> (IO (Ptr TreeModel)))

    foreign import ccall safe "gtk_icon_view_set_text_column"
      gtk_icon_view_set_text_column :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_text_column"
      gtk_icon_view_get_text_column :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_markup_column"
      gtk_icon_view_set_markup_column :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_markup_column"
      gtk_icon_view_get_markup_column :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_pixbuf_column"
      gtk_icon_view_set_pixbuf_column :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_pixbuf_column"
      gtk_icon_view_get_pixbuf_column :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_get_path_at_pos"
      gtk_icon_view_get_path_at_pos :: ((Ptr IconView) -> (CInt -> (CInt -> (IO (Ptr NativeTreePath)))))

    foreign import ccall safe "gtk_icon_view_selected_foreach"
      gtk_icon_view_selected_foreach :: ((Ptr IconView) -> ((FunPtr ((Ptr IconView) -> ((Ptr NativeTreePath) -> ((Ptr ()) -> (IO ()))))) -> ((Ptr ()) -> (IO ()))))

    foreign import ccall safe "gtk_icon_view_set_selection_mode"
      gtk_icon_view_set_selection_mode :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_selection_mode"
      gtk_icon_view_get_selection_mode :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_columns"
      gtk_icon_view_set_columns :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_columns"
      gtk_icon_view_get_columns :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_item_width"
      gtk_icon_view_set_item_width :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_item_width"
      gtk_icon_view_get_item_width :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_spacing"
      gtk_icon_view_set_spacing :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_spacing"
      gtk_icon_view_get_spacing :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_row_spacing"
      gtk_icon_view_set_row_spacing :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_row_spacing"
      gtk_icon_view_get_row_spacing :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_column_spacing"
      gtk_icon_view_set_column_spacing :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_column_spacing"
      gtk_icon_view_get_column_spacing :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_set_margin"
      gtk_icon_view_set_margin :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_margin"
      gtk_icon_view_get_margin :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_select_path"
      gtk_icon_view_select_path :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> (IO ())))

    foreign import ccall safe "gtk_icon_view_unselect_path"
      gtk_icon_view_unselect_path :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> (IO ())))

    foreign import ccall safe "gtk_icon_view_path_is_selected"
      gtk_icon_view_path_is_selected :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> (IO CInt)))

    foreign import ccall safe "gtk_icon_view_get_selected_items"
      gtk_icon_view_get_selected_items :: ((Ptr IconView) -> (IO (Ptr ())))

    foreign import ccall safe "gtk_icon_view_select_all"
      gtk_icon_view_select_all :: ((Ptr IconView) -> (IO ()))

    foreign import ccall safe "gtk_icon_view_unselect_all"
      gtk_icon_view_unselect_all :: ((Ptr IconView) -> (IO ()))

    foreign import ccall safe "gtk_icon_view_item_activated"
      gtk_icon_view_item_activated :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_item_at_pos"
      gtk_icon_view_get_item_at_pos :: ((Ptr IconView) -> (CInt -> (CInt -> ((Ptr NativeTreePath) -> ((Ptr CellRenderer) -> (IO CInt))))))

    foreign import ccall safe "gtk_icon_view_set_cursor"
      gtk_icon_view_set_cursor :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> ((Ptr CellRenderer) -> (CInt -> (IO ())))))

    foreign import ccall safe "gtk_icon_view_get_cursor"
      gtk_icon_view_get_cursor :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> ((Ptr CellRenderer) -> (IO CInt))))

    foreign import ccall safe "gtk_icon_view_scroll_to_path"
      gtk_icon_view_scroll_to_path :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> (CInt -> (CFloat -> (CFloat -> (IO ()))))))

    foreign import ccall safe "gtk_icon_view_get_visible_range"
      gtk_icon_view_get_visible_range :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> ((Ptr NativeTreePath) -> (IO CInt))))

    foreign import ccall unsafe "gtk_target_table_new_from_list"
      gtk_target_table_new_from_list :: ((Ptr TargetList) -> ((Ptr CInt) -> (IO (Ptr ()))))

    foreign import ccall safe "gtk_icon_view_enable_model_drag_source"
      gtk_icon_view_enable_model_drag_source :: ((Ptr IconView) -> (CInt -> ((Ptr ()) -> (CInt -> (CInt -> (IO ()))))))

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

    foreign import ccall safe "gtk_icon_view_enable_model_drag_dest"
      gtk_icon_view_enable_model_drag_dest :: ((Ptr IconView) -> ((Ptr ()) -> (CInt -> (CInt -> (IO ())))))

    foreign import ccall safe "gtk_icon_view_unset_model_drag_source"
      gtk_icon_view_unset_model_drag_source :: ((Ptr IconView) -> (IO ()))

    foreign import ccall safe "gtk_icon_view_unset_model_drag_dest"
      gtk_icon_view_unset_model_drag_dest :: ((Ptr IconView) -> (IO ()))

    foreign import ccall safe "gtk_icon_view_set_reorderable"
      gtk_icon_view_set_reorderable :: ((Ptr IconView) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_icon_view_get_reorderable"
      gtk_icon_view_get_reorderable :: ((Ptr IconView) -> (IO CInt))

    foreign import ccall safe "gtk_icon_view_get_item_row"
      gtk_icon_view_get_item_row :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> (IO CInt)))

    foreign import ccall safe "gtk_icon_view_get_item_column"
      gtk_icon_view_get_item_column :: ((Ptr IconView) -> ((Ptr NativeTreePath) -> (IO CInt)))

    foreign import ccall unsafe "gtk_orientation_get_type"
      gtk_orientation_get_type :: CULong