packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QTreeWidget (
  castQTreeWidgetToQTreeView,
  castQTreeViewToQTreeWidget,
  castQTreeWidgetToQAbstractItemView,
  castQAbstractItemViewToQTreeWidget,
  castQTreeWidgetToQAbstractScrollArea,
  castQAbstractScrollAreaToQTreeWidget,
  castQTreeWidgetToQFrame,
  castQFrameToQTreeWidget,
  castQTreeWidgetToQWidget,
  castQWidgetToQTreeWidget,
  castQTreeWidgetToQObject,
  castQObjectToQTreeWidget,
  QTreeWidgetValue (..),
  QTreeWidgetConstPtr (..),
  columnCount,
  currentColumn,
  currentItem,
  findItems,
  findItemsWithColumn,
  headerItem,
  indexOfTopLevelItem,
  invisibleRootItem,
  isPersistentEditorOpen,
  isPersistentEditorOpenWithColumn,
  itemAbove,
  itemAt,
  itemAtRaw,
  itemBelow,
  itemWidget,
  selectedItems,
  sortColumn,
  topLevelItem,
  topLevelItemCount,
  visualItemRect,
  QTreeWidgetPtr (..),
  addTopLevelItem,
  addTopLevelItems,
  closePersistentEditor,
  closePersistentEditorWithColumn,
  setColumnCount,
  editItem,
  editItemWithColumn,
  insertTopLevelItem,
  insertTopLevelItems,
  openPersistentEditor,
  openPersistentEditorWithColumn,
  removeItemWidget,
  setCurrentItem,
  setCurrentItemWithColumn,
  setCurrentItemWithColumnAndFlags,
  setHeaderItem,
  setHeaderLabel,
  setHeaderLabels,
  setItemWidget,
  sortItems,
  takeTopLevelItem,
  clear,
  collapseItem,
  expandItem,
  scrollToItem,
  scrollToItemWithHint,
  emitCurrentItemChanged,
  emitItemActivated,
  emitItemChanged,
  emitItemClicked,
  emitItemCollapsed,
  emitItemDoubleClicked,
  emitItemEntered,
  emitItemExpanded,
  emitItemPressed,
  emitItemSelectionChanged,
  QTreeWidgetConst (..),
  castQTreeWidgetToConst,
  QTreeWidget (..),
  castQTreeWidgetToNonconst,
  new,
  newWithParent,
  QTreeWidgetSuper (..),
  QTreeWidgetSuperConst (..),
  ) where

import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Core.HRect as HRect
import qualified Graphics.UI.Qtah.Flags as QtahFlags
import qualified Graphics.UI.Qtah.Generated.Core.QItemSelectionModel as M52
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Core.QList.QTreeWidgetItem as M212
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.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QAbstractItemView as M360
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.QTreeView as M498
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTreeWidgetItem as M502
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__QTreeWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QTreeWidget)
foreign import ccall "genpop__QTreeWidget_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QTreeWidget)
foreign import ccall "genpop__QTreeWidget_addTopLevelItem" addTopLevelItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_addTopLevelItems" addTopLevelItems' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M212.QListQTreeWidgetItemConst -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_closePersistentEditor" closePersistentEditor' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_closePersistentEditorWithColumn" closePersistentEditorWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_columnCount" columnCount' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTreeWidget_setColumnCount" setColumnCount' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_currentColumn" currentColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTreeWidget_currentItem" currentItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_editItem" editItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_editItemWithColumn" editItemWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_findItems" findItems' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M212.QListQTreeWidgetItemConst)
foreign import ccall "genpop__QTreeWidget_findItemsWithColumn" findItemsWithColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M212.QListQTreeWidgetItemConst)
foreign import ccall "genpop__QTreeWidget_headerItem" headerItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_indexOfTopLevelItem" indexOfTopLevelItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTreeWidget_insertTopLevelItem" insertTopLevelItem' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_insertTopLevelItems" insertTopLevelItems' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyF.Ptr M212.QListQTreeWidgetItemConst -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_invisibleRootItem" invisibleRootItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_isPersistentEditorOpen" isPersistentEditorOpen' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTreeWidget_isPersistentEditorOpenWithColumn" isPersistentEditorOpenWithColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTreeWidget_itemAbove" itemAbove' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_itemAt" itemAt' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M114.QPointConst -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_itemAtRaw" itemAtRaw' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_itemBelow" itemBelow' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_itemWidget" itemWidget' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QTreeWidget_openPersistentEditor" openPersistentEditor' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_openPersistentEditorWithColumn" openPersistentEditorWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_removeItemWidget" removeItemWidget' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_selectedItems" selectedItems' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO (HoppyF.Ptr M212.QListQTreeWidgetItemConst)
foreign import ccall "genpop__QTreeWidget_setCurrentItem" setCurrentItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_setCurrentItemWithColumn" setCurrentItemWithColumn' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_setCurrentItemWithColumnAndFlags" setCurrentItemWithColumnAndFlags' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_setHeaderItem" setHeaderItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_setHeaderLabel" setHeaderLabel' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_setHeaderLabels" setHeaderLabels' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_setItemWidget" setItemWidget' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_sortColumn" sortColumn' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTreeWidget_sortItems" sortItems' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_takeTopLevelItem" takeTopLevelItem' ::  HoppyF.Ptr QTreeWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_topLevelItem" topLevelItem' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M502.QTreeWidgetItem)
foreign import ccall "genpop__QTreeWidget_topLevelItemCount" topLevelItemCount' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTreeWidget_visualItemRect" visualItemRect' ::  HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO (HoppyF.Ptr M122.QRectConst)
foreign import ccall "genpop__QTreeWidget_clear" clear' ::  HoppyF.Ptr QTreeWidget -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_collapseItem" collapseItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_expandItem" expandItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_scrollToItem" scrollToItem' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_scrollToItemWithHint" scrollToItemWithHint' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitCurrentItemChanged" emitCurrentItemChanged' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemActivated" emitItemActivated' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemChanged" emitItemChanged' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemClicked" emitItemClicked' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemCollapsed" emitItemCollapsed' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemDoubleClicked" emitItemDoubleClicked' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemEntered" emitItemEntered' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemExpanded" emitItemExpanded' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemPressed" emitItemPressed' ::  HoppyF.Ptr QTreeWidget -> HoppyF.Ptr M502.QTreeWidgetItem -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTreeWidget_emitItemSelectionChanged" emitItemSelectionChanged' ::  HoppyF.Ptr QTreeWidget -> HoppyP.IO ()
foreign import ccall "gencast__QTreeWidget__QTreeView" castQTreeWidgetToQTreeView :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M498.QTreeViewConst
foreign import ccall "gencast__QTreeView__QTreeWidget" castQTreeViewToQTreeWidget :: HoppyF.Ptr M498.QTreeViewConst -> HoppyF.Ptr QTreeWidgetConst
foreign import ccall "gencast__QTreeWidget__QAbstractItemView" castQTreeWidgetToQAbstractItemView :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M360.QAbstractItemViewConst
foreign import ccall "gencast__QAbstractItemView__QTreeWidget" castQAbstractItemViewToQTreeWidget :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr QTreeWidgetConst
foreign import ccall "gencast__QTreeWidget__QAbstractScrollArea" castQTreeWidgetToQAbstractScrollArea :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M362.QAbstractScrollAreaConst
foreign import ccall "gencast__QAbstractScrollArea__QTreeWidget" castQAbstractScrollAreaToQTreeWidget :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr QTreeWidgetConst
foreign import ccall "gencast__QTreeWidget__QFrame" castQTreeWidgetToQFrame :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M400.QFrameConst
foreign import ccall "gencast__QFrame__QTreeWidget" castQFrameToQTreeWidget :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr QTreeWidgetConst
foreign import ccall "gencast__QTreeWidget__QWidget" castQTreeWidgetToQWidget :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QTreeWidget" castQWidgetToQTreeWidget :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QTreeWidgetConst
foreign import ccall "gencast__QTreeWidget__QObject" castQTreeWidgetToQObject :: HoppyF.Ptr QTreeWidgetConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QTreeWidget" castQObjectToQTreeWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTreeWidgetConst
foreign import ccall "gendel__QTreeWidget" delete'QTreeWidget :: HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO ()
foreign import ccall "&gendel__QTreeWidget" deletePtr'QTreeWidget :: HoppyF.FunPtr (HoppyF.Ptr QTreeWidgetConst -> HoppyP.IO ())

class QTreeWidgetValue a where
  withQTreeWidgetPtr :: a -> (QTreeWidgetConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QTreeWidgetConstPtr a => QTreeWidgetValue a where
  withQTreeWidgetPtr = HoppyP.flip ($) . toQTreeWidgetConst

class (M498.QTreeViewConstPtr this) => QTreeWidgetConstPtr this where
  toQTreeWidgetConst :: this -> QTreeWidgetConst

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

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

currentItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
currentItem arg'1 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (currentItem' arg'1')

findItems :: (QTreeWidgetValue this, M142.QStringValue arg'2, M190.IsQtMatchFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO [M502.QTreeWidgetItem])
findItems arg'1 arg'2 arg'3 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtMatchFlags
  ) arg'3 >>= \arg'3' ->
  (HoppyFHR.decodeAndDelete . M212.QListQTreeWidgetItemConst) =<<
  (findItems' arg'1' arg'2' arg'3')

findItemsWithColumn :: (QTreeWidgetValue this, M142.QStringValue arg'2, M190.IsQtMatchFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.Int) -> (HoppyP.IO [M502.QTreeWidgetItem])
findItemsWithColumn arg'1 arg'2 arg'3 arg'4 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtMatchFlags
  ) arg'3 >>= \arg'3' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'4 >>= \arg'4' ->
  (HoppyFHR.decodeAndDelete . M212.QListQTreeWidgetItemConst) =<<
  (findItemsWithColumn' arg'1' arg'2' arg'3' arg'4')

headerItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
headerItem arg'1 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (headerItem' arg'1')

indexOfTopLevelItem :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
indexOfTopLevelItem arg'1 arg'2 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (indexOfTopLevelItem' arg'1' arg'2')

invisibleRootItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M502.QTreeWidgetItem)
invisibleRootItem arg'1 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (invisibleRootItem' arg'1')

isPersistentEditorOpen :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
isPersistentEditorOpen arg'1 arg'2 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isPersistentEditorOpen' arg'1' arg'2')

isPersistentEditorOpenWithColumn :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
isPersistentEditorOpenWithColumn arg'1 arg'2 arg'3 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isPersistentEditorOpenWithColumn' arg'1' arg'2' arg'3')

itemAbove :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M502.QTreeWidgetItem)
itemAbove arg'1 arg'2 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (itemAbove' arg'1' arg'2')

itemAt :: (QTreeWidgetValue this, M114.QPointValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M502.QTreeWidgetItem)
itemAt arg'1 arg'2 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  M114.withQPointPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (itemAt' arg'1' arg'2')

itemAtRaw :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
itemAtRaw arg'1 arg'2 arg'3 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (itemAtRaw' arg'1' arg'2' arg'3')

itemBelow :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M502.QTreeWidgetItem)
itemBelow arg'1 arg'2 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (itemBelow' arg'1' arg'2')

itemWidget :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
itemWidget arg'1 arg'2 arg'3 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  HoppyP.fmap M506.QWidget
  (itemWidget' arg'1' arg'2' arg'3')

selectedItems :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO [M502.QTreeWidgetItem])
selectedItems arg'1 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M212.QListQTreeWidgetItemConst) =<<
  (selectedItems' arg'1')

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

topLevelItem :: (QTreeWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
topLevelItem arg'1 arg'2 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (topLevelItem' arg'1' arg'2')

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

visualItemRect :: (QTreeWidgetValue this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HRect.HRect)
visualItemRect arg'1 arg'2 =
  withQTreeWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (HoppyFHR.decodeAndDelete . M122.QRectConst) =<<
  (visualItemRect' arg'1' arg'2')

class (QTreeWidgetConstPtr this, M498.QTreeViewPtr this) => QTreeWidgetPtr this where
  toQTreeWidget :: this -> QTreeWidget

addTopLevelItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
addTopLevelItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (addTopLevelItem' arg'1' arg'2')

addTopLevelItems :: (QTreeWidgetPtr this, M212.QListQTreeWidgetItemValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
addTopLevelItems arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  M212.withQListQTreeWidgetItemPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (addTopLevelItems' arg'1' arg'2')

closePersistentEditor :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
closePersistentEditor arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (closePersistentEditor' arg'1' arg'2')

closePersistentEditorWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
closePersistentEditorWithColumn arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (closePersistentEditorWithColumn' arg'1' arg'2' arg'3')

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

editItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
editItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (editItem' arg'1' arg'2')

editItemWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
editItemWithColumn arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (editItemWithColumn' arg'1' arg'2' arg'3')

insertTopLevelItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
insertTopLevelItem arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'3) $ \arg'3' ->
  (insertTopLevelItem' arg'1' arg'2' arg'3')

insertTopLevelItems :: (QTreeWidgetPtr this, M212.QListQTreeWidgetItemValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
insertTopLevelItems arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  M212.withQListQTreeWidgetItemPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (insertTopLevelItems' arg'1' arg'2' arg'3')

openPersistentEditor :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
openPersistentEditor arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (openPersistentEditor' arg'1' arg'2')

openPersistentEditorWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
openPersistentEditorWithColumn arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (openPersistentEditorWithColumn' arg'1' arg'2' arg'3')

removeItemWidget :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
removeItemWidget arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (removeItemWidget' arg'1' arg'2' arg'3')

setCurrentItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setCurrentItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (setCurrentItem' arg'1' arg'2')

setCurrentItemWithColumn :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
setCurrentItemWithColumn arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (setCurrentItemWithColumn' arg'1' arg'2' arg'3')

setCurrentItemWithColumnAndFlags :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2, M52.IsQItemSelectionModelSelectionFlags arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
setCurrentItemWithColumnAndFlags arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M52.toQItemSelectionModelSelectionFlags
  ) arg'4 >>= \arg'4' ->
  (setCurrentItemWithColumnAndFlags' arg'1' arg'2' arg'3' arg'4')

setHeaderItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setHeaderItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (setHeaderItem' arg'1' arg'2')

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

setHeaderLabels :: (QTreeWidgetPtr this, M144.QStringListValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setHeaderLabels arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  M144.withQStringListPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setHeaderLabels' arg'1' arg'2')

setItemWidget :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2, M506.QWidgetPtr arg'4) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (arg'4) -> (HoppyP.IO ())
setItemWidget arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'4) $ \arg'4' ->
  (setItemWidget' arg'1' arg'2' arg'3' arg'4')

sortItems :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (M190.QtSortOrder) -> (HoppyP.IO ())
sortItems arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'3 >>= \arg'3' ->
  (sortItems' arg'1' arg'2' arg'3')

takeTopLevelItem :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M502.QTreeWidgetItem)
takeTopLevelItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap M502.QTreeWidgetItem
  (takeTopLevelItem' arg'1' arg'2')

clear :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
clear arg'1 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  (clear' arg'1')

collapseItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
collapseItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (collapseItem' arg'1' arg'2')

expandItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
expandItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (expandItem' arg'1' arg'2')

scrollToItem :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
scrollToItem arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (scrollToItem' arg'1' arg'2')

scrollToItemWithHint :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (M360.QAbstractItemViewScrollHint) -> (HoppyP.IO ())
scrollToItemWithHint arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'3 >>= \arg'3' ->
  (scrollToItemWithHint' arg'1' arg'2' arg'3')

emitCurrentItemChanged :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2, M502.QTreeWidgetItemPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
emitCurrentItemChanged arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'3) $ \arg'3' ->
  (emitCurrentItemChanged' arg'1' arg'2' arg'3')

emitItemActivated :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
emitItemActivated arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (emitItemActivated' arg'1' arg'2' arg'3')

emitItemChanged :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
emitItemChanged arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (emitItemChanged' arg'1' arg'2' arg'3')

emitItemClicked :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
emitItemClicked arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (emitItemClicked' arg'1' arg'2' arg'3')

emitItemCollapsed :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitItemCollapsed arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (emitItemCollapsed' arg'1' arg'2')

emitItemDoubleClicked :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
emitItemDoubleClicked arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (emitItemDoubleClicked' arg'1' arg'2' arg'3')

emitItemEntered :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
emitItemEntered arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (emitItemEntered' arg'1' arg'2' arg'3')

emitItemExpanded :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitItemExpanded arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (emitItemExpanded' arg'1' arg'2')

emitItemPressed :: (QTreeWidgetPtr this, M502.QTreeWidgetItemPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO ())
emitItemPressed arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M502.toQTreeWidgetItem arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (emitItemPressed' arg'1' arg'2' arg'3')

emitItemSelectionChanged :: (QTreeWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
emitItemSelectionChanged arg'1 =
  HoppyFHR.withCppPtr (toQTreeWidget arg'1) $ \arg'1' ->
  (emitItemSelectionChanged' arg'1')

data QTreeWidgetConst =
    QTreeWidgetConst (HoppyF.Ptr QTreeWidgetConst)
  | QTreeWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidgetConst)
  deriving (HoppyP.Show)

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

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

castQTreeWidgetToConst :: QTreeWidget -> QTreeWidgetConst
castQTreeWidgetToConst (QTreeWidget ptr') = QTreeWidgetConst $ HoppyF.castPtr ptr'
castQTreeWidgetToConst (QTreeWidgetGc fptr' ptr') = QTreeWidgetConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QTreeWidgetConstPtr QTreeWidgetConst where
  toQTreeWidgetConst = HoppyP.id

instance M498.QTreeViewConstPtr QTreeWidgetConst where
  toQTreeViewConst (QTreeWidgetConst ptr') = M498.QTreeViewConst $ castQTreeWidgetToQTreeView ptr'
  toQTreeViewConst (QTreeWidgetConstGc fptr' ptr') = M498.QTreeViewConstGc fptr' $ castQTreeWidgetToQTreeView ptr'

instance M360.QAbstractItemViewConstPtr QTreeWidgetConst where
  toQAbstractItemViewConst (QTreeWidgetConst ptr') = M360.QAbstractItemViewConst $ castQTreeWidgetToQAbstractItemView ptr'
  toQAbstractItemViewConst (QTreeWidgetConstGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQTreeWidgetToQAbstractItemView ptr'

instance M362.QAbstractScrollAreaConstPtr QTreeWidgetConst where
  toQAbstractScrollAreaConst (QTreeWidgetConst ptr') = M362.QAbstractScrollAreaConst $ castQTreeWidgetToQAbstractScrollArea ptr'
  toQAbstractScrollAreaConst (QTreeWidgetConstGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTreeWidgetToQAbstractScrollArea ptr'

instance M400.QFrameConstPtr QTreeWidgetConst where
  toQFrameConst (QTreeWidgetConst ptr') = M400.QFrameConst $ castQTreeWidgetToQFrame ptr'
  toQFrameConst (QTreeWidgetConstGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTreeWidgetToQFrame ptr'

instance M506.QWidgetConstPtr QTreeWidgetConst where
  toQWidgetConst (QTreeWidgetConst ptr') = M506.QWidgetConst $ castQTreeWidgetToQWidget ptr'
  toQWidgetConst (QTreeWidgetConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTreeWidgetToQWidget ptr'

instance M94.QObjectConstPtr QTreeWidgetConst where
  toQObjectConst (QTreeWidgetConst ptr') = M94.QObjectConst $ castQTreeWidgetToQObject ptr'
  toQObjectConst (QTreeWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTreeWidgetToQObject ptr'

data QTreeWidget =
    QTreeWidget (HoppyF.Ptr QTreeWidget)
  | QTreeWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTreeWidget)
  deriving (HoppyP.Show)

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

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

castQTreeWidgetToNonconst :: QTreeWidgetConst -> QTreeWidget
castQTreeWidgetToNonconst (QTreeWidgetConst ptr') = QTreeWidget $ HoppyF.castPtr ptr'
castQTreeWidgetToNonconst (QTreeWidgetConstGc fptr' ptr') = QTreeWidgetGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QTreeWidgetConstPtr QTreeWidget where
  toQTreeWidgetConst (QTreeWidget ptr') = QTreeWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQTreeWidgetConst (QTreeWidgetGc fptr' ptr') = QTreeWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance QTreeWidgetPtr QTreeWidget where
  toQTreeWidget = HoppyP.id

instance M498.QTreeViewConstPtr QTreeWidget where
  toQTreeViewConst (QTreeWidget ptr') = M498.QTreeViewConst $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQTreeViewConst (QTreeWidgetGc fptr' ptr') = M498.QTreeViewConstGc fptr' $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M498.QTreeViewPtr QTreeWidget where
  toQTreeView (QTreeWidget ptr') = M498.QTreeView $ (HoppyF.castPtr :: HoppyF.Ptr M498.QTreeViewConst -> HoppyF.Ptr M498.QTreeView) $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQTreeView (QTreeWidgetGc fptr' ptr') = M498.QTreeViewGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M498.QTreeViewConst -> HoppyF.Ptr M498.QTreeView) $ castQTreeWidgetToQTreeView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M360.QAbstractItemViewConstPtr QTreeWidget where
  toQAbstractItemViewConst (QTreeWidget ptr') = M360.QAbstractItemViewConst $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQAbstractItemViewConst (QTreeWidgetGc fptr' ptr') = M360.QAbstractItemViewConstGc fptr' $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M360.QAbstractItemViewPtr QTreeWidget where
  toQAbstractItemView (QTreeWidget ptr') = M360.QAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQAbstractItemView (QTreeWidgetGc fptr' ptr') = M360.QAbstractItemViewGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M360.QAbstractItemViewConst -> HoppyF.Ptr M360.QAbstractItemView) $ castQTreeWidgetToQAbstractItemView $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M362.QAbstractScrollAreaConstPtr QTreeWidget where
  toQAbstractScrollAreaConst (QTreeWidget ptr') = M362.QAbstractScrollAreaConst $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQAbstractScrollAreaConst (QTreeWidgetGc fptr' ptr') = M362.QAbstractScrollAreaConstGc fptr' $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M362.QAbstractScrollAreaPtr QTreeWidget where
  toQAbstractScrollArea (QTreeWidget ptr') = M362.QAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQAbstractScrollArea (QTreeWidgetGc fptr' ptr') = M362.QAbstractScrollAreaGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M362.QAbstractScrollAreaConst -> HoppyF.Ptr M362.QAbstractScrollArea) $ castQTreeWidgetToQAbstractScrollArea $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M400.QFrameConstPtr QTreeWidget where
  toQFrameConst (QTreeWidget ptr') = M400.QFrameConst $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQFrameConst (QTreeWidgetGc fptr' ptr') = M400.QFrameConstGc fptr' $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M400.QFramePtr QTreeWidget where
  toQFrame (QTreeWidget ptr') = M400.QFrame $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQFrame (QTreeWidgetGc fptr' ptr') = M400.QFrameGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M400.QFrameConst -> HoppyF.Ptr M400.QFrame) $ castQTreeWidgetToQFrame $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M506.QWidgetConstPtr QTreeWidget where
  toQWidgetConst (QTreeWidget ptr') = M506.QWidgetConst $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQWidgetConst (QTreeWidgetGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M506.QWidgetPtr QTreeWidget where
  toQWidget (QTreeWidget ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQWidget (QTreeWidgetGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTreeWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M94.QObjectConstPtr QTreeWidget where
  toQObjectConst (QTreeWidget ptr') = M94.QObjectConst $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQObjectConst (QTreeWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

instance M94.QObjectPtr QTreeWidget where
  toQObject (QTreeWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'
  toQObject (QTreeWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTreeWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTreeWidget -> HoppyF.Ptr QTreeWidgetConst) ptr'

new :: (HoppyP.IO QTreeWidget)
new =
  HoppyP.fmap QTreeWidget
  (new')

newWithParent :: (M506.QWidgetPtr arg'1) => (arg'1) -> (HoppyP.IO QTreeWidget)
newWithParent arg'1 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  HoppyP.fmap QTreeWidget
  (newWithParent' arg'1')

class QTreeWidgetSuper a where
  downToQTreeWidget :: a -> QTreeWidget

instance QTreeWidgetSuper M498.QTreeView where
  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M498.castQTreeViewToConst
    where
      cast' (M498.QTreeViewConst ptr') = QTreeWidgetConst $ castQTreeViewToQTreeWidget ptr'
      cast' (M498.QTreeViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQTreeViewToQTreeWidget ptr'
instance QTreeWidgetSuper M360.QAbstractItemView where
  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M360.castQAbstractItemViewToConst
    where
      cast' (M360.QAbstractItemViewConst ptr') = QTreeWidgetConst $ castQAbstractItemViewToQTreeWidget ptr'
      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractItemViewToQTreeWidget ptr'
instance QTreeWidgetSuper M362.QAbstractScrollArea where
  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M362.castQAbstractScrollAreaToConst
    where
      cast' (M362.QAbstractScrollAreaConst ptr') = QTreeWidgetConst $ castQAbstractScrollAreaToQTreeWidget ptr'
      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractScrollAreaToQTreeWidget ptr'
instance QTreeWidgetSuper M400.QFrame where
  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M400.castQFrameToConst
    where
      cast' (M400.QFrameConst ptr') = QTreeWidgetConst $ castQFrameToQTreeWidget ptr'
      cast' (M400.QFrameConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQFrameToQTreeWidget ptr'
instance QTreeWidgetSuper M506.QWidget where
  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QTreeWidgetConst $ castQWidgetToQTreeWidget ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQWidgetToQTreeWidget ptr'
instance QTreeWidgetSuper M94.QObject where
  downToQTreeWidget = castQTreeWidgetToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QTreeWidgetConst $ castQObjectToQTreeWidget ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQObjectToQTreeWidget ptr'

class QTreeWidgetSuperConst a where
  downToQTreeWidgetConst :: a -> QTreeWidgetConst

instance QTreeWidgetSuperConst M498.QTreeViewConst where
  downToQTreeWidgetConst = cast'
    where
      cast' (M498.QTreeViewConst ptr') = QTreeWidgetConst $ castQTreeViewToQTreeWidget ptr'
      cast' (M498.QTreeViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQTreeViewToQTreeWidget ptr'
instance QTreeWidgetSuperConst M360.QAbstractItemViewConst where
  downToQTreeWidgetConst = cast'
    where
      cast' (M360.QAbstractItemViewConst ptr') = QTreeWidgetConst $ castQAbstractItemViewToQTreeWidget ptr'
      cast' (M360.QAbstractItemViewConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractItemViewToQTreeWidget ptr'
instance QTreeWidgetSuperConst M362.QAbstractScrollAreaConst where
  downToQTreeWidgetConst = cast'
    where
      cast' (M362.QAbstractScrollAreaConst ptr') = QTreeWidgetConst $ castQAbstractScrollAreaToQTreeWidget ptr'
      cast' (M362.QAbstractScrollAreaConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQAbstractScrollAreaToQTreeWidget ptr'
instance QTreeWidgetSuperConst M400.QFrameConst where
  downToQTreeWidgetConst = cast'
    where
      cast' (M400.QFrameConst ptr') = QTreeWidgetConst $ castQFrameToQTreeWidget ptr'
      cast' (M400.QFrameConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQFrameToQTreeWidget ptr'
instance QTreeWidgetSuperConst M506.QWidgetConst where
  downToQTreeWidgetConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QTreeWidgetConst $ castQWidgetToQTreeWidget ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQWidgetToQTreeWidget ptr'
instance QTreeWidgetSuperConst M94.QObjectConst where
  downToQTreeWidgetConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QTreeWidgetConst $ castQObjectToQTreeWidget ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QTreeWidgetConstGc fptr' $ castQObjectToQTreeWidget ptr'

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

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