{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.Gtk.Objects.FileChooserWidget
    ( 

-- * Exported types
    FileChooserWidget(..)                   ,
    FileChooserWidgetK                      ,
    toFileChooserWidget                     ,
    noFileChooserWidget                     ,


 -- * Methods
-- ** fileChooserWidgetNew
    fileChooserWidgetNew                    ,




 -- * Properties
-- ** SearchMode
    FileChooserWidgetSearchModePropertyInfo ,
    constructFileChooserWidgetSearchMode    ,
    getFileChooserWidgetSearchMode          ,
    setFileChooserWidgetSearchMode          ,




 -- * Signals
-- ** DesktopFolder
    FileChooserWidgetDesktopFolderCallback  ,
    FileChooserWidgetDesktopFolderCallbackC ,
    FileChooserWidgetDesktopFolderSignalInfo,
    afterFileChooserWidgetDesktopFolder     ,
    fileChooserWidgetDesktopFolderCallbackWrapper,
    fileChooserWidgetDesktopFolderClosure   ,
    mkFileChooserWidgetDesktopFolderCallback,
    noFileChooserWidgetDesktopFolderCallback,
    onFileChooserWidgetDesktopFolder        ,


-- ** DownFolder
    FileChooserWidgetDownFolderCallback     ,
    FileChooserWidgetDownFolderCallbackC    ,
    FileChooserWidgetDownFolderSignalInfo   ,
    afterFileChooserWidgetDownFolder        ,
    fileChooserWidgetDownFolderCallbackWrapper,
    fileChooserWidgetDownFolderClosure      ,
    mkFileChooserWidgetDownFolderCallback   ,
    noFileChooserWidgetDownFolderCallback   ,
    onFileChooserWidgetDownFolder           ,


-- ** HomeFolder
    FileChooserWidgetHomeFolderCallback     ,
    FileChooserWidgetHomeFolderCallbackC    ,
    FileChooserWidgetHomeFolderSignalInfo   ,
    afterFileChooserWidgetHomeFolder        ,
    fileChooserWidgetHomeFolderCallbackWrapper,
    fileChooserWidgetHomeFolderClosure      ,
    mkFileChooserWidgetHomeFolderCallback   ,
    noFileChooserWidgetHomeFolderCallback   ,
    onFileChooserWidgetHomeFolder           ,


-- ** LocationPopup
    FileChooserWidgetLocationPopupCallback  ,
    FileChooserWidgetLocationPopupCallbackC ,
    FileChooserWidgetLocationPopupSignalInfo,
    afterFileChooserWidgetLocationPopup     ,
    fileChooserWidgetLocationPopupCallbackWrapper,
    fileChooserWidgetLocationPopupClosure   ,
    mkFileChooserWidgetLocationPopupCallback,
    noFileChooserWidgetLocationPopupCallback,
    onFileChooserWidgetLocationPopup        ,


-- ** LocationPopupOnPaste
    FileChooserWidgetLocationPopupOnPasteCallback,
    FileChooserWidgetLocationPopupOnPasteCallbackC,
    FileChooserWidgetLocationPopupOnPasteSignalInfo,
    afterFileChooserWidgetLocationPopupOnPaste,
    fileChooserWidgetLocationPopupOnPasteCallbackWrapper,
    fileChooserWidgetLocationPopupOnPasteClosure,
    mkFileChooserWidgetLocationPopupOnPasteCallback,
    noFileChooserWidgetLocationPopupOnPasteCallback,
    onFileChooserWidgetLocationPopupOnPaste ,


-- ** LocationTogglePopup
    FileChooserWidgetLocationTogglePopupCallback,
    FileChooserWidgetLocationTogglePopupCallbackC,
    FileChooserWidgetLocationTogglePopupSignalInfo,
    afterFileChooserWidgetLocationTogglePopup,
    fileChooserWidgetLocationTogglePopupCallbackWrapper,
    fileChooserWidgetLocationTogglePopupClosure,
    mkFileChooserWidgetLocationTogglePopupCallback,
    noFileChooserWidgetLocationTogglePopupCallback,
    onFileChooserWidgetLocationTogglePopup  ,


-- ** QuickBookmark
    FileChooserWidgetQuickBookmarkCallback  ,
    FileChooserWidgetQuickBookmarkCallbackC ,
    FileChooserWidgetQuickBookmarkSignalInfo,
    afterFileChooserWidgetQuickBookmark     ,
    fileChooserWidgetQuickBookmarkCallbackWrapper,
    fileChooserWidgetQuickBookmarkClosure   ,
    mkFileChooserWidgetQuickBookmarkCallback,
    noFileChooserWidgetQuickBookmarkCallback,
    onFileChooserWidgetQuickBookmark        ,


-- ** RecentShortcut
    FileChooserWidgetRecentShortcutCallback ,
    FileChooserWidgetRecentShortcutCallbackC,
    FileChooserWidgetRecentShortcutSignalInfo,
    afterFileChooserWidgetRecentShortcut    ,
    fileChooserWidgetRecentShortcutCallbackWrapper,
    fileChooserWidgetRecentShortcutClosure  ,
    mkFileChooserWidgetRecentShortcutCallback,
    noFileChooserWidgetRecentShortcutCallback,
    onFileChooserWidgetRecentShortcut       ,


-- ** SearchShortcut
    FileChooserWidgetSearchShortcutCallback ,
    FileChooserWidgetSearchShortcutCallbackC,
    FileChooserWidgetSearchShortcutSignalInfo,
    afterFileChooserWidgetSearchShortcut    ,
    fileChooserWidgetSearchShortcutCallbackWrapper,
    fileChooserWidgetSearchShortcutClosure  ,
    mkFileChooserWidgetSearchShortcutCallback,
    noFileChooserWidgetSearchShortcutCallback,
    onFileChooserWidgetSearchShortcut       ,


-- ** ShowHidden
    FileChooserWidgetShowHiddenCallback     ,
    FileChooserWidgetShowHiddenCallbackC    ,
    FileChooserWidgetShowHiddenSignalInfo   ,
    afterFileChooserWidgetShowHidden        ,
    fileChooserWidgetShowHiddenCallbackWrapper,
    fileChooserWidgetShowHiddenClosure      ,
    mkFileChooserWidgetShowHiddenCallback   ,
    noFileChooserWidgetShowHiddenCallback   ,
    onFileChooserWidgetShowHidden           ,


-- ** UpFolder
    FileChooserWidgetUpFolderCallback       ,
    FileChooserWidgetUpFolderCallbackC      ,
    FileChooserWidgetUpFolderSignalInfo     ,
    afterFileChooserWidgetUpFolder          ,
    fileChooserWidgetUpFolderCallbackWrapper,
    fileChooserWidgetUpFolderClosure        ,
    mkFileChooserWidgetUpFolderCallback     ,
    noFileChooserWidgetUpFolderCallback     ,
    onFileChooserWidgetUpFolder             ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.Gtk.Types
import GI.Gtk.Callbacks
import qualified GI.Atk as Atk
import qualified GI.GObject as GObject

newtype FileChooserWidget = FileChooserWidget (ForeignPtr FileChooserWidget)
foreign import ccall "gtk_file_chooser_widget_get_type"
    c_gtk_file_chooser_widget_get_type :: IO GType

type instance ParentTypes FileChooserWidget = FileChooserWidgetParentTypes
type FileChooserWidgetParentTypes = '[Box, Container, Widget, GObject.Object, Atk.ImplementorIface, Buildable, FileChooser, Orientable]

instance GObject FileChooserWidget where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_gtk_file_chooser_widget_get_type
    

class GObject o => FileChooserWidgetK o
instance (GObject o, IsDescendantOf FileChooserWidget o) => FileChooserWidgetK o

toFileChooserWidget :: FileChooserWidgetK o => o -> IO FileChooserWidget
toFileChooserWidget = unsafeCastTo FileChooserWidget

noFileChooserWidget :: Maybe FileChooserWidget
noFileChooserWidget = Nothing

-- signal FileChooserWidget::desktop-folder
type FileChooserWidgetDesktopFolderCallback =
    IO ()

noFileChooserWidgetDesktopFolderCallback :: Maybe FileChooserWidgetDesktopFolderCallback
noFileChooserWidgetDesktopFolderCallback = Nothing

type FileChooserWidgetDesktopFolderCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetDesktopFolderCallback :: FileChooserWidgetDesktopFolderCallbackC -> IO (FunPtr FileChooserWidgetDesktopFolderCallbackC)

fileChooserWidgetDesktopFolderClosure :: FileChooserWidgetDesktopFolderCallback -> IO Closure
fileChooserWidgetDesktopFolderClosure cb = newCClosure =<< mkFileChooserWidgetDesktopFolderCallback wrapped
    where wrapped = fileChooserWidgetDesktopFolderCallbackWrapper cb

fileChooserWidgetDesktopFolderCallbackWrapper ::
    FileChooserWidgetDesktopFolderCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetDesktopFolderCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetDesktopFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetDesktopFolderCallback -> m SignalHandlerId
onFileChooserWidgetDesktopFolder obj cb = liftIO $ connectFileChooserWidgetDesktopFolder obj cb SignalConnectBefore
afterFileChooserWidgetDesktopFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetDesktopFolderCallback -> m SignalHandlerId
afterFileChooserWidgetDesktopFolder obj cb = connectFileChooserWidgetDesktopFolder obj cb SignalConnectAfter

connectFileChooserWidgetDesktopFolder :: (GObject a, MonadIO m) =>
                                         a -> FileChooserWidgetDesktopFolderCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetDesktopFolder obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetDesktopFolderCallback (fileChooserWidgetDesktopFolderCallbackWrapper cb)
    connectSignalFunPtr obj "desktop-folder" cb' after

-- signal FileChooserWidget::down-folder
type FileChooserWidgetDownFolderCallback =
    IO ()

noFileChooserWidgetDownFolderCallback :: Maybe FileChooserWidgetDownFolderCallback
noFileChooserWidgetDownFolderCallback = Nothing

type FileChooserWidgetDownFolderCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetDownFolderCallback :: FileChooserWidgetDownFolderCallbackC -> IO (FunPtr FileChooserWidgetDownFolderCallbackC)

fileChooserWidgetDownFolderClosure :: FileChooserWidgetDownFolderCallback -> IO Closure
fileChooserWidgetDownFolderClosure cb = newCClosure =<< mkFileChooserWidgetDownFolderCallback wrapped
    where wrapped = fileChooserWidgetDownFolderCallbackWrapper cb

fileChooserWidgetDownFolderCallbackWrapper ::
    FileChooserWidgetDownFolderCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetDownFolderCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetDownFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetDownFolderCallback -> m SignalHandlerId
onFileChooserWidgetDownFolder obj cb = liftIO $ connectFileChooserWidgetDownFolder obj cb SignalConnectBefore
afterFileChooserWidgetDownFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetDownFolderCallback -> m SignalHandlerId
afterFileChooserWidgetDownFolder obj cb = connectFileChooserWidgetDownFolder obj cb SignalConnectAfter

connectFileChooserWidgetDownFolder :: (GObject a, MonadIO m) =>
                                      a -> FileChooserWidgetDownFolderCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetDownFolder obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetDownFolderCallback (fileChooserWidgetDownFolderCallbackWrapper cb)
    connectSignalFunPtr obj "down-folder" cb' after

-- signal FileChooserWidget::home-folder
type FileChooserWidgetHomeFolderCallback =
    IO ()

noFileChooserWidgetHomeFolderCallback :: Maybe FileChooserWidgetHomeFolderCallback
noFileChooserWidgetHomeFolderCallback = Nothing

type FileChooserWidgetHomeFolderCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetHomeFolderCallback :: FileChooserWidgetHomeFolderCallbackC -> IO (FunPtr FileChooserWidgetHomeFolderCallbackC)

fileChooserWidgetHomeFolderClosure :: FileChooserWidgetHomeFolderCallback -> IO Closure
fileChooserWidgetHomeFolderClosure cb = newCClosure =<< mkFileChooserWidgetHomeFolderCallback wrapped
    where wrapped = fileChooserWidgetHomeFolderCallbackWrapper cb

fileChooserWidgetHomeFolderCallbackWrapper ::
    FileChooserWidgetHomeFolderCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetHomeFolderCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetHomeFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetHomeFolderCallback -> m SignalHandlerId
onFileChooserWidgetHomeFolder obj cb = liftIO $ connectFileChooserWidgetHomeFolder obj cb SignalConnectBefore
afterFileChooserWidgetHomeFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetHomeFolderCallback -> m SignalHandlerId
afterFileChooserWidgetHomeFolder obj cb = connectFileChooserWidgetHomeFolder obj cb SignalConnectAfter

connectFileChooserWidgetHomeFolder :: (GObject a, MonadIO m) =>
                                      a -> FileChooserWidgetHomeFolderCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetHomeFolder obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetHomeFolderCallback (fileChooserWidgetHomeFolderCallbackWrapper cb)
    connectSignalFunPtr obj "home-folder" cb' after

-- signal FileChooserWidget::location-popup
type FileChooserWidgetLocationPopupCallback =
    T.Text ->
    IO ()

noFileChooserWidgetLocationPopupCallback :: Maybe FileChooserWidgetLocationPopupCallback
noFileChooserWidgetLocationPopupCallback = Nothing

type FileChooserWidgetLocationPopupCallbackC =
    Ptr () ->                               -- object
    CString ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetLocationPopupCallback :: FileChooserWidgetLocationPopupCallbackC -> IO (FunPtr FileChooserWidgetLocationPopupCallbackC)

fileChooserWidgetLocationPopupClosure :: FileChooserWidgetLocationPopupCallback -> IO Closure
fileChooserWidgetLocationPopupClosure cb = newCClosure =<< mkFileChooserWidgetLocationPopupCallback wrapped
    where wrapped = fileChooserWidgetLocationPopupCallbackWrapper cb

fileChooserWidgetLocationPopupCallbackWrapper ::
    FileChooserWidgetLocationPopupCallback ->
    Ptr () ->
    CString ->
    Ptr () ->
    IO ()
fileChooserWidgetLocationPopupCallbackWrapper _cb _ path _ = do
    path' <- cstringToText path
    _cb  path'

onFileChooserWidgetLocationPopup :: (GObject a, MonadIO m) => a -> FileChooserWidgetLocationPopupCallback -> m SignalHandlerId
onFileChooserWidgetLocationPopup obj cb = liftIO $ connectFileChooserWidgetLocationPopup obj cb SignalConnectBefore
afterFileChooserWidgetLocationPopup :: (GObject a, MonadIO m) => a -> FileChooserWidgetLocationPopupCallback -> m SignalHandlerId
afterFileChooserWidgetLocationPopup obj cb = connectFileChooserWidgetLocationPopup obj cb SignalConnectAfter

connectFileChooserWidgetLocationPopup :: (GObject a, MonadIO m) =>
                                         a -> FileChooserWidgetLocationPopupCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetLocationPopup obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetLocationPopupCallback (fileChooserWidgetLocationPopupCallbackWrapper cb)
    connectSignalFunPtr obj "location-popup" cb' after

-- signal FileChooserWidget::location-popup-on-paste
type FileChooserWidgetLocationPopupOnPasteCallback =
    IO ()

noFileChooserWidgetLocationPopupOnPasteCallback :: Maybe FileChooserWidgetLocationPopupOnPasteCallback
noFileChooserWidgetLocationPopupOnPasteCallback = Nothing

type FileChooserWidgetLocationPopupOnPasteCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetLocationPopupOnPasteCallback :: FileChooserWidgetLocationPopupOnPasteCallbackC -> IO (FunPtr FileChooserWidgetLocationPopupOnPasteCallbackC)

fileChooserWidgetLocationPopupOnPasteClosure :: FileChooserWidgetLocationPopupOnPasteCallback -> IO Closure
fileChooserWidgetLocationPopupOnPasteClosure cb = newCClosure =<< mkFileChooserWidgetLocationPopupOnPasteCallback wrapped
    where wrapped = fileChooserWidgetLocationPopupOnPasteCallbackWrapper cb

fileChooserWidgetLocationPopupOnPasteCallbackWrapper ::
    FileChooserWidgetLocationPopupOnPasteCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetLocationPopupOnPasteCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetLocationPopupOnPaste :: (GObject a, MonadIO m) => a -> FileChooserWidgetLocationPopupOnPasteCallback -> m SignalHandlerId
onFileChooserWidgetLocationPopupOnPaste obj cb = liftIO $ connectFileChooserWidgetLocationPopupOnPaste obj cb SignalConnectBefore
afterFileChooserWidgetLocationPopupOnPaste :: (GObject a, MonadIO m) => a -> FileChooserWidgetLocationPopupOnPasteCallback -> m SignalHandlerId
afterFileChooserWidgetLocationPopupOnPaste obj cb = connectFileChooserWidgetLocationPopupOnPaste obj cb SignalConnectAfter

connectFileChooserWidgetLocationPopupOnPaste :: (GObject a, MonadIO m) =>
                                                a -> FileChooserWidgetLocationPopupOnPasteCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetLocationPopupOnPaste obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetLocationPopupOnPasteCallback (fileChooserWidgetLocationPopupOnPasteCallbackWrapper cb)
    connectSignalFunPtr obj "location-popup-on-paste" cb' after

-- signal FileChooserWidget::location-toggle-popup
type FileChooserWidgetLocationTogglePopupCallback =
    IO ()

noFileChooserWidgetLocationTogglePopupCallback :: Maybe FileChooserWidgetLocationTogglePopupCallback
noFileChooserWidgetLocationTogglePopupCallback = Nothing

type FileChooserWidgetLocationTogglePopupCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetLocationTogglePopupCallback :: FileChooserWidgetLocationTogglePopupCallbackC -> IO (FunPtr FileChooserWidgetLocationTogglePopupCallbackC)

fileChooserWidgetLocationTogglePopupClosure :: FileChooserWidgetLocationTogglePopupCallback -> IO Closure
fileChooserWidgetLocationTogglePopupClosure cb = newCClosure =<< mkFileChooserWidgetLocationTogglePopupCallback wrapped
    where wrapped = fileChooserWidgetLocationTogglePopupCallbackWrapper cb

fileChooserWidgetLocationTogglePopupCallbackWrapper ::
    FileChooserWidgetLocationTogglePopupCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetLocationTogglePopupCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetLocationTogglePopup :: (GObject a, MonadIO m) => a -> FileChooserWidgetLocationTogglePopupCallback -> m SignalHandlerId
onFileChooserWidgetLocationTogglePopup obj cb = liftIO $ connectFileChooserWidgetLocationTogglePopup obj cb SignalConnectBefore
afterFileChooserWidgetLocationTogglePopup :: (GObject a, MonadIO m) => a -> FileChooserWidgetLocationTogglePopupCallback -> m SignalHandlerId
afterFileChooserWidgetLocationTogglePopup obj cb = connectFileChooserWidgetLocationTogglePopup obj cb SignalConnectAfter

connectFileChooserWidgetLocationTogglePopup :: (GObject a, MonadIO m) =>
                                               a -> FileChooserWidgetLocationTogglePopupCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetLocationTogglePopup obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetLocationTogglePopupCallback (fileChooserWidgetLocationTogglePopupCallbackWrapper cb)
    connectSignalFunPtr obj "location-toggle-popup" cb' after

-- signal FileChooserWidget::quick-bookmark
type FileChooserWidgetQuickBookmarkCallback =
    Int32 ->
    IO ()

noFileChooserWidgetQuickBookmarkCallback :: Maybe FileChooserWidgetQuickBookmarkCallback
noFileChooserWidgetQuickBookmarkCallback = Nothing

type FileChooserWidgetQuickBookmarkCallbackC =
    Ptr () ->                               -- object
    Int32 ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetQuickBookmarkCallback :: FileChooserWidgetQuickBookmarkCallbackC -> IO (FunPtr FileChooserWidgetQuickBookmarkCallbackC)

fileChooserWidgetQuickBookmarkClosure :: FileChooserWidgetQuickBookmarkCallback -> IO Closure
fileChooserWidgetQuickBookmarkClosure cb = newCClosure =<< mkFileChooserWidgetQuickBookmarkCallback wrapped
    where wrapped = fileChooserWidgetQuickBookmarkCallbackWrapper cb

fileChooserWidgetQuickBookmarkCallbackWrapper ::
    FileChooserWidgetQuickBookmarkCallback ->
    Ptr () ->
    Int32 ->
    Ptr () ->
    IO ()
fileChooserWidgetQuickBookmarkCallbackWrapper _cb _ bookmark_index _ = do
    _cb  bookmark_index

onFileChooserWidgetQuickBookmark :: (GObject a, MonadIO m) => a -> FileChooserWidgetQuickBookmarkCallback -> m SignalHandlerId
onFileChooserWidgetQuickBookmark obj cb = liftIO $ connectFileChooserWidgetQuickBookmark obj cb SignalConnectBefore
afterFileChooserWidgetQuickBookmark :: (GObject a, MonadIO m) => a -> FileChooserWidgetQuickBookmarkCallback -> m SignalHandlerId
afterFileChooserWidgetQuickBookmark obj cb = connectFileChooserWidgetQuickBookmark obj cb SignalConnectAfter

connectFileChooserWidgetQuickBookmark :: (GObject a, MonadIO m) =>
                                         a -> FileChooserWidgetQuickBookmarkCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetQuickBookmark obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetQuickBookmarkCallback (fileChooserWidgetQuickBookmarkCallbackWrapper cb)
    connectSignalFunPtr obj "quick-bookmark" cb' after

-- signal FileChooserWidget::recent-shortcut
type FileChooserWidgetRecentShortcutCallback =
    IO ()

noFileChooserWidgetRecentShortcutCallback :: Maybe FileChooserWidgetRecentShortcutCallback
noFileChooserWidgetRecentShortcutCallback = Nothing

type FileChooserWidgetRecentShortcutCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetRecentShortcutCallback :: FileChooserWidgetRecentShortcutCallbackC -> IO (FunPtr FileChooserWidgetRecentShortcutCallbackC)

fileChooserWidgetRecentShortcutClosure :: FileChooserWidgetRecentShortcutCallback -> IO Closure
fileChooserWidgetRecentShortcutClosure cb = newCClosure =<< mkFileChooserWidgetRecentShortcutCallback wrapped
    where wrapped = fileChooserWidgetRecentShortcutCallbackWrapper cb

fileChooserWidgetRecentShortcutCallbackWrapper ::
    FileChooserWidgetRecentShortcutCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetRecentShortcutCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetRecentShortcut :: (GObject a, MonadIO m) => a -> FileChooserWidgetRecentShortcutCallback -> m SignalHandlerId
onFileChooserWidgetRecentShortcut obj cb = liftIO $ connectFileChooserWidgetRecentShortcut obj cb SignalConnectBefore
afterFileChooserWidgetRecentShortcut :: (GObject a, MonadIO m) => a -> FileChooserWidgetRecentShortcutCallback -> m SignalHandlerId
afterFileChooserWidgetRecentShortcut obj cb = connectFileChooserWidgetRecentShortcut obj cb SignalConnectAfter

connectFileChooserWidgetRecentShortcut :: (GObject a, MonadIO m) =>
                                          a -> FileChooserWidgetRecentShortcutCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetRecentShortcut obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetRecentShortcutCallback (fileChooserWidgetRecentShortcutCallbackWrapper cb)
    connectSignalFunPtr obj "recent-shortcut" cb' after

-- signal FileChooserWidget::search-shortcut
type FileChooserWidgetSearchShortcutCallback =
    IO ()

noFileChooserWidgetSearchShortcutCallback :: Maybe FileChooserWidgetSearchShortcutCallback
noFileChooserWidgetSearchShortcutCallback = Nothing

type FileChooserWidgetSearchShortcutCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetSearchShortcutCallback :: FileChooserWidgetSearchShortcutCallbackC -> IO (FunPtr FileChooserWidgetSearchShortcutCallbackC)

fileChooserWidgetSearchShortcutClosure :: FileChooserWidgetSearchShortcutCallback -> IO Closure
fileChooserWidgetSearchShortcutClosure cb = newCClosure =<< mkFileChooserWidgetSearchShortcutCallback wrapped
    where wrapped = fileChooserWidgetSearchShortcutCallbackWrapper cb

fileChooserWidgetSearchShortcutCallbackWrapper ::
    FileChooserWidgetSearchShortcutCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetSearchShortcutCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetSearchShortcut :: (GObject a, MonadIO m) => a -> FileChooserWidgetSearchShortcutCallback -> m SignalHandlerId
onFileChooserWidgetSearchShortcut obj cb = liftIO $ connectFileChooserWidgetSearchShortcut obj cb SignalConnectBefore
afterFileChooserWidgetSearchShortcut :: (GObject a, MonadIO m) => a -> FileChooserWidgetSearchShortcutCallback -> m SignalHandlerId
afterFileChooserWidgetSearchShortcut obj cb = connectFileChooserWidgetSearchShortcut obj cb SignalConnectAfter

connectFileChooserWidgetSearchShortcut :: (GObject a, MonadIO m) =>
                                          a -> FileChooserWidgetSearchShortcutCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetSearchShortcut obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetSearchShortcutCallback (fileChooserWidgetSearchShortcutCallbackWrapper cb)
    connectSignalFunPtr obj "search-shortcut" cb' after

-- signal FileChooserWidget::show-hidden
type FileChooserWidgetShowHiddenCallback =
    IO ()

noFileChooserWidgetShowHiddenCallback :: Maybe FileChooserWidgetShowHiddenCallback
noFileChooserWidgetShowHiddenCallback = Nothing

type FileChooserWidgetShowHiddenCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetShowHiddenCallback :: FileChooserWidgetShowHiddenCallbackC -> IO (FunPtr FileChooserWidgetShowHiddenCallbackC)

fileChooserWidgetShowHiddenClosure :: FileChooserWidgetShowHiddenCallback -> IO Closure
fileChooserWidgetShowHiddenClosure cb = newCClosure =<< mkFileChooserWidgetShowHiddenCallback wrapped
    where wrapped = fileChooserWidgetShowHiddenCallbackWrapper cb

fileChooserWidgetShowHiddenCallbackWrapper ::
    FileChooserWidgetShowHiddenCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetShowHiddenCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetShowHidden :: (GObject a, MonadIO m) => a -> FileChooserWidgetShowHiddenCallback -> m SignalHandlerId
onFileChooserWidgetShowHidden obj cb = liftIO $ connectFileChooserWidgetShowHidden obj cb SignalConnectBefore
afterFileChooserWidgetShowHidden :: (GObject a, MonadIO m) => a -> FileChooserWidgetShowHiddenCallback -> m SignalHandlerId
afterFileChooserWidgetShowHidden obj cb = connectFileChooserWidgetShowHidden obj cb SignalConnectAfter

connectFileChooserWidgetShowHidden :: (GObject a, MonadIO m) =>
                                      a -> FileChooserWidgetShowHiddenCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetShowHidden obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetShowHiddenCallback (fileChooserWidgetShowHiddenCallbackWrapper cb)
    connectSignalFunPtr obj "show-hidden" cb' after

-- signal FileChooserWidget::up-folder
type FileChooserWidgetUpFolderCallback =
    IO ()

noFileChooserWidgetUpFolderCallback :: Maybe FileChooserWidgetUpFolderCallback
noFileChooserWidgetUpFolderCallback = Nothing

type FileChooserWidgetUpFolderCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkFileChooserWidgetUpFolderCallback :: FileChooserWidgetUpFolderCallbackC -> IO (FunPtr FileChooserWidgetUpFolderCallbackC)

fileChooserWidgetUpFolderClosure :: FileChooserWidgetUpFolderCallback -> IO Closure
fileChooserWidgetUpFolderClosure cb = newCClosure =<< mkFileChooserWidgetUpFolderCallback wrapped
    where wrapped = fileChooserWidgetUpFolderCallbackWrapper cb

fileChooserWidgetUpFolderCallbackWrapper ::
    FileChooserWidgetUpFolderCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
fileChooserWidgetUpFolderCallbackWrapper _cb _ _ = do
    _cb 

onFileChooserWidgetUpFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetUpFolderCallback -> m SignalHandlerId
onFileChooserWidgetUpFolder obj cb = liftIO $ connectFileChooserWidgetUpFolder obj cb SignalConnectBefore
afterFileChooserWidgetUpFolder :: (GObject a, MonadIO m) => a -> FileChooserWidgetUpFolderCallback -> m SignalHandlerId
afterFileChooserWidgetUpFolder obj cb = connectFileChooserWidgetUpFolder obj cb SignalConnectAfter

connectFileChooserWidgetUpFolder :: (GObject a, MonadIO m) =>
                                    a -> FileChooserWidgetUpFolderCallback -> SignalConnectMode -> m SignalHandlerId
connectFileChooserWidgetUpFolder obj cb after = liftIO $ do
    cb' <- mkFileChooserWidgetUpFolderCallback (fileChooserWidgetUpFolderCallbackWrapper cb)
    connectSignalFunPtr obj "up-folder" cb' after

-- VVV Prop "search-mode"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]

getFileChooserWidgetSearchMode :: (MonadIO m, FileChooserWidgetK o) => o -> m Bool
getFileChooserWidgetSearchMode obj = liftIO $ getObjectPropertyBool obj "search-mode"

setFileChooserWidgetSearchMode :: (MonadIO m, FileChooserWidgetK o) => o -> Bool -> m ()
setFileChooserWidgetSearchMode obj val = liftIO $ setObjectPropertyBool obj "search-mode" val

constructFileChooserWidgetSearchMode :: Bool -> IO ([Char], GValue)
constructFileChooserWidgetSearchMode val = constructObjectPropertyBool "search-mode" val

data FileChooserWidgetSearchModePropertyInfo
instance AttrInfo FileChooserWidgetSearchModePropertyInfo where
    type AttrAllowedOps FileChooserWidgetSearchModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint FileChooserWidgetSearchModePropertyInfo = (~) Bool
    type AttrBaseTypeConstraint FileChooserWidgetSearchModePropertyInfo = FileChooserWidgetK
    type AttrGetType FileChooserWidgetSearchModePropertyInfo = Bool
    type AttrLabel FileChooserWidgetSearchModePropertyInfo = "FileChooserWidget::search-mode"
    attrGet _ = getFileChooserWidgetSearchMode
    attrSet _ = setFileChooserWidgetSearchMode
    attrConstruct _ = constructFileChooserWidgetSearchMode

type instance AttributeList FileChooserWidget = FileChooserWidgetAttributeList
type FileChooserWidgetAttributeList = ('[ '("action", FileChooserActionPropertyInfo), '("app-paintable", WidgetAppPaintablePropertyInfo), '("baseline-position", BoxBaselinePositionPropertyInfo), '("border-width", ContainerBorderWidthPropertyInfo), '("can-default", WidgetCanDefaultPropertyInfo), '("can-focus", WidgetCanFocusPropertyInfo), '("child", ContainerChildPropertyInfo), '("composite-child", WidgetCompositeChildPropertyInfo), '("create-folders", FileChooserCreateFoldersPropertyInfo), '("do-overwrite-confirmation", FileChooserDoOverwriteConfirmationPropertyInfo), '("double-buffered", WidgetDoubleBufferedPropertyInfo), '("events", WidgetEventsPropertyInfo), '("expand", WidgetExpandPropertyInfo), '("extra-widget", FileChooserExtraWidgetPropertyInfo), '("filter", FileChooserFilterPropertyInfo), '("halign", WidgetHalignPropertyInfo), '("has-default", WidgetHasDefaultPropertyInfo), '("has-focus", WidgetHasFocusPropertyInfo), '("has-tooltip", WidgetHasTooltipPropertyInfo), '("height-request", WidgetHeightRequestPropertyInfo), '("hexpand", WidgetHexpandPropertyInfo), '("hexpand-set", WidgetHexpandSetPropertyInfo), '("homogeneous", BoxHomogeneousPropertyInfo), '("is-focus", WidgetIsFocusPropertyInfo), '("local-only", FileChooserLocalOnlyPropertyInfo), '("margin", WidgetMarginPropertyInfo), '("margin-bottom", WidgetMarginBottomPropertyInfo), '("margin-end", WidgetMarginEndPropertyInfo), '("margin-left", WidgetMarginLeftPropertyInfo), '("margin-right", WidgetMarginRightPropertyInfo), '("margin-start", WidgetMarginStartPropertyInfo), '("margin-top", WidgetMarginTopPropertyInfo), '("name", WidgetNamePropertyInfo), '("no-show-all", WidgetNoShowAllPropertyInfo), '("opacity", WidgetOpacityPropertyInfo), '("orientation", OrientableOrientationPropertyInfo), '("parent", WidgetParentPropertyInfo), '("preview-widget", FileChooserPreviewWidgetPropertyInfo), '("preview-widget-active", FileChooserPreviewWidgetActivePropertyInfo), '("receives-default", WidgetReceivesDefaultPropertyInfo), '("resize-mode", ContainerResizeModePropertyInfo), '("scale-factor", WidgetScaleFactorPropertyInfo), '("search-mode", FileChooserWidgetSearchModePropertyInfo), '("select-multiple", FileChooserSelectMultiplePropertyInfo), '("sensitive", WidgetSensitivePropertyInfo), '("show-hidden", FileChooserShowHiddenPropertyInfo), '("spacing", BoxSpacingPropertyInfo), '("style", WidgetStylePropertyInfo), '("tooltip-markup", WidgetTooltipMarkupPropertyInfo), '("tooltip-text", WidgetTooltipTextPropertyInfo), '("use-preview-label", FileChooserUsePreviewLabelPropertyInfo), '("valign", WidgetValignPropertyInfo), '("vexpand", WidgetVexpandPropertyInfo), '("vexpand-set", WidgetVexpandSetPropertyInfo), '("visible", WidgetVisiblePropertyInfo), '("width-request", WidgetWidthRequestPropertyInfo), '("window", WidgetWindowPropertyInfo)] :: [(Symbol, *)])

data FileChooserWidgetDesktopFolderSignalInfo
instance SignalInfo FileChooserWidgetDesktopFolderSignalInfo where
    type HaskellCallbackType FileChooserWidgetDesktopFolderSignalInfo = FileChooserWidgetDesktopFolderCallback
    connectSignal _ = connectFileChooserWidgetDesktopFolder

data FileChooserWidgetDownFolderSignalInfo
instance SignalInfo FileChooserWidgetDownFolderSignalInfo where
    type HaskellCallbackType FileChooserWidgetDownFolderSignalInfo = FileChooserWidgetDownFolderCallback
    connectSignal _ = connectFileChooserWidgetDownFolder

data FileChooserWidgetHomeFolderSignalInfo
instance SignalInfo FileChooserWidgetHomeFolderSignalInfo where
    type HaskellCallbackType FileChooserWidgetHomeFolderSignalInfo = FileChooserWidgetHomeFolderCallback
    connectSignal _ = connectFileChooserWidgetHomeFolder

data FileChooserWidgetLocationPopupSignalInfo
instance SignalInfo FileChooserWidgetLocationPopupSignalInfo where
    type HaskellCallbackType FileChooserWidgetLocationPopupSignalInfo = FileChooserWidgetLocationPopupCallback
    connectSignal _ = connectFileChooserWidgetLocationPopup

data FileChooserWidgetLocationPopupOnPasteSignalInfo
instance SignalInfo FileChooserWidgetLocationPopupOnPasteSignalInfo where
    type HaskellCallbackType FileChooserWidgetLocationPopupOnPasteSignalInfo = FileChooserWidgetLocationPopupOnPasteCallback
    connectSignal _ = connectFileChooserWidgetLocationPopupOnPaste

data FileChooserWidgetLocationTogglePopupSignalInfo
instance SignalInfo FileChooserWidgetLocationTogglePopupSignalInfo where
    type HaskellCallbackType FileChooserWidgetLocationTogglePopupSignalInfo = FileChooserWidgetLocationTogglePopupCallback
    connectSignal _ = connectFileChooserWidgetLocationTogglePopup

data FileChooserWidgetQuickBookmarkSignalInfo
instance SignalInfo FileChooserWidgetQuickBookmarkSignalInfo where
    type HaskellCallbackType FileChooserWidgetQuickBookmarkSignalInfo = FileChooserWidgetQuickBookmarkCallback
    connectSignal _ = connectFileChooserWidgetQuickBookmark

data FileChooserWidgetRecentShortcutSignalInfo
instance SignalInfo FileChooserWidgetRecentShortcutSignalInfo where
    type HaskellCallbackType FileChooserWidgetRecentShortcutSignalInfo = FileChooserWidgetRecentShortcutCallback
    connectSignal _ = connectFileChooserWidgetRecentShortcut

data FileChooserWidgetSearchShortcutSignalInfo
instance SignalInfo FileChooserWidgetSearchShortcutSignalInfo where
    type HaskellCallbackType FileChooserWidgetSearchShortcutSignalInfo = FileChooserWidgetSearchShortcutCallback
    connectSignal _ = connectFileChooserWidgetSearchShortcut

data FileChooserWidgetShowHiddenSignalInfo
instance SignalInfo FileChooserWidgetShowHiddenSignalInfo where
    type HaskellCallbackType FileChooserWidgetShowHiddenSignalInfo = FileChooserWidgetShowHiddenCallback
    connectSignal _ = connectFileChooserWidgetShowHidden

data FileChooserWidgetUpFolderSignalInfo
instance SignalInfo FileChooserWidgetUpFolderSignalInfo where
    type HaskellCallbackType FileChooserWidgetUpFolderSignalInfo = FileChooserWidgetUpFolderCallback
    connectSignal _ = connectFileChooserWidgetUpFolder

type instance SignalList FileChooserWidget = FileChooserWidgetSignalList
type FileChooserWidgetSignalList = ('[ '("accel-closures-changed", WidgetAccelClosuresChangedSignalInfo), '("add", ContainerAddSignalInfo), '("button-press-event", WidgetButtonPressEventSignalInfo), '("button-release-event", WidgetButtonReleaseEventSignalInfo), '("can-activate-accel", WidgetCanActivateAccelSignalInfo), '("check-resize", ContainerCheckResizeSignalInfo), '("child-notify", WidgetChildNotifySignalInfo), '("composited-changed", WidgetCompositedChangedSignalInfo), '("configure-event", WidgetConfigureEventSignalInfo), '("confirm-overwrite", FileChooserConfirmOverwriteSignalInfo), '("current-folder-changed", FileChooserCurrentFolderChangedSignalInfo), '("damage-event", WidgetDamageEventSignalInfo), '("delete-event", WidgetDeleteEventSignalInfo), '("desktop-folder", FileChooserWidgetDesktopFolderSignalInfo), '("destroy", WidgetDestroySignalInfo), '("destroy-event", WidgetDestroyEventSignalInfo), '("direction-changed", WidgetDirectionChangedSignalInfo), '("down-folder", FileChooserWidgetDownFolderSignalInfo), '("drag-begin", WidgetDragBeginSignalInfo), '("drag-data-delete", WidgetDragDataDeleteSignalInfo), '("drag-data-get", WidgetDragDataGetSignalInfo), '("drag-data-received", WidgetDragDataReceivedSignalInfo), '("drag-drop", WidgetDragDropSignalInfo), '("drag-end", WidgetDragEndSignalInfo), '("drag-failed", WidgetDragFailedSignalInfo), '("drag-leave", WidgetDragLeaveSignalInfo), '("drag-motion", WidgetDragMotionSignalInfo), '("draw", WidgetDrawSignalInfo), '("enter-notify-event", WidgetEnterNotifyEventSignalInfo), '("event", WidgetEventSignalInfo), '("event-after", WidgetEventAfterSignalInfo), '("file-activated", FileChooserFileActivatedSignalInfo), '("focus", WidgetFocusSignalInfo), '("focus-in-event", WidgetFocusInEventSignalInfo), '("focus-out-event", WidgetFocusOutEventSignalInfo), '("grab-broken-event", WidgetGrabBrokenEventSignalInfo), '("grab-focus", WidgetGrabFocusSignalInfo), '("grab-notify", WidgetGrabNotifySignalInfo), '("hide", WidgetHideSignalInfo), '("hierarchy-changed", WidgetHierarchyChangedSignalInfo), '("home-folder", FileChooserWidgetHomeFolderSignalInfo), '("key-press-event", WidgetKeyPressEventSignalInfo), '("key-release-event", WidgetKeyReleaseEventSignalInfo), '("keynav-failed", WidgetKeynavFailedSignalInfo), '("leave-notify-event", WidgetLeaveNotifyEventSignalInfo), '("location-popup", FileChooserWidgetLocationPopupSignalInfo), '("location-popup-on-paste", FileChooserWidgetLocationPopupOnPasteSignalInfo), '("location-toggle-popup", FileChooserWidgetLocationTogglePopupSignalInfo), '("map", WidgetMapSignalInfo), '("map-event", WidgetMapEventSignalInfo), '("mnemonic-activate", WidgetMnemonicActivateSignalInfo), '("motion-notify-event", WidgetMotionNotifyEventSignalInfo), '("move-focus", WidgetMoveFocusSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("parent-set", WidgetParentSetSignalInfo), '("popup-menu", WidgetPopupMenuSignalInfo), '("property-notify-event", WidgetPropertyNotifyEventSignalInfo), '("proximity-in-event", WidgetProximityInEventSignalInfo), '("proximity-out-event", WidgetProximityOutEventSignalInfo), '("query-tooltip", WidgetQueryTooltipSignalInfo), '("quick-bookmark", FileChooserWidgetQuickBookmarkSignalInfo), '("realize", WidgetRealizeSignalInfo), '("recent-shortcut", FileChooserWidgetRecentShortcutSignalInfo), '("remove", ContainerRemoveSignalInfo), '("screen-changed", WidgetScreenChangedSignalInfo), '("scroll-event", WidgetScrollEventSignalInfo), '("search-shortcut", FileChooserWidgetSearchShortcutSignalInfo), '("selection-changed", FileChooserSelectionChangedSignalInfo), '("selection-clear-event", WidgetSelectionClearEventSignalInfo), '("selection-get", WidgetSelectionGetSignalInfo), '("selection-notify-event", WidgetSelectionNotifyEventSignalInfo), '("selection-received", WidgetSelectionReceivedSignalInfo), '("selection-request-event", WidgetSelectionRequestEventSignalInfo), '("set-focus-child", ContainerSetFocusChildSignalInfo), '("show", WidgetShowSignalInfo), '("show-help", WidgetShowHelpSignalInfo), '("show-hidden", FileChooserWidgetShowHiddenSignalInfo), '("size-allocate", WidgetSizeAllocateSignalInfo), '("state-changed", WidgetStateChangedSignalInfo), '("state-flags-changed", WidgetStateFlagsChangedSignalInfo), '("style-set", WidgetStyleSetSignalInfo), '("style-updated", WidgetStyleUpdatedSignalInfo), '("touch-event", WidgetTouchEventSignalInfo), '("unmap", WidgetUnmapSignalInfo), '("unmap-event", WidgetUnmapEventSignalInfo), '("unrealize", WidgetUnrealizeSignalInfo), '("up-folder", FileChooserWidgetUpFolderSignalInfo), '("update-preview", FileChooserUpdatePreviewSignalInfo), '("visibility-notify-event", WidgetVisibilityNotifyEventSignalInfo), '("window-state-event", WidgetWindowStateEventSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method FileChooserWidget::new
-- method type : Constructor
-- Args : [Arg {argName = "action", argType = TInterface "Gtk" "FileChooserAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "action", argType = TInterface "Gtk" "FileChooserAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Gtk" "FileChooserWidget"
-- throws : False
-- Skip return : False

foreign import ccall "gtk_file_chooser_widget_new" gtk_file_chooser_widget_new :: 
    CUInt ->                                -- action : TInterface "Gtk" "FileChooserAction"
    IO (Ptr FileChooserWidget)


fileChooserWidgetNew ::
    (MonadIO m) =>
    FileChooserAction ->                    -- action
    m FileChooserWidget
fileChooserWidgetNew action = liftIO $ do
    let action' = (fromIntegral . fromEnum) action
    result <- gtk_file_chooser_widget_new action'
    checkUnexpectedReturnNULL "gtk_file_chooser_widget_new" result
    result' <- (newObject FileChooserWidget) result
    return result'