packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QMdiSubWindow (
  castQMdiSubWindowToQWidget,
  castQWidgetToQMdiSubWindow,
  castQMdiSubWindowToQObject,
  castQObjectToQMdiSubWindow,
  QMdiSubWindowValue (..),
  QMdiSubWindowConstPtr (..),
  keyboardPageStep,
  keyboardSingleStep,
  systemMenu,
  widget,
  isShaded,
  mdiArea,
  testOption,
  QMdiSubWindowPtr (..),
  setKeyboardPageStep,
  setKeyboardSingleStep,
  setSystemMenu,
  setWidget,
  setOption,
  showShaded,
  showSystemMenu,
  emitAboutToActivate,
  emitWindowStateChanged,
  QMdiSubWindowConst (..),
  castQMdiSubWindowToConst,
  QMdiSubWindow (..),
  castQMdiSubWindowToNonconst,
  new,
  newWithParent,
  newWithParentAndFlags,
  QMdiSubWindowSuper (..),
  QMdiSubWindowSuperConst (..),
  QMdiSubWindowSubWindowOption (..),
  QMdiSubWindowSubWindowOptions,
  IsQMdiSubWindowSubWindowOptions (..),
  rubberBandMove,
  rubberBandResize,
  ) 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.Widgets.QMdiArea as M444
import {-# SOURCE #-} qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
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__QMdiSubWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QMdiSubWindow)
foreign import ccall "genpop__QMdiSubWindow_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMdiSubWindow)
foreign import ccall "genpop__QMdiSubWindow_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QMdiSubWindow)
foreign import ccall "genpop__QMdiSubWindow_keyboardPageStep" keyboardPageStep' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMdiSubWindow_setKeyboardPageStep" setKeyboardPageStep' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_keyboardSingleStep" keyboardSingleStep' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMdiSubWindow_setKeyboardSingleStep" setKeyboardSingleStep' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_systemMenu" systemMenu' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
foreign import ccall "genpop__QMdiSubWindow_setSystemMenu" setSystemMenu' ::  HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr M448.QMenu -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_widget" widget' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QMdiSubWindow_setWidget" setWidget' ::  HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_isShaded" isShaded' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMdiSubWindow_mdiArea" mdiArea' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO (HoppyF.Ptr M444.QMdiArea)
foreign import ccall "genpop__QMdiSubWindow_setOption" setOption' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_testOption" testOption' ::  HoppyF.Ptr QMdiSubWindowConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMdiSubWindow_showShaded" showShaded' ::  HoppyF.Ptr QMdiSubWindow -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_showSystemMenu" showSystemMenu' ::  HoppyF.Ptr QMdiSubWindow -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_emitAboutToActivate" emitAboutToActivate' ::  HoppyF.Ptr QMdiSubWindow -> HoppyP.IO ()
foreign import ccall "genpop__QMdiSubWindow_emitWindowStateChanged" emitWindowStateChanged' ::  HoppyF.Ptr QMdiSubWindow -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "gencast__QMdiSubWindow__QWidget" castQMdiSubWindowToQWidget :: HoppyF.Ptr QMdiSubWindowConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QMdiSubWindow" castQWidgetToQMdiSubWindow :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMdiSubWindowConst
foreign import ccall "gencast__QMdiSubWindow__QObject" castQMdiSubWindowToQObject :: HoppyF.Ptr QMdiSubWindowConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QMdiSubWindow" castQObjectToQMdiSubWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMdiSubWindowConst
foreign import ccall "gendel__QMdiSubWindow" delete'QMdiSubWindow :: HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO ()
foreign import ccall "&gendel__QMdiSubWindow" deletePtr'QMdiSubWindow :: HoppyF.FunPtr (HoppyF.Ptr QMdiSubWindowConst -> HoppyP.IO ())

class QMdiSubWindowValue a where
  withQMdiSubWindowPtr :: a -> (QMdiSubWindowConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QMdiSubWindowConstPtr a => QMdiSubWindowValue a where
  withQMdiSubWindowPtr = HoppyP.flip ($) . toQMdiSubWindowConst

class (M506.QWidgetConstPtr this) => QMdiSubWindowConstPtr this where
  toQMdiSubWindowConst :: this -> QMdiSubWindowConst

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

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

systemMenu :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
systemMenu arg'1 =
  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M448.QMenu
  (systemMenu' arg'1')

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

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

mdiArea :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M444.QMdiArea)
mdiArea arg'1 =
  withQMdiSubWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M444.QMdiArea
  (mdiArea' arg'1')

testOption :: (QMdiSubWindowValue this) => (this) {- ^ this -} -> (QMdiSubWindowSubWindowOption) -> (HoppyP.IO HoppyP.Bool)
testOption arg'1 arg'2 =
  withQMdiSubWindowPtr 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 (QMdiSubWindowConstPtr this, M506.QWidgetPtr this) => QMdiSubWindowPtr this where
  toQMdiSubWindow :: this -> QMdiSubWindow

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

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

setSystemMenu :: (QMdiSubWindowPtr this, M448.QMenuPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setSystemMenu arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M448.toQMenu arg'2) $ \arg'2' ->
  (setSystemMenu' arg'1' arg'2')

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

setOption :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (QMdiSubWindowSubWindowOption) -> (HoppyP.Bool) -> (HoppyP.IO ())
setOption arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQMdiSubWindow 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')

showShaded :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
showShaded arg'1 =
  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
  (showShaded' arg'1')

showSystemMenu :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
showSystemMenu arg'1 =
  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
  (showSystemMenu' arg'1')

emitAboutToActivate :: (QMdiSubWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO ())
emitAboutToActivate arg'1 =
  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
  (emitAboutToActivate' arg'1')

emitWindowStateChanged :: (QMdiSubWindowPtr this, M190.IsQtWindowStates arg'2, M190.IsQtWindowStates arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (HoppyP.IO ())
emitWindowStateChanged arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQMdiSubWindow arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowStates
  ) arg'2 >>= \arg'2' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowStates
  ) arg'3 >>= \arg'3' ->
  (emitWindowStateChanged' arg'1' arg'2' arg'3')

data QMdiSubWindowConst =
    QMdiSubWindowConst (HoppyF.Ptr QMdiSubWindowConst)
  | QMdiSubWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiSubWindowConst)
  deriving (HoppyP.Show)

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

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

castQMdiSubWindowToConst :: QMdiSubWindow -> QMdiSubWindowConst
castQMdiSubWindowToConst (QMdiSubWindow ptr') = QMdiSubWindowConst $ HoppyF.castPtr ptr'
castQMdiSubWindowToConst (QMdiSubWindowGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMdiSubWindowConstPtr QMdiSubWindowConst where
  toQMdiSubWindowConst = HoppyP.id

instance M506.QWidgetConstPtr QMdiSubWindowConst where
  toQWidgetConst (QMdiSubWindowConst ptr') = M506.QWidgetConst $ castQMdiSubWindowToQWidget ptr'
  toQWidgetConst (QMdiSubWindowConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiSubWindowToQWidget ptr'

instance M94.QObjectConstPtr QMdiSubWindowConst where
  toQObjectConst (QMdiSubWindowConst ptr') = M94.QObjectConst $ castQMdiSubWindowToQObject ptr'
  toQObjectConst (QMdiSubWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiSubWindowToQObject ptr'

data QMdiSubWindow =
    QMdiSubWindow (HoppyF.Ptr QMdiSubWindow)
  | QMdiSubWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMdiSubWindow)
  deriving (HoppyP.Show)

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

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

castQMdiSubWindowToNonconst :: QMdiSubWindowConst -> QMdiSubWindow
castQMdiSubWindowToNonconst (QMdiSubWindowConst ptr') = QMdiSubWindow $ HoppyF.castPtr ptr'
castQMdiSubWindowToNonconst (QMdiSubWindowConstGc fptr' ptr') = QMdiSubWindowGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMdiSubWindowConstPtr QMdiSubWindow where
  toQMdiSubWindowConst (QMdiSubWindow ptr') = QMdiSubWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
  toQMdiSubWindowConst (QMdiSubWindowGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'

instance QMdiSubWindowPtr QMdiSubWindow where
  toQMdiSubWindow = HoppyP.id

instance M506.QWidgetConstPtr QMdiSubWindow where
  toQWidgetConst (QMdiSubWindow ptr') = M506.QWidgetConst $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
  toQWidgetConst (QMdiSubWindowGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'

instance M506.QWidgetPtr QMdiSubWindow where
  toQWidget (QMdiSubWindow ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
  toQWidget (QMdiSubWindowGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMdiSubWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'

instance M94.QObjectConstPtr QMdiSubWindow where
  toQObjectConst (QMdiSubWindow ptr') = M94.QObjectConst $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
  toQObjectConst (QMdiSubWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'

instance M94.QObjectPtr QMdiSubWindow where
  toQObject (QMdiSubWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'
  toQObject (QMdiSubWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMdiSubWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMdiSubWindow -> HoppyF.Ptr QMdiSubWindowConst) ptr'

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

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

newWithParentAndFlags :: (M506.QWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QMdiSubWindow)
newWithParentAndFlags arg'1 arg'2 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M190.toQtWindowFlags
  ) arg'2 >>= \arg'2' ->
  HoppyP.fmap QMdiSubWindow
  (newWithParentAndFlags' arg'1' arg'2')

class QMdiSubWindowSuper a where
  downToQMdiSubWindow :: a -> QMdiSubWindow

instance QMdiSubWindowSuper M506.QWidget where
  downToQMdiSubWindow = castQMdiSubWindowToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QMdiSubWindowConst $ castQWidgetToQMdiSubWindow ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQWidgetToQMdiSubWindow ptr'
instance QMdiSubWindowSuper M94.QObject where
  downToQMdiSubWindow = castQMdiSubWindowToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QMdiSubWindowConst $ castQObjectToQMdiSubWindow ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQObjectToQMdiSubWindow ptr'

class QMdiSubWindowSuperConst a where
  downToQMdiSubWindowConst :: a -> QMdiSubWindowConst

instance QMdiSubWindowSuperConst M506.QWidgetConst where
  downToQMdiSubWindowConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QMdiSubWindowConst $ castQWidgetToQMdiSubWindow ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQWidgetToQMdiSubWindow ptr'
instance QMdiSubWindowSuperConst M94.QObjectConst where
  downToQMdiSubWindowConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QMdiSubWindowConst $ castQObjectToQMdiSubWindow ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QMdiSubWindowConstGc fptr' $ castQObjectToQMdiSubWindow ptr'

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

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

data QMdiSubWindowSubWindowOption =
  RubberBandResize
  | RubberBandMove
  | UnknownQMdiSubWindowSubWindowOption (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QMdiSubWindowSubWindowOption where
  fromCppEnum RubberBandResize = 4
  fromCppEnum RubberBandMove = 8
  fromCppEnum (UnknownQMdiSubWindowSubWindowOption n) = n
  
  toCppEnum (4) = RubberBandResize
  toCppEnum (8) = RubberBandMove
  toCppEnum n = UnknownQMdiSubWindowSubWindowOption n

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

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

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

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

class IsQMdiSubWindowSubWindowOptions a where
  toQMdiSubWindowSubWindowOptions :: a -> QMdiSubWindowSubWindowOptions

instance IsQMdiSubWindowSubWindowOptions QMdiSubWindowSubWindowOptions where toQMdiSubWindowSubWindowOptions = QtahP.id
instance IsQMdiSubWindowSubWindowOptions QMdiSubWindowSubWindowOption where toQMdiSubWindowSubWindowOptions = QtahFlags.enumToFlags
instance IsQMdiSubWindowSubWindowOptions (HoppyFC.CInt) where toQMdiSubWindowSubWindowOptions = QtahFlags.numToFlags

rubberBandMove :: QMdiSubWindowSubWindowOptions
rubberBandMove = QMdiSubWindowSubWindowOptions (8)

rubberBandResize :: QMdiSubWindowSubWindowOptions
rubberBandResize = QMdiSubWindowSubWindowOptions (4)

instance QtahDB.Bits QMdiSubWindowSubWindowOptions 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