packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QTabWidget (
  castQTabWidgetToQWidget,
  castQWidgetToQTabWidget,
  castQTabWidgetToQObject,
  castQObjectToQTabWidget,
  QTabWidgetValue (..),
  QTabWidgetConstPtr (..),
  cornerWidget,
  count,
  currentIndex,
  currentWidget,
  documentMode,
  elideMode,
  iconSize,
  indexOf,
  isTabEnabled,
  isMovable,
  tabBarAutoHide,
  tabIcon,
  tabPosition,
  tabShape,
  tabText,
  tabToolTip,
  tabWhatsThis,
  tabsClosable,
  usesScrollButtons,
  widget,
  QTabWidgetPtr (..),
  addTab,
  addTabWithIcon,
  clear,
  setCurrentIndex,
  setCurrentWidget,
  setDocumentMode,
  setElideMode,
  setIconSize,
  insertTab,
  insertTabWithIcon,
  setMovable,
  removeTab,
  setCornerWidget,
  setTabEnabled,
  setTabIcon,
  setTabText,
  setTabToolTip,
  setTabWhatsThis,
  setTabBarAutoHide,
  setTabPosition,
  setTabShape,
  setTabsClosable,
  setUsesScrollButtons,
  emitCurrentChanged,
  emitTabBarClicked,
  emitTabBarDoubleClicked,
  emitTabCloseRequested,
  QTabWidgetConst (..),
  castQTabWidgetToConst,
  QTabWidget (..),
  castQTabWidgetToNonconst,
  new,
  newWithParent,
  QTabWidgetSuper (..),
  QTabWidgetSuperConst (..),
  QTabWidgetTabPosition (..),
  QTabWidgetTabShape (..),
  ) 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.HSize as HSize
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
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 {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QIcon as M288
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__QTabWidget_new" new' ::  HoppyP.IO (HoppyF.Ptr QTabWidget)
foreign import ccall "genpop__QTabWidget_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QTabWidget)
foreign import ccall "genpop__QTabWidget_addTab" addTab' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_addTabWithIcon" addTabWithIcon' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_clear" clear' ::  HoppyF.Ptr QTabWidget -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_cornerWidget" cornerWidget' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QTabWidget_count" count' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_currentIndex" currentIndex' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_setCurrentIndex" setCurrentIndex' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_currentWidget" currentWidget' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QTabWidget_setCurrentWidget" setCurrentWidget' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_documentMode" documentMode' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTabWidget_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_elideMode" elideMode' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_setElideMode" setElideMode' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_iconSize" iconSize' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
foreign import ccall "genpop__QTabWidget_setIconSize" setIconSize' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_indexOf" indexOf' ::  HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M506.QWidget -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_insertTab" insertTab' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_insertTabWithIcon" insertTabWithIcon' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M288.QIconConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_isTabEnabled" isTabEnabled' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTabWidget_isMovable" isMovable' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTabWidget_setMovable" setMovable' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_removeTab" removeTab' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_setCornerWidget" setCornerWidget' ::  HoppyF.Ptr QTabWidget -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_setTabEnabled" setTabEnabled' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_setTabIcon" setTabIcon' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M288.QIconConst -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_setTabText" setTabText' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_setTabToolTip" setTabToolTip' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_setTabWhatsThis" setTabWhatsThis' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_tabBarAutoHide" tabBarAutoHide' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTabWidget_setTabBarAutoHide" setTabBarAutoHide' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_tabIcon" tabIcon' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M288.QIconConst)
foreign import ccall "genpop__QTabWidget_tabPosition" tabPosition' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_setTabPosition" setTabPosition' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_tabShape" tabShape' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QTabWidget_setTabShape" setTabShape' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_tabText" tabText' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QTabWidget_tabToolTip" tabToolTip' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QTabWidget_tabWhatsThis" tabWhatsThis' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QTabWidget_tabsClosable" tabsClosable' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTabWidget_setTabsClosable" setTabsClosable' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_usesScrollButtons" usesScrollButtons' ::  HoppyF.Ptr QTabWidgetConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QTabWidget_setUsesScrollButtons" setUsesScrollButtons' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_widget" widget' ::  HoppyF.Ptr QTabWidgetConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QTabWidget_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_emitTabBarClicked" emitTabBarClicked' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_emitTabBarDoubleClicked" emitTabBarDoubleClicked' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QTabWidget_emitTabCloseRequested" emitTabCloseRequested' ::  HoppyF.Ptr QTabWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "gencast__QTabWidget__QWidget" castQTabWidgetToQWidget :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QTabWidget" castQWidgetToQTabWidget :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QTabWidgetConst
foreign import ccall "gencast__QTabWidget__QObject" castQTabWidgetToQObject :: HoppyF.Ptr QTabWidgetConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QTabWidget" castQObjectToQTabWidget :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QTabWidgetConst
foreign import ccall "gendel__QTabWidget" delete'QTabWidget :: HoppyF.Ptr QTabWidgetConst -> HoppyP.IO ()
foreign import ccall "&gendel__QTabWidget" deletePtr'QTabWidget :: HoppyF.FunPtr (HoppyF.Ptr QTabWidgetConst -> HoppyP.IO ())

class QTabWidgetValue a where
  withQTabWidgetPtr :: a -> (QTabWidgetConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QTabWidgetConstPtr a => QTabWidgetValue a where
  withQTabWidgetPtr = HoppyP.flip ($) . toQTabWidgetConst

class (M506.QWidgetConstPtr this) => QTabWidgetConstPtr this where
  toQTabWidgetConst :: this -> QTabWidgetConst

cornerWidget :: (QTabWidgetValue this) => (this) {- ^ this -} -> (M190.QtCorner) -> (HoppyP.IO M506.QWidget)
cornerWidget arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap M506.QWidget
  (cornerWidget' arg'1' arg'2')

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

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

currentWidget :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO M506.QWidget)
currentWidget arg'1 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M506.QWidget
  (currentWidget' arg'1')

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

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

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

indexOf :: (QTabWidgetValue this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Int)
indexOf arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (indexOf' arg'1' arg'2')

isTabEnabled :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
isTabEnabled arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (isTabEnabled' arg'1' arg'2')

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

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

tabIcon :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M288.QIcon)
tabIcon arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (HoppyFHR.decodeAndDelete . M288.QIconConst) =<<
  (tabIcon' arg'1' arg'2')

tabPosition :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QTabWidgetTabPosition)
tabPosition arg'1 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (tabPosition' arg'1')

tabShape :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.IO QTabWidgetTabShape)
tabShape arg'1 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (tabShape' arg'1')

tabText :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
tabText arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (tabText' arg'1' arg'2')

tabToolTip :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
tabToolTip arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (tabToolTip' arg'1' arg'2')

tabWhatsThis :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahP.String)
tabWhatsThis arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (tabWhatsThis' arg'1' arg'2')

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

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

widget :: (QTabWidgetValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO M506.QWidget)
widget arg'1 arg'2 =
  withQTabWidgetPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap M506.QWidget
  (widget' arg'1' arg'2')

class (QTabWidgetConstPtr this, M506.QWidgetPtr this) => QTabWidgetPtr this where
  toQTabWidget :: this -> QTabWidget

addTab :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2, M142.QStringValue arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO HoppyP.Int)
addTab arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (addTab' arg'1' arg'2' arg'3')

addTabWithIcon :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2, M288.QIconValue arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Int)
addTabWithIcon arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (addTabWithIcon' arg'1' arg'2' arg'3' arg'4')

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

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

setCurrentWidget :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setCurrentWidget arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  (setCurrentWidget' arg'1' arg'2')

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

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

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

insertTab :: (QTabWidgetPtr this, M506.QWidgetPtr arg'3, M142.QStringValue arg'4) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (HoppyP.IO HoppyP.Int)
insertTab arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (insertTab' arg'1' arg'2' arg'3' arg'4')

insertTabWithIcon :: (QTabWidgetPtr this, M506.QWidgetPtr arg'3, M288.QIconValue arg'4, M142.QStringValue arg'5) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (arg'4) -> (arg'5) -> (HoppyP.IO HoppyP.Int)
insertTabWithIcon arg'1 arg'2 arg'3 arg'4 arg'5 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'3) $ \arg'3' ->
  M288.withQIconPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  M142.withQStringPtr arg'5 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'5' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) =<<
  (insertTabWithIcon' arg'1' arg'2' arg'3' arg'4' arg'5')

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

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

setCornerWidget :: (QTabWidgetPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (M190.QtCorner) -> (HoppyP.IO ())
setCornerWidget arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'3 >>= \arg'3' ->
  (setCornerWidget' arg'1' arg'2' arg'3')

setTabEnabled :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.Bool) -> (HoppyP.IO ())
setTabEnabled arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'3 >>= \arg'3' ->
  (setTabEnabled' arg'1' arg'2' arg'3')

setTabIcon :: (QTabWidgetPtr this, M288.QIconValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
setTabIcon arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  M288.withQIconPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (setTabIcon' arg'1' arg'2' arg'3')

setTabText :: (QTabWidgetPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
setTabText arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (setTabText' arg'1' arg'2' arg'3')

setTabToolTip :: (QTabWidgetPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
setTabToolTip arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (setTabToolTip' arg'1' arg'2' arg'3')

setTabWhatsThis :: (QTabWidgetPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (HoppyP.Int) -> (arg'3) -> (HoppyP.IO ())
setTabWhatsThis arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (setTabWhatsThis' arg'1' arg'2' arg'3')

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

setTabPosition :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (QTabWidgetTabPosition) -> (HoppyP.IO ())
setTabPosition arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setTabPosition' arg'1' arg'2')

setTabShape :: (QTabWidgetPtr this) => (this) {- ^ this -} -> (QTabWidgetTabShape) -> (HoppyP.IO ())
setTabShape arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQTabWidget arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setTabShape' arg'1' arg'2')

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

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

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

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

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

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

data QTabWidgetConst =
    QTabWidgetConst (HoppyF.Ptr QTabWidgetConst)
  | QTabWidgetConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTabWidgetConst)
  deriving (HoppyP.Show)

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

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

castQTabWidgetToConst :: QTabWidget -> QTabWidgetConst
castQTabWidgetToConst (QTabWidget ptr') = QTabWidgetConst $ HoppyF.castPtr ptr'
castQTabWidgetToConst (QTabWidgetGc fptr' ptr') = QTabWidgetConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QTabWidgetConstPtr QTabWidgetConst where
  toQTabWidgetConst = HoppyP.id

instance M506.QWidgetConstPtr QTabWidgetConst where
  toQWidgetConst (QTabWidgetConst ptr') = M506.QWidgetConst $ castQTabWidgetToQWidget ptr'
  toQWidgetConst (QTabWidgetConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTabWidgetToQWidget ptr'

instance M94.QObjectConstPtr QTabWidgetConst where
  toQObjectConst (QTabWidgetConst ptr') = M94.QObjectConst $ castQTabWidgetToQObject ptr'
  toQObjectConst (QTabWidgetConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTabWidgetToQObject ptr'

data QTabWidget =
    QTabWidget (HoppyF.Ptr QTabWidget)
  | QTabWidgetGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QTabWidget)
  deriving (HoppyP.Show)

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

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

castQTabWidgetToNonconst :: QTabWidgetConst -> QTabWidget
castQTabWidgetToNonconst (QTabWidgetConst ptr') = QTabWidget $ HoppyF.castPtr ptr'
castQTabWidgetToNonconst (QTabWidgetConstGc fptr' ptr') = QTabWidgetGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QTabWidgetConstPtr QTabWidget where
  toQTabWidgetConst (QTabWidget ptr') = QTabWidgetConst $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
  toQTabWidgetConst (QTabWidgetGc fptr' ptr') = QTabWidgetConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'

instance QTabWidgetPtr QTabWidget where
  toQTabWidget = HoppyP.id

instance M506.QWidgetConstPtr QTabWidget where
  toQWidgetConst (QTabWidget ptr') = M506.QWidgetConst $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
  toQWidgetConst (QTabWidgetGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'

instance M506.QWidgetPtr QTabWidget where
  toQWidget (QTabWidget ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
  toQWidget (QTabWidgetGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQTabWidgetToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'

instance M94.QObjectConstPtr QTabWidget where
  toQObjectConst (QTabWidget ptr') = M94.QObjectConst $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
  toQObjectConst (QTabWidgetGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'

instance M94.QObjectPtr QTabWidget where
  toQObject (QTabWidget ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'
  toQObject (QTabWidgetGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQTabWidgetToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QTabWidget -> HoppyF.Ptr QTabWidgetConst) ptr'

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

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

class QTabWidgetSuper a where
  downToQTabWidget :: a -> QTabWidget

instance QTabWidgetSuper M506.QWidget where
  downToQTabWidget = castQTabWidgetToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QTabWidgetConst $ castQWidgetToQTabWidget ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQWidgetToQTabWidget ptr'
instance QTabWidgetSuper M94.QObject where
  downToQTabWidget = castQTabWidgetToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QTabWidgetConst $ castQObjectToQTabWidget ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQObjectToQTabWidget ptr'

class QTabWidgetSuperConst a where
  downToQTabWidgetConst :: a -> QTabWidgetConst

instance QTabWidgetSuperConst M506.QWidgetConst where
  downToQTabWidgetConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QTabWidgetConst $ castQWidgetToQTabWidget ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQWidgetToQTabWidget ptr'
instance QTabWidgetSuperConst M94.QObjectConst where
  downToQTabWidgetConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QTabWidgetConst $ castQObjectToQTabWidget ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QTabWidgetConstGc fptr' $ castQObjectToQTabWidget ptr'

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

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

data QTabWidgetTabPosition =
  North
  | South
  | West
  | East
  | UnknownQTabWidgetTabPosition (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QTabWidgetTabPosition where
  fromCppEnum North = 0
  fromCppEnum South = 1
  fromCppEnum West = 2
  fromCppEnum East = 3
  fromCppEnum (UnknownQTabWidgetTabPosition n) = n
  
  toCppEnum (0) = North
  toCppEnum (1) = South
  toCppEnum (2) = West
  toCppEnum (3) = East
  toCppEnum n = UnknownQTabWidgetTabPosition n

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

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

data QTabWidgetTabShape =
  Rounded
  | Triangular
  | UnknownQTabWidgetTabShape (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QTabWidgetTabShape where
  fromCppEnum Rounded = 0
  fromCppEnum Triangular = 1
  fromCppEnum (UnknownQTabWidgetTabShape n) = n
  
  toCppEnum (0) = Rounded
  toCppEnum (1) = Triangular
  toCppEnum n = UnknownQTabWidgetTabShape n

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

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