packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QMainWindow (
  castQMainWindowToQWidget,
  castQWidgetToQMainWindow,
  castQMainWindowToQObject,
  castQObjectToQMainWindow,
  QMainWindowValue (..),
  QMainWindowConstPtr (..),
  isAnimated,
  centralWidget,
  corner,
  isDockNestingEnabled,
  dockWidgetArea,
  documentMode,
  iconSize,
  menuBar,
  menuWidget,
  saveState,
  saveStateWithVersion,
  statusBar,
  unifiedTitleAndToolBarOnMac,
  QMainWindowPtr (..),
  addDockWidget,
  addDockWidgetWithOrientation,
  addToolBar,
  addToolBarWithTitle,
  setAnimated,
  setCentralWidget,
  createPopupMenu,
  setDockNestingEnabled,
  setDocumentMode,
  setIconSize,
  setMenuBar,
  setMenuWidget,
  removeDockWidget,
  restoreDockWidget,
  restoreState,
  restoreStateWithVersion,
  setCorner,
  splitDockWidget,
  setStatusBar,
  setUnifiedTitleAndToolBarOnMac,
  emitIconSizeChanged,
  QMainWindowConst (..),
  castQMainWindowToConst,
  QMainWindow (..),
  castQMainWindowToNonconst,
  new,
  newWithParent,
  QMainWindowSuper (..),
  QMainWindowSuperConst (..),
  ) where

import qualified Data.ByteString as QtahDBS
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.QByteArray as M12
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 qualified Graphics.UI.Qtah.Generated.Widgets.QDockWidget as M392
import qualified Graphics.UI.Qtah.Generated.Widgets.QMenu as M448
import qualified Graphics.UI.Qtah.Generated.Widgets.QMenuBar as M450
import qualified Graphics.UI.Qtah.Generated.Widgets.QStatusBar as M482
import qualified Graphics.UI.Qtah.Generated.Widgets.QToolBar as M492
import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M506
import Prelude (($), (.), (/=), (=<<), (==), (>>=))
import qualified Prelude as HoppyP

foreign import ccall "genpop__QMainWindow_new" new' ::  HoppyP.IO (HoppyF.Ptr QMainWindow)
foreign import ccall "genpop__QMainWindow_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QMainWindow)
foreign import ccall "genpop__QMainWindow_addDockWidget" addDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CInt -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_addDockWidgetWithOrientation" addDockWidgetWithOrientation' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CInt -> HoppyF.Ptr M392.QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_addToolBar" addToolBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M492.QToolBar -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_addToolBarWithTitle" addToolBarWithTitle' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M492.QToolBar)
foreign import ccall "genpop__QMainWindow_isAnimated" isAnimated' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMainWindow_setAnimated" setAnimated' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_centralWidget" centralWidget' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QMainWindow_setCentralWidget" setCentralWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_corner" corner' ::  HoppyF.Ptr QMainWindowConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMainWindow_createPopupMenu" createPopupMenu' ::  HoppyF.Ptr QMainWindow -> HoppyP.IO (HoppyF.Ptr M448.QMenu)
foreign import ccall "genpop__QMainWindow_isDockNestingEnabled" isDockNestingEnabled' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMainWindow_setDockNestingEnabled" setDockNestingEnabled' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_dockWidgetArea" dockWidgetArea' ::  HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QMainWindow_documentMode" documentMode' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMainWindow_setDocumentMode" setDocumentMode' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_iconSize" iconSize' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M134.QSizeConst)
foreign import ccall "genpop__QMainWindow_setIconSize" setIconSize' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_menuBar" menuBar' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M450.QMenuBar)
foreign import ccall "genpop__QMainWindow_setMenuBar" setMenuBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M450.QMenuBar -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_menuWidget" menuWidget' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M506.QWidget)
foreign import ccall "genpop__QMainWindow_setMenuWidget" setMenuWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M506.QWidget -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_removeDockWidget" removeDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_restoreDockWidget" restoreDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M392.QDockWidget -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMainWindow_restoreState" restoreState' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M12.QByteArrayConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMainWindow_restoreStateWithVersion" restoreStateWithVersion' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M12.QByteArrayConst -> HoppyFC.CInt -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMainWindow_saveState" saveState' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
foreign import ccall "genpop__QMainWindow_saveStateWithVersion" saveStateWithVersion' ::  HoppyF.Ptr QMainWindowConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M12.QByteArrayConst)
foreign import ccall "genpop__QMainWindow_setCorner" setCorner' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CInt -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_splitDockWidget" splitDockWidget' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M392.QDockWidget -> HoppyF.Ptr M392.QDockWidget -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_statusBar" statusBar' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO (HoppyF.Ptr M482.QStatusBar)
foreign import ccall "genpop__QMainWindow_setStatusBar" setStatusBar' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M482.QStatusBar -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_unifiedTitleAndToolBarOnMac" unifiedTitleAndToolBarOnMac' ::  HoppyF.Ptr QMainWindowConst -> HoppyP.IO HoppyFC.CBool
foreign import ccall "genpop__QMainWindow_setUnifiedTitleAndToolBarOnMac" setUnifiedTitleAndToolBarOnMac' ::  HoppyF.Ptr QMainWindow -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QMainWindow_emitIconSizeChanged" emitIconSizeChanged' ::  HoppyF.Ptr QMainWindow -> HoppyF.Ptr M134.QSizeConst -> HoppyP.IO ()
foreign import ccall "gencast__QMainWindow__QWidget" castQMainWindowToQWidget :: HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QMainWindow" castQWidgetToQMainWindow :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QMainWindowConst
foreign import ccall "gencast__QMainWindow__QObject" castQMainWindowToQObject :: HoppyF.Ptr QMainWindowConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QMainWindow" castQObjectToQMainWindow :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QMainWindowConst
foreign import ccall "gendel__QMainWindow" delete'QMainWindow :: HoppyF.Ptr QMainWindowConst -> HoppyP.IO ()
foreign import ccall "&gendel__QMainWindow" deletePtr'QMainWindow :: HoppyF.FunPtr (HoppyF.Ptr QMainWindowConst -> HoppyP.IO ())

class QMainWindowValue a where
  withQMainWindowPtr :: a -> (QMainWindowConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QMainWindowConstPtr a => QMainWindowValue a where
  withQMainWindowPtr = HoppyP.flip ($) . toQMainWindowConst

class (M506.QWidgetConstPtr this) => QMainWindowConstPtr this where
  toQMainWindowConst :: this -> QMainWindowConst

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

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

corner :: (QMainWindowValue this) => (this) {- ^ this -} -> (M190.QtCorner) -> (HoppyP.IO M190.QtDockWidgetArea)
corner arg'1 arg'2 =
  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (corner' arg'1' arg'2')

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

dockWidgetArea :: (QMainWindowValue this, M392.QDockWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M190.QtDockWidgetArea)
dockWidgetArea arg'1 arg'2 =
  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (dockWidgetArea' arg'1' arg'2')

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

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

menuBar :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M450.QMenuBar)
menuBar arg'1 =
  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M450.QMenuBar
  (menuBar' arg'1')

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

saveState :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahDBS.ByteString)
saveState arg'1 =
  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
  (saveState' arg'1')

saveStateWithVersion :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.Int) -> (HoppyP.IO QtahDBS.ByteString)
saveStateWithVersion arg'1 arg'2 =
  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'2 >>= \arg'2' ->
  (HoppyFHR.decodeAndDelete . M12.QByteArrayConst) =<<
  (saveStateWithVersion' arg'1' arg'2')

statusBar :: (QMainWindowValue this) => (this) {- ^ this -} -> (HoppyP.IO M482.QStatusBar)
statusBar arg'1 =
  withQMainWindowPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M482.QStatusBar
  (statusBar' arg'1')

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

class (QMainWindowConstPtr this, M506.QWidgetPtr this) => QMainWindowPtr this where
  toQMainWindow :: this -> QMainWindow

addDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'3) => (this) {- ^ this -} -> (M190.QtDockWidgetArea) -> (arg'3) -> (HoppyP.IO ())
addDockWidget arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  HoppyFHR.withCppPtr (M392.toQDockWidget arg'3) $ \arg'3' ->
  (addDockWidget' arg'1' arg'2' arg'3')

addDockWidgetWithOrientation :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'3) => (this) {- ^ this -} -> (M190.QtDockWidgetArea) -> (arg'3) -> (M190.QtOrientation) -> (HoppyP.IO ())
addDockWidgetWithOrientation arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  HoppyFHR.withCppPtr (M392.toQDockWidget arg'3) $ \arg'3' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'4 >>= \arg'4' ->
  (addDockWidgetWithOrientation' arg'1' arg'2' arg'3' arg'4')

addToolBar :: (QMainWindowPtr this, M492.QToolBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
addToolBar arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M492.toQToolBar arg'2) $ \arg'2' ->
  (addToolBar' arg'1' arg'2')

addToolBarWithTitle :: (QMainWindowPtr this, M142.QStringValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO M492.QToolBar)
addToolBarWithTitle arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap M492.QToolBar
  (addToolBarWithTitle' arg'1' arg'2')

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

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

createPopupMenu :: (QMainWindowPtr this) => (this) {- ^ this -} -> (HoppyP.IO M448.QMenu)
createPopupMenu arg'1 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  HoppyP.fmap M448.QMenu
  (createPopupMenu' arg'1')

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

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

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

setMenuBar :: (QMainWindowPtr this, M450.QMenuBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setMenuBar arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M450.toQMenuBar arg'2) $ \arg'2' ->
  (setMenuBar' arg'1' arg'2')

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

removeDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
removeDockWidget arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
  (removeDockWidget' arg'1' arg'2')

restoreDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
restoreDockWidget arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (restoreDockWidget' arg'1' arg'2')

restoreState :: (QMainWindowPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO HoppyP.Bool)
restoreState arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (restoreState' arg'1' arg'2')

restoreStateWithVersion :: (QMainWindowPtr this, M12.QByteArrayValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.Int) -> (HoppyP.IO HoppyP.Bool)
restoreStateWithVersion arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  M12.withQByteArrayPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (
    HoppyP.return . HoppyFHR.coerceIntegral
  ) arg'3 >>= \arg'3' ->
  (
    (HoppyP.return . (/= 0))
  ) =<<
  (restoreStateWithVersion' arg'1' arg'2' arg'3')

setCorner :: (QMainWindowPtr this) => (this) {- ^ this -} -> (M190.QtCorner) -> (M190.QtDockWidgetArea) -> (HoppyP.IO ())
setCorner arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'3 >>= \arg'3' ->
  (setCorner' arg'1' arg'2' arg'3')

splitDockWidget :: (QMainWindowPtr this, M392.QDockWidgetPtr arg'2, M392.QDockWidgetPtr arg'3) => (this) {- ^ this -} -> (arg'2) -> (arg'3) -> (M190.QtOrientation) -> (HoppyP.IO ())
splitDockWidget arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M392.toQDockWidget arg'2) $ \arg'2' ->
  HoppyFHR.withCppPtr (M392.toQDockWidget arg'3) $ \arg'3' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'4 >>= \arg'4' ->
  (splitDockWidget' arg'1' arg'2' arg'3' arg'4')

setStatusBar :: (QMainWindowPtr this, M482.QStatusBarPtr arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setStatusBar arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQMainWindow arg'1) $ \arg'1' ->
  HoppyFHR.withCppPtr (M482.toQStatusBar arg'2) $ \arg'2' ->
  (setStatusBar' arg'1' arg'2')

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

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

data QMainWindowConst =
    QMainWindowConst (HoppyF.Ptr QMainWindowConst)
  | QMainWindowConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMainWindowConst)
  deriving (HoppyP.Show)

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

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

castQMainWindowToConst :: QMainWindow -> QMainWindowConst
castQMainWindowToConst (QMainWindow ptr') = QMainWindowConst $ HoppyF.castPtr ptr'
castQMainWindowToConst (QMainWindowGc fptr' ptr') = QMainWindowConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMainWindowConstPtr QMainWindowConst where
  toQMainWindowConst = HoppyP.id

instance M506.QWidgetConstPtr QMainWindowConst where
  toQWidgetConst (QMainWindowConst ptr') = M506.QWidgetConst $ castQMainWindowToQWidget ptr'
  toQWidgetConst (QMainWindowConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMainWindowToQWidget ptr'

instance M94.QObjectConstPtr QMainWindowConst where
  toQObjectConst (QMainWindowConst ptr') = M94.QObjectConst $ castQMainWindowToQObject ptr'
  toQObjectConst (QMainWindowConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMainWindowToQObject ptr'

data QMainWindow =
    QMainWindow (HoppyF.Ptr QMainWindow)
  | QMainWindowGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QMainWindow)
  deriving (HoppyP.Show)

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

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

castQMainWindowToNonconst :: QMainWindowConst -> QMainWindow
castQMainWindowToNonconst (QMainWindowConst ptr') = QMainWindow $ HoppyF.castPtr ptr'
castQMainWindowToNonconst (QMainWindowConstGc fptr' ptr') = QMainWindowGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QMainWindowConstPtr QMainWindow where
  toQMainWindowConst (QMainWindow ptr') = QMainWindowConst $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
  toQMainWindowConst (QMainWindowGc fptr' ptr') = QMainWindowConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'

instance QMainWindowPtr QMainWindow where
  toQMainWindow = HoppyP.id

instance M506.QWidgetConstPtr QMainWindow where
  toQWidgetConst (QMainWindow ptr') = M506.QWidgetConst $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
  toQWidgetConst (QMainWindowGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'

instance M506.QWidgetPtr QMainWindow where
  toQWidget (QMainWindow ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
  toQWidget (QMainWindowGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQMainWindowToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'

instance M94.QObjectConstPtr QMainWindow where
  toQObjectConst (QMainWindow ptr') = M94.QObjectConst $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
  toQObjectConst (QMainWindowGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'

instance M94.QObjectPtr QMainWindow where
  toQObject (QMainWindow ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'
  toQObject (QMainWindowGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQMainWindowToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QMainWindow -> HoppyF.Ptr QMainWindowConst) ptr'

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

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

class QMainWindowSuper a where
  downToQMainWindow :: a -> QMainWindow

instance QMainWindowSuper M506.QWidget where
  downToQMainWindow = castQMainWindowToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QMainWindowConst $ castQWidgetToQMainWindow ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQWidgetToQMainWindow ptr'
instance QMainWindowSuper M94.QObject where
  downToQMainWindow = castQMainWindowToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QMainWindowConst $ castQObjectToQMainWindow ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQObjectToQMainWindow ptr'

class QMainWindowSuperConst a where
  downToQMainWindowConst :: a -> QMainWindowConst

instance QMainWindowSuperConst M506.QWidgetConst where
  downToQMainWindowConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QMainWindowConst $ castQWidgetToQMainWindow ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQWidgetToQMainWindow ptr'
instance QMainWindowSuperConst M94.QObjectConst where
  downToQMainWindowConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QMainWindowConst $ castQObjectToQMainWindow ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QMainWindowConstGc fptr' $ castQObjectToQMainWindow ptr'

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

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