module Graphics.UI.Gtk.ModelView.IconView (
  IconView,
  IconViewClass,
  castToIconView, gTypeIconView,
  toIconView,
  iconViewNew,
  iconViewNewWithModel,
  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,
  iconViewSelectionMode,
  iconViewTextColumn,
  iconViewMarkupColumn,
  iconViewPixbufColumn,
  iconViewModel,
  iconViewColumns,
  iconViewItemWidth,
  iconViewSpacing,
  iconViewRowSpacing,
  iconViewColumnSpacing,
  iconViewMargin,
  iconViewOrientation,
  iconViewReorderable,
  iconViewItemOrientation,
  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
import Graphics.UI.Gtk.Signals
import Graphics.UI.Gtk.General.Enums (Orientation, SelectionMode)
import Graphics.UI.Gtk.ModelView.TreeModel
import Graphics.UI.Gtk.ModelView.Types
import Graphics.UI.Gtk.General.DNDTypes (TargetList(..))
iconViewNew :: IO IconView
iconViewNew =
  makeNewObject mkIconView $
  liftM (castPtr :: Ptr Widget -> Ptr IconView) $
  gtk_icon_view_new
iconViewNewWithModel :: TreeModelClass model =>
    model 
 -> IO IconView
iconViewNewWithModel model =
  makeNewObject mkIconView $
    liftM (castPtr :: Ptr Widget -> Ptr IconView) $
    (\(TreeModel arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_new_with_model argPtr1)
    (toTreeModel model)
iconViewSetModel :: (IconViewClass self, TreeModelClass model) => self
 -> Maybe model 
 -> IO ()
iconViewSetModel self model =
  (\(IconView arg1) (TreeModel arg2) -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg2 $ \argPtr2 ->gtk_icon_view_set_model argPtr1 argPtr2)
    (toIconView self)
    (maybe (TreeModel nullForeignPtr) toTreeModel model)
iconViewGetModel :: IconViewClass self => self
 -> IO (Maybe TreeModel) 
                         
iconViewGetModel self =
  maybeNull (makeNewGObject mkTreeModel) $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_model argPtr1)
    (toIconView self)
iconViewSetTextColumn :: (IconViewClass self, GlibString string) => self
 -> ColumnId row string 
 -> IO ()
iconViewSetTextColumn self column =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_text_column argPtr1 arg2)
    (toIconView self)
    ((fromIntegral . columnIdToNumber) column)
iconViewGetTextColumn :: (IconViewClass self, GlibString string) => self
 -> IO (ColumnId row string) 
iconViewGetTextColumn self =
  liftM (makeColumnIdString . fromIntegral) $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_text_column argPtr1)
    (toIconView self)
iconViewSetMarkupColumn :: (IconViewClass self, GlibString markup) => self
 -> ColumnId row markup 
 -> IO ()
iconViewSetMarkupColumn self column =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_markup_column argPtr1 arg2)
    (toIconView self)
    ((fromIntegral . columnIdToNumber) column)
iconViewGetMarkupColumn :: (IconViewClass self, GlibString markup) => self
 -> IO (ColumnId row markup) 
iconViewGetMarkupColumn self =
  liftM (makeColumnIdString . fromIntegral) $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_markup_column argPtr1)
    (toIconView self)
iconViewSetPixbufColumn :: IconViewClass self => self
 -> ColumnId row Pixbuf 
 -> IO ()
iconViewSetPixbufColumn self column =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_pixbuf_column argPtr1 arg2)
    (toIconView self)
    ((fromIntegral . columnIdToNumber) column)
iconViewGetPixbufColumn :: IconViewClass self => self
 -> IO (ColumnId row Pixbuf) 
iconViewGetPixbufColumn self =
  liftM (makeColumnIdPixbuf . fromIntegral) $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_pixbuf_column argPtr1)
    (toIconView self)
iconViewGetPathAtPos :: IconViewClass self => self
 -> Int 
 -> Int 
 -> IO TreePath 
                
iconViewGetPathAtPos self x y =
  (\(IconView arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_path_at_pos argPtr1 arg2 arg3)
    (toIconView self)
    (fromIntegral x)
    (fromIntegral y)
  >>= fromTreePath
iconViewSelectedForeach :: IconViewClass self => self
 -> (TreePath -> IO ()) 
                        
 -> IO ()
iconViewSelectedForeach self func = do
  funcPtr <- mkIconViewForeachFunc (\_ tpPtr _ -> do
    path <- peekTreePath tpPtr
    func path
    )
  (\(IconView arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_selected_foreach argPtr1 arg2 arg3)
    (toIconView self)
    funcPtr
    nullPtr
  freeHaskellFunPtr funcPtr
type IconViewForeachFunc = FunPtr (((Ptr IconView) -> ((Ptr NativeTreePath) -> ((Ptr ()) -> (IO ())))))
foreign import ccall "wrapper" mkIconViewForeachFunc ::
  (Ptr IconView -> Ptr NativeTreePath -> Ptr () -> IO ()) -> IO IconViewForeachFunc
iconViewSetSelectionMode :: IconViewClass self => self
 -> SelectionMode 
 -> IO ()
iconViewSetSelectionMode self mode =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_selection_mode argPtr1 arg2)
    (toIconView self)
    ((fromIntegral . fromEnum) mode)
iconViewGetSelectionMode :: IconViewClass self => self
 -> IO SelectionMode 
iconViewGetSelectionMode self =
  liftM (toEnum . fromIntegral) $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_selection_mode argPtr1)
    (toIconView self)
iconViewSetColumns :: IconViewClass self => self
 -> Int 
 -> IO ()
iconViewSetColumns self columns =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_columns argPtr1 arg2)
    (toIconView self)
    (fromIntegral columns)
iconViewGetColumns :: IconViewClass self => self
 -> IO Int 
iconViewGetColumns self =
  liftM fromIntegral $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_columns argPtr1)
    (toIconView self)
iconViewSetItemWidth :: IconViewClass self => self
 -> Int 
 -> IO ()
iconViewSetItemWidth self itemWidth =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_item_width argPtr1 arg2)
    (toIconView self)
    (fromIntegral itemWidth)
iconViewGetItemWidth :: IconViewClass self => self
 -> IO Int 
iconViewGetItemWidth self =
  liftM fromIntegral $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_item_width argPtr1)
    (toIconView self)
iconViewSetSpacing :: IconViewClass self => self
 -> Int 
 -> IO ()
iconViewSetSpacing self spacing =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_spacing argPtr1 arg2)
    (toIconView self)
    (fromIntegral spacing)
iconViewGetSpacing :: IconViewClass self => self
 -> IO Int 
iconViewGetSpacing self =
  liftM fromIntegral $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_spacing argPtr1)
    (toIconView self)
iconViewSetRowSpacing :: IconViewClass self => self
 -> Int 
 -> IO ()
iconViewSetRowSpacing self rowSpacing =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_row_spacing argPtr1 arg2)
    (toIconView self)
    (fromIntegral rowSpacing)
iconViewGetRowSpacing :: IconViewClass self => self
 -> IO Int 
iconViewGetRowSpacing self =
  liftM fromIntegral $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_row_spacing argPtr1)
    (toIconView self)
iconViewSetColumnSpacing :: IconViewClass self => self
 -> Int 
 -> IO ()
iconViewSetColumnSpacing self columnSpacing =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_column_spacing argPtr1 arg2)
    (toIconView self)
    (fromIntegral columnSpacing)
iconViewGetColumnSpacing :: IconViewClass self => self
 -> IO Int 
iconViewGetColumnSpacing self =
  liftM fromIntegral $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_column_spacing argPtr1)
    (toIconView self)
iconViewSetMargin :: IconViewClass self => self
 -> Int 
 -> IO ()
iconViewSetMargin self margin =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_margin argPtr1 arg2)
    (toIconView self)
    (fromIntegral margin)
iconViewGetMargin :: IconViewClass self => self
 -> IO Int 
iconViewGetMargin self =
  liftM fromIntegral $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_margin argPtr1)
    (toIconView self)
iconViewSelectPath :: IconViewClass self => self
 -> TreePath 
 -> IO ()
iconViewSelectPath self path =
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_select_path argPtr1 arg2)
    (toIconView self)
    path
iconViewUnselectPath :: IconViewClass self => self
 -> TreePath 
 -> IO ()
iconViewUnselectPath self path =
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_unselect_path argPtr1 arg2)
    (toIconView self)
    path
iconViewPathIsSelected :: IconViewClass self => self
 -> TreePath 
 -> IO Bool 
iconViewPathIsSelected self path =
  liftM toBool $
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_path_is_selected argPtr1 arg2)
    (toIconView self)
    path
iconViewGetSelectedItems :: IconViewClass self => self
 -> IO [TreePath] 
iconViewGetSelectedItems self =
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_selected_items argPtr1)
    (toIconView self)
  >>= fromGList
  >>= mapM fromTreePath
iconViewSelectAll :: IconViewClass self => self -> IO ()
iconViewSelectAll self =
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_select_all argPtr1)
    (toIconView self)
iconViewUnselectAll :: IconViewClass self => self -> IO ()
iconViewUnselectAll self =
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_unselect_all argPtr1)
    (toIconView self)
iconViewItemActivated :: IconViewClass self => self
 -> TreePath 
 -> IO ()
iconViewItemActivated self path =
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_item_activated argPtr1 arg2)
    (toIconView self)
    path
iconViewGetItemAtPos :: IconViewClass self => self
 -> Int 
 -> Int 
 -> IO (Maybe (TreePath, CellRenderer))
                          
iconViewGetItemAtPos self x y =
  alloca $ \pathPtrPtr -> alloca $ \crPtrPtr -> do
  success <- liftM toBool $ (\(IconView arg1) arg2 arg3 arg4 arg5 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_item_at_pos argPtr1 arg2 arg3 arg4 arg5)
    (toIconView self)
    (fromIntegral x)
    (fromIntegral y)
    (castPtr pathPtrPtr)
    (castPtr 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))
iconViewSetCursor :: (IconViewClass self, CellRendererClass cell) => self
 -> (Either TreePath cell) 
 -> Bool 
             
 -> IO ()
iconViewSetCursor self (Left path) startEditing =
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) (CellRenderer arg3) arg4 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg3 $ \argPtr3 ->gtk_icon_view_set_cursor argPtr1 arg2 argPtr3 arg4)
    (toIconView self)
    path
    (CellRenderer nullForeignPtr)
    (fromBool startEditing)
iconViewSetCursor self (Right cell) startEditing =
  (\(IconView arg1) (NativeTreePath arg2) (CellRenderer arg3) arg4 -> withForeignPtr arg1 $ \argPtr1 ->withForeignPtr arg3 $ \argPtr3 ->gtk_icon_view_set_cursor argPtr1 arg2 argPtr3 arg4)
    (toIconView self)
    (NativeTreePath nullPtr)
    (toCellRenderer cell)
    (fromBool startEditing)
iconViewGetCursor :: IconViewClass self => self
 -> IO (TreePath, Maybe CellRenderer) 
iconViewGetCursor self =
  alloca $ \pathPtrPtr -> alloca $ \crPtrPtr -> do
  (\(IconView arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_cursor argPtr1 arg2 arg3)
    (toIconView self)
    (castPtr pathPtrPtr)
    (castPtr crPtrPtr)
  pathPtr <- peek pathPtrPtr
  crPtr <- peek crPtrPtr
  path <- fromTreePath pathPtr
  cr <- if crPtr==nullPtr then return Nothing else
        liftM Just $ makeNewGObject mkCellRenderer (return crPtr)
  return (path, cr)
iconViewScrollToPath :: IconViewClass self => self
 -> TreePath 
 -> Bool 
 -> Float 
             
 -> Float 
             
 -> IO ()
iconViewScrollToPath self path useAlign rowAlign colAlign =
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) arg3 arg4 arg5 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_scroll_to_path argPtr1 arg2 arg3 arg4 arg5)
    (toIconView self)
    path
    (fromBool useAlign)
    (realToFrac rowAlign)
    (realToFrac colAlign)
iconViewGetVisibleRange :: IconViewClass self => self
 -> IO (Maybe (TreePath, TreePath))
                
                
iconViewGetVisibleRange self = alloca $ \fPtrPtr -> alloca $ \lPtrPtr -> do
  success <- liftM toBool $ (\(IconView arg1) arg2 arg3 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_visible_range argPtr1 arg2 arg3)
    (toIconView self)
    (castPtr fPtrPtr)
    (castPtr 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))
iconViewEnableModelDragSource :: IconViewClass self => self
  -> [Modifier] 
                        
  -> TargetList 
                        
  -> [DragAction] 
                        
  -> IO ()
iconViewEnableModelDragSource self startButtonMask targets actions =
  alloca $ \nTargetsPtr -> do
  tlPtr <- (\(TargetList arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_target_table_new_from_list argPtr1 arg2) targets nTargetsPtr
  nTargets <- peek nTargetsPtr
  (\(IconView arg1) arg2 arg3 arg4 arg5 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_enable_model_drag_source argPtr1 arg2 arg3 arg4 arg5)
    (toIconView self)
    ((fromIntegral . fromFlags) startButtonMask)
    tlPtr
    nTargets
    ((fromIntegral . fromFlags) actions)
  gtk_target_table_free tlPtr nTargets
iconViewEnableModelDragDest :: IconViewClass self => self
  -> TargetList 
                               
  -> [DragAction] 
                               
  -> IO ()
iconViewEnableModelDragDest self targets actions =
  alloca $ \nTargetsPtr -> do
  tlPtr <- (\(TargetList arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_target_table_new_from_list argPtr1 arg2) targets nTargetsPtr
  nTargets <- peek nTargetsPtr
  (\(IconView arg1) arg2 arg3 arg4 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_enable_model_drag_dest argPtr1 arg2 arg3 arg4)
    (toIconView self)
    tlPtr
    nTargets
    ((fromIntegral . fromFlags) actions)
iconViewUnsetModelDragSource :: IconViewClass self => self -> IO ()
iconViewUnsetModelDragSource self =
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_unset_model_drag_source argPtr1)
    (toIconView self)
iconViewUnsetModelDragDest :: IconViewClass self => self -> IO ()
iconViewUnsetModelDragDest self =
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_unset_model_drag_dest argPtr1)
    (toIconView self)
iconViewSetReorderable :: IconViewClass self => self
 -> Bool 
 -> IO ()
iconViewSetReorderable self reorderable =
  (\(IconView arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_set_reorderable argPtr1 arg2)
    (toIconView self)
    (fromBool reorderable)
iconViewGetReorderable :: IconViewClass self => self
 -> IO Bool 
iconViewGetReorderable self =
  liftM toBool $
  (\(IconView arg1) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_reorderable argPtr1)
    (toIconView self)
iconViewGetItemRow :: IconViewClass self => self
                   -> TreePath 
                   -> IO Int 
iconViewGetItemRow self path =
  liftM fromIntegral $
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_item_row argPtr1 arg2)
    (toIconView self)
    path
iconViewGetItemColumn :: IconViewClass self => self
                   -> TreePath 
                   -> IO Int 
iconViewGetItemColumn self path =
  liftM fromIntegral $
  withTreePath path $ \path ->
  (\(IconView arg1) (NativeTreePath arg2) -> withForeignPtr arg1 $ \argPtr1 ->gtk_icon_view_get_item_column argPtr1 arg2)
    (toIconView self)
    path
iconViewSelectionMode :: IconViewClass self => Attr self SelectionMode
iconViewSelectionMode = newAttr
  iconViewGetSelectionMode
  iconViewSetSelectionMode
iconViewPixbufColumn :: IconViewClass self => Attr self (ColumnId row Pixbuf)
iconViewPixbufColumn = newAttr
  iconViewGetPixbufColumn
  iconViewSetPixbufColumn
iconViewTextColumn :: (IconViewClass self, GlibString string) => Attr self (ColumnId row string)
iconViewTextColumn = newAttr
  iconViewGetTextColumn
  iconViewSetTextColumn
iconViewMarkupColumn :: (IconViewClass self, GlibString markup) => Attr self (ColumnId row markup)
iconViewMarkupColumn = newAttr
  iconViewGetMarkupColumn
  iconViewSetMarkupColumn
iconViewModel :: (IconViewClass self, TreeModelClass model)
 => ReadWriteAttr self (Maybe TreeModel) (Maybe model)
iconViewModel = newAttr
  iconViewGetModel
  iconViewSetModel
iconViewColumns :: IconViewClass self => Attr self Int
iconViewColumns = newAttrFromIntProperty "columns"
iconViewItemWidth :: IconViewClass self => Attr self Int
iconViewItemWidth = newAttrFromIntProperty "item-width"
iconViewSpacing :: IconViewClass self => Attr self Int
iconViewSpacing = newAttrFromIntProperty "spacing"
iconViewRowSpacing :: IconViewClass self => Attr self Int
iconViewRowSpacing = newAttrFromIntProperty "row-spacing"
iconViewColumnSpacing :: IconViewClass self => Attr self Int
iconViewColumnSpacing = newAttrFromIntProperty "column-spacing"
iconViewMargin :: IconViewClass self => Attr self Int
iconViewMargin = newAttrFromIntProperty "margin"
iconViewOrientation :: IconViewClass self => Attr self Orientation
iconViewOrientation = newAttrFromEnumProperty "orientation"
                        gtk_orientation_get_type
iconViewReorderable :: IconViewClass self => Attr self Bool
iconViewReorderable = newAttrFromBoolProperty "reorderable"
iconViewItemOrientation :: IconViewClass self => Attr self Orientation
iconViewItemOrientation = newAttrFromEnumProperty "item-orientation"
                          gtk_orientation_get_type
setIconViewScrollAdjustments :: IconViewClass self => Signal self (Adjustment -> Adjustment -> IO ())
setIconViewScrollAdjustments = Signal (connect_OBJECT_OBJECT__NONE "set-scroll-adjustments")
itemActivated :: IconViewClass self => Signal self (TreePath -> IO ())
itemActivated = Signal (connect_BOXED__NONE "item-activated" (peekTreePath . castPtr))
selectionChanged :: IconViewClass self => Signal self (IO ())
selectionChanged = Signal (connect_NONE__NONE "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