packages feed

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

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

module Graphics.UI.Qtah.Generated.Widgets.QFileDialog (
  castQFileDialogToQDialog,
  castQDialogToQFileDialog,
  castQFileDialogToQWidget,
  castQWidgetToQFileDialog,
  castQFileDialogToQObject,
  castQObjectToQFileDialog,
  QFileDialogValue (..),
  QFileDialogConstPtr (..),
  acceptMode,
  defaultSuffix,
  directory,
  fileMode,
  filter,
  history,
  labelText,
  mimeTypeFilters,
  nameFilters,
  options,
  selectedFiles,
  selectedNameFilter,
  viewMode,
  QFileDialogPtr (..),
  setAcceptMode,
  setDefaultSuffix,
  setFileMode,
  setFilter,
  setHistory,
  setMimeTypeFilters,
  setNameFilters,
  setOptions,
  selectFile,
  selectNameFilter,
  setDirectory,
  setDirectoryPath,
  setLabelText,
  setNameFilter,
  setOption,
  setViewMode,
  emitCurrentChanged,
  emitDirectoryEntered,
  emitFileSelected,
  emitFilterSelected,
  getExistingDirectory,
  getExistingDirectoryWithOptions,
  getOpenFileName,
  getOpenFileNameWithOptions,
  getOpenFileNames,
  getOpenFileNamesWithOptions,
  getSaveFileName,
  getSaveFileNameWithOptions,
  QFileDialogConst (..),
  castQFileDialogToConst,
  QFileDialog (..),
  castQFileDialogToNonconst,
  new,
  newWithParent,
  newWithParentAndFlags,
  newWithParentAndCaption,
  newWithParentAndCaptionAndDirectory,
  newWithParentAndCaptionAndDirectoryAndFilter,
  QFileDialogSuper (..),
  QFileDialogSuperConst (..),
  QFileDialogAcceptMode (..),
  QFileDialogDialogLabel (..),
  QFileDialogFileMode (..),
  QFileDialogOption (..),
  QFileDialogOptions,
  IsQFileDialogOptions (..),
  dontConfirmOverwrite,
  dontResolveSymlinks,
  dontUseCustomDirectoryIcons,
  dontUseNativeDialog,
  dontUseSheet,
  hideNameFilterDetails,
  readOnly,
  showDirsOnly,
  QFileDialogViewMode (..),
  ) 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.QDir as M30
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M94
import qualified Graphics.UI.Qtah.Generated.Core.QString as M142
import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M144
import qualified Graphics.UI.Qtah.Generated.Core.Types as M190
import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M388
import 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__QFileDialog_new" new' ::  HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParent" newWithParent' ::  HoppyF.Ptr M506.QWidget -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M506.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndCaption" newWithParentAndCaption' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectory" newWithParentAndCaptionAndDirectory' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectoryAndFilter" newWithParentAndCaptionAndDirectoryAndFilter' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_acceptMode" acceptMode' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QFileDialog_setAcceptMode" setAcceptMode' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_defaultSuffix" defaultSuffix' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_setDefaultSuffix" setDefaultSuffix' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_directory" directory' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M30.QDirConst)
foreign import ccall "genpop__QFileDialog_fileMode" fileMode' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QFileDialog_setFileMode" setFileMode' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_filter" filter' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QFileDialog_setFilter" setFilter' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_getExistingDirectory" getExistingDirectory' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_getExistingDirectoryWithOptions" getExistingDirectoryWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_getOpenFileName" getOpenFileName' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_getOpenFileNameWithOptions" getOpenFileNameWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_getOpenFileNames" getOpenFileNames' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QFileDialog_getOpenFileNamesWithOptions" getOpenFileNamesWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QFileDialog_getSaveFileName" getSaveFileName' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_getSaveFileNameWithOptions" getSaveFileNameWithOptions' ::  HoppyF.Ptr M506.QWidget -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QStringConst -> HoppyF.Ptr M142.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_history" history' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QFileDialog_setHistory" setHistory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_labelText" labelText' ::  HoppyF.Ptr QFileDialogConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_mimeTypeFilters" mimeTypeFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QFileDialog_setMimeTypeFilters" setMimeTypeFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_nameFilters" nameFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QFileDialog_setNameFilters" setNameFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M144.QStringListConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_options" options' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QFileDialog_setOptions" setOptions' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_selectFile" selectFile' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_selectNameFilter" selectNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_selectedFiles" selectedFiles' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M144.QStringListConst)
foreign import ccall "genpop__QFileDialog_selectedNameFilter" selectedNameFilter' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M142.QStringConst)
foreign import ccall "genpop__QFileDialog_setDirectory" setDirectory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M30.QDirConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setDirectoryPath" setDirectoryPath' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setLabelText" setLabelText' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setNameFilter" setNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setOption" setOption' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyFC.CBool -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_viewMode" viewMode' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO HoppyFC.CInt
foreign import ccall "genpop__QFileDialog_setViewMode" setViewMode' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_emitCurrentChanged" emitCurrentChanged' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_emitDirectoryEntered" emitDirectoryEntered' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_emitFileSelected" emitFileSelected' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_emitFilterSelected" emitFilterSelected' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M142.QStringConst -> HoppyP.IO ()
foreign import ccall "gencast__QFileDialog__QDialog" castQFileDialogToQDialog :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M388.QDialogConst
foreign import ccall "gencast__QDialog__QFileDialog" castQDialogToQFileDialog :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr QFileDialogConst
foreign import ccall "gencast__QFileDialog__QWidget" castQFileDialogToQWidget :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M506.QWidgetConst
foreign import ccall "gencast__QWidget__QFileDialog" castQWidgetToQFileDialog :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr QFileDialogConst
foreign import ccall "gencast__QFileDialog__QObject" castQFileDialogToQObject :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M94.QObjectConst
foreign import ccall "gencast__QObject__QFileDialog" castQObjectToQFileDialog :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr QFileDialogConst
foreign import ccall "gendel__QFileDialog" delete'QFileDialog :: HoppyF.Ptr QFileDialogConst -> HoppyP.IO ()
foreign import ccall "&gendel__QFileDialog" deletePtr'QFileDialog :: HoppyF.FunPtr (HoppyF.Ptr QFileDialogConst -> HoppyP.IO ())

class QFileDialogValue a where
  withQFileDialogPtr :: a -> (QFileDialogConst -> HoppyP.IO b) -> HoppyP.IO b

instance {-# OVERLAPPABLE #-} QFileDialogConstPtr a => QFileDialogValue a where
  withQFileDialogPtr = HoppyP.flip ($) . toQFileDialogConst

class (M388.QDialogConstPtr this) => QFileDialogConstPtr this where
  toQFileDialogConst :: this -> QFileDialogConst

acceptMode :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDialogAcceptMode)
acceptMode arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (acceptMode' arg'1')

defaultSuffix :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
defaultSuffix arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (defaultSuffix' arg'1')

directory :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO M30.QDir)
directory arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M30.QDirConst) =<<
  (directory' arg'1')

fileMode :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDialogFileMode)
fileMode arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.toCppEnum
  ) =<<
  (fileMode' arg'1')

filter :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO M30.QDirFilters)
filter arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (filter' arg'1')

history :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
history arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (history' arg'1')

labelText :: (QFileDialogValue this) => (this) {- ^ this -} -> (QFileDialogDialogLabel) -> (HoppyP.IO QtahP.String)
labelText arg'1 arg'2 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (labelText' arg'1' arg'2')

mimeTypeFilters :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
mimeTypeFilters arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (mimeTypeFilters' arg'1')

nameFilters :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
nameFilters arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (nameFilters' arg'1')

options :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QFileDialogOptions)
options arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (
    QtahP.return . QtahFlags.numToFlags
  ) =<<
  (options' arg'1')

selectedFiles :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO [QtahP.String])
selectedFiles arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (selectedFiles' arg'1')

selectedNameFilter :: (QFileDialogValue this) => (this) {- ^ this -} -> (HoppyP.IO QtahP.String)
selectedNameFilter arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (selectedNameFilter' arg'1')

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

class (QFileDialogConstPtr this, M388.QDialogPtr this) => QFileDialogPtr this where
  toQFileDialog :: this -> QFileDialog

setAcceptMode :: (QFileDialogPtr this) => (this) {- ^ this -} -> (QFileDialogAcceptMode) -> (HoppyP.IO ())
setAcceptMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setAcceptMode' arg'1' arg'2')

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

setFileMode :: (QFileDialogPtr this) => (this) {- ^ this -} -> (QFileDialogFileMode) -> (HoppyP.IO ())
setFileMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  (setFileMode' arg'1' arg'2')

setFilter :: (QFileDialogPtr this, M30.IsQDirFilters arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setFilter arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . M30.toQDirFilters
  ) arg'2 >>= \arg'2' ->
  (setFilter' arg'1' arg'2')

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

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

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

setOptions :: (QFileDialogPtr this, IsQFileDialogOptions arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setOptions arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  (
    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
  ) arg'2 >>= \arg'2' ->
  (setOptions' arg'1' arg'2')

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

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

setDirectory :: (QFileDialogPtr this, M30.QDirValue arg'2) => (this) {- ^ this -} -> (arg'2) -> (HoppyP.IO ())
setDirectory arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  M30.withQDirPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  (setDirectory' arg'1' arg'2')

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

setLabelText :: (QFileDialogPtr this, M142.QStringValue arg'3) => (this) {- ^ this -} -> (QFileDialogDialogLabel) -> (arg'3) -> (HoppyP.IO ())
setLabelText arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  (
    HoppyP.return . HoppyFHR.fromCppEnum
  ) arg'2 >>= \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (setLabelText' arg'1' arg'2' arg'3')

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

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

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

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

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

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

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

getExistingDirectory :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QtahP.String)
getExistingDirectory arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (getExistingDirectory' arg'1' arg'2' arg'3')

getExistingDirectoryWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, IsQFileDialogOptions arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
getExistingDirectoryWithOptions arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (
    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
  ) arg'4 >>= \arg'4' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (getExistingDirectoryWithOptions' arg'1' arg'2' arg'3' arg'4')

getOpenFileName :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
getOpenFileName arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (getOpenFileName' arg'1' arg'2' arg'3' arg'4')

getOpenFileNameWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M142.QStringPtr arg'5, IsQFileDialogOptions arg'6) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (HoppyP.IO QtahP.String)
getOpenFileNameWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  HoppyFHR.withCppPtr (M142.toQString arg'5) $ \arg'5' ->
  (
    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
  ) arg'6 >>= \arg'6' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (getOpenFileNameWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

getOpenFileNames :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO [QtahP.String])
getOpenFileNames arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (getOpenFileNames' arg'1' arg'2' arg'3' arg'4')

getOpenFileNamesWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M142.QStringPtr arg'5, IsQFileDialogOptions arg'6) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (HoppyP.IO [QtahP.String])
getOpenFileNamesWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  HoppyFHR.withCppPtr (M142.toQString arg'5) $ \arg'5' ->
  (
    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
  ) arg'6 >>= \arg'6' ->
  (HoppyFHR.decodeAndDelete . M144.QStringListConst) =<<
  (getOpenFileNamesWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

getSaveFileName :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QtahP.String)
getSaveFileName arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (getSaveFileName' arg'1' arg'2' arg'3' arg'4')

getSaveFileNameWithOptions :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4, M142.QStringPtr arg'5, IsQFileDialogOptions arg'6) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (arg'5) -> (arg'6) -> (HoppyP.IO QtahP.String)
getSaveFileNameWithOptions arg'1 arg'2 arg'3 arg'4 arg'5 arg'6 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  HoppyFHR.withCppPtr (M142.toQString arg'5) $ \arg'5' ->
  (
    QtahP.return . QtahFlags.flagsToNum . toQFileDialogOptions
  ) arg'6 >>= \arg'6' ->
  (HoppyFHR.decodeAndDelete . M142.QStringConst) =<<
  (getSaveFileNameWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

data QFileDialogConst =
    QFileDialogConst (HoppyF.Ptr QFileDialogConst)
  | QFileDialogConstGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileDialogConst)
  deriving (HoppyP.Show)

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

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

castQFileDialogToConst :: QFileDialog -> QFileDialogConst
castQFileDialogToConst (QFileDialog ptr') = QFileDialogConst $ HoppyF.castPtr ptr'
castQFileDialogToConst (QFileDialogGc fptr' ptr') = QFileDialogConstGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QFileDialogConstPtr QFileDialogConst where
  toQFileDialogConst = HoppyP.id

instance M388.QDialogConstPtr QFileDialogConst where
  toQDialogConst (QFileDialogConst ptr') = M388.QDialogConst $ castQFileDialogToQDialog ptr'
  toQDialogConst (QFileDialogConstGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQFileDialogToQDialog ptr'

instance M506.QWidgetConstPtr QFileDialogConst where
  toQWidgetConst (QFileDialogConst ptr') = M506.QWidgetConst $ castQFileDialogToQWidget ptr'
  toQWidgetConst (QFileDialogConstGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQFileDialogToQWidget ptr'

instance M94.QObjectConstPtr QFileDialogConst where
  toQObjectConst (QFileDialogConst ptr') = M94.QObjectConst $ castQFileDialogToQObject ptr'
  toQObjectConst (QFileDialogConstGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileDialogToQObject ptr'

data QFileDialog =
    QFileDialog (HoppyF.Ptr QFileDialog)
  | QFileDialogGc (HoppyF.ForeignPtr ()) (HoppyF.Ptr QFileDialog)
  deriving (HoppyP.Show)

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

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

castQFileDialogToNonconst :: QFileDialogConst -> QFileDialog
castQFileDialogToNonconst (QFileDialogConst ptr') = QFileDialog $ HoppyF.castPtr ptr'
castQFileDialogToNonconst (QFileDialogConstGc fptr' ptr') = QFileDialogGc fptr' $ HoppyF.castPtr ptr'

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

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

instance QFileDialogConstPtr QFileDialog where
  toQFileDialogConst (QFileDialog ptr') = QFileDialogConst $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQFileDialogConst (QFileDialogGc fptr' ptr') = QFileDialogConstGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

instance QFileDialogPtr QFileDialog where
  toQFileDialog = HoppyP.id

instance M388.QDialogConstPtr QFileDialog where
  toQDialogConst (QFileDialog ptr') = M388.QDialogConst $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQDialogConst (QFileDialogGc fptr' ptr') = M388.QDialogConstGc fptr' $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

instance M388.QDialogPtr QFileDialog where
  toQDialog (QFileDialog ptr') = M388.QDialog $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQDialog (QFileDialogGc fptr' ptr') = M388.QDialogGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M388.QDialogConst -> HoppyF.Ptr M388.QDialog) $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

instance M506.QWidgetConstPtr QFileDialog where
  toQWidgetConst (QFileDialog ptr') = M506.QWidgetConst $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQWidgetConst (QFileDialogGc fptr' ptr') = M506.QWidgetConstGc fptr' $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

instance M506.QWidgetPtr QFileDialog where
  toQWidget (QFileDialog ptr') = M506.QWidget $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQWidget (QFileDialogGc fptr' ptr') = M506.QWidgetGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M506.QWidgetConst -> HoppyF.Ptr M506.QWidget) $ castQFileDialogToQWidget $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

instance M94.QObjectConstPtr QFileDialog where
  toQObjectConst (QFileDialog ptr') = M94.QObjectConst $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQObjectConst (QFileDialogGc fptr' ptr') = M94.QObjectConstGc fptr' $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

instance M94.QObjectPtr QFileDialog where
  toQObject (QFileDialog ptr') = M94.QObject $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQObject (QFileDialogGc fptr' ptr') = M94.QObjectGc fptr' $ (HoppyF.castPtr :: HoppyF.Ptr M94.QObjectConst -> HoppyF.Ptr M94.QObject) $ castQFileDialogToQObject $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

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

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

newWithParentAndFlags :: (M506.QWidgetPtr arg'1, M190.IsQtWindowFlags arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFileDialog)
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 QFileDialog
  (newWithParentAndFlags' arg'1' arg'2')

newWithParentAndCaption :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2) => (arg'1) -> (arg'2) -> (HoppyP.IO QFileDialog)
newWithParentAndCaption arg'1 arg'2 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  HoppyP.fmap QFileDialog
  (newWithParentAndCaption' arg'1' arg'2')

newWithParentAndCaptionAndDirectory :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3) => (arg'1) -> (arg'2) -> (arg'3) -> (HoppyP.IO QFileDialog)
newWithParentAndCaptionAndDirectory arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  HoppyP.fmap QFileDialog
  (newWithParentAndCaptionAndDirectory' arg'1' arg'2' arg'3')

newWithParentAndCaptionAndDirectoryAndFilter :: (M506.QWidgetPtr arg'1, M142.QStringValue arg'2, M142.QStringValue arg'3, M142.QStringValue arg'4) => (arg'1) -> (arg'2) -> (arg'3) -> (arg'4) -> (HoppyP.IO QFileDialog)
newWithParentAndCaptionAndDirectoryAndFilter arg'1 arg'2 arg'3 arg'4 =
  HoppyFHR.withCppPtr (M506.toQWidget arg'1) $ \arg'1' ->
  M142.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M142.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M142.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  HoppyP.fmap QFileDialog
  (newWithParentAndCaptionAndDirectoryAndFilter' arg'1' arg'2' arg'3' arg'4')

class QFileDialogSuper a where
  downToQFileDialog :: a -> QFileDialog

instance QFileDialogSuper M388.QDialog where
  downToQFileDialog = castQFileDialogToNonconst . cast' . M388.castQDialogToConst
    where
      cast' (M388.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
      cast' (M388.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
instance QFileDialogSuper M506.QWidget where
  downToQFileDialog = castQFileDialogToNonconst . cast' . M506.castQWidgetToConst
    where
      cast' (M506.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
instance QFileDialogSuper M94.QObject where
  downToQFileDialog = castQFileDialogToNonconst . cast' . M94.castQObjectToConst
    where
      cast' (M94.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQObjectToQFileDialog ptr'

class QFileDialogSuperConst a where
  downToQFileDialogConst :: a -> QFileDialogConst

instance QFileDialogSuperConst M388.QDialogConst where
  downToQFileDialogConst = cast'
    where
      cast' (M388.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
      cast' (M388.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
instance QFileDialogSuperConst M506.QWidgetConst where
  downToQFileDialogConst = cast'
    where
      cast' (M506.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
      cast' (M506.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
instance QFileDialogSuperConst M94.QObjectConst where
  downToQFileDialogConst = cast'
    where
      cast' (M94.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
      cast' (M94.QObjectConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQObjectToQFileDialog ptr'

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

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

data QFileDialogAcceptMode =
  AcceptOpen
  | AcceptSave
  | UnknownQFileDialogAcceptMode (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogAcceptMode where
  fromCppEnum AcceptOpen = 0
  fromCppEnum AcceptSave = 1
  fromCppEnum (UnknownQFileDialogAcceptMode n) = n
  
  toCppEnum (0) = AcceptOpen
  toCppEnum (1) = AcceptSave
  toCppEnum n = UnknownQFileDialogAcceptMode n

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

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

data QFileDialogDialogLabel =
  LookIn
  | FileName
  | FileType
  | Accept
  | Reject
  | UnknownQFileDialogDialogLabel (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogDialogLabel where
  fromCppEnum LookIn = 0
  fromCppEnum FileName = 1
  fromCppEnum FileType = 2
  fromCppEnum Accept = 3
  fromCppEnum Reject = 4
  fromCppEnum (UnknownQFileDialogDialogLabel n) = n
  
  toCppEnum (0) = LookIn
  toCppEnum (1) = FileName
  toCppEnum (2) = FileType
  toCppEnum (3) = Accept
  toCppEnum (4) = Reject
  toCppEnum n = UnknownQFileDialogDialogLabel n

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

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

data QFileDialogFileMode =
  AnyFile
  | ExistingFile
  | Directory
  | ExistingFiles
  | UnknownQFileDialogFileMode (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogFileMode where
  fromCppEnum AnyFile = 0
  fromCppEnum ExistingFile = 1
  fromCppEnum Directory = 2
  fromCppEnum ExistingFiles = 3
  fromCppEnum (UnknownQFileDialogFileMode n) = n
  
  toCppEnum (0) = AnyFile
  toCppEnum (1) = ExistingFile
  toCppEnum (2) = Directory
  toCppEnum (3) = ExistingFiles
  toCppEnum n = UnknownQFileDialogFileMode n

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

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

data QFileDialogOption =
  ShowDirsOnly
  | DontResolveSymlinks
  | DontConfirmOverwrite
  | DontUseSheet
  | DontUseNativeDialog
  | ReadOnly
  | HideNameFilterDetails
  | DontUseCustomDirectoryIcons
  | UnknownQFileDialogOption (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogOption where
  fromCppEnum ShowDirsOnly = 1
  fromCppEnum DontResolveSymlinks = 2
  fromCppEnum DontConfirmOverwrite = 4
  fromCppEnum DontUseSheet = 8
  fromCppEnum DontUseNativeDialog = 16
  fromCppEnum ReadOnly = 32
  fromCppEnum HideNameFilterDetails = 64
  fromCppEnum DontUseCustomDirectoryIcons = 128
  fromCppEnum (UnknownQFileDialogOption n) = n
  
  toCppEnum (1) = ShowDirsOnly
  toCppEnum (2) = DontResolveSymlinks
  toCppEnum (4) = DontConfirmOverwrite
  toCppEnum (8) = DontUseSheet
  toCppEnum (16) = DontUseNativeDialog
  toCppEnum (32) = ReadOnly
  toCppEnum (64) = HideNameFilterDetails
  toCppEnum (128) = DontUseCustomDirectoryIcons
  toCppEnum n = UnknownQFileDialogOption n

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

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

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

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

class IsQFileDialogOptions a where
  toQFileDialogOptions :: a -> QFileDialogOptions

instance IsQFileDialogOptions QFileDialogOptions where toQFileDialogOptions = QtahP.id
instance IsQFileDialogOptions QFileDialogOption where toQFileDialogOptions = QtahFlags.enumToFlags
instance IsQFileDialogOptions (HoppyFC.CInt) where toQFileDialogOptions = QtahFlags.numToFlags

dontConfirmOverwrite :: QFileDialogOptions
dontConfirmOverwrite = QFileDialogOptions (4)

dontResolveSymlinks :: QFileDialogOptions
dontResolveSymlinks = QFileDialogOptions (2)

dontUseCustomDirectoryIcons :: QFileDialogOptions
dontUseCustomDirectoryIcons = QFileDialogOptions (128)

dontUseNativeDialog :: QFileDialogOptions
dontUseNativeDialog = QFileDialogOptions (16)

dontUseSheet :: QFileDialogOptions
dontUseSheet = QFileDialogOptions (8)

hideNameFilterDetails :: QFileDialogOptions
hideNameFilterDetails = QFileDialogOptions (64)

readOnly :: QFileDialogOptions
readOnly = QFileDialogOptions (32)

showDirsOnly :: QFileDialogOptions
showDirsOnly = QFileDialogOptions (1)

instance QtahDB.Bits QFileDialogOptions 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 QFileDialogViewMode =
  Detail
  | List
  | UnknownQFileDialogViewMode (HoppyFC.CInt)
  deriving (HoppyP.Show)

instance HoppyFHR.CppEnum (HoppyFC.CInt) QFileDialogViewMode where
  fromCppEnum Detail = 0
  fromCppEnum List = 1
  fromCppEnum (UnknownQFileDialogViewMode n) = n
  
  toCppEnum (0) = Detail
  toCppEnum (1) = List
  toCppEnum n = UnknownQFileDialogViewMode n

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

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