packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QMdiArea (
  castQMdiAreaToQWidget,
  castQWidgetToQMdiArea,
  castQMdiAreaToQObject,
  castQObjectToQMdiArea,
  QMdiAreaValue (..),
  QMdiAreaConstPtr (..),
  activationOrder,
  background,
  documentMode,
  tabPosition,
  tabShape,
  tabsClosable,
  tabsMovable,
  viewMode,
  activeSubWindow,
  currentSubWindow,
  testOption,
  QMdiAreaPtr (..),
  setActivationOrder,
  setBackground,
  setDocumentMode,
  setTabPosition,
  setTabShape,
  setTabsClosable,
  setTabsMovable,
  setViewMode,
  addSubWindow,
  addSubWindowWithFlags,
  removeSubWindow,
  setOption,
  activateNextSubWindow,
  activatePreviousSubWindow,
  cascadeSubWindows,
  closeActiveSubWindow,
  closeAllSubWindows,
  setActiveSubWindow,
  tileSubWindows,
  emitSubWindowActivated,
  QMdiAreaConst (..),
  castQMdiAreaToConst,
  QMdiArea (..),
  castQMdiAreaToNonconst,
  new,
  newWithParent,
  QMdiAreaSuper (..),
  QMdiAreaSuperConst (..),
  QMdiAreaAreaOption (..),
  QMdiAreaAreaOptions,
  IsQMdiAreaAreaOptions (..),
  dontMaximizeSubWindowOnActivation,
  QMdiAreaViewMode (..),
  QMdiAreaWindowOrder (..),
  ) 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.Flags as QtahFlags
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Gui.QBrush as M246
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow as M446
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QTabWidget as M488
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__QMdiArea_new" new' ::  HoppyP.IO (HoppyF.Ptr QMdiArea)
foreign import ccall "genpop__QMdiArea_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMdiArea)
foreign import ccall "genpop__QMdiArea_activationOrder" activationOrder' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMdiArea_setActivationOrder" setActivationOrder' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_background" background' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO (HoppyF.Ptr M246.QBrushConst)
foreign import ccall "genpop__QMdiArea_setBackground" setBackground' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M246.QBrushConst -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_documentMode" documentMode' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMdiArea_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_tabPosition" tabPosition' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMdiArea_setTabPosition" setTabPosition' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_tabShape" tabShape' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMdiArea_setTabShape" setTabShape' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_tabsClosable" tabsClosable' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMdiArea_setTabsClosable" setTabsClosable' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_tabsMovable" tabsMovable' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMdiArea_setTabsMovable" setTabsMovable' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_viewMode" viewMode' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMdiArea_setViewMode" setViewMode' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_activeSubWindow" activeSubWindow' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
foreign import ccall "genpop__QMdiArea_addSubWindow" addSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
foreign import ccall "genpop__QMdiArea_addSubWindowWithFlags" addSubWindowWithFlags' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
foreign import ccall "genpop__QMdiArea_currentSubWindow" currentSubWindow' ::  HoppyF.Ptr QMdiAreaConst -> HoppyP.IO (HoppyF.Ptr M446.QMdiSubWindow)
foreign import ccall "genpop__QMdiArea_removeSubWindow" removeSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_setOption" setOption' ::  HoppyF.Ptr QMdiArea -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_testOption" testOption' ::  HoppyF.Ptr QMdiAreaConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMdiArea_activateNextSubWindow" activateNextSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_activatePreviousSubWindow" activatePreviousSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_cascadeSubWindows" cascadeSubWindows' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_closeActiveSubWindow" closeActiveSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_closeAllSubWindows" closeAllSubWindows' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_setActiveSubWindow" setActiveSubWindow' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_tileSubWindows" tileSubWindows' ::  HoppyF.Ptr QMdiArea -> HoppyP.IO ()
foreign import ccall "genpop__QMdiArea_emitSubWindowActivated" emitSubWindowActivated' ::  HoppyF.Ptr QMdiArea -> HoppyF.Ptr M446.QMdiSubWindow -> HoppyP.IO ()
foreign import ccall "gencast__QMdiArea__QWidget" castQMdiAreaToQWidget :: HoppyF.Ptr QMdiAreaConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QMdiArea" castQWidgetToQMdiArea :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMdiAreaConst
foreign import ccall "gencast__QMdiArea__QObject" castQMdiAreaToQObject :: HoppyF.Ptr QMdiAreaConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QMdiArea" castQObjectToQMdiArea :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMdiAreaConst
foreign import ccall "gendel__QMdiArea" delete'QMdiArea :: HoppyF.Ptr QMdiAreaConst -> HoppyP.IO ()
foreign import ccall "&gendel__QMdiArea" deletePtr'QMdiArea :: HoppyF.FunPtr (HoppyF.Ptr QMdiAreaConst -> HoppyP.IO ())

class QMdiAreaValue a where
  withQMdiAreaPtr :: a -> (QMdiAreaConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QMdiAreaConstPtr a => QMdiAreaValue a where
  withQMdiAreaPtr = HoppyP.flip ($) . toQMdiAreaConst

class (M506.QWidgetConstPtr this) => QMdiAreaConstPtr this where
  toQMdiAreaConst :: this -> QMdiAreaConst

activationOrder :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO QMdiAreaWindowOrder)
activationOrder arg'1 =
  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (activationOrder' arg'1')

background :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M246.QBrush)
background arg'1 =
  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M246.QBrushConst) =<<
  (background' arg'1')

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

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

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

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

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

viewMode :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO QMdiAreaViewMode)
viewMode arg'1 =
  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (viewMode' arg'1')

activeSubWindow :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M446.QMdiSubWindow)
activeSubWindow arg'1 =
  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M446.QMdiSubWindow
  (activeSubWindow' arg'1')

currentSubWindow :: (QMdiAreaValue this) => (this) {- ^ this -} -> (HoppyP.IO M446.QMdiSubWindow)
currentSubWindow arg'1 =
  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M446.QMdiSubWindow
  (currentSubWindow' arg'1')

testOption :: (QMdiAreaValue this) => (this) {- ^ this -} -> (QMdiAreaAreaOption) -> (HoppyP.IO HoppyP.Bool)
testOption arg'1 arg'2 =
  withQMdiAreaPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (testOption' arg'1' arg'2')

class (QMdiAreaConstPtr this, M506.QWidgetPtr this) => QMdiAreaPtr this where
  toQMdiArea :: this -> QMdiArea

setActivationOrder :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (QMdiAreaWindowOrder) -> (HoppyP.IO ())
setActivationOrder arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setActivationOrder' arg'1' arg'2')

setBackground :: (QMdiAreaPtr this, M246.QBrushValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setBackground arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  M246.withQBrushPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setBackground' arg'1' arg'2')

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

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

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

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

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

setViewMode :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (QMdiAreaViewMode) -> (HoppyP.IO ())
setViewMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setViewMode' arg'1' arg'2')

addSubWindow :: (QMdiAreaPtr this, M506.QWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M446.QMdiSubWindow)
addSubWindow arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  HoppyP.fmap M446.QMdiSubWindow
  (addSubWindow' arg'1' arg'2')

addSubWindowWithFlags :: (QMdiAreaPtr this, M506.QWidgetPtr arg'2, M190.IsQtWindowFlags arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO M446.QMdiSubWindow)
addSubWindowWithFlags arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M506.toQWidget arg'2) $ \arg'2' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
  ) arg'3 >>= \arg'3' ->
  HoppyP.fmap M446.QMdiSubWindow
  (addSubWindowWithFlags' arg'1' arg'2' arg'3')

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

setOption :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (QMdiAreaAreaOption) -> (HoppyP.Bool) -> (HoppyP.IO ())
setOption arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (
    \x -> HoppyP.return $ if x then 1 else 0
  ) arg'3 >>= \arg'3' ->
  (setOption' arg'1' arg'2' arg'3')

activateNextSubWindow :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
activateNextSubWindow arg'1 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (activateNextSubWindow' arg'1')

activatePreviousSubWindow :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
activatePreviousSubWindow arg'1 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (activatePreviousSubWindow' arg'1')

cascadeSubWindows :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
cascadeSubWindows arg'1 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (cascadeSubWindows' arg'1')

closeActiveSubWindow :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
closeActiveSubWindow arg'1 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (closeActiveSubWindow' arg'1')

closeAllSubWindows :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
closeAllSubWindows arg'1 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (closeAllSubWindows' arg'1')

setActiveSubWindow :: (QMdiAreaPtr this, M446.QMdiSubWindowPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setActiveSubWindow arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M446.toQMdiSubWindow arg'2) $ \arg'2' ->
  (setActiveSubWindow' arg'1' arg'2')

tileSubWindows :: (QMdiAreaPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
tileSubWindows arg'1 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  (tileSubWindows' arg'1')

emitSubWindowActivated :: (QMdiAreaPtr this, M446.QMdiSubWindowPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
emitSubWindowActivated arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMdiArea arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M446.toQMdiSubWindow arg'2) $ \arg'2' ->
  (emitSubWindowActivated' arg'1' arg'2')

data QMdiAreaConst =
    QMdiAreaConst (HoppyF.Ptr QMdiAreaConst)
  | QMdiAreaConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiAreaConst)
  deriving (HoppyP.Show)

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

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

castQMdiAreaToConst :: QMdiArea -> QMdiAreaConst
castQMdiAreaToConst (QMdiArea ptr') = QMdiAreaConst $ HoppyF.castPtr ptr'
castQMdiAreaToConst (QMdiAreaGc fptr' ptr') = QMdiAreaConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMdiAreaConstPtr QMdiAreaConst where
  toQMdiAreaConst = HoppyP.id

instance M506.QWidgetConstPtr QMdiAreaConst where
  toQWidgetConst (QMdiAreaConst ptr') = M506.QWidgetConst $ castQMdiAreaToQWidget ptr'
  toQWidgetConst (QMdiAreaConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiAreaToQWidget ptr'

instance M94.QObjectConstPtr QMdiAreaConst where
  toQObjectConst (QMdiAreaConst ptr') = M94.QObjectConst $ castQMdiAreaToQObject ptr'
  toQObjectConst (QMdiAreaConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiAreaToQObject ptr'

data QMdiArea =
    QMdiArea (HoppyF.Ptr QMdiArea)
  | QMdiAreaGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiArea)
  deriving (HoppyP.Show)

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

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

castQMdiAreaToNonconst :: QMdiAreaConst -> QMdiArea
castQMdiAreaToNonconst (QMdiAreaConst ptr') = QMdiArea $ HoppyF.castPtr ptr'
castQMdiAreaToNonconst (QMdiAreaConstGc fptr' ptr') = QMdiAreaGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMdiAreaConstPtr QMdiArea where
  toQMdiAreaConst (QMdiArea ptr') = QMdiAreaConst $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
  toQMdiAreaConst (QMdiAreaGc fptr' ptr') = QMdiAreaConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'

instance QMdiAreaPtr QMdiArea where
  toQMdiArea = HoppyP.id

instance M506.QWidgetConstPtr QMdiArea where
  toQWidgetConst (QMdiArea ptr') = M506.QWidgetConst $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
  toQWidgetConst (QMdiAreaGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'

instance M506.QWidgetPtr QMdiArea where
  toQWidget (QMdiArea ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
  toQWidget (QMdiAreaGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiAreaToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'

instance M94.QObjectConstPtr QMdiArea where
  toQObjectConst (QMdiArea ptr') = M94.QObjectConst $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
  toQObjectConst (QMdiAreaGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'

instance M94.QObjectPtr QMdiArea where
  toQObject (QMdiArea ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'
  toQObject (QMdiAreaGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiAreaToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiArea -> HoppyF.Ptr QMdiAreaConst) ptr'

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

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

class QMdiAreaSuper a where
  downToQMdiArea :: a -> QMdiArea

instance QMdiAreaSuper M506.QWidget where
  downToQMdiArea = castQMdiAreaToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QMdiAreaConst $ castQWidgetToQMdiArea ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQWidgetToQMdiArea ptr'
instance QMdiAreaSuper M94.QObject where
  downToQMdiArea = castQMdiAreaToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QMdiAreaConst $ castQObjectToQMdiArea ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQObjectToQMdiArea ptr'

class QMdiAreaSuperConst a where
  downToQMdiAreaConst :: a -> QMdiAreaConst

instance QMdiAreaSuperConst M506.QWidgetConst where
  downToQMdiAreaConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QMdiAreaConst $ castQWidgetToQMdiArea ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQWidgetToQMdiArea ptr'
instance QMdiAreaSuperConst M94.QObjectConst where
  downToQMdiAreaConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QMdiAreaConst $ castQObjectToQMdiArea ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QMdiAreaConstGc fptr' $ castQObjectToQMdiArea ptr'

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

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

data QMdiAreaAreaOption =
  DontMaximizeSubWindowOnActivation
  | UnknownQMdiAreaAreaOption (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaAreaOption where
  fromCppEnum DontMaximizeSubWindowOnActivation = 1
  fromCppEnum (UnknownQMdiAreaAreaOption n) = n
  
  toCppEnum (1) = DontMaximizeSubWindowOnActivation
  toCppEnum n = UnknownQMdiAreaAreaOption n

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

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

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

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

class IsQMdiAreaAreaOptions a where
  toQMdiAreaAreaOptions :: a -> QMdiAreaAreaOptions

instance IsQMdiAreaAreaOptions QMdiAreaAreaOptions where toQMdiAreaAreaOptions = QtahP.id
instance IsQMdiAreaAreaOptions QMdiAreaAreaOption where toQMdiAreaAreaOptions = QtahFlags.enumToFlags
instance IsQMdiAreaAreaOptions (HoppyFC.CInt) where toQMdiAreaAreaOptions = QtahFlags.numToFlags

dontMaximizeSubWindowOnActivation :: QMdiAreaAreaOptions
dontMaximizeSubWindowOnActivation = QMdiAreaAreaOptions (1)

instance QtahDB.Bits QMdiAreaAreaOptions 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 QMdiAreaViewMode =
  SubWindowView
  | TabbedView
  | UnknownQMdiAreaViewMode (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaViewMode where
  fromCppEnum SubWindowView = 0
  fromCppEnum TabbedView = 1
  fromCppEnum (UnknownQMdiAreaViewMode n) = n
  
  toCppEnum (0) = SubWindowView
  toCppEnum (1) = TabbedView
  toCppEnum n = UnknownQMdiAreaViewMode n

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

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

data QMdiAreaWindowOrder =
  CreationOrder
  | StackingOrder
  | ActivationHistoryOrder
  | UnknownQMdiAreaWindowOrder (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiAreaWindowOrder where
  fromCppEnum CreationOrder = 0
  fromCppEnum StackingOrder = 1
  fromCppEnum ActivationHistoryOrder = 2
  fromCppEnum (UnknownQMdiAreaWindowOrder n) = n
  
  toCppEnum (0) = CreationOrder
  toCppEnum (1) = StackingOrder
  toCppEnum (2) = ActivationHistoryOrder
  toCppEnum n = UnknownQMdiAreaWindowOrder n

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

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