packages feed

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

{-# LANGUAGE CPP, FlexibleContexts, FlexibleInstances, GeneralizedNewtypeDeriving, MultiParamTypeClasses, ScopedTypeVariables, TypeSynonymInstances, UndecidableInstances #-}
#if !MIN_VERSION_base(4,8,0)
{-# LANGUAGE OverlappingInstances #-}
#endif

---------- 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,
  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 (..),
  showDirsOnly,
  dontResolveSymlinks,
  dontConfirmOverwrite,
  dontUseSheet,
  dontUseNativeDialog,
  readOnly,
  hideNameFilterDetails,
  dontUseCustomDirectoryIcons,
  QFileDialogViewMode (..),
  ) where

import qualified Data.Bits as HoppyDB
import qualified Foreign as HoppyF
import qualified Foreign.C as HoppyFC
import qualified Foreign.Hoppy.Runtime as HoppyFHR
import qualified Graphics.UI.Qtah.Generated.Core.QDir as M14
import qualified Graphics.UI.Qtah.Generated.Core.QObject as M30
import qualified Graphics.UI.Qtah.Generated.Core.QString as M46
import qualified Graphics.UI.Qtah.Generated.Core.QStringList as M48
import qualified Graphics.UI.Qtah.Generated.Core.Types as M58
import qualified Graphics.UI.Qtah.Generated.Widgets.QDialog as M188
import qualified Graphics.UI.Qtah.Generated.Widgets.QWidget as M280
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 M280.QWidget -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndFlags" newWithParentAndFlags' ::  HoppyF.Ptr M280.QWidget -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndCaption" newWithParentAndCaption' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectory" newWithParentAndCaptionAndDirectory' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr QFileDialog)
foreign import ccall "genpop__QFileDialog_newWithParentAndCaptionAndDirectoryAndFilter" newWithParentAndCaptionAndDirectoryAndFilter' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.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 M46.QStringConst)
foreign import ccall "genpop__QFileDialog_setDefaultSuffix" setDefaultSuffix' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_directory" directory' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M14.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 M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_getExistingDirectoryWithOptions" getExistingDirectoryWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_getOpenFileName" getOpenFileName' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_getOpenFileNameWithOptions" getOpenFileNameWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_getOpenFileNames" getOpenFileNames' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
foreign import ccall "genpop__QFileDialog_getOpenFileNamesWithOptions" getOpenFileNamesWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
foreign import ccall "genpop__QFileDialog_getSaveFileName" getSaveFileName' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_getSaveFileNameWithOptions" getSaveFileNameWithOptions' ::  HoppyF.Ptr M280.QWidget -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QStringConst -> HoppyF.Ptr M46.QString -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_history" history' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
foreign import ccall "genpop__QFileDialog_setHistory" setHistory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M48.QStringListConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_labelText" labelText' ::  HoppyF.Ptr QFileDialogConst -> HoppyFC.CInt -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_mimeTypeFilters" mimeTypeFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
foreign import ccall "genpop__QFileDialog_setMimeTypeFilters" setMimeTypeFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M48.QStringListConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_nameFilters" nameFilters' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
foreign import ccall "genpop__QFileDialog_setNameFilters" setNameFilters' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M48.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 M46.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_selectNameFilter" selectNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_selectedFiles" selectedFiles' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M48.QStringListConst)
foreign import ccall "genpop__QFileDialog_selectedNameFilter" selectedNameFilter' ::  HoppyF.Ptr QFileDialogConst -> HoppyP.IO (HoppyF.Ptr M46.QStringConst)
foreign import ccall "genpop__QFileDialog_setDirectory" setDirectory' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M14.QDirConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setDirectoryPath" setDirectoryPath' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setLabelText" setLabelText' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setNameFilter" setNameFilter' ::  HoppyF.Ptr QFileDialog -> HoppyF.Ptr M46.QStringConst -> HoppyP.IO ()
foreign import ccall "genpop__QFileDialog_setOption" setOption' ::  HoppyF.Ptr QFileDialog -> HoppyFC.CInt -> HoppyFHR.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 "gencast__QFileDialog__QDialog" castQFileDialogToQDialog :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M188.QDialogConst
foreign import ccall "gencast__QDialog__QFileDialog" castQDialogToQFileDialog :: HoppyF.Ptr M188.QDialogConst -> HoppyF.Ptr QFileDialogConst
foreign import ccall "gencast__QFileDialog__QWidget" castQFileDialogToQWidget :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M280.QWidgetConst
foreign import ccall "gencast__QWidget__QFileDialog" castQWidgetToQFileDialog :: HoppyF.Ptr M280.QWidgetConst -> HoppyF.Ptr QFileDialogConst
foreign import ccall "gencast__QFileDialog__QObject" castQFileDialogToQObject :: HoppyF.Ptr QFileDialogConst -> HoppyF.Ptr M30.QObjectConst
foreign import ccall "gencast__QObject__QFileDialog" castQObjectToQFileDialog :: HoppyF.Ptr M30.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

#if MIN_VERSION_base(4,8,0)
instance {-# OVERLAPPABLE #-} QFileDialogConstPtr a => QFileDialogValue a where
#else
instance QFileDialogConstPtr a => QFileDialogValue a where
#endif
  withQFileDialogPtr = HoppyP.flip ($) . toQFileDialogConst

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

acceptMode :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogAcceptMode
acceptMode arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
  (acceptMode' arg'1')

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

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

fileMode :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogFileMode
fileMode arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
  (fileMode' arg'1')

filter :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO M14.QDirFilters
filter arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap M14.QDirFilters
  (filter' arg'1')

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

labelText :: (QFileDialogValue arg'1) => arg'1 -> QFileDialogDialogLabel -> HoppyP.IO QtahP.String
labelText arg'1 arg'2 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
  (labelText' arg'1' arg'2')

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

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

options :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogOptions
options arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap QFileDialogOptions
  (options' arg'1')

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

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

viewMode :: (QFileDialogValue arg'1) => arg'1 -> HoppyP.IO QFileDialogViewMode
viewMode arg'1 =
  withQFileDialogPtr arg'1 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'1' ->
  HoppyP.fmap (HoppyP.toEnum . HoppyFHR.coerceIntegral)
  (viewMode' arg'1')

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

setAcceptMode :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogAcceptMode -> HoppyP.IO ()
setAcceptMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
  (setAcceptMode' arg'1' arg'2')

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

setFileMode :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogFileMode -> HoppyP.IO ()
setFileMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
  (setFileMode' arg'1' arg'2')

setFilter :: (QFileDialogPtr arg'1, M14.IsQDirFilters arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
setFilter arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  let arg'2' = M14.fromQDirFilters $ M14.toQDirFilters arg'2 in
  (setFilter' arg'1' arg'2')

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

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

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

setOptions :: (QFileDialogPtr arg'1, IsQFileDialogOptions arg'2) => arg'1 -> arg'2 -> HoppyP.IO ()
setOptions arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  let arg'2' = fromQFileDialogOptions $ toQFileDialogOptions arg'2 in
  (setOptions' arg'1' arg'2')

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

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

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

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

setLabelText :: (QFileDialogPtr arg'1, M46.QStringValue arg'3) => arg'1 -> QFileDialogDialogLabel -> arg'3 -> HoppyP.IO ()
setLabelText arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  (setLabelText' arg'1' arg'2' arg'3')

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

setOption :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogOption -> HoppyP.Bool -> HoppyP.IO ()
setOption arg'1 arg'2 arg'3 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
  let arg'3' = if arg'3 then 1 else 0 in
  (setOption' arg'1' arg'2' arg'3')

setViewMode :: (QFileDialogPtr arg'1) => arg'1 -> QFileDialogViewMode -> HoppyP.IO ()
setViewMode arg'1 arg'2 =
  HoppyFHR.withCppPtr (toQFileDialog arg'1) $ \arg'1' ->
  let arg'2' = HoppyFHR.coerceIntegral $ HoppyP.fromEnum arg'2 in
  (setViewMode' arg'1' arg'2')

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

getExistingDirectoryWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  let arg'4' = fromQFileDialogOptions $ toQFileDialogOptions arg'4 in
  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
  (getExistingDirectoryWithOptions' arg'1' arg'2' arg'3' arg'4')

getOpenFileName :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
  (getOpenFileName' arg'1' arg'2' arg'3' arg'4')

getOpenFileNameWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'4, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  HoppyFHR.withCppPtr (M46.toQString arg'5) $ \arg'5' ->
  let arg'6' = fromQFileDialogOptions $ toQFileDialogOptions arg'6 in
  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
  (getOpenFileNameWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

getOpenFileNames :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
  (getOpenFileNames' arg'1' arg'2' arg'3' arg'4')

getOpenFileNamesWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'4, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  HoppyFHR.withCppPtr (M46.toQString arg'5) $ \arg'5' ->
  let arg'6' = fromQFileDialogOptions $ toQFileDialogOptions arg'6 in
  (HoppyFHR.decodeAndDelete . M48.QStringListConst) =<<
  (getOpenFileNamesWithOptions' arg'1' arg'2' arg'3' arg'4' arg'5' arg'6')

getSaveFileName :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  (HoppyFHR.decodeAndDelete . M46.QStringConst) =<<
  (getSaveFileName' arg'1' arg'2' arg'3' arg'4')

getSaveFileNameWithOptions :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.QStringValue arg'4, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M46.withQStringPtr arg'4 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'4' ->
  HoppyFHR.withCppPtr (M46.toQString arg'5) $ \arg'5' ->
  let arg'6' = fromQFileDialogOptions $ toQFileDialogOptions arg'6 in
  (HoppyFHR.decodeAndDelete . M46.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 M188.QDialogConstPtr QFileDialogConst where
  toQDialogConst (QFileDialogConst ptr') = M188.QDialogConst $ castQFileDialogToQDialog ptr'
  toQDialogConst (QFileDialogConstGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQFileDialogToQDialog ptr'

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

instance M30.QObjectConstPtr QFileDialogConst where
  toQObjectConst (QFileDialogConst ptr') = M30.QObjectConst $ castQFileDialogToQObject ptr'
  toQObjectConst (QFileDialogConstGc fptr' ptr') = M30.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 M188.QDialogConstPtr QFileDialog where
  toQDialogConst (QFileDialog ptr') = M188.QDialogConst $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'
  toQDialogConst (QFileDialogGc fptr' ptr') = M188.QDialogConstGc fptr' $ castQFileDialogToQDialog $ (HoppyF.castPtr :: HoppyF.Ptr QFileDialog -> HoppyF.Ptr QFileDialogConst) ptr'

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

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

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

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

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

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

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

newWithParentAndFlags :: (M280.QWidgetPtr arg'1, M58.IsQtWindowFlags arg'2) => arg'1 -> arg'2 -> HoppyP.IO QFileDialog
newWithParentAndFlags arg'1 arg'2 =
  HoppyFHR.withCppPtr (M280.toQWidget arg'1) $ \arg'1' ->
  let arg'2' = M58.fromQtWindowFlags $ M58.toQtWindowFlags arg'2 in
  HoppyP.fmap QFileDialog
  (newWithParentAndFlags' arg'1' arg'2')

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

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

newWithParentAndCaptionAndDirectoryAndFilter :: (M280.QWidgetPtr arg'1, M46.QStringValue arg'2, M46.QStringValue arg'3, M46.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 (M280.toQWidget arg'1) $ \arg'1' ->
  M46.withQStringPtr arg'2 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'2' ->
  M46.withQStringPtr arg'3 $ HoppyP.flip HoppyFHR.withCppPtr $ \arg'3' ->
  M46.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 M188.QDialog where
  downToQFileDialog = castQFileDialogToNonconst . cast' . M188.castQDialogToConst
    where
      cast' (M188.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
      cast' (M188.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
instance QFileDialogSuper M280.QWidget where
  downToQFileDialog = castQFileDialogToNonconst . cast' . M280.castQWidgetToConst
    where
      cast' (M280.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
      cast' (M280.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
instance QFileDialogSuper M30.QObject where
  downToQFileDialog = castQFileDialogToNonconst . cast' . M30.castQObjectToConst
    where
      cast' (M30.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
      cast' (M30.QObjectConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQObjectToQFileDialog ptr'

class QFileDialogSuperConst a where
  downToQFileDialogConst :: a -> QFileDialogConst

instance QFileDialogSuperConst M188.QDialogConst where
  downToQFileDialogConst = cast'
    where
      cast' (M188.QDialogConst ptr') = QFileDialogConst $ castQDialogToQFileDialog ptr'
      cast' (M188.QDialogConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQDialogToQFileDialog ptr'
instance QFileDialogSuperConst M280.QWidgetConst where
  downToQFileDialogConst = cast'
    where
      cast' (M280.QWidgetConst ptr') = QFileDialogConst $ castQWidgetToQFileDialog ptr'
      cast' (M280.QWidgetConstGc fptr' ptr') = QFileDialogConstGc fptr' $ castQWidgetToQFileDialog ptr'
instance QFileDialogSuperConst M30.QObjectConst where
  downToQFileDialogConst = cast'
    where
      cast' (M30.QObjectConst ptr') = QFileDialogConst $ castQObjectToQFileDialog ptr'
      cast' (M30.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
  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)

instance HoppyP.Enum QFileDialogAcceptMode where
  fromEnum AcceptOpen = 0
  fromEnum AcceptSave = 1
  
  toEnum (0) = AcceptOpen
  toEnum (1) = AcceptSave
  toEnum n' = HoppyP.error $ "Unknown QFileDialogAcceptMode numeric value: " ++ HoppyP.show n'

data QFileDialogDialogLabel =
  LookIn
  | FileName
  | FileType
  | Accept
  | Reject
  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)

instance HoppyP.Enum QFileDialogDialogLabel where
  fromEnum LookIn = 0
  fromEnum FileName = 1
  fromEnum FileType = 2
  fromEnum Accept = 3
  fromEnum Reject = 4
  
  toEnum (0) = LookIn
  toEnum (1) = FileName
  toEnum (2) = FileType
  toEnum (3) = Accept
  toEnum (4) = Reject
  toEnum n' = HoppyP.error $ "Unknown QFileDialogDialogLabel numeric value: " ++ HoppyP.show n'

data QFileDialogFileMode =
  AnyFile
  | ExistingFile
  | Directory
  | ExistingFiles
  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)

instance HoppyP.Enum QFileDialogFileMode where
  fromEnum AnyFile = 0
  fromEnum ExistingFile = 1
  fromEnum Directory = 2
  fromEnum ExistingFiles = 3
  
  toEnum (0) = AnyFile
  toEnum (1) = ExistingFile
  toEnum (2) = Directory
  toEnum (3) = ExistingFiles
  toEnum n' = HoppyP.error $ "Unknown QFileDialogFileMode numeric value: " ++ HoppyP.show n'

data QFileDialogOption =
  ShowDirsOnly
  | DontResolveSymlinks
  | DontConfirmOverwrite
  | DontUseSheet
  | DontUseNativeDialog
  | ReadOnly
  | HideNameFilterDetails
  | DontUseCustomDirectoryIcons
  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)

instance HoppyP.Enum QFileDialogOption where
  fromEnum ShowDirsOnly = 1
  fromEnum DontResolveSymlinks = 2
  fromEnum DontConfirmOverwrite = 4
  fromEnum DontUseSheet = 8
  fromEnum DontUseNativeDialog = 16
  fromEnum ReadOnly = 32
  fromEnum HideNameFilterDetails = 64
  fromEnum DontUseCustomDirectoryIcons = 128
  
  toEnum (1) = ShowDirsOnly
  toEnum (2) = DontResolveSymlinks
  toEnum (4) = DontConfirmOverwrite
  toEnum (8) = DontUseSheet
  toEnum (16) = DontUseNativeDialog
  toEnum (32) = ReadOnly
  toEnum (64) = HideNameFilterDetails
  toEnum (128) = DontUseCustomDirectoryIcons
  toEnum n' = HoppyP.error $ "Unknown QFileDialogOption numeric value: " ++ HoppyP.show n'

newtype QFileDialogOptions = QFileDialogOptions { fromQFileDialogOptions :: HoppyFC.CInt }
  deriving (HoppyDB.Bits, HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)

class IsQFileDialogOptions a where
  toQFileDialogOptions :: a -> QFileDialogOptions

instance IsQFileDialogOptions (HoppyFC.CInt) where
  toQFileDialogOptions = QFileDialogOptions
instance IsQFileDialogOptions (HoppyP.Int) where
  toQFileDialogOptions = QFileDialogOptions . HoppyFHR.coerceIntegral
instance IsQFileDialogOptions QFileDialogOptions where
  toQFileDialogOptions = HoppyP.id

instance IsQFileDialogOptions QFileDialogOption where
  toQFileDialogOptions = QFileDialogOptions . HoppyFHR.coerceIntegral . HoppyP.fromEnum

showDirsOnly = QFileDialogOptions 1
dontResolveSymlinks = QFileDialogOptions 2
dontConfirmOverwrite = QFileDialogOptions 4
dontUseSheet = QFileDialogOptions 8
dontUseNativeDialog = QFileDialogOptions 16
readOnly = QFileDialogOptions 32
hideNameFilterDetails = QFileDialogOptions 64
dontUseCustomDirectoryIcons = QFileDialogOptions 128

data QFileDialogViewMode =
  Detail
  | List
  deriving (HoppyP.Bounded, HoppyP.Eq, HoppyP.Ord, HoppyP.Show)

instance HoppyP.Enum QFileDialogViewMode where
  fromEnum Detail = 0
  fromEnum List = 1
  
  toEnum (0) = Detail
  toEnum (1) = List
  toEnum n' = HoppyP.error $ "Unknown QFileDialogViewMode numeric value: " ++ HoppyP.show n'