packages feed

qtah-qt5-0.8.0: src/Graphics/UI/Qtah/Generated/Widgets/QAbstractItemView.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, MonoLocalBinds, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
---------- GENERATED FILE, EDITS WILL BE LOST ----------

module Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView (
  castQAbstractItemViewToQAbstractScrollArea,
  castQAbstractScrollAreaToQAbstractItemView,
  castQAbstractItemViewToQFrame,
  castQFrameToQAbstractItemView,
  castQAbstractItemViewToQWidget,
  castQWidgetToQAbstractItemView,
  castQAbstractItemViewToQObject,
  castQObjectToQAbstractItemView,
  QAbstractItemViewValue (..),
  QAbstractItemViewConstPtr (..),
  alternatingRowColors,
  hasAutoScroll,
  autoScrollMargin,
  currentIndex,
  defaultDropAction,
  dragDropMode,
  dragDropOverwriteMode,
  dragEnabled,
  editTriggers,
  horizontalScrollMode,
  iconSize,
  indexAt,
  indexWidget,
  itemDelegate,
  itemDelegateAt,
  itemDelegateForColumn,
  itemDelegateForRow,
  model,
  rootIndex,
  selectionBehavior,
  selectionMode,
  selectionModel,
  showDropIndicator,
  sizeHintForColumn,
  sizeHintForIndex,
  sizeHintForRow,
  tabKeyNavigation,
  textElideMode,
  verticalScrollMode,
  visualRect,
  QAbstractItemViewPtr (..),
  setAlternatingRowColors,
  setAutoScroll,
  setAutoScrollMargin,
  clearSelection,
  closePersistentEditor,
  setCurrentIndex,
  setDefaultDropAction,
  setDragDropMode,
  setDragDropOverwriteMode,
  setDragEnabled,
  edit,
  setEditTriggers,
  setHorizontalScrollMode,
  setIconSize,
  keyboardSearch,
  setModel,
  openPersistentEditor,
  reset,
  setRootIndex,
  scrollTo,
  scrollToWithHint,
  scrollToBottom,
  scrollToTop,
  selectAll,
  setSelectionBehavior,
  setSelectionMode,
  setSelectionModel,
  setDropIndicatorShown,
  setIndexWidget,
  setItemDelegate,
  setItemDelegateForColumn,
  setItemDelegateForRow,
  setTabKeyNavigation,
  setTextElideMode,
  update,
  setVerticalScrollMode,
  emitActivated,
  emitClicked,
  emitDoubleClicked,
  emitEntered,
  emitIconSizeChanged,
  emitPressed,
  emitViewportEntered,
  QAbstractItemViewConst (..),
  castQAbstractItemViewToConst,
  QAbstractItemView (..),
  castQAbstractItemViewToNonconst,
  QAbstractItemViewSuper (..),
  QAbstractItemViewSuperConst (..),
  QAbstractItemViewDragDropMode (..),
  QAbstractItemViewEditTrigger (..),
  QAbstractItemViewEditTriggers,
  IsQAbstractItemViewEditTriggers (..),
  allEditTriggers,
  anyKeyPressed,
  currentChanged,
  doubleClicked,
  editKeyPressed,
  noEditTriggers,
  selectedClicked,
  QAbstractItemViewScrollHint (..),
  QAbstractItemViewScrollMode (..),
  QAbstractItemViewSelectionBehavior (..),
  QAbstractItemViewSelectionMode (..),
  ) where

import Data.Bits ((.&.), (.|.))
import qualified Data.Bits as QtahDB
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Foreign.Hoppy.Runtime as QtahFHR
import qualified Graphics.UI.Qtah.Core.HRect as HRect
import qualified Graphics.UI.Qtah.Core.HSize as HSize
import qualified Graphics.UI.Qtah.Flags as QtahFlags
import qualified Graphics.UI.Qtah.Generated.Core.QAbstractItemModel as M4
import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionModel as M52
import qualified Graphics.UI.Qtah.Generated.Core.QModelIndex as M92
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import qualified Graphics.UI.Qtah.Generated.Core.QPoint as M114
import qualified Graphics.UI.Qtah.Generated.Core.QRect as M122
import qualified Graphics.UI.Qtah.Generated.Core.QSize as M134
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemDelegate as M358
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractScrollArea as M362
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QFrame as M400
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
import Prelude (($), (.), (/=), (=<<), (==), (>>=))
import qualified Prelude as HoppyP
import qualified Prelude as QtahP

foreign import ccall "genpop__QAbstractItemView_alternatingRowColors" alternatingRowColors' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractItemView_setAlternatingRowColors" setAlternatingRowColors' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_hasAutoScroll" hasAutoScroll' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractItemView_setAutoScroll" setAutoScroll' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_autoScrollMargin" autoScrollMargin' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setAutoScrollMargin" setAutoScrollMargin' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_clearSelection" clearSelection' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_closePersistentEditor" closePersistentEditor' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_currentIndex" currentIndex' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
foreign import ccall "genpop__QAbstractItemView_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_defaultDropAction" defaultDropAction' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setDefaultDropAction" setDefaultDropAction' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_dragDropMode" dragDropMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setDragDropMode" setDragDropMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_dragDropOverwriteMode" dragDropOverwriteMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractItemView_setDragDropOverwriteMode" setDragDropOverwriteMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_dragEnabled" dragEnabled' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractItemView_setDragEnabled" setDragEnabled' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_edit" edit' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_editTriggers" editTriggers' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setEditTriggers" setEditTriggers' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_horizontalScrollMode" horizontalScrollMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setHorizontalScrollMode" setHorizontalScrollMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_iconSize" iconSize' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
foreign import ccall "genpop__QAbstractItemView_setIconSize" setIconSize' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_indexAt" indexAt' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
foreign import ccall "genpop__QAbstractItemView_indexWidget" indexWidget' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QAbstractItemView_itemDelegate" itemDelegate' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
foreign import ccall "genpop__QAbstractItemView_itemDelegateAt" itemDelegateAt' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
foreign import ccall "genpop__QAbstractItemView_itemDelegateForColumn" itemDelegateForColumn' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
foreign import ccall "genpop__QAbstractItemView_itemDelegateForRow" itemDelegateForRow' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M358.QAbstractItemDelegate)
foreign import ccall "genpop__QAbstractItemView_keyboardSearch" keyboardSearch' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_model" model' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M4.QAbstractItemModel)
foreign import ccall "genpop__QAbstractItemView_setModel" setModel' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M4.QAbstractItemModel -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_openPersistentEditor" openPersistentEditor' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_reset" reset' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_rootIndex" rootIndex' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M92.QModelIndexConst)
foreign import ccall "genpop__QAbstractItemView_setRootIndex" setRootIndex' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_scrollTo" scrollTo' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_scrollToWithHint" scrollToWithHint' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_scrollToBottom" scrollToBottom' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_scrollToTop" scrollToTop' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_selectAll" selectAll' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_selectionBehavior" selectionBehavior' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setSelectionBehavior" setSelectionBehavior' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_selectionMode" selectionMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setSelectionMode" setSelectionMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_selectionModel" selectionModel' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO (HoppyF.Ptr M52.QItemSelectionModel)
foreign import ccall "genpop__QAbstractItemView_setSelectionModel" setSelectionModel' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M52.QItemSelectionModel -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_setDropIndicatorShown" setDropIndicatorShown' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_setIndexWidget" setIndexWidget' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_setItemDelegate" setItemDelegate' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M358.QAbstractItemDelegate -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_setItemDelegateForColumn" setItemDelegateForColumn' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyF.Ptr M358.QAbstractItemDelegate -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_setItemDelegateForRow" setItemDelegateForRow' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyF.Ptr M358.QAbstractItemDelegate -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_showDropIndicator" showDropIndicator' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractItemView_sizeHintForColumn" sizeHintForColumn' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_sizeHintForIndex" sizeHintForIndex' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
foreign import ccall "genpop__QAbstractItemView_sizeHintForRow" sizeHintForRow' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_tabKeyNavigation" tabKeyNavigation' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QAbstractItemView_setTabKeyNavigation" setTabKeyNavigation' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_textElideMode" textElideMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setTextElideMode" setTextElideMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_update" update' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_verticalScrollMode" verticalScrollMode' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QAbstractItemView_setVerticalScrollMode" setVerticalScrollMode' ::  HoppyF.Ptr QAbstractItemView -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_visualRect" visualRect' ::  HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
foreign import ccall "genpop__QAbstractItemView_emitActivated" emitActivated' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_emitClicked" emitClicked' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_emitDoubleClicked" emitDoubleClicked' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_emitEntered" emitEntered' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_emitIconSizeChanged" emitIconSizeChanged' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_emitPressed" emitPressed' ::  HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr M92.QModelIndexConst -> HoppyP.IO ()
foreign import ccall "genpop__QAbstractItemView_emitViewportEntered" emitViewportEntered' ::  HoppyF.Ptr QAbstractItemView -> HoppyP.IO ()
foreign import ccall "gencast__QAbstractItemView__QAbstractScrollArea" castQAbstractItemViewToQAbstractScrollArea :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
foreign import ccall "gencast__QAbstractScrollArea__QAbstractItemView" castQAbstractScrollAreaToQAbstractItemView :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QAbstractItemViewConst
foreign import ccall "gencast__QAbstractItemView__QFrame" castQAbstractItemViewToQFrame :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M400.QFrameConst
foreign import ccall "gencast__QFrame__QAbstractItemView" castQFrameToQAbstractItemView :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QAbstractItemViewConst
foreign import ccall "gencast__QAbstractItemView__QWidget" castQAbstractItemViewToQWidget :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QAbstractItemView" castQWidgetToQAbstractItemView :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QAbstractItemViewConst
foreign import ccall "gencast__QAbstractItemView__QObject" castQAbstractItemViewToQObject :: HoppyF.Ptr QAbstractItemViewConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QAbstractItemView" castQObjectToQAbstractItemView :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QAbstractItemViewConst
foreign import ccall "gendel__QAbstractItemView" delete'QAbstractItemView :: HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO ()
foreign import ccall "&gendel__QAbstractItemView" deletePtr'QAbstractItemView :: HoppyF.FunPtr (HoppyF.Ptr QAbstractItemViewConst -> HoppyP.IO ())

class QAbstractItemViewValue a where
  withQAbstractItemViewPtr :: a -> (QAbstractItemViewConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QAbstractItemViewConstPtr a => QAbstractItemViewValue a where
  withQAbstractItemViewPtr = HoppyP.flip ($) . toQAbstractItemViewConst

class (M362.QAbstractScrollAreaConstPtr this) => QAbstractItemViewConstPtr this where
  toQAbstractItemViewConst :: this -> QAbstractItemViewConst

alternatingRowColors :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
alternatingRowColors arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (alternatingRowColors' arg'1')

hasAutoScroll :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
hasAutoScroll arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (hasAutoScroll' arg'1')

autoScrollMargin :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Int)
autoScrollMargin arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (autoScrollMargin' arg'1')

currentIndex :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
currentIndex arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
  (currentIndex' arg'1')

defaultDropAction :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtDropAction)
defaultDropAction arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (defaultDropAction' arg'1')

dragDropMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewDragDropMode)
dragDropMode arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (dragDropMode' arg'1')

dragDropOverwriteMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
dragDropOverwriteMode arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (dragDropOverwriteMode' arg'1')

dragEnabled :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
dragEnabled arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (dragEnabled' arg'1')

editTriggers :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewEditTriggers)
editTriggers arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (editTriggers' arg'1')

horizontalScrollMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewScrollMode)
horizontalScrollMode arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (horizontalScrollMode' arg'1')

iconSize :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HSize.HSize)
iconSize arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
  (iconSize' arg'1')

indexAt :: (QAbstractItemViewValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M92.QModelIndex)
indexAt arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
  (indexAt' arg'1' arg'2')

indexWidget :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M506.QWidget)
indexWidget arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap M506.QWidget
  (indexWidget' arg'1' arg'2')

itemDelegate :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M358.QAbstractItemDelegate)
itemDelegate arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M358.QAbstractItemDelegate
  (itemDelegate' arg'1')

itemDelegateAt :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M358.QAbstractItemDelegate)
itemDelegateAt arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap M358.QAbstractItemDelegate
  (itemDelegateAt' arg'1' arg'2')

itemDelegateForColumn :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M358.QAbstractItemDelegate)
itemDelegateForColumn arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap M358.QAbstractItemDelegate
  (itemDelegateForColumn' arg'1' arg'2')

itemDelegateForRow :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M358.QAbstractItemDelegate)
itemDelegateForRow arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap M358.QAbstractItemDelegate
  (itemDelegateForRow' arg'1' arg'2')

model :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M4.QAbstractItemModel)
model arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M4.QAbstractItemModel
  (model' arg'1')

rootIndex :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M92.QModelIndex)
rootIndex arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M92.QModelIndexConst) =<<
  (rootIndex' arg'1')

selectionBehavior :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewSelectionBehavior)
selectionBehavior arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (selectionBehavior' arg'1')

selectionMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewSelectionMode)
selectionMode arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (selectionMode' arg'1')

selectionModel :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M52.QItemSelectionModel)
selectionModel arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M52.QItemSelectionModel
  (selectionModel' arg'1')

showDropIndicator :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
showDropIndicator arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (showDropIndicator' arg'1')

sizeHintForColumn :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
sizeHintForColumn arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (sizeHintForColumn' arg'1' arg'2')

sizeHintForIndex :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HSize.HSize)
sizeHintForIndex arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M134.QSizeConst) =<<
  (sizeHintForIndex' arg'1' arg'2')

sizeHintForRow :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Int)
sizeHintForRow arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (sizeHintForRow' arg'1' arg'2')

tabKeyNavigation :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO HoppyP.Bool)
tabKeyNavigation arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (tabKeyNavigation' arg'1')

textElideMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO M190.QtTextElideMode)
textElideMode arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (textElideMode' arg'1')

verticalScrollMode :: (QAbstractItemViewValue this) => (this) {- ^ this -} -> (HoppyP.IO QAbstractItemViewScrollMode)
verticalScrollMode arg'1 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (verticalScrollMode' arg'1')

visualRect :: (QAbstractItemViewValue this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
visualRect arg'1 arg'2 =
  withQAbstractItemViewPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
  (visualRect' arg'1' arg'2')

class (QAbstractItemViewConstPtr this, M362.QAbstractScrollAreaPtr this) => QAbstractItemViewPtr this where
  toQAbstractItemView :: this -> QAbstractItemView

setAlternatingRowColors :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setAlternatingRowColors arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setAlternatingRowColors' arg'1' arg'2')

setAutoScroll :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setAutoScroll arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setAutoScroll' arg'1' arg'2')

setAutoScrollMargin :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO ())
setAutoScrollMargin arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (setAutoScrollMargin' arg'1' arg'2')

clearSelection :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
clearSelection arg'1 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (clearSelection' arg'1')

closePersistentEditor :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
closePersistentEditor arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (closePersistentEditor' arg'1' arg'2')

setCurrentIndex :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setCurrentIndex arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setCurrentIndex' arg'1' arg'2')

setDefaultDropAction :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (M190.QtDropAction) -> (HoppyP.IO ())
setDefaultDropAction arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setDefaultDropAction' arg'1' arg'2')

setDragDropMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewDragDropMode) -> (HoppyP.IO ())
setDragDropMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setDragDropMode' arg'1' arg'2')

setDragDropOverwriteMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setDragDropOverwriteMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setDragDropOverwriteMode' arg'1' arg'2')

setDragEnabled :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setDragEnabled arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setDragEnabled' arg'1' arg'2')

edit :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
edit arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (edit' arg'1' arg'2')

setEditTriggers :: (QAbstractItemViewPtr this, IsQAbstractItemViewEditTriggers arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setEditTriggers arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . toQAbstractItemViewEditTriggers
  ) arg'2 >>= \arg'2' ->
  (setEditTriggers' arg'1' arg'2')

setHorizontalScrollMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewScrollMode) -> (HoppyP.IO ())
setHorizontalScrollMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setHorizontalScrollMode' arg'1' arg'2')

setIconSize :: (QAbstractItemViewPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setIconSize arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setIconSize' arg'1' arg'2')

keyboardSearch :: (QAbstractItemViewPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
keyboardSearch arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (keyboardSearch' arg'1' arg'2')

setModel :: (QAbstractItemViewPtr this, M4.QAbstractItemModelPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setModel arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M4.toQAbstractItemModel arg'2) $ \arg'2' ->
  (setModel' arg'1' arg'2')

openPersistentEditor :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
openPersistentEditor arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (openPersistentEditor' arg'1' arg'2')

reset :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
reset arg'1 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (reset' arg'1')

setRootIndex :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setRootIndex arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setRootIndex' arg'1' arg'2')

scrollTo :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
scrollTo arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (scrollTo' arg'1' arg'2')

scrollToWithHint :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (QAbstractItemViewScrollHint) -> (HoppyP.IO ())
scrollToWithHint arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'3 >>= \arg'3' ->
  (scrollToWithHint' arg'1' arg'2' arg'3')

scrollToBottom :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
scrollToBottom arg'1 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (scrollToBottom' arg'1')

scrollToTop :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
scrollToTop arg'1 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (scrollToTop' arg'1')

selectAll :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
selectAll arg'1 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (selectAll' arg'1')

setSelectionBehavior :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewSelectionBehavior) -> (HoppyP.IO ())
setSelectionBehavior arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setSelectionBehavior' arg'1' arg'2')

setSelectionMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewSelectionMode) -> (HoppyP.IO ())
setSelectionMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setSelectionMode' arg'1' arg'2')

setSelectionModel :: (QAbstractItemViewPtr this, M52.QItemSelectionModelPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setSelectionModel arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M52.toQItemSelectionModel arg'2) $ \arg'2' ->
  (setSelectionModel' arg'1' arg'2')

setDropIndicatorShown :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setDropIndicatorShown arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setDropIndicatorShown' arg'1' arg'2')

setIndexWidget :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2, M506.QWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
setIndexWidget arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
  (setIndexWidget' arg'1' arg'2' arg'3')

setItemDelegate :: (QAbstractItemViewPtr this, M358.QAbstractItemDelegatePtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setItemDelegate arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M358.toQAbstractItemDelegate arg'2) $ \arg'2' ->
  (setItemDelegate' arg'1' arg'2')

setItemDelegateForColumn :: (QAbstractItemViewPtr this, M358.QAbstractItemDelegatePtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
setItemDelegateForColumn arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyFHR.withCppPtr (M358.toQAbstractItemDelegate arg'3) $ \arg'3' ->
  (setItemDelegateForColumn' arg'1' arg'2' arg'3')

setItemDelegateForRow :: (QAbstractItemViewPtr this, M358.QAbstractItemDelegatePtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
setItemDelegateForRow arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyFHR.withCppPtr (M358.toQAbstractItemDelegate arg'3) $ \arg'3' ->
  (setItemDelegateForRow' arg'1' arg'2' arg'3')

setTabKeyNavigation :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.Bool) -> (HoppyP.IO ())
setTabKeyNavigation arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'2 >>= \arg'2' ->
  (setTabKeyNavigation' arg'1' arg'2')

setTextElideMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (M190.QtTextElideMode) -> (HoppyP.IO ())
setTextElideMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setTextElideMode' arg'1' arg'2')

update :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
update arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (update' arg'1' arg'2')

setVerticalScrollMode :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (QAbstractItemViewScrollMode) -> (HoppyP.IO ())
setVerticalScrollMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setVerticalScrollMode' arg'1' arg'2')

emitActivated :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitActivated arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitActivated' arg'1' arg'2')

emitClicked :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitClicked arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitClicked' arg'1' arg'2')

emitDoubleClicked :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitDoubleClicked arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitDoubleClicked' arg'1' arg'2')

emitEntered :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitEntered arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitEntered' arg'1' arg'2')

emitIconSizeChanged :: (QAbstractItemViewPtr this, M134.QSizeValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitIconSizeChanged arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M134.withQSizePtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitIconSizeChanged' arg'1' arg'2')

emitPressed :: (QAbstractItemViewPtr this, M92.QModelIndexValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitPressed arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  M92.withQModelIndexPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (emitPressed' arg'1' arg'2')

emitViewportEntered :: (QAbstractItemViewPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
emitViewportEntered arg'1 =
  HoppyFHR.withCppPtr (toQAbstractItemView arg'1) $ \arg'1' ->
  (emitViewportEntered' arg'1')

data QAbstractItemViewConst =
    QAbstractItemViewConst (HoppyF.Ptr QAbstractItemViewConst)
  | QAbstractItemViewConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemViewConst)
  deriving (HoppyP.Show)

instance HoppyP.Eq QAbstractItemViewConst where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QAbstractItemViewConst where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQAbstractItemViewToConst :: QAbstractItemView -> QAbstractItemViewConst
castQAbstractItemViewToConst (QAbstractItemView ptr') = QAbstractItemViewConst $ HoppyF.castPtr ptr'
castQAbstractItemViewToConst (QAbstractItemViewGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QAbstractItemViewConst where
  nullptr = QAbstractItemViewConst HoppyF.nullPtr
  
  withCppPtr (QAbstractItemViewConst ptr') f' = f' ptr'
  withCppPtr (QAbstractItemViewConstGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QAbstractItemViewConst ptr') = ptr'
  toPtr (QAbstractItemViewConstGc _ ptr') = ptr'
  
  touchCppPtr (QAbstractItemViewConst _) = HoppyP.return ()
  touchCppPtr (QAbstractItemViewConstGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QAbstractItemViewConst where
  delete (QAbstractItemViewConst ptr') = delete'QAbstractItemView ptr'
  delete (QAbstractItemViewConstGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemViewConst", " object."]
  
  toGc this'@(QAbstractItemViewConst ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemViewConstGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QAbstractItemViewConstGc {}) = HoppyP.return this'

instance QAbstractItemViewConstPtr QAbstractItemViewConst where
  toQAbstractItemViewConst = HoppyP.id

instance M362.QAbstractScrollAreaConstPtr QAbstractItemViewConst where
  toQAbstractScrollAreaConst (QAbstractItemViewConst ptr') = M362.QAbstractScrollAreaConst $ castQAbstractItemViewToQAbstractScrollArea ptr'
  toQAbstractScrollAreaConst (QAbstractItemViewConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQAbstractItemViewToQAbstractScrollArea ptr'

instance M400.QFrameConstPtr QAbstractItemViewConst where
  toQFrameConst (QAbstractItemViewConst ptr') = M400.QFrameConst $ castQAbstractItemViewToQFrame ptr'
  toQFrameConst (QAbstractItemViewConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQAbstractItemViewToQFrame ptr'

instance M506.QWidgetConstPtr QAbstractItemViewConst where
  toQWidgetConst (QAbstractItemViewConst ptr') = M506.QWidgetConst $ castQAbstractItemViewToQWidget ptr'
  toQWidgetConst (QAbstractItemViewConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractItemViewToQWidget ptr'

instance M94.QObjectConstPtr QAbstractItemViewConst where
  toQObjectConst (QAbstractItemViewConst ptr') = M94.QObjectConst $ castQAbstractItemViewToQObject ptr'
  toQObjectConst (QAbstractItemViewConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemViewToQObject ptr'

data QAbstractItemView =
    QAbstractItemView (HoppyF.Ptr QAbstractItemView)
  | QAbstractItemViewGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QAbstractItemView)
  deriving (HoppyP.Show)

instance HoppyP.Eq QAbstractItemView where
  x == y = HoppyFHR.toPtr x == HoppyFHR.toPtr y

instance HoppyP.Ord QAbstractItemView where
  compare x y = HoppyP.compare (HoppyFHR.toPtr x) (HoppyFHR.toPtr y)

castQAbstractItemViewToNonconst :: QAbstractItemViewConst -> QAbstractItemView
castQAbstractItemViewToNonconst (QAbstractItemViewConst ptr') = QAbstractItemView $ HoppyF.castPtr ptr'
castQAbstractItemViewToNonconst (QAbstractItemViewConstGc fptr' ptr') = QAbstractItemViewGc fptr' $ HoppyF.castPtr ptr'

instance HoppyFHR.CppPtr QAbstractItemView where
  nullptr = QAbstractItemView HoppyF.nullPtr
  
  withCppPtr (QAbstractItemView ptr') f' = f' ptr'
  withCppPtr (QAbstractItemViewGc fptr' ptr') f' = HoppyF.withForeignPtr fptr' $ \_ -> f' ptr'
  
  toPtr (QAbstractItemView ptr') = ptr'
  toPtr (QAbstractItemViewGc _ ptr') = ptr'
  
  touchCppPtr (QAbstractItemView _) = HoppyP.return ()
  touchCppPtr (QAbstractItemViewGc fptr' _) = HoppyF.touchForeignPtr fptr'

instance HoppyFHR.Deletable QAbstractItemView where
  delete (QAbstractItemView ptr') = delete'QAbstractItemView $ (HoppyF.castPtr ptr' :: HoppyF.Ptr QAbstractItemViewConst)
  delete (QAbstractItemViewGc _ _) = HoppyP.fail $ HoppyP.concat ["Deletable.delete: Asked to delete a GC-managed ", "QAbstractItemView", " object."]
  
  toGc this'@(QAbstractItemView ptr') = if ptr' == HoppyF.nullPtr then HoppyP.return this' else HoppyP.fmap (HoppyP.flip QAbstractItemViewGc ptr') $ HoppyF.newForeignPtr (HoppyF.castFunPtr deletePtr'QAbstractItemView :: HoppyF.FunPtr (HoppyF.Ptr () -> HoppyP.IO ())) (HoppyF.castPtr ptr' :: HoppyF.Ptr ())
  toGc this'@(QAbstractItemViewGc {}) = HoppyP.return this'

instance QAbstractItemViewConstPtr QAbstractItemView where
  toQAbstractItemViewConst (QAbstractItemView ptr') = QAbstractItemViewConst $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQAbstractItemViewConst (QAbstractItemViewGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance QAbstractItemViewPtr QAbstractItemView where
  toQAbstractItemView = HoppyP.id

instance M362.QAbstractScrollAreaConstPtr QAbstractItemView where
  toQAbstractScrollAreaConst (QAbstractItemView ptr') = M362.QAbstractScrollAreaConst $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQAbstractScrollAreaConst (QAbstractItemViewGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance M362.QAbstractScrollAreaPtr QAbstractItemView where
  toQAbstractScrollArea (QAbstractItemView ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQAbstractScrollArea (QAbstractItemViewGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQAbstractItemViewToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance M400.QFrameConstPtr QAbstractItemView where
  toQFrameConst (QAbstractItemView ptr') = M400.QFrameConst $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQFrameConst (QAbstractItemViewGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance M400.QFramePtr QAbstractItemView where
  toQFrame (QAbstractItemView ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQFrame (QAbstractItemViewGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQAbstractItemViewToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance M506.QWidgetConstPtr QAbstractItemView where
  toQWidgetConst (QAbstractItemView ptr') = M506.QWidgetConst $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQWidgetConst (QAbstractItemViewGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance M506.QWidgetPtr QAbstractItemView where
  toQWidget (QAbstractItemView ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQWidget (QAbstractItemViewGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQAbstractItemViewToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance M94.QObjectConstPtr QAbstractItemView where
  toQObjectConst (QAbstractItemView ptr') = M94.QObjectConst $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQObjectConst (QAbstractItemViewGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

instance M94.QObjectPtr QAbstractItemView where
  toQObject (QAbstractItemView ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'
  toQObject (QAbstractItemViewGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQAbstractItemViewToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QAbstractItemView -> HoppyF.Ptr QAbstractItemViewConst) ptr'

class QAbstractItemViewSuper a where
  downToQAbstractItemView :: a -> QAbstractItemView

instance QAbstractItemViewSuper M362.QAbstractScrollArea where
  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M362.castQAbstractScrollAreaToConst
    where
      cast' (M362.QAbstractScrollAreaConst ptr') = QAbstractItemViewConst $ castQAbstractScrollAreaToQAbstractItemView ptr'
      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQAbstractScrollAreaToQAbstractItemView ptr'
instance QAbstractItemViewSuper M400.QFrame where
  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M400.castQFrameToConst
    where
      cast' (M400.QFrameConst ptr') = QAbstractItemViewConst $ castQFrameToQAbstractItemView ptr'
      cast' (M400.QFrameConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQFrameToQAbstractItemView ptr'
instance QAbstractItemViewSuper M506.QWidget where
  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QAbstractItemViewConst $ castQWidgetToQAbstractItemView ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQWidgetToQAbstractItemView ptr'
instance QAbstractItemViewSuper M94.QObject where
  downToQAbstractItemView = castQAbstractItemViewToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QAbstractItemViewConst $ castQObjectToQAbstractItemView ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQObjectToQAbstractItemView ptr'

class QAbstractItemViewSuperConst a where
  downToQAbstractItemViewConst :: a -> QAbstractItemViewConst

instance QAbstractItemViewSuperConst M362.QAbstractScrollAreaConst where
  downToQAbstractItemViewConst = cast'
    where
      cast' (M362.QAbstractScrollAreaConst ptr') = QAbstractItemViewConst $ castQAbstractScrollAreaToQAbstractItemView ptr'
      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQAbstractScrollAreaToQAbstractItemView ptr'
instance QAbstractItemViewSuperConst M400.QFrameConst where
  downToQAbstractItemViewConst = cast'
    where
      cast' (M400.QFrameConst ptr') = QAbstractItemViewConst $ castQFrameToQAbstractItemView ptr'
      cast' (M400.QFrameConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQFrameToQAbstractItemView ptr'
instance QAbstractItemViewSuperConst M506.QWidgetConst where
  downToQAbstractItemViewConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QAbstractItemViewConst $ castQWidgetToQAbstractItemView ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQWidgetToQAbstractItemView ptr'
instance QAbstractItemViewSuperConst M94.QObjectConst where
  downToQAbstractItemViewConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QAbstractItemViewConst $ castQObjectToQAbstractItemView ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QAbstractItemViewConstGc fptr' $ castQObjectToQAbstractItemView ptr'

instance HoppyFHR.Assignable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemView)) QAbstractItemView where
  assign ptr' value' = HoppyF.poke ptr' $ HoppyFHR.toPtr value'

instance HoppyFHR.Decodable (HoppyF.Ptr (HoppyF.Ptr QAbstractItemView)) QAbstractItemView where
  decode = HoppyP.fmap QAbstractItemView . HoppyF.peek

data QAbstractItemViewDragDropMode =
  NoDragDrop
  | DragOnly
  | DropOnly
  | DragDrop
  | InternalMove
  | UnknownQAbstractItemViewDragDropMode (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewDragDropMode where
  fromCppEnum NoDragDrop = 0
  fromCppEnum DragOnly = 1
  fromCppEnum DropOnly = 2
  fromCppEnum DragDrop = 3
  fromCppEnum InternalMove = 4
  fromCppEnum (UnknownQAbstractItemViewDragDropMode n) = n
  
  toCppEnum (0) = NoDragDrop
  toCppEnum (1) = DragOnly
  toCppEnum (2) = DropOnly
  toCppEnum (3) = DragDrop
  toCppEnum (4) = InternalMove
  toCppEnum n = UnknownQAbstractItemViewDragDropMode n

instance HoppyP.Eq QAbstractItemViewDragDropMode where
  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y

instance HoppyP.Ord QAbstractItemViewDragDropMode where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)

data QAbstractItemViewEditTrigger =
  NoEditTriggers
  | CurrentChanged
  | DoubleClicked
  | SelectedClicked
  | EditKeyPressed
  | AnyKeyPressed
  | AllEditTriggers
  | UnknownQAbstractItemViewEditTrigger (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewEditTrigger where
  fromCppEnum NoEditTriggers = 0
  fromCppEnum CurrentChanged = 1
  fromCppEnum DoubleClicked = 2
  fromCppEnum SelectedClicked = 4
  fromCppEnum EditKeyPressed = 8
  fromCppEnum AnyKeyPressed = 16
  fromCppEnum AllEditTriggers = 31
  fromCppEnum (UnknownQAbstractItemViewEditTrigger n) = n
  
  toCppEnum (0) = NoEditTriggers
  toCppEnum (1) = CurrentChanged
  toCppEnum (2) = DoubleClicked
  toCppEnum (4) = SelectedClicked
  toCppEnum (8) = EditKeyPressed
  toCppEnum (16) = AnyKeyPressed
  toCppEnum (31) = AllEditTriggers
  toCppEnum n = UnknownQAbstractItemViewEditTrigger n

instance HoppyP.Eq QAbstractItemViewEditTrigger where
  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y

instance HoppyP.Ord QAbstractItemViewEditTrigger where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)

newtype QAbstractItemViewEditTriggers = QAbstractItemViewEditTriggers (HoppyFC.CInt) deriving (QtahP.Eq, QtahP.Ord, QtahP.Show)

instance QtahFlags.Flags (HoppyFC.CInt) QAbstractItemViewEditTrigger QAbstractItemViewEditTriggers where
  enumToFlags = QAbstractItemViewEditTriggers . QtahFHR.fromCppEnum
  flagsToEnum (QAbstractItemViewEditTriggers x') = QtahFHR.toCppEnum x'

class IsQAbstractItemViewEditTriggers a where
  toQAbstractItemViewEditTriggers :: a -> QAbstractItemViewEditTriggers

instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTriggers where toQAbstractItemViewEditTriggers = QtahP.id
instance IsQAbstractItemViewEditTriggers QAbstractItemViewEditTrigger where toQAbstractItemViewEditTriggers = QtahFlags.enumToFlags
instance IsQAbstractItemViewEditTriggers (HoppyFC.CInt) where toQAbstractItemViewEditTriggers = QtahFlags.numToFlags

allEditTriggers :: QAbstractItemViewEditTriggers
allEditTriggers = QAbstractItemViewEditTriggers (31)

anyKeyPressed :: QAbstractItemViewEditTriggers
anyKeyPressed = QAbstractItemViewEditTriggers (16)

currentChanged :: QAbstractItemViewEditTriggers
currentChanged = QAbstractItemViewEditTriggers (1)

doubleClicked :: QAbstractItemViewEditTriggers
doubleClicked = QAbstractItemViewEditTriggers (2)

editKeyPressed :: QAbstractItemViewEditTriggers
editKeyPressed = QAbstractItemViewEditTriggers (8)

noEditTriggers :: QAbstractItemViewEditTriggers
noEditTriggers = QAbstractItemViewEditTriggers (0)

selectedClicked :: QAbstractItemViewEditTriggers
selectedClicked = QAbstractItemViewEditTriggers (4)

instance QtahDB.Bits QAbstractItemViewEditTriggers where
  x .&. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .&. QtahFlags.flagsToNum y)
  x .|. y = QtahFlags.numToFlags (QtahFlags.flagsToNum x .|. QtahFlags.flagsToNum y)
  xor x y = QtahFlags.numToFlags $ QtahDB.xor (QtahFlags.flagsToNum x) (QtahFlags.flagsToNum y)
  complement x = QtahFlags.numToFlags $ QtahDB.complement $ QtahFlags.flagsToNum x
  shift x i = QtahFlags.numToFlags $ QtahDB.shift (QtahFlags.flagsToNum x) i
  rotate x i = QtahFlags.numToFlags $ QtahDB.rotate (QtahFlags.flagsToNum x) i
  bitSize x = case QtahDB.bitSizeMaybe x of
      QtahP.Just n -> n
      QtahP.Nothing -> QtahP.error "bitSize is undefined"
  bitSizeMaybe = QtahDB.bitSizeMaybe . QtahFlags.flagsToNum
  isSigned = QtahDB.isSigned . QtahFlags.flagsToNum
  testBit x i = QtahDB.testBit (QtahFlags.flagsToNum x) i
  bit = QtahFlags.numToFlags . QtahDB.bit
  popCount = QtahDB.popCount . QtahFlags.flagsToNum

data QAbstractItemViewScrollHint =
  EnsureVisible
  | PositionAtTop
  | PositionAtBottom
  | PositionAtCenter
  | UnknownQAbstractItemViewScrollHint (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewScrollHint where
  fromCppEnum EnsureVisible = 0
  fromCppEnum PositionAtTop = 1
  fromCppEnum PositionAtBottom = 2
  fromCppEnum PositionAtCenter = 3
  fromCppEnum (UnknownQAbstractItemViewScrollHint n) = n
  
  toCppEnum (0) = EnsureVisible
  toCppEnum (1) = PositionAtTop
  toCppEnum (2) = PositionAtBottom
  toCppEnum (3) = PositionAtCenter
  toCppEnum n = UnknownQAbstractItemViewScrollHint n

instance HoppyP.Eq QAbstractItemViewScrollHint where
  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y

instance HoppyP.Ord QAbstractItemViewScrollHint where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)

data QAbstractItemViewScrollMode =
  ScrollPerItem
  | ScrollPerPixel
  | UnknownQAbstractItemViewScrollMode (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewScrollMode where
  fromCppEnum ScrollPerItem = 0
  fromCppEnum ScrollPerPixel = 1
  fromCppEnum (UnknownQAbstractItemViewScrollMode n) = n
  
  toCppEnum (0) = ScrollPerItem
  toCppEnum (1) = ScrollPerPixel
  toCppEnum n = UnknownQAbstractItemViewScrollMode n

instance HoppyP.Eq QAbstractItemViewScrollMode where
  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y

instance HoppyP.Ord QAbstractItemViewScrollMode where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)

data QAbstractItemViewSelectionBehavior =
  SelectItems
  | SelectRows
  | SelectColumns
  | UnknownQAbstractItemViewSelectionBehavior (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewSelectionBehavior where
  fromCppEnum SelectItems = 0
  fromCppEnum SelectRows = 1
  fromCppEnum SelectColumns = 2
  fromCppEnum (UnknownQAbstractItemViewSelectionBehavior n) = n
  
  toCppEnum (0) = SelectItems
  toCppEnum (1) = SelectRows
  toCppEnum (2) = SelectColumns
  toCppEnum n = UnknownQAbstractItemViewSelectionBehavior n

instance HoppyP.Eq QAbstractItemViewSelectionBehavior where
  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y

instance HoppyP.Ord QAbstractItemViewSelectionBehavior where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)

data QAbstractItemViewSelectionMode =
  NoSelection
  | SingleSelection
  | MultiSelection
  | ExtendedSelection
  | ContiguousSelection
  | UnknownQAbstractItemViewSelectionMode (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QAbstractItemViewSelectionMode where
  fromCppEnum NoSelection = 0
  fromCppEnum SingleSelection = 1
  fromCppEnum MultiSelection = 2
  fromCppEnum ExtendedSelection = 3
  fromCppEnum ContiguousSelection = 4
  fromCppEnum (UnknownQAbstractItemViewSelectionMode n) = n
  
  toCppEnum (0) = NoSelection
  toCppEnum (1) = SingleSelection
  toCppEnum (2) = MultiSelection
  toCppEnum (3) = ExtendedSelection
  toCppEnum (4) = ContiguousSelection
  toCppEnum n = UnknownQAbstractItemViewSelectionMode n

instance HoppyP.Eq QAbstractItemViewSelectionMode where
  x == y = HoppyFHR.fromCppEnum x == HoppyFHR.fromCppEnum y

instance HoppyP.Ord QAbstractItemViewSelectionMode where
  compare x y = HoppyP.compare (HoppyFHR.fromCppEnum x) (HoppyFHR.fromCppEnum y)