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

A GtkPrintSettings object represents the settings of a print dialog in
a system-independent way. The main use for this object is that once
you’ve printed you can get a settings object that represents the settings
the user chose, and the next time you print you can pass that object in so
that the user doesn’t have to re-set all his settings.

Its also possible to enumerate the settings so that you can easily save
the settings for the next time your app runs, or even store them in a
document. The predefined keys try to use shared values as much as possible
so that moving such a document between systems still works.

Printing support was added in GTK+ 2.10.
-}

#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
       && !defined(__HADDOCK_VERSION__))

module GI.Gtk.Objects.PrintSettings
    (

-- * Exported types
    PrintSettings(..)                       ,
    IsPrintSettings                         ,
    toPrintSettings                         ,
    noPrintSettings                         ,


 -- * Methods
-- ** copy #method:copy#

#if ENABLE_OVERLOADING
    PrintSettingsCopyMethodInfo             ,
#endif
    printSettingsCopy                       ,


-- ** foreach #method:foreach#

#if ENABLE_OVERLOADING
    PrintSettingsForeachMethodInfo          ,
#endif
    printSettingsForeach                    ,


-- ** get #method:get#

#if ENABLE_OVERLOADING
    PrintSettingsGetMethodInfo              ,
#endif
    printSettingsGet                        ,


-- ** getBool #method:getBool#

#if ENABLE_OVERLOADING
    PrintSettingsGetBoolMethodInfo          ,
#endif
    printSettingsGetBool                    ,


-- ** getCollate #method:getCollate#

#if ENABLE_OVERLOADING
    PrintSettingsGetCollateMethodInfo       ,
#endif
    printSettingsGetCollate                 ,


-- ** getDefaultSource #method:getDefaultSource#

#if ENABLE_OVERLOADING
    PrintSettingsGetDefaultSourceMethodInfo ,
#endif
    printSettingsGetDefaultSource           ,


-- ** getDither #method:getDither#

#if ENABLE_OVERLOADING
    PrintSettingsGetDitherMethodInfo        ,
#endif
    printSettingsGetDither                  ,


-- ** getDouble #method:getDouble#

#if ENABLE_OVERLOADING
    PrintSettingsGetDoubleMethodInfo        ,
#endif
    printSettingsGetDouble                  ,


-- ** getDoubleWithDefault #method:getDoubleWithDefault#

#if ENABLE_OVERLOADING
    PrintSettingsGetDoubleWithDefaultMethodInfo,
#endif
    printSettingsGetDoubleWithDefault       ,


-- ** getDuplex #method:getDuplex#

#if ENABLE_OVERLOADING
    PrintSettingsGetDuplexMethodInfo        ,
#endif
    printSettingsGetDuplex                  ,


-- ** getFinishings #method:getFinishings#

#if ENABLE_OVERLOADING
    PrintSettingsGetFinishingsMethodInfo    ,
#endif
    printSettingsGetFinishings              ,


-- ** getInt #method:getInt#

#if ENABLE_OVERLOADING
    PrintSettingsGetIntMethodInfo           ,
#endif
    printSettingsGetInt                     ,


-- ** getIntWithDefault #method:getIntWithDefault#

#if ENABLE_OVERLOADING
    PrintSettingsGetIntWithDefaultMethodInfo,
#endif
    printSettingsGetIntWithDefault          ,


-- ** getLength #method:getLength#

#if ENABLE_OVERLOADING
    PrintSettingsGetLengthMethodInfo        ,
#endif
    printSettingsGetLength                  ,


-- ** getMediaType #method:getMediaType#

#if ENABLE_OVERLOADING
    PrintSettingsGetMediaTypeMethodInfo     ,
#endif
    printSettingsGetMediaType               ,


-- ** getNCopies #method:getNCopies#

#if ENABLE_OVERLOADING
    PrintSettingsGetNCopiesMethodInfo       ,
#endif
    printSettingsGetNCopies                 ,


-- ** getNumberUp #method:getNumberUp#

#if ENABLE_OVERLOADING
    PrintSettingsGetNumberUpMethodInfo      ,
#endif
    printSettingsGetNumberUp                ,


-- ** getNumberUpLayout #method:getNumberUpLayout#

#if ENABLE_OVERLOADING
    PrintSettingsGetNumberUpLayoutMethodInfo,
#endif
    printSettingsGetNumberUpLayout          ,


-- ** getOrientation #method:getOrientation#

#if ENABLE_OVERLOADING
    PrintSettingsGetOrientationMethodInfo   ,
#endif
    printSettingsGetOrientation             ,


-- ** getOutputBin #method:getOutputBin#

#if ENABLE_OVERLOADING
    PrintSettingsGetOutputBinMethodInfo     ,
#endif
    printSettingsGetOutputBin               ,


-- ** getPageRanges #method:getPageRanges#

#if ENABLE_OVERLOADING
    PrintSettingsGetPageRangesMethodInfo    ,
#endif
    printSettingsGetPageRanges              ,


-- ** getPageSet #method:getPageSet#

#if ENABLE_OVERLOADING
    PrintSettingsGetPageSetMethodInfo       ,
#endif
    printSettingsGetPageSet                 ,


-- ** getPaperHeight #method:getPaperHeight#

#if ENABLE_OVERLOADING
    PrintSettingsGetPaperHeightMethodInfo   ,
#endif
    printSettingsGetPaperHeight             ,


-- ** getPaperSize #method:getPaperSize#

#if ENABLE_OVERLOADING
    PrintSettingsGetPaperSizeMethodInfo     ,
#endif
    printSettingsGetPaperSize               ,


-- ** getPaperWidth #method:getPaperWidth#

#if ENABLE_OVERLOADING
    PrintSettingsGetPaperWidthMethodInfo    ,
#endif
    printSettingsGetPaperWidth              ,


-- ** getPrintPages #method:getPrintPages#

#if ENABLE_OVERLOADING
    PrintSettingsGetPrintPagesMethodInfo    ,
#endif
    printSettingsGetPrintPages              ,


-- ** getPrinter #method:getPrinter#

#if ENABLE_OVERLOADING
    PrintSettingsGetPrinterMethodInfo       ,
#endif
    printSettingsGetPrinter                 ,


-- ** getPrinterLpi #method:getPrinterLpi#

#if ENABLE_OVERLOADING
    PrintSettingsGetPrinterLpiMethodInfo    ,
#endif
    printSettingsGetPrinterLpi              ,


-- ** getQuality #method:getQuality#

#if ENABLE_OVERLOADING
    PrintSettingsGetQualityMethodInfo       ,
#endif
    printSettingsGetQuality                 ,


-- ** getResolution #method:getResolution#

#if ENABLE_OVERLOADING
    PrintSettingsGetResolutionMethodInfo    ,
#endif
    printSettingsGetResolution              ,


-- ** getResolutionX #method:getResolutionX#

#if ENABLE_OVERLOADING
    PrintSettingsGetResolutionXMethodInfo   ,
#endif
    printSettingsGetResolutionX             ,


-- ** getResolutionY #method:getResolutionY#

#if ENABLE_OVERLOADING
    PrintSettingsGetResolutionYMethodInfo   ,
#endif
    printSettingsGetResolutionY             ,


-- ** getReverse #method:getReverse#

#if ENABLE_OVERLOADING
    PrintSettingsGetReverseMethodInfo       ,
#endif
    printSettingsGetReverse                 ,


-- ** getScale #method:getScale#

#if ENABLE_OVERLOADING
    PrintSettingsGetScaleMethodInfo         ,
#endif
    printSettingsGetScale                   ,


-- ** getUseColor #method:getUseColor#

#if ENABLE_OVERLOADING
    PrintSettingsGetUseColorMethodInfo      ,
#endif
    printSettingsGetUseColor                ,


-- ** hasKey #method:hasKey#

#if ENABLE_OVERLOADING
    PrintSettingsHasKeyMethodInfo           ,
#endif
    printSettingsHasKey                     ,


-- ** loadFile #method:loadFile#

#if ENABLE_OVERLOADING
    PrintSettingsLoadFileMethodInfo         ,
#endif
    printSettingsLoadFile                   ,


-- ** loadKeyFile #method:loadKeyFile#

#if ENABLE_OVERLOADING
    PrintSettingsLoadKeyFileMethodInfo      ,
#endif
    printSettingsLoadKeyFile                ,


-- ** new #method:new#

    printSettingsNew                        ,


-- ** newFromFile #method:newFromFile#

    printSettingsNewFromFile                ,


-- ** newFromGvariant #method:newFromGvariant#

    printSettingsNewFromGvariant            ,


-- ** newFromKeyFile #method:newFromKeyFile#

    printSettingsNewFromKeyFile             ,


-- ** set #method:set#

#if ENABLE_OVERLOADING
    PrintSettingsSetMethodInfo              ,
#endif
    printSettingsSet                        ,


-- ** setBool #method:setBool#

#if ENABLE_OVERLOADING
    PrintSettingsSetBoolMethodInfo          ,
#endif
    printSettingsSetBool                    ,


-- ** setCollate #method:setCollate#

#if ENABLE_OVERLOADING
    PrintSettingsSetCollateMethodInfo       ,
#endif
    printSettingsSetCollate                 ,


-- ** setDefaultSource #method:setDefaultSource#

#if ENABLE_OVERLOADING
    PrintSettingsSetDefaultSourceMethodInfo ,
#endif
    printSettingsSetDefaultSource           ,


-- ** setDither #method:setDither#

#if ENABLE_OVERLOADING
    PrintSettingsSetDitherMethodInfo        ,
#endif
    printSettingsSetDither                  ,


-- ** setDouble #method:setDouble#

#if ENABLE_OVERLOADING
    PrintSettingsSetDoubleMethodInfo        ,
#endif
    printSettingsSetDouble                  ,


-- ** setDuplex #method:setDuplex#

#if ENABLE_OVERLOADING
    PrintSettingsSetDuplexMethodInfo        ,
#endif
    printSettingsSetDuplex                  ,


-- ** setFinishings #method:setFinishings#

#if ENABLE_OVERLOADING
    PrintSettingsSetFinishingsMethodInfo    ,
#endif
    printSettingsSetFinishings              ,


-- ** setInt #method:setInt#

#if ENABLE_OVERLOADING
    PrintSettingsSetIntMethodInfo           ,
#endif
    printSettingsSetInt                     ,


-- ** setLength #method:setLength#

#if ENABLE_OVERLOADING
    PrintSettingsSetLengthMethodInfo        ,
#endif
    printSettingsSetLength                  ,


-- ** setMediaType #method:setMediaType#

#if ENABLE_OVERLOADING
    PrintSettingsSetMediaTypeMethodInfo     ,
#endif
    printSettingsSetMediaType               ,


-- ** setNCopies #method:setNCopies#

#if ENABLE_OVERLOADING
    PrintSettingsSetNCopiesMethodInfo       ,
#endif
    printSettingsSetNCopies                 ,


-- ** setNumberUp #method:setNumberUp#

#if ENABLE_OVERLOADING
    PrintSettingsSetNumberUpMethodInfo      ,
#endif
    printSettingsSetNumberUp                ,


-- ** setNumberUpLayout #method:setNumberUpLayout#

#if ENABLE_OVERLOADING
    PrintSettingsSetNumberUpLayoutMethodInfo,
#endif
    printSettingsSetNumberUpLayout          ,


-- ** setOrientation #method:setOrientation#

#if ENABLE_OVERLOADING
    PrintSettingsSetOrientationMethodInfo   ,
#endif
    printSettingsSetOrientation             ,


-- ** setOutputBin #method:setOutputBin#

#if ENABLE_OVERLOADING
    PrintSettingsSetOutputBinMethodInfo     ,
#endif
    printSettingsSetOutputBin               ,


-- ** setPageRanges #method:setPageRanges#

#if ENABLE_OVERLOADING
    PrintSettingsSetPageRangesMethodInfo    ,
#endif
    printSettingsSetPageRanges              ,


-- ** setPageSet #method:setPageSet#

#if ENABLE_OVERLOADING
    PrintSettingsSetPageSetMethodInfo       ,
#endif
    printSettingsSetPageSet                 ,


-- ** setPaperHeight #method:setPaperHeight#

#if ENABLE_OVERLOADING
    PrintSettingsSetPaperHeightMethodInfo   ,
#endif
    printSettingsSetPaperHeight             ,


-- ** setPaperSize #method:setPaperSize#

#if ENABLE_OVERLOADING
    PrintSettingsSetPaperSizeMethodInfo     ,
#endif
    printSettingsSetPaperSize               ,


-- ** setPaperWidth #method:setPaperWidth#

#if ENABLE_OVERLOADING
    PrintSettingsSetPaperWidthMethodInfo    ,
#endif
    printSettingsSetPaperWidth              ,


-- ** setPrintPages #method:setPrintPages#

#if ENABLE_OVERLOADING
    PrintSettingsSetPrintPagesMethodInfo    ,
#endif
    printSettingsSetPrintPages              ,


-- ** setPrinter #method:setPrinter#

#if ENABLE_OVERLOADING
    PrintSettingsSetPrinterMethodInfo       ,
#endif
    printSettingsSetPrinter                 ,


-- ** setPrinterLpi #method:setPrinterLpi#

#if ENABLE_OVERLOADING
    PrintSettingsSetPrinterLpiMethodInfo    ,
#endif
    printSettingsSetPrinterLpi              ,


-- ** setQuality #method:setQuality#

#if ENABLE_OVERLOADING
    PrintSettingsSetQualityMethodInfo       ,
#endif
    printSettingsSetQuality                 ,


-- ** setResolution #method:setResolution#

#if ENABLE_OVERLOADING
    PrintSettingsSetResolutionMethodInfo    ,
#endif
    printSettingsSetResolution              ,


-- ** setResolutionXy #method:setResolutionXy#

#if ENABLE_OVERLOADING
    PrintSettingsSetResolutionXyMethodInfo  ,
#endif
    printSettingsSetResolutionXy            ,


-- ** setReverse #method:setReverse#

#if ENABLE_OVERLOADING
    PrintSettingsSetReverseMethodInfo       ,
#endif
    printSettingsSetReverse                 ,


-- ** setScale #method:setScale#

#if ENABLE_OVERLOADING
    PrintSettingsSetScaleMethodInfo         ,
#endif
    printSettingsSetScale                   ,


-- ** setUseColor #method:setUseColor#

#if ENABLE_OVERLOADING
    PrintSettingsSetUseColorMethodInfo      ,
#endif
    printSettingsSetUseColor                ,


-- ** toFile #method:toFile#

#if ENABLE_OVERLOADING
    PrintSettingsToFileMethodInfo           ,
#endif
    printSettingsToFile                     ,


-- ** toGvariant #method:toGvariant#

#if ENABLE_OVERLOADING
    PrintSettingsToGvariantMethodInfo       ,
#endif
    printSettingsToGvariant                 ,


-- ** toKeyFile #method:toKeyFile#

#if ENABLE_OVERLOADING
    PrintSettingsToKeyFileMethodInfo        ,
#endif
    printSettingsToKeyFile                  ,


-- ** unset #method:unset#

#if ENABLE_OVERLOADING
    PrintSettingsUnsetMethodInfo            ,
#endif
    printSettingsUnset                      ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GLib.Structs.KeyFile as GLib.KeyFile
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Callbacks as Gtk.Callbacks
import {-# SOURCE #-} qualified GI.Gtk.Enums as Gtk.Enums
import {-# SOURCE #-} qualified GI.Gtk.Structs.PageRange as Gtk.PageRange
import {-# SOURCE #-} qualified GI.Gtk.Structs.PaperSize as Gtk.PaperSize

-- | Memory-managed wrapper type.
newtype PrintSettings = PrintSettings (ManagedPtr PrintSettings)
foreign import ccall "gtk_print_settings_get_type"
    c_gtk_print_settings_get_type :: IO GType

instance GObject PrintSettings where
    gobjectType _ = c_gtk_print_settings_get_type


-- | Type class for types which can be safely cast to `PrintSettings`, for instance with `toPrintSettings`.
class GObject o => IsPrintSettings o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError PrintSettings a) =>
    IsPrintSettings a
#endif
instance IsPrintSettings PrintSettings
instance GObject.Object.IsObject PrintSettings

-- | Cast to `PrintSettings`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toPrintSettings :: (MonadIO m, IsPrintSettings o) => o -> m PrintSettings
toPrintSettings = liftIO . unsafeCastTo PrintSettings

-- | A convenience alias for `Nothing` :: `Maybe` `PrintSettings`.
noPrintSettings :: Maybe PrintSettings
noPrintSettings = Nothing

#if ENABLE_OVERLOADING
type family ResolvePrintSettingsMethod (t :: Symbol) (o :: *) :: * where
    ResolvePrintSettingsMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolvePrintSettingsMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolvePrintSettingsMethod "copy" o = PrintSettingsCopyMethodInfo
    ResolvePrintSettingsMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolvePrintSettingsMethod "foreach" o = PrintSettingsForeachMethodInfo
    ResolvePrintSettingsMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolvePrintSettingsMethod "get" o = PrintSettingsGetMethodInfo
    ResolvePrintSettingsMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolvePrintSettingsMethod "hasKey" o = PrintSettingsHasKeyMethodInfo
    ResolvePrintSettingsMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolvePrintSettingsMethod "loadFile" o = PrintSettingsLoadFileMethodInfo
    ResolvePrintSettingsMethod "loadKeyFile" o = PrintSettingsLoadKeyFileMethodInfo
    ResolvePrintSettingsMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolvePrintSettingsMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolvePrintSettingsMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolvePrintSettingsMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolvePrintSettingsMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolvePrintSettingsMethod "set" o = PrintSettingsSetMethodInfo
    ResolvePrintSettingsMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolvePrintSettingsMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolvePrintSettingsMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolvePrintSettingsMethod "toFile" o = PrintSettingsToFileMethodInfo
    ResolvePrintSettingsMethod "toGvariant" o = PrintSettingsToGvariantMethodInfo
    ResolvePrintSettingsMethod "toKeyFile" o = PrintSettingsToKeyFileMethodInfo
    ResolvePrintSettingsMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolvePrintSettingsMethod "unset" o = PrintSettingsUnsetMethodInfo
    ResolvePrintSettingsMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolvePrintSettingsMethod "getBool" o = PrintSettingsGetBoolMethodInfo
    ResolvePrintSettingsMethod "getCollate" o = PrintSettingsGetCollateMethodInfo
    ResolvePrintSettingsMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolvePrintSettingsMethod "getDefaultSource" o = PrintSettingsGetDefaultSourceMethodInfo
    ResolvePrintSettingsMethod "getDither" o = PrintSettingsGetDitherMethodInfo
    ResolvePrintSettingsMethod "getDouble" o = PrintSettingsGetDoubleMethodInfo
    ResolvePrintSettingsMethod "getDoubleWithDefault" o = PrintSettingsGetDoubleWithDefaultMethodInfo
    ResolvePrintSettingsMethod "getDuplex" o = PrintSettingsGetDuplexMethodInfo
    ResolvePrintSettingsMethod "getFinishings" o = PrintSettingsGetFinishingsMethodInfo
    ResolvePrintSettingsMethod "getInt" o = PrintSettingsGetIntMethodInfo
    ResolvePrintSettingsMethod "getIntWithDefault" o = PrintSettingsGetIntWithDefaultMethodInfo
    ResolvePrintSettingsMethod "getLength" o = PrintSettingsGetLengthMethodInfo
    ResolvePrintSettingsMethod "getMediaType" o = PrintSettingsGetMediaTypeMethodInfo
    ResolvePrintSettingsMethod "getNCopies" o = PrintSettingsGetNCopiesMethodInfo
    ResolvePrintSettingsMethod "getNumberUp" o = PrintSettingsGetNumberUpMethodInfo
    ResolvePrintSettingsMethod "getNumberUpLayout" o = PrintSettingsGetNumberUpLayoutMethodInfo
    ResolvePrintSettingsMethod "getOrientation" o = PrintSettingsGetOrientationMethodInfo
    ResolvePrintSettingsMethod "getOutputBin" o = PrintSettingsGetOutputBinMethodInfo
    ResolvePrintSettingsMethod "getPageRanges" o = PrintSettingsGetPageRangesMethodInfo
    ResolvePrintSettingsMethod "getPageSet" o = PrintSettingsGetPageSetMethodInfo
    ResolvePrintSettingsMethod "getPaperHeight" o = PrintSettingsGetPaperHeightMethodInfo
    ResolvePrintSettingsMethod "getPaperSize" o = PrintSettingsGetPaperSizeMethodInfo
    ResolvePrintSettingsMethod "getPaperWidth" o = PrintSettingsGetPaperWidthMethodInfo
    ResolvePrintSettingsMethod "getPrintPages" o = PrintSettingsGetPrintPagesMethodInfo
    ResolvePrintSettingsMethod "getPrinter" o = PrintSettingsGetPrinterMethodInfo
    ResolvePrintSettingsMethod "getPrinterLpi" o = PrintSettingsGetPrinterLpiMethodInfo
    ResolvePrintSettingsMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolvePrintSettingsMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolvePrintSettingsMethod "getQuality" o = PrintSettingsGetQualityMethodInfo
    ResolvePrintSettingsMethod "getResolution" o = PrintSettingsGetResolutionMethodInfo
    ResolvePrintSettingsMethod "getResolutionX" o = PrintSettingsGetResolutionXMethodInfo
    ResolvePrintSettingsMethod "getResolutionY" o = PrintSettingsGetResolutionYMethodInfo
    ResolvePrintSettingsMethod "getReverse" o = PrintSettingsGetReverseMethodInfo
    ResolvePrintSettingsMethod "getScale" o = PrintSettingsGetScaleMethodInfo
    ResolvePrintSettingsMethod "getUseColor" o = PrintSettingsGetUseColorMethodInfo
    ResolvePrintSettingsMethod "setBool" o = PrintSettingsSetBoolMethodInfo
    ResolvePrintSettingsMethod "setCollate" o = PrintSettingsSetCollateMethodInfo
    ResolvePrintSettingsMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolvePrintSettingsMethod "setDefaultSource" o = PrintSettingsSetDefaultSourceMethodInfo
    ResolvePrintSettingsMethod "setDither" o = PrintSettingsSetDitherMethodInfo
    ResolvePrintSettingsMethod "setDouble" o = PrintSettingsSetDoubleMethodInfo
    ResolvePrintSettingsMethod "setDuplex" o = PrintSettingsSetDuplexMethodInfo
    ResolvePrintSettingsMethod "setFinishings" o = PrintSettingsSetFinishingsMethodInfo
    ResolvePrintSettingsMethod "setInt" o = PrintSettingsSetIntMethodInfo
    ResolvePrintSettingsMethod "setLength" o = PrintSettingsSetLengthMethodInfo
    ResolvePrintSettingsMethod "setMediaType" o = PrintSettingsSetMediaTypeMethodInfo
    ResolvePrintSettingsMethod "setNCopies" o = PrintSettingsSetNCopiesMethodInfo
    ResolvePrintSettingsMethod "setNumberUp" o = PrintSettingsSetNumberUpMethodInfo
    ResolvePrintSettingsMethod "setNumberUpLayout" o = PrintSettingsSetNumberUpLayoutMethodInfo
    ResolvePrintSettingsMethod "setOrientation" o = PrintSettingsSetOrientationMethodInfo
    ResolvePrintSettingsMethod "setOutputBin" o = PrintSettingsSetOutputBinMethodInfo
    ResolvePrintSettingsMethod "setPageRanges" o = PrintSettingsSetPageRangesMethodInfo
    ResolvePrintSettingsMethod "setPageSet" o = PrintSettingsSetPageSetMethodInfo
    ResolvePrintSettingsMethod "setPaperHeight" o = PrintSettingsSetPaperHeightMethodInfo
    ResolvePrintSettingsMethod "setPaperSize" o = PrintSettingsSetPaperSizeMethodInfo
    ResolvePrintSettingsMethod "setPaperWidth" o = PrintSettingsSetPaperWidthMethodInfo
    ResolvePrintSettingsMethod "setPrintPages" o = PrintSettingsSetPrintPagesMethodInfo
    ResolvePrintSettingsMethod "setPrinter" o = PrintSettingsSetPrinterMethodInfo
    ResolvePrintSettingsMethod "setPrinterLpi" o = PrintSettingsSetPrinterLpiMethodInfo
    ResolvePrintSettingsMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolvePrintSettingsMethod "setQuality" o = PrintSettingsSetQualityMethodInfo
    ResolvePrintSettingsMethod "setResolution" o = PrintSettingsSetResolutionMethodInfo
    ResolvePrintSettingsMethod "setResolutionXy" o = PrintSettingsSetResolutionXyMethodInfo
    ResolvePrintSettingsMethod "setReverse" o = PrintSettingsSetReverseMethodInfo
    ResolvePrintSettingsMethod "setScale" o = PrintSettingsSetScaleMethodInfo
    ResolvePrintSettingsMethod "setUseColor" o = PrintSettingsSetUseColorMethodInfo
    ResolvePrintSettingsMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolvePrintSettingsMethod t PrintSettings, O.MethodInfo info PrintSettings p) => O.IsLabelProxy t (PrintSettings -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolvePrintSettingsMethod t PrintSettings, O.MethodInfo info PrintSettings p) => O.IsLabel t (PrintSettings -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif

#endif

#if ENABLE_OVERLOADING
instance O.HasAttributeList PrintSettings
type instance O.AttributeList PrintSettings = PrintSettingsAttributeList
type PrintSettingsAttributeList = ('[ ] :: [(Symbol, *)])
#endif

#if ENABLE_OVERLOADING
#endif

#if ENABLE_OVERLOADING
type instance O.SignalList PrintSettings = PrintSettingsSignalList
type PrintSettingsSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method PrintSettings::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintSettings"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_new" gtk_print_settings_new ::
    IO (Ptr PrintSettings)

{- |
Creates a new 'GI.Gtk.Objects.PrintSettings.PrintSettings' object.

/Since: 2.10/
-}
printSettingsNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    m PrintSettings
    {- ^ __Returns:__ a new 'GI.Gtk.Objects.PrintSettings.PrintSettings' object -}
printSettingsNew  = liftIO $ do
    result <- gtk_print_settings_new
    checkUnexpectedReturnNULL "printSettingsNew" result
    result' <- (wrapObject PrintSettings) result
    return result'

#if ENABLE_OVERLOADING
#endif

-- method PrintSettings::new_from_file
-- method type : Constructor
-- Args : [Arg {argCName = "file_name", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the filename to read the settings from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintSettings"}))
-- throws : True
-- Skip return : False

foreign import ccall "gtk_print_settings_new_from_file" gtk_print_settings_new_from_file ::
    CString ->                              -- file_name : TBasicType TFileName
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr PrintSettings)

{- |
Reads the print settings from /@fileName@/. Returns a new 'GI.Gtk.Objects.PrintSettings.PrintSettings'
object with the restored settings, or 'Nothing' if an error occurred. If the
file could not be loaded then error is set to either a 'GI.GLib.Enums.FileError' or
'GI.GLib.Enums.KeyFileError'.  See 'GI.Gtk.Objects.PrintSettings.printSettingsToFile'.

/Since: 2.12/
-}
printSettingsNewFromFile ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    [Char]
    {- ^ /@fileName@/: the filename to read the settings from -}
    -> m PrintSettings
    {- ^ __Returns:__ the restored 'GI.Gtk.Objects.PrintSettings.PrintSettings' /(Can throw 'Data.GI.Base.GError.GError')/ -}
printSettingsNewFromFile fileName = liftIO $ do
    fileName' <- stringToCString fileName
    onException (do
        result <- propagateGError $ gtk_print_settings_new_from_file fileName'
        checkUnexpectedReturnNULL "printSettingsNewFromFile" result
        result' <- (wrapObject PrintSettings) result
        freeMem fileName'
        return result'
     ) (do
        freeMem fileName'
     )

#if ENABLE_OVERLOADING
#endif

-- method PrintSettings::new_from_gvariant
-- method type : Constructor
-- Args : [Arg {argCName = "variant", argType = TVariant, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an a{sv} #GVariant", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintSettings"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_new_from_gvariant" gtk_print_settings_new_from_gvariant ::
    Ptr GVariant ->                         -- variant : TVariant
    IO (Ptr PrintSettings)

{- |
Deserialize print settings from an a{sv} variant in
the format produced by 'GI.Gtk.Objects.PrintSettings.printSettingsToGvariant'.

/Since: 3.22/
-}
printSettingsNewFromGvariant ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    GVariant
    {- ^ /@variant@/: an a{sv} 'GVariant' -}
    -> m PrintSettings
    {- ^ __Returns:__ a new 'GI.Gtk.Objects.PrintSettings.PrintSettings' object -}
printSettingsNewFromGvariant variant = liftIO $ do
    variant' <- unsafeManagedPtrGetPtr variant
    result <- gtk_print_settings_new_from_gvariant variant'
    checkUnexpectedReturnNULL "printSettingsNewFromGvariant" result
    result' <- (wrapObject PrintSettings) result
    touchManagedPtr variant
    return result'

#if ENABLE_OVERLOADING
#endif

-- method PrintSettings::new_from_key_file
-- method type : Constructor
-- Args : [Arg {argCName = "key_file", argType = TInterface (Name {namespace = "GLib", name = "KeyFile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GKeyFile to retrieve the settings from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the name of the group to use, or %NULL to use\n    the default \8220Print Settings\8221", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintSettings"}))
-- throws : True
-- Skip return : False

foreign import ccall "gtk_print_settings_new_from_key_file" gtk_print_settings_new_from_key_file ::
    Ptr GLib.KeyFile.KeyFile ->             -- key_file : TInterface (Name {namespace = "GLib", name = "KeyFile"})
    CString ->                              -- group_name : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr PrintSettings)

{- |
Reads the print settings from the group /@groupName@/ in /@keyFile@/.  Returns a
new 'GI.Gtk.Objects.PrintSettings.PrintSettings' object with the restored settings, or 'Nothing' if an
error occurred. If the file could not be loaded then error is set to either
a 'GI.GLib.Enums.FileError' or 'GI.GLib.Enums.KeyFileError'.

/Since: 2.12/
-}
printSettingsNewFromKeyFile ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    GLib.KeyFile.KeyFile
    {- ^ /@keyFile@/: the 'GI.GLib.Structs.KeyFile.KeyFile' to retrieve the settings from -}
    -> Maybe (T.Text)
    {- ^ /@groupName@/: the name of the group to use, or 'Nothing' to use
    the default “Print Settings” -}
    -> m PrintSettings
    {- ^ __Returns:__ the restored 'GI.Gtk.Objects.PrintSettings.PrintSettings' /(Can throw 'Data.GI.Base.GError.GError')/ -}
printSettingsNewFromKeyFile keyFile groupName = liftIO $ do
    keyFile' <- unsafeManagedPtrGetPtr keyFile
    maybeGroupName <- case groupName of
        Nothing -> return nullPtr
        Just jGroupName -> do
            jGroupName' <- textToCString jGroupName
            return jGroupName'
    onException (do
        result <- propagateGError $ gtk_print_settings_new_from_key_file keyFile' maybeGroupName
        checkUnexpectedReturnNULL "printSettingsNewFromKeyFile" result
        result' <- (wrapObject PrintSettings) result
        touchManagedPtr keyFile
        freeMem maybeGroupName
        return result'
     ) (do
        freeMem maybeGroupName
     )

#if ENABLE_OVERLOADING
#endif

-- method PrintSettings::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "other", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintSettings"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_copy" gtk_print_settings_copy ::
    Ptr PrintSettings ->                    -- other : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO (Ptr PrintSettings)

{- |
Copies a 'GI.Gtk.Objects.PrintSettings.PrintSettings' object.

/Since: 2.10/
-}
printSettingsCopy ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@other@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m PrintSettings
    {- ^ __Returns:__ a newly allocated copy of /@other@/ -}
printSettingsCopy other = liftIO $ do
    other' <- unsafeManagedPtrCastPtr other
    result <- gtk_print_settings_copy other'
    checkUnexpectedReturnNULL "printSettingsCopy" result
    result' <- (wrapObject PrintSettings) result
    touchManagedPtr other
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsCopyMethodInfo
instance (signature ~ (m PrintSettings), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsCopyMethodInfo a signature where
    overloadedMethod _ = printSettingsCopy

#endif

-- method PrintSettings::foreach
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettingsFunc"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the function to call", sinceVersion = Nothing}, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data for @func", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_foreach" gtk_print_settings_foreach ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    FunPtr Gtk.Callbacks.C_PrintSettingsFunc -> -- func : TInterface (Name {namespace = "Gtk", name = "PrintSettingsFunc"})
    Ptr () ->                               -- user_data : TBasicType TPtr
    IO ()

{- |
Calls /@func@/ for each key-value pair of /@settings@/.

/Since: 2.10/
-}
printSettingsForeach ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Callbacks.PrintSettingsFunc
    {- ^ /@func@/: the function to call -}
    -> m ()
printSettingsForeach settings func = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    func' <- Gtk.Callbacks.mk_PrintSettingsFunc (Gtk.Callbacks.wrap_PrintSettingsFunc Nothing (Gtk.Callbacks.drop_closures_PrintSettingsFunc func))
    let userData = nullPtr
    gtk_print_settings_foreach settings' func' userData
    safeFreeFunPtr $ castFunPtrToPtr func'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsForeachMethodInfo
instance (signature ~ (Gtk.Callbacks.PrintSettingsFunc -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsForeachMethodInfo a signature where
    overloadedMethod _ = printSettingsForeach

#endif

-- method PrintSettings::get
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get" gtk_print_settings_get ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    IO CString

{- |
Looks up the string value associated with /@key@/.

/Since: 2.10/
-}
printSettingsGet ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> m T.Text
    {- ^ __Returns:__ the string value for /@key@/ -}
printSettingsGet settings key = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    result <- gtk_print_settings_get settings' key'
    checkUnexpectedReturnNULL "printSettingsGet" result
    result' <- cstringToText result
    touchManagedPtr settings
    freeMem key'
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetMethodInfo
instance (signature ~ (T.Text -> m T.Text), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetMethodInfo a signature where
    overloadedMethod _ = printSettingsGet

#endif

-- method PrintSettings::get_bool
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_bool" gtk_print_settings_get_bool ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    IO CInt

{- |
Returns the boolean represented by the value
that is associated with /@key@/.

The string “true” represents 'True', any other
string 'False'.

/Since: 2.10/
-}
printSettingsGetBool ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> m Bool
    {- ^ __Returns:__ 'True', if /@key@/ maps to a true value. -}
printSettingsGetBool settings key = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    result <- gtk_print_settings_get_bool settings' key'
    let result' = (/= 0) result
    touchManagedPtr settings
    freeMem key'
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetBoolMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetBoolMethodInfo a signature where
    overloadedMethod _ = printSettingsGetBool

#endif

-- method PrintSettings::get_collate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_collate" gtk_print_settings_get_collate ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_COLLATE'.

/Since: 2.10/
-}
printSettingsGetCollate ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Bool
    {- ^ __Returns:__ whether to collate the printed pages -}
printSettingsGetCollate settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_collate settings'
    let result' = (/= 0) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetCollateMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetCollateMethodInfo a signature where
    overloadedMethod _ = printSettingsGetCollate

#endif

-- method PrintSettings::get_default_source
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_default_source" gtk_print_settings_get_default_source ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CString

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_DEFAULT_SOURCE'.

/Since: 2.10/
-}
printSettingsGetDefaultSource ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m T.Text
    {- ^ __Returns:__ the default source -}
printSettingsGetDefaultSource settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_default_source settings'
    checkUnexpectedReturnNULL "printSettingsGetDefaultSource" result
    result' <- cstringToText result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetDefaultSourceMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetDefaultSourceMethodInfo a signature where
    overloadedMethod _ = printSettingsGetDefaultSource

#endif

-- method PrintSettings::get_dither
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_dither" gtk_print_settings_get_dither ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CString

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_DITHER'.

/Since: 2.10/
-}
printSettingsGetDither ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m T.Text
    {- ^ __Returns:__ the dithering that is used -}
printSettingsGetDither settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_dither settings'
    checkUnexpectedReturnNULL "printSettingsGetDither" result
    result' <- cstringToText result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetDitherMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetDitherMethodInfo a signature where
    overloadedMethod _ = printSettingsGetDither

#endif

-- method PrintSettings::get_double
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_double" gtk_print_settings_get_double ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    IO CDouble

{- |
Returns the double value associated with /@key@/, or 0.

/Since: 2.10/
-}
printSettingsGetDouble ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> m Double
    {- ^ __Returns:__ the double value of /@key@/ -}
printSettingsGetDouble settings key = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    result <- gtk_print_settings_get_double settings' key'
    let result' = realToFrac result
    touchManagedPtr settings
    freeMem key'
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetDoubleMethodInfo
instance (signature ~ (T.Text -> m Double), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetDoubleMethodInfo a signature where
    overloadedMethod _ = printSettingsGetDouble

#endif

-- method PrintSettings::get_double_with_default
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "def", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the default value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_double_with_default" gtk_print_settings_get_double_with_default ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    CDouble ->                              -- def : TBasicType TDouble
    IO CDouble

{- |
Returns the floating point number represented by
the value that is associated with /@key@/, or /@defaultVal@/
if the value does not represent a floating point number.

Floating point numbers are parsed with 'GI.GLib.Functions.asciiStrtod'.

/Since: 2.10/
-}
printSettingsGetDoubleWithDefault ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Double
    {- ^ /@def@/: the default value -}
    -> m Double
    {- ^ __Returns:__ the floating point number associated with /@key@/ -}
printSettingsGetDoubleWithDefault settings key def = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    let def' = realToFrac def
    result <- gtk_print_settings_get_double_with_default settings' key' def'
    let result' = realToFrac result
    touchManagedPtr settings
    freeMem key'
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetDoubleWithDefaultMethodInfo
instance (signature ~ (T.Text -> Double -> m Double), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetDoubleWithDefaultMethodInfo a signature where
    overloadedMethod _ = printSettingsGetDoubleWithDefault

#endif

-- method PrintSettings::get_duplex
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintDuplex"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_duplex" gtk_print_settings_get_duplex ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CUInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_DUPLEX'.

/Since: 2.10/
-}
printSettingsGetDuplex ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Gtk.Enums.PrintDuplex
    {- ^ __Returns:__ whether to print the output in duplex. -}
printSettingsGetDuplex settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_duplex settings'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetDuplexMethodInfo
instance (signature ~ (m Gtk.Enums.PrintDuplex), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetDuplexMethodInfo a signature where
    overloadedMethod _ = printSettingsGetDuplex

#endif

-- method PrintSettings::get_finishings
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_finishings" gtk_print_settings_get_finishings ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CString

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_FINISHINGS'.

/Since: 2.10/
-}
printSettingsGetFinishings ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m T.Text
    {- ^ __Returns:__ the finishings -}
printSettingsGetFinishings settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_finishings settings'
    checkUnexpectedReturnNULL "printSettingsGetFinishings" result
    result' <- cstringToText result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetFinishingsMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetFinishingsMethodInfo a signature where
    overloadedMethod _ = printSettingsGetFinishings

#endif

-- method PrintSettings::get_int
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_int" gtk_print_settings_get_int ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    IO Int32

{- |
Returns the integer value of /@key@/, or 0.

/Since: 2.10/
-}
printSettingsGetInt ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> m Int32
    {- ^ __Returns:__ the integer value of /@key@/ -}
printSettingsGetInt settings key = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    result <- gtk_print_settings_get_int settings' key'
    touchManagedPtr settings
    freeMem key'
    return result

#if ENABLE_OVERLOADING
data PrintSettingsGetIntMethodInfo
instance (signature ~ (T.Text -> m Int32), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetIntMethodInfo a signature where
    overloadedMethod _ = printSettingsGetInt

#endif

-- method PrintSettings::get_int_with_default
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "def", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the default value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_int_with_default" gtk_print_settings_get_int_with_default ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    Int32 ->                                -- def : TBasicType TInt
    IO Int32

{- |
Returns the value of /@key@/, interpreted as
an integer, or the default value.

/Since: 2.10/
-}
printSettingsGetIntWithDefault ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Int32
    {- ^ /@def@/: the default value -}
    -> m Int32
    {- ^ __Returns:__ the integer value of /@key@/ -}
printSettingsGetIntWithDefault settings key def = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    result <- gtk_print_settings_get_int_with_default settings' key' def
    touchManagedPtr settings
    freeMem key'
    return result

#if ENABLE_OVERLOADING
data PrintSettingsGetIntWithDefaultMethodInfo
instance (signature ~ (T.Text -> Int32 -> m Int32), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetIntWithDefaultMethodInfo a signature where
    overloadedMethod _ = printSettingsGetIntWithDefault

#endif

-- method PrintSettings::get_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unit", argType = TInterface (Name {namespace = "Gtk", name = "Unit"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the unit of the return value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_length" gtk_print_settings_get_length ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    CUInt ->                                -- unit : TInterface (Name {namespace = "Gtk", name = "Unit"})
    IO CDouble

{- |
Returns the value associated with /@key@/, interpreted
as a length. The returned value is converted to /@units@/.

/Since: 2.10/
-}
printSettingsGetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Gtk.Enums.Unit
    {- ^ /@unit@/: the unit of the return value -}
    -> m Double
    {- ^ __Returns:__ the length value of /@key@/, converted to /@unit@/ -}
printSettingsGetLength settings key unit = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    let unit' = (fromIntegral . fromEnum) unit
    result <- gtk_print_settings_get_length settings' key' unit'
    let result' = realToFrac result
    touchManagedPtr settings
    freeMem key'
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetLengthMethodInfo
instance (signature ~ (T.Text -> Gtk.Enums.Unit -> m Double), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetLengthMethodInfo a signature where
    overloadedMethod _ = printSettingsGetLength

#endif

-- method PrintSettings::get_media_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_media_type" gtk_print_settings_get_media_type ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CString

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_MEDIA_TYPE'.

The set of media types is defined in PWG 5101.1-2002 PWG.

/Since: 2.10/
-}
printSettingsGetMediaType ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m T.Text
    {- ^ __Returns:__ the media type -}
printSettingsGetMediaType settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_media_type settings'
    checkUnexpectedReturnNULL "printSettingsGetMediaType" result
    result' <- cstringToText result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetMediaTypeMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetMediaTypeMethodInfo a signature where
    overloadedMethod _ = printSettingsGetMediaType

#endif

-- method PrintSettings::get_n_copies
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_n_copies" gtk_print_settings_get_n_copies ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO Int32

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_N_COPIES'.

/Since: 2.10/
-}
printSettingsGetNCopies ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Int32
    {- ^ __Returns:__ the number of copies to print -}
printSettingsGetNCopies settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_n_copies settings'
    touchManagedPtr settings
    return result

#if ENABLE_OVERLOADING
data PrintSettingsGetNCopiesMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetNCopiesMethodInfo a signature where
    overloadedMethod _ = printSettingsGetNCopies

#endif

-- method PrintSettings::get_number_up
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_number_up" gtk_print_settings_get_number_up ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO Int32

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_NUMBER_UP'.

/Since: 2.10/
-}
printSettingsGetNumberUp ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Int32
    {- ^ __Returns:__ the number of pages per sheet -}
printSettingsGetNumberUp settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_number_up settings'
    touchManagedPtr settings
    return result

#if ENABLE_OVERLOADING
data PrintSettingsGetNumberUpMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetNumberUpMethodInfo a signature where
    overloadedMethod _ = printSettingsGetNumberUp

#endif

-- method PrintSettings::get_number_up_layout
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "NumberUpLayout"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_number_up_layout" gtk_print_settings_get_number_up_layout ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CUInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_NUMBER_UP_LAYOUT'.

/Since: 2.14/
-}
printSettingsGetNumberUpLayout ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Gtk.Enums.NumberUpLayout
    {- ^ __Returns:__ layout of page in number-up mode -}
printSettingsGetNumberUpLayout settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_number_up_layout settings'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetNumberUpLayoutMethodInfo
instance (signature ~ (m Gtk.Enums.NumberUpLayout), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetNumberUpLayoutMethodInfo a signature where
    overloadedMethod _ = printSettingsGetNumberUpLayout

#endif

-- method PrintSettings::get_orientation
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PageOrientation"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_orientation" gtk_print_settings_get_orientation ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CUInt

{- |
Get the value of 'GI.Gtk.Constants.PRINT_SETTINGS_ORIENTATION',
converted to a 'GI.Gtk.Enums.PageOrientation'.

/Since: 2.10/
-}
printSettingsGetOrientation ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Gtk.Enums.PageOrientation
    {- ^ __Returns:__ the orientation -}
printSettingsGetOrientation settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_orientation settings'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetOrientationMethodInfo
instance (signature ~ (m Gtk.Enums.PageOrientation), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetOrientationMethodInfo a signature where
    overloadedMethod _ = printSettingsGetOrientation

#endif

-- method PrintSettings::get_output_bin
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_output_bin" gtk_print_settings_get_output_bin ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CString

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_OUTPUT_BIN'.

/Since: 2.10/
-}
printSettingsGetOutputBin ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m T.Text
    {- ^ __Returns:__ the output bin -}
printSettingsGetOutputBin settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_output_bin settings'
    checkUnexpectedReturnNULL "printSettingsGetOutputBin" result
    result' <- cstringToText result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetOutputBinMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetOutputBinMethodInfo a signature where
    overloadedMethod _ = printSettingsGetOutputBin

#endif

-- method PrintSettings::get_page_ranges
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num_ranges", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the length of the returned array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- Lengths : [Arg {argCName = "num_ranges", argType = TBasicType TInt, direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "return location for the length of the returned array", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
-- returnType : Just (TCArray False (-1) 1 (TInterface (Name {namespace = "Gtk", name = "PageRange"})))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_page_ranges" gtk_print_settings_get_page_ranges ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Ptr Int32 ->                            -- num_ranges : TBasicType TInt
    IO (Ptr Gtk.PageRange.PageRange)

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAGE_RANGES'.

/Since: 2.10/
-}
printSettingsGetPageRanges ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m [Gtk.PageRange.PageRange]
    {- ^ __Returns:__ an array
    of @/GtkPageRanges/@.  Use 'GI.GLib.Functions.free' to free the array when
    it is no longer needed. -}
printSettingsGetPageRanges settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    numRanges <- allocMem :: IO (Ptr Int32)
    result <- gtk_print_settings_get_page_ranges settings' numRanges
    numRanges' <- peek numRanges
    checkUnexpectedReturnNULL "printSettingsGetPageRanges" result
    result' <- (unpackBlockArrayWithLength 8 numRanges') result
    result'' <- mapM (wrapPtr Gtk.PageRange.PageRange) result'
    freeMem result
    touchManagedPtr settings
    freeMem numRanges
    return result''

#if ENABLE_OVERLOADING
data PrintSettingsGetPageRangesMethodInfo
instance (signature ~ (m [Gtk.PageRange.PageRange]), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPageRangesMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPageRanges

#endif

-- method PrintSettings::get_page_set
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PageSet"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_page_set" gtk_print_settings_get_page_set ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CUInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAGE_SET'.

/Since: 2.10/
-}
printSettingsGetPageSet ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Gtk.Enums.PageSet
    {- ^ __Returns:__ the set of pages to print -}
printSettingsGetPageSet settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_page_set settings'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetPageSetMethodInfo
instance (signature ~ (m Gtk.Enums.PageSet), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPageSetMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPageSet

#endif

-- method PrintSettings::get_paper_height
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unit", argType = TInterface (Name {namespace = "Gtk", name = "Unit"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the unit for the return value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_paper_height" gtk_print_settings_get_paper_height ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- unit : TInterface (Name {namespace = "Gtk", name = "Unit"})
    IO CDouble

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_HEIGHT',
converted to /@unit@/.

/Since: 2.10/
-}
printSettingsGetPaperHeight ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.Unit
    {- ^ /@unit@/: the unit for the return value -}
    -> m Double
    {- ^ __Returns:__ the paper height, in units of /@unit@/ -}
printSettingsGetPaperHeight settings unit = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let unit' = (fromIntegral . fromEnum) unit
    result <- gtk_print_settings_get_paper_height settings' unit'
    let result' = realToFrac result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetPaperHeightMethodInfo
instance (signature ~ (Gtk.Enums.Unit -> m Double), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPaperHeightMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPaperHeight

#endif

-- method PrintSettings::get_paper_size
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PaperSize"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_paper_size" gtk_print_settings_get_paper_size ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO (Ptr Gtk.PaperSize.PaperSize)

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_FORMAT',
converted to a 'GI.Gtk.Structs.PaperSize.PaperSize'.

/Since: 2.10/
-}
printSettingsGetPaperSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Gtk.PaperSize.PaperSize
    {- ^ __Returns:__ the paper size -}
printSettingsGetPaperSize settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_paper_size settings'
    checkUnexpectedReturnNULL "printSettingsGetPaperSize" result
    result' <- (wrapBoxed Gtk.PaperSize.PaperSize) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetPaperSizeMethodInfo
instance (signature ~ (m Gtk.PaperSize.PaperSize), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPaperSizeMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPaperSize

#endif

-- method PrintSettings::get_paper_width
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unit", argType = TInterface (Name {namespace = "Gtk", name = "Unit"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the unit for the return value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_paper_width" gtk_print_settings_get_paper_width ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- unit : TInterface (Name {namespace = "Gtk", name = "Unit"})
    IO CDouble

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_WIDTH',
converted to /@unit@/.

/Since: 2.10/
-}
printSettingsGetPaperWidth ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.Unit
    {- ^ /@unit@/: the unit for the return value -}
    -> m Double
    {- ^ __Returns:__ the paper width, in units of /@unit@/ -}
printSettingsGetPaperWidth settings unit = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let unit' = (fromIntegral . fromEnum) unit
    result <- gtk_print_settings_get_paper_width settings' unit'
    let result' = realToFrac result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetPaperWidthMethodInfo
instance (signature ~ (Gtk.Enums.Unit -> m Double), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPaperWidthMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPaperWidth

#endif

-- method PrintSettings::get_print_pages
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintPages"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_print_pages" gtk_print_settings_get_print_pages ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CUInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PRINT_PAGES'.

/Since: 2.10/
-}
printSettingsGetPrintPages ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Gtk.Enums.PrintPages
    {- ^ __Returns:__ which pages to print -}
printSettingsGetPrintPages settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_print_pages settings'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetPrintPagesMethodInfo
instance (signature ~ (m Gtk.Enums.PrintPages), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPrintPagesMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPrintPages

#endif

-- method PrintSettings::get_printer
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_printer" gtk_print_settings_get_printer ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CString

{- |
Convenience function to obtain the value of
'GI.Gtk.Constants.PRINT_SETTINGS_PRINTER'.

/Since: 2.10/
-}
printSettingsGetPrinter ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m T.Text
    {- ^ __Returns:__ the printer name -}
printSettingsGetPrinter settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_printer settings'
    checkUnexpectedReturnNULL "printSettingsGetPrinter" result
    result' <- cstringToText result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetPrinterMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPrinterMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPrinter

#endif

-- method PrintSettings::get_printer_lpi
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_printer_lpi" gtk_print_settings_get_printer_lpi ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CDouble

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PRINTER_LPI'.

/Since: 2.16/
-}
printSettingsGetPrinterLpi ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Double
    {- ^ __Returns:__ the resolution in lpi (lines per inch) -}
printSettingsGetPrinterLpi settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_printer_lpi settings'
    let result' = realToFrac result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetPrinterLpiMethodInfo
instance (signature ~ (m Double), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetPrinterLpiMethodInfo a signature where
    overloadedMethod _ = printSettingsGetPrinterLpi

#endif

-- method PrintSettings::get_quality
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gtk", name = "PrintQuality"}))
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_quality" gtk_print_settings_get_quality ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CUInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_QUALITY'.

/Since: 2.10/
-}
printSettingsGetQuality ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Gtk.Enums.PrintQuality
    {- ^ __Returns:__ the print quality -}
printSettingsGetQuality settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_quality settings'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetQualityMethodInfo
instance (signature ~ (m Gtk.Enums.PrintQuality), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetQualityMethodInfo a signature where
    overloadedMethod _ = printSettingsGetQuality

#endif

-- method PrintSettings::get_resolution
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_resolution" gtk_print_settings_get_resolution ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO Int32

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION'.

/Since: 2.10/
-}
printSettingsGetResolution ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Int32
    {- ^ __Returns:__ the resolution in dpi -}
printSettingsGetResolution settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_resolution settings'
    touchManagedPtr settings
    return result

#if ENABLE_OVERLOADING
data PrintSettingsGetResolutionMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetResolutionMethodInfo a signature where
    overloadedMethod _ = printSettingsGetResolution

#endif

-- method PrintSettings::get_resolution_x
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_resolution_x" gtk_print_settings_get_resolution_x ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO Int32

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION_X'.

/Since: 2.16/
-}
printSettingsGetResolutionX ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Int32
    {- ^ __Returns:__ the horizontal resolution in dpi -}
printSettingsGetResolutionX settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_resolution_x settings'
    touchManagedPtr settings
    return result

#if ENABLE_OVERLOADING
data PrintSettingsGetResolutionXMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetResolutionXMethodInfo a signature where
    overloadedMethod _ = printSettingsGetResolutionX

#endif

-- method PrintSettings::get_resolution_y
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_resolution_y" gtk_print_settings_get_resolution_y ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO Int32

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION_Y'.

/Since: 2.16/
-}
printSettingsGetResolutionY ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Int32
    {- ^ __Returns:__ the vertical resolution in dpi -}
printSettingsGetResolutionY settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_resolution_y settings'
    touchManagedPtr settings
    return result

#if ENABLE_OVERLOADING
data PrintSettingsGetResolutionYMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetResolutionYMethodInfo a signature where
    overloadedMethod _ = printSettingsGetResolutionY

#endif

-- method PrintSettings::get_reverse
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_reverse" gtk_print_settings_get_reverse ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_REVERSE'.

/Since: 2.10/
-}
printSettingsGetReverse ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Bool
    {- ^ __Returns:__ whether to reverse the order of the printed pages -}
printSettingsGetReverse settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_reverse settings'
    let result' = (/= 0) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetReverseMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetReverseMethodInfo a signature where
    overloadedMethod _ = printSettingsGetReverse

#endif

-- method PrintSettings::get_scale
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TDouble)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_scale" gtk_print_settings_get_scale ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CDouble

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_SCALE'.

/Since: 2.10/
-}
printSettingsGetScale ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Double
    {- ^ __Returns:__ the scale in percent -}
printSettingsGetScale settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_scale settings'
    let result' = realToFrac result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetScaleMethodInfo
instance (signature ~ (m Double), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetScaleMethodInfo a signature where
    overloadedMethod _ = printSettingsGetScale

#endif

-- method PrintSettings::get_use_color
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_get_use_color" gtk_print_settings_get_use_color ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO CInt

{- |
Gets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_USE_COLOR'.

/Since: 2.10/
-}
printSettingsGetUseColor ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m Bool
    {- ^ __Returns:__ whether to use color -}
printSettingsGetUseColor settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_get_use_color settings'
    let result' = (/= 0) result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsGetUseColorMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsGetUseColorMethodInfo a signature where
    overloadedMethod _ = printSettingsGetUseColor

#endif

-- method PrintSettings::has_key
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_has_key" gtk_print_settings_has_key ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    IO CInt

{- |
Returns 'True', if a value is associated with /@key@/.

/Since: 2.10/
-}
printSettingsHasKey ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> m Bool
    {- ^ __Returns:__ 'True', if /@key@/ has a value -}
printSettingsHasKey settings key = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    result <- gtk_print_settings_has_key settings' key'
    let result' = (/= 0) result
    touchManagedPtr settings
    freeMem key'
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsHasKeyMethodInfo
instance (signature ~ (T.Text -> m Bool), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsHasKeyMethodInfo a signature where
    overloadedMethod _ = printSettingsHasKey

#endif

-- method PrintSettings::load_file
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_name", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the filename to read the settings from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "gtk_print_settings_load_file" gtk_print_settings_load_file ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- file_name : TBasicType TFileName
    Ptr (Ptr GError) ->                     -- error
    IO CInt

{- |
Reads the print settings from /@fileName@/. If the file could not be loaded
then error is set to either a 'GI.GLib.Enums.FileError' or 'GI.GLib.Enums.KeyFileError'.
See 'GI.Gtk.Objects.PrintSettings.printSettingsToFile'.

/Since: 2.14/
-}
printSettingsLoadFile ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> [Char]
    {- ^ /@fileName@/: the filename to read the settings from -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
printSettingsLoadFile settings fileName = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    fileName' <- stringToCString fileName
    onException (do
        _ <- propagateGError $ gtk_print_settings_load_file settings' fileName'
        touchManagedPtr settings
        freeMem fileName'
        return ()
     ) (do
        freeMem fileName'
     )

#if ENABLE_OVERLOADING
data PrintSettingsLoadFileMethodInfo
instance (signature ~ ([Char] -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsLoadFileMethodInfo a signature where
    overloadedMethod _ = printSettingsLoadFile

#endif

-- method PrintSettings::load_key_file
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_file", argType = TInterface (Name {namespace = "GLib", name = "KeyFile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GKeyFile to retrieve the settings from", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the name of the group to use, or %NULL to use the default\n    \8220Print Settings\8221", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "gtk_print_settings_load_key_file" gtk_print_settings_load_key_file ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Ptr GLib.KeyFile.KeyFile ->             -- key_file : TInterface (Name {namespace = "GLib", name = "KeyFile"})
    CString ->                              -- group_name : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO CInt

{- |
Reads the print settings from the group /@groupName@/ in /@keyFile@/. If the
file could not be loaded then error is set to either a 'GI.GLib.Enums.FileError' or
'GI.GLib.Enums.KeyFileError'.

/Since: 2.14/
-}
printSettingsLoadKeyFile ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> GLib.KeyFile.KeyFile
    {- ^ /@keyFile@/: the 'GI.GLib.Structs.KeyFile.KeyFile' to retrieve the settings from -}
    -> Maybe (T.Text)
    {- ^ /@groupName@/: the name of the group to use, or 'Nothing' to use the default
    “Print Settings” -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
printSettingsLoadKeyFile settings keyFile groupName = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    keyFile' <- unsafeManagedPtrGetPtr keyFile
    maybeGroupName <- case groupName of
        Nothing -> return nullPtr
        Just jGroupName -> do
            jGroupName' <- textToCString jGroupName
            return jGroupName'
    onException (do
        _ <- propagateGError $ gtk_print_settings_load_key_file settings' keyFile' maybeGroupName
        touchManagedPtr settings
        touchManagedPtr keyFile
        freeMem maybeGroupName
        return ()
     ) (do
        freeMem maybeGroupName
     )

#if ENABLE_OVERLOADING
data PrintSettingsLoadKeyFileMethodInfo
instance (signature ~ (GLib.KeyFile.KeyFile -> Maybe (T.Text) -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsLoadKeyFileMethodInfo a signature where
    overloadedMethod _ = printSettingsLoadKeyFile

#endif

-- method PrintSettings::set
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a string value, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set" gtk_print_settings_set ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    CString ->                              -- value : TBasicType TUTF8
    IO ()

{- |
Associates /@value@/ with /@key@/.

/Since: 2.10/
-}
printSettingsSet ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Maybe (T.Text)
    {- ^ /@value@/: a string value, or 'Nothing' -}
    -> m ()
printSettingsSet settings key value = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    maybeValue <- case value of
        Nothing -> return nullPtr
        Just jValue -> do
            jValue' <- textToCString jValue
            return jValue'
    gtk_print_settings_set settings' key' maybeValue
    touchManagedPtr settings
    freeMem key'
    freeMem maybeValue
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetMethodInfo
instance (signature ~ (T.Text -> Maybe (T.Text) -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetMethodInfo a signature where
    overloadedMethod _ = printSettingsSet

#endif

-- method PrintSettings::set_bool
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a boolean", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_bool" gtk_print_settings_set_bool ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    CInt ->                                 -- value : TBasicType TBoolean
    IO ()

{- |
Sets /@key@/ to a boolean value.

/Since: 2.10/
-}
printSettingsSetBool ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Bool
    {- ^ /@value@/: a boolean -}
    -> m ()
printSettingsSetBool settings key value = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    let value' = (fromIntegral . fromEnum) value
    gtk_print_settings_set_bool settings' key' value'
    touchManagedPtr settings
    freeMem key'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetBoolMethodInfo
instance (signature ~ (T.Text -> Bool -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetBoolMethodInfo a signature where
    overloadedMethod _ = printSettingsSetBool

#endif

-- method PrintSettings::set_collate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "collate", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to collate the output", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_collate" gtk_print_settings_set_collate ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CInt ->                                 -- collate : TBasicType TBoolean
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_COLLATE'.

/Since: 2.10/
-}
printSettingsSetCollate ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Bool
    {- ^ /@collate@/: whether to collate the output -}
    -> m ()
printSettingsSetCollate settings collate = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let collate' = (fromIntegral . fromEnum) collate
    gtk_print_settings_set_collate settings' collate'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetCollateMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetCollateMethodInfo a signature where
    overloadedMethod _ = printSettingsSetCollate

#endif

-- method PrintSettings::set_default_source
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the default source", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_default_source" gtk_print_settings_set_default_source ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- default_source : TBasicType TUTF8
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_DEFAULT_SOURCE'.

/Since: 2.10/
-}
printSettingsSetDefaultSource ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@defaultSource@/: the default source -}
    -> m ()
printSettingsSetDefaultSource settings defaultSource = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    defaultSource' <- textToCString defaultSource
    gtk_print_settings_set_default_source settings' defaultSource'
    touchManagedPtr settings
    freeMem defaultSource'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetDefaultSourceMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetDefaultSourceMethodInfo a signature where
    overloadedMethod _ = printSettingsSetDefaultSource

#endif

-- method PrintSettings::set_dither
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dither", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the dithering that is used", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_dither" gtk_print_settings_set_dither ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- dither : TBasicType TUTF8
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_DITHER'.

/Since: 2.10/
-}
printSettingsSetDither ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@dither@/: the dithering that is used -}
    -> m ()
printSettingsSetDither settings dither = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    dither' <- textToCString dither
    gtk_print_settings_set_dither settings' dither'
    touchManagedPtr settings
    freeMem dither'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetDitherMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetDitherMethodInfo a signature where
    overloadedMethod _ = printSettingsSetDither

#endif

-- method PrintSettings::set_double
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a double value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_double" gtk_print_settings_set_double ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    CDouble ->                              -- value : TBasicType TDouble
    IO ()

{- |
Sets /@key@/ to a double value.

/Since: 2.10/
-}
printSettingsSetDouble ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Double
    {- ^ /@value@/: a double value -}
    -> m ()
printSettingsSetDouble settings key value = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    let value' = realToFrac value
    gtk_print_settings_set_double settings' key' value'
    touchManagedPtr settings
    freeMem key'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetDoubleMethodInfo
instance (signature ~ (T.Text -> Double -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetDoubleMethodInfo a signature where
    overloadedMethod _ = printSettingsSetDouble

#endif

-- method PrintSettings::set_duplex
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "duplex", argType = TInterface (Name {namespace = "Gtk", name = "PrintDuplex"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintDuplex value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_duplex" gtk_print_settings_set_duplex ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- duplex : TInterface (Name {namespace = "Gtk", name = "PrintDuplex"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_DUPLEX'.

/Since: 2.10/
-}
printSettingsSetDuplex ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.PrintDuplex
    {- ^ /@duplex@/: a 'GI.Gtk.Enums.PrintDuplex' value -}
    -> m ()
printSettingsSetDuplex settings duplex = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let duplex' = (fromIntegral . fromEnum) duplex
    gtk_print_settings_set_duplex settings' duplex'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetDuplexMethodInfo
instance (signature ~ (Gtk.Enums.PrintDuplex -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetDuplexMethodInfo a signature where
    overloadedMethod _ = printSettingsSetDuplex

#endif

-- method PrintSettings::set_finishings
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "finishings", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the finishings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_finishings" gtk_print_settings_set_finishings ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- finishings : TBasicType TUTF8
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_FINISHINGS'.

/Since: 2.10/
-}
printSettingsSetFinishings ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@finishings@/: the finishings -}
    -> m ()
printSettingsSetFinishings settings finishings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    finishings' <- textToCString finishings
    gtk_print_settings_set_finishings settings' finishings'
    touchManagedPtr settings
    freeMem finishings'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetFinishingsMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetFinishingsMethodInfo a signature where
    overloadedMethod _ = printSettingsSetFinishings

#endif

-- method PrintSettings::set_int
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an integer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_int" gtk_print_settings_set_int ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    Int32 ->                                -- value : TBasicType TInt
    IO ()

{- |
Sets /@key@/ to an integer value.

/Since: 2.10/
-}
printSettingsSetInt ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Int32
    {- ^ /@value@/: an integer -}
    -> m ()
printSettingsSetInt settings key value = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    gtk_print_settings_set_int settings' key' value
    touchManagedPtr settings
    freeMem key'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetIntMethodInfo
instance (signature ~ (T.Text -> Int32 -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetIntMethodInfo a signature where
    overloadedMethod _ = printSettingsSetInt

#endif

-- method PrintSettings::set_length
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a length", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unit", argType = TInterface (Name {namespace = "Gtk", name = "Unit"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the unit of @length", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_length" gtk_print_settings_set_length ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    CDouble ->                              -- value : TBasicType TDouble
    CUInt ->                                -- unit : TInterface (Name {namespace = "Gtk", name = "Unit"})
    IO ()

{- |
Associates a length in units of /@unit@/ with /@key@/.

/Since: 2.10/
-}
printSettingsSetLength ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> Double
    {- ^ /@value@/: a length -}
    -> Gtk.Enums.Unit
    {- ^ /@unit@/: the unit of /@length@/ -}
    -> m ()
printSettingsSetLength settings key value unit = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    let value' = realToFrac value
    let unit' = (fromIntegral . fromEnum) unit
    gtk_print_settings_set_length settings' key' value' unit'
    touchManagedPtr settings
    freeMem key'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetLengthMethodInfo
instance (signature ~ (T.Text -> Double -> Gtk.Enums.Unit -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetLengthMethodInfo a signature where
    overloadedMethod _ = printSettingsSetLength

#endif

-- method PrintSettings::set_media_type
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "media_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the media type", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_media_type" gtk_print_settings_set_media_type ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- media_type : TBasicType TUTF8
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_MEDIA_TYPE'.

The set of media types is defined in PWG 5101.1-2002 PWG.

/Since: 2.10/
-}
printSettingsSetMediaType ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@mediaType@/: the media type -}
    -> m ()
printSettingsSetMediaType settings mediaType = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    mediaType' <- textToCString mediaType
    gtk_print_settings_set_media_type settings' mediaType'
    touchManagedPtr settings
    freeMem mediaType'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetMediaTypeMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetMediaTypeMethodInfo a signature where
    overloadedMethod _ = printSettingsSetMediaType

#endif

-- method PrintSettings::set_n_copies
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num_copies", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of copies", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_n_copies" gtk_print_settings_set_n_copies ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Int32 ->                                -- num_copies : TBasicType TInt
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_N_COPIES'.

/Since: 2.10/
-}
printSettingsSetNCopies ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Int32
    {- ^ /@numCopies@/: the number of copies -}
    -> m ()
printSettingsSetNCopies settings numCopies = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    gtk_print_settings_set_n_copies settings' numCopies
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetNCopiesMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetNCopiesMethodInfo a signature where
    overloadedMethod _ = printSettingsSetNCopies

#endif

-- method PrintSettings::set_number_up
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "number_up", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the number of pages per sheet", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_number_up" gtk_print_settings_set_number_up ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Int32 ->                                -- number_up : TBasicType TInt
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_NUMBER_UP'.

/Since: 2.10/
-}
printSettingsSetNumberUp ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Int32
    {- ^ /@numberUp@/: the number of pages per sheet -}
    -> m ()
printSettingsSetNumberUp settings numberUp = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    gtk_print_settings_set_number_up settings' numberUp
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetNumberUpMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetNumberUpMethodInfo a signature where
    overloadedMethod _ = printSettingsSetNumberUp

#endif

-- method PrintSettings::set_number_up_layout
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "number_up_layout", argType = TInterface (Name {namespace = "Gtk", name = "NumberUpLayout"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkNumberUpLayout value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_number_up_layout" gtk_print_settings_set_number_up_layout ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- number_up_layout : TInterface (Name {namespace = "Gtk", name = "NumberUpLayout"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_NUMBER_UP_LAYOUT'.

/Since: 2.14/
-}
printSettingsSetNumberUpLayout ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.NumberUpLayout
    {- ^ /@numberUpLayout@/: a 'GI.Gtk.Enums.NumberUpLayout' value -}
    -> m ()
printSettingsSetNumberUpLayout settings numberUpLayout = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let numberUpLayout' = (fromIntegral . fromEnum) numberUpLayout
    gtk_print_settings_set_number_up_layout settings' numberUpLayout'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetNumberUpLayoutMethodInfo
instance (signature ~ (Gtk.Enums.NumberUpLayout -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetNumberUpLayoutMethodInfo a signature where
    overloadedMethod _ = printSettingsSetNumberUpLayout

#endif

-- method PrintSettings::set_orientation
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "orientation", argType = TInterface (Name {namespace = "Gtk", name = "PageOrientation"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a page orientation", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_orientation" gtk_print_settings_set_orientation ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- orientation : TInterface (Name {namespace = "Gtk", name = "PageOrientation"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_ORIENTATION'.

/Since: 2.10/
-}
printSettingsSetOrientation ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.PageOrientation
    {- ^ /@orientation@/: a page orientation -}
    -> m ()
printSettingsSetOrientation settings orientation = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let orientation' = (fromIntegral . fromEnum) orientation
    gtk_print_settings_set_orientation settings' orientation'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetOrientationMethodInfo
instance (signature ~ (Gtk.Enums.PageOrientation -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetOrientationMethodInfo a signature where
    overloadedMethod _ = printSettingsSetOrientation

#endif

-- method PrintSettings::set_output_bin
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "output_bin", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the output bin", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_output_bin" gtk_print_settings_set_output_bin ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- output_bin : TBasicType TUTF8
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_OUTPUT_BIN'.

/Since: 2.10/
-}
printSettingsSetOutputBin ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@outputBin@/: the output bin -}
    -> m ()
printSettingsSetOutputBin settings outputBin = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    outputBin' <- textToCString outputBin
    gtk_print_settings_set_output_bin settings' outputBin'
    touchManagedPtr settings
    freeMem outputBin'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetOutputBinMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetOutputBinMethodInfo a signature where
    overloadedMethod _ = printSettingsSetOutputBin

#endif

-- method PrintSettings::set_page_ranges
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "page_ranges", argType = TCArray False (-1) 2 (TInterface (Name {namespace = "Gtk", name = "PageRange"})), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an array of #GtkPageRanges", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "num_ranges", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of @page_ranges", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : [Arg {argCName = "num_ranges", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the length of @page_ranges", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_page_ranges" gtk_print_settings_set_page_ranges ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Ptr Gtk.PageRange.PageRange ->          -- page_ranges : TCArray False (-1) 2 (TInterface (Name {namespace = "Gtk", name = "PageRange"}))
    Int32 ->                                -- num_ranges : TBasicType TInt
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAGE_RANGES'.

/Since: 2.10/
-}
printSettingsSetPageRanges ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> [Gtk.PageRange.PageRange]
    {- ^ /@pageRanges@/: an array of @/GtkPageRanges/@ -}
    -> m ()
printSettingsSetPageRanges settings pageRanges = liftIO $ do
    let numRanges = fromIntegral $ length pageRanges
    settings' <- unsafeManagedPtrCastPtr settings
    pageRanges' <- mapM unsafeManagedPtrGetPtr pageRanges
    pageRanges'' <- packBlockArray 8 pageRanges'
    gtk_print_settings_set_page_ranges settings' pageRanges'' numRanges
    touchManagedPtr settings
    mapM_ touchManagedPtr pageRanges
    freeMem pageRanges''
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPageRangesMethodInfo
instance (signature ~ ([Gtk.PageRange.PageRange] -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPageRangesMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPageRanges

#endif

-- method PrintSettings::set_page_set
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "page_set", argType = TInterface (Name {namespace = "Gtk", name = "PageSet"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPageSet value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_page_set" gtk_print_settings_set_page_set ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- page_set : TInterface (Name {namespace = "Gtk", name = "PageSet"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAGE_SET'.

/Since: 2.10/
-}
printSettingsSetPageSet ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.PageSet
    {- ^ /@pageSet@/: a 'GI.Gtk.Enums.PageSet' value -}
    -> m ()
printSettingsSetPageSet settings pageSet = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let pageSet' = (fromIntegral . fromEnum) pageSet
    gtk_print_settings_set_page_set settings' pageSet'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPageSetMethodInfo
instance (signature ~ (Gtk.Enums.PageSet -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPageSetMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPageSet

#endif

-- method PrintSettings::set_paper_height
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the paper height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unit", argType = TInterface (Name {namespace = "Gtk", name = "Unit"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the units of @height", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_paper_height" gtk_print_settings_set_paper_height ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CDouble ->                              -- height : TBasicType TDouble
    CUInt ->                                -- unit : TInterface (Name {namespace = "Gtk", name = "Unit"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_HEIGHT'.

/Since: 2.10/
-}
printSettingsSetPaperHeight ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Double
    {- ^ /@height@/: the paper height -}
    -> Gtk.Enums.Unit
    {- ^ /@unit@/: the units of /@height@/ -}
    -> m ()
printSettingsSetPaperHeight settings height unit = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let height' = realToFrac height
    let unit' = (fromIntegral . fromEnum) unit
    gtk_print_settings_set_paper_height settings' height' unit'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPaperHeightMethodInfo
instance (signature ~ (Double -> Gtk.Enums.Unit -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPaperHeightMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPaperHeight

#endif

-- method PrintSettings::set_paper_size
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "paper_size", argType = TInterface (Name {namespace = "Gtk", name = "PaperSize"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a paper size", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_paper_size" gtk_print_settings_set_paper_size ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Ptr Gtk.PaperSize.PaperSize ->          -- paper_size : TInterface (Name {namespace = "Gtk", name = "PaperSize"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_FORMAT',
'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_WIDTH' and
'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_HEIGHT'.

/Since: 2.10/
-}
printSettingsSetPaperSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.PaperSize.PaperSize
    {- ^ /@paperSize@/: a paper size -}
    -> m ()
printSettingsSetPaperSize settings paperSize = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    paperSize' <- unsafeManagedPtrGetPtr paperSize
    gtk_print_settings_set_paper_size settings' paperSize'
    touchManagedPtr settings
    touchManagedPtr paperSize
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPaperSizeMethodInfo
instance (signature ~ (Gtk.PaperSize.PaperSize -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPaperSizeMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPaperSize

#endif

-- method PrintSettings::set_paper_width
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the paper width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unit", argType = TInterface (Name {namespace = "Gtk", name = "Unit"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the units of @width", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_paper_width" gtk_print_settings_set_paper_width ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CDouble ->                              -- width : TBasicType TDouble
    CUInt ->                                -- unit : TInterface (Name {namespace = "Gtk", name = "Unit"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PAPER_WIDTH'.

/Since: 2.10/
-}
printSettingsSetPaperWidth ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Double
    {- ^ /@width@/: the paper width -}
    -> Gtk.Enums.Unit
    {- ^ /@unit@/: the units of /@width@/ -}
    -> m ()
printSettingsSetPaperWidth settings width unit = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let width' = realToFrac width
    let unit' = (fromIntegral . fromEnum) unit
    gtk_print_settings_set_paper_width settings' width' unit'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPaperWidthMethodInfo
instance (signature ~ (Double -> Gtk.Enums.Unit -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPaperWidthMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPaperWidth

#endif

-- method PrintSettings::set_print_pages
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pages", argType = TInterface (Name {namespace = "Gtk", name = "PrintPages"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintPages value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_print_pages" gtk_print_settings_set_print_pages ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- pages : TInterface (Name {namespace = "Gtk", name = "PrintPages"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PRINT_PAGES'.

/Since: 2.10/
-}
printSettingsSetPrintPages ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.PrintPages
    {- ^ /@pages@/: a 'GI.Gtk.Enums.PrintPages' value -}
    -> m ()
printSettingsSetPrintPages settings pages = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let pages' = (fromIntegral . fromEnum) pages
    gtk_print_settings_set_print_pages settings' pages'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPrintPagesMethodInfo
instance (signature ~ (Gtk.Enums.PrintPages -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPrintPagesMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPrintPages

#endif

-- method PrintSettings::set_printer
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "printer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the printer name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_printer" gtk_print_settings_set_printer ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- printer : TBasicType TUTF8
    IO ()

{- |
Convenience function to set 'GI.Gtk.Constants.PRINT_SETTINGS_PRINTER'
to /@printer@/.

/Since: 2.10/
-}
printSettingsSetPrinter ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@printer@/: the printer name -}
    -> m ()
printSettingsSetPrinter settings printer = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    printer' <- textToCString printer
    gtk_print_settings_set_printer settings' printer'
    touchManagedPtr settings
    freeMem printer'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPrinterMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPrinterMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPrinter

#endif

-- method PrintSettings::set_printer_lpi
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the resolution in lpi (lines per inch)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_printer_lpi" gtk_print_settings_set_printer_lpi ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CDouble ->                              -- lpi : TBasicType TDouble
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_PRINTER_LPI'.

/Since: 2.16/
-}
printSettingsSetPrinterLpi ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Double
    {- ^ /@lpi@/: the resolution in lpi (lines per inch) -}
    -> m ()
printSettingsSetPrinterLpi settings lpi = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let lpi' = realToFrac lpi
    gtk_print_settings_set_printer_lpi settings' lpi'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetPrinterLpiMethodInfo
instance (signature ~ (Double -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetPrinterLpiMethodInfo a signature where
    overloadedMethod _ = printSettingsSetPrinterLpi

#endif

-- method PrintSettings::set_quality
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quality", argType = TInterface (Name {namespace = "Gtk", name = "PrintQuality"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintQuality value", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_quality" gtk_print_settings_set_quality ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CUInt ->                                -- quality : TInterface (Name {namespace = "Gtk", name = "PrintQuality"})
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_QUALITY'.

/Since: 2.10/
-}
printSettingsSetQuality ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Gtk.Enums.PrintQuality
    {- ^ /@quality@/: a 'GI.Gtk.Enums.PrintQuality' value -}
    -> m ()
printSettingsSetQuality settings quality = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let quality' = (fromIntegral . fromEnum) quality
    gtk_print_settings_set_quality settings' quality'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetQualityMethodInfo
instance (signature ~ (Gtk.Enums.PrintQuality -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetQualityMethodInfo a signature where
    overloadedMethod _ = printSettingsSetQuality

#endif

-- method PrintSettings::set_resolution
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "resolution", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the resolution in dpi", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_resolution" gtk_print_settings_set_resolution ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Int32 ->                                -- resolution : TBasicType TInt
    IO ()

{- |
Sets the values of 'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION',
'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION_X' and
'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION_Y'.

/Since: 2.10/
-}
printSettingsSetResolution ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Int32
    {- ^ /@resolution@/: the resolution in dpi -}
    -> m ()
printSettingsSetResolution settings resolution = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    gtk_print_settings_set_resolution settings' resolution
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetResolutionMethodInfo
instance (signature ~ (Int32 -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetResolutionMethodInfo a signature where
    overloadedMethod _ = printSettingsSetResolution

#endif

-- method PrintSettings::set_resolution_xy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "resolution_x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the horizontal resolution in dpi", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "resolution_y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the vertical resolution in dpi", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_resolution_xy" gtk_print_settings_set_resolution_xy ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Int32 ->                                -- resolution_x : TBasicType TInt
    Int32 ->                                -- resolution_y : TBasicType TInt
    IO ()

{- |
Sets the values of 'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION',
'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION_X' and
'GI.Gtk.Constants.PRINT_SETTINGS_RESOLUTION_Y'.

/Since: 2.16/
-}
printSettingsSetResolutionXy ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Int32
    {- ^ /@resolutionX@/: the horizontal resolution in dpi -}
    -> Int32
    {- ^ /@resolutionY@/: the vertical resolution in dpi -}
    -> m ()
printSettingsSetResolutionXy settings resolutionX resolutionY = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    gtk_print_settings_set_resolution_xy settings' resolutionX resolutionY
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetResolutionXyMethodInfo
instance (signature ~ (Int32 -> Int32 -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetResolutionXyMethodInfo a signature where
    overloadedMethod _ = printSettingsSetResolutionXy

#endif

-- method PrintSettings::set_reverse
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reverse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to reverse the output", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_reverse" gtk_print_settings_set_reverse ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CInt ->                                 -- reverse : TBasicType TBoolean
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_REVERSE'.

/Since: 2.10/
-}
printSettingsSetReverse ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Bool
    {- ^ /@reverse@/: whether to reverse the output -}
    -> m ()
printSettingsSetReverse settings reverse = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let reverse' = (fromIntegral . fromEnum) reverse
    gtk_print_settings_set_reverse settings' reverse'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetReverseMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetReverseMethodInfo a signature where
    overloadedMethod _ = printSettingsSetReverse

#endif

-- method PrintSettings::set_scale
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scale", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the scale in percent", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_scale" gtk_print_settings_set_scale ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CDouble ->                              -- scale : TBasicType TDouble
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_SCALE'.

/Since: 2.10/
-}
printSettingsSetScale ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Double
    {- ^ /@scale@/: the scale in percent -}
    -> m ()
printSettingsSetScale settings scale = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let scale' = realToFrac scale
    gtk_print_settings_set_scale settings' scale'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetScaleMethodInfo
instance (signature ~ (Double -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetScaleMethodInfo a signature where
    overloadedMethod _ = printSettingsSetScale

#endif

-- method PrintSettings::set_use_color
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "use_color", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to use color", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_set_use_color" gtk_print_settings_set_use_color ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CInt ->                                 -- use_color : TBasicType TBoolean
    IO ()

{- |
Sets the value of 'GI.Gtk.Constants.PRINT_SETTINGS_USE_COLOR'.

/Since: 2.10/
-}
printSettingsSetUseColor ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> Bool
    {- ^ /@useColor@/: whether to use color -}
    -> m ()
printSettingsSetUseColor settings useColor = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    let useColor' = (fromIntegral . fromEnum) useColor
    gtk_print_settings_set_use_color settings' useColor'
    touchManagedPtr settings
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsSetUseColorMethodInfo
instance (signature ~ (Bool -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsSetUseColorMethodInfo a signature where
    overloadedMethod _ = printSettingsSetUseColor

#endif

-- method PrintSettings::to_file
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_name", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the file to save to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : True
-- Skip return : False

foreign import ccall "gtk_print_settings_to_file" gtk_print_settings_to_file ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- file_name : TBasicType TFileName
    Ptr (Ptr GError) ->                     -- error
    IO CInt

{- |
This function saves the print settings from /@settings@/ to /@fileName@/. If the
file could not be loaded then error is set to either a 'GI.GLib.Enums.FileError' or
'GI.GLib.Enums.KeyFileError'.

/Since: 2.12/
-}
printSettingsToFile ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> [Char]
    {- ^ /@fileName@/: the file to save to -}
    -> m ()
    {- ^ /(Can throw 'Data.GI.Base.GError.GError')/ -}
printSettingsToFile settings fileName = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    fileName' <- stringToCString fileName
    onException (do
        _ <- propagateGError $ gtk_print_settings_to_file settings' fileName'
        touchManagedPtr settings
        freeMem fileName'
        return ()
     ) (do
        freeMem fileName'
     )

#if ENABLE_OVERLOADING
data PrintSettingsToFileMethodInfo
instance (signature ~ ([Char] -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsToFileMethodInfo a signature where
    overloadedMethod _ = printSettingsToFile

#endif

-- method PrintSettings::to_gvariant
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just TVariant
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_to_gvariant" gtk_print_settings_to_gvariant ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    IO (Ptr GVariant)

{- |
Serialize print settings to an a{sv} variant.

/Since: 3.22/
-}
printSettingsToGvariant ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> m GVariant
    {- ^ __Returns:__ a new, floating, 'GVariant' -}
printSettingsToGvariant settings = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    result <- gtk_print_settings_to_gvariant settings'
    checkUnexpectedReturnNULL "printSettingsToGvariant" result
    result' <- B.GVariant.newGVariantFromPtr result
    touchManagedPtr settings
    return result'

#if ENABLE_OVERLOADING
data PrintSettingsToGvariantMethodInfo
instance (signature ~ (m GVariant), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsToGvariantMethodInfo a signature where
    overloadedMethod _ = printSettingsToGvariant

#endif

-- method PrintSettings::to_key_file
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_file", argType = TInterface (Name {namespace = "GLib", name = "KeyFile"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #GKeyFile to save the print settings to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the group to add the settings to in @key_file, or\n    %NULL to use the default \8220Print Settings\8221", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_to_key_file" gtk_print_settings_to_key_file ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    Ptr GLib.KeyFile.KeyFile ->             -- key_file : TInterface (Name {namespace = "GLib", name = "KeyFile"})
    CString ->                              -- group_name : TBasicType TUTF8
    IO ()

{- |
This function adds the print settings from /@settings@/ to /@keyFile@/.

/Since: 2.12/
-}
printSettingsToKeyFile ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> GLib.KeyFile.KeyFile
    {- ^ /@keyFile@/: the 'GI.GLib.Structs.KeyFile.KeyFile' to save the print settings to -}
    -> T.Text
    {- ^ /@groupName@/: the group to add the settings to in /@keyFile@/, or
    'Nothing' to use the default “Print Settings” -}
    -> m ()
printSettingsToKeyFile settings keyFile groupName = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    keyFile' <- unsafeManagedPtrGetPtr keyFile
    groupName' <- textToCString groupName
    gtk_print_settings_to_key_file settings' keyFile' groupName'
    touchManagedPtr settings
    touchManagedPtr keyFile
    freeMem groupName'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsToKeyFileMethodInfo
instance (signature ~ (GLib.KeyFile.KeyFile -> T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsToKeyFileMethodInfo a signature where
    overloadedMethod _ = printSettingsToKeyFile

#endif

-- method PrintSettings::unset
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "settings", argType = TInterface (Name {namespace = "Gtk", name = "PrintSettings"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkPrintSettings", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a key", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_print_settings_unset" gtk_print_settings_unset ::
    Ptr PrintSettings ->                    -- settings : TInterface (Name {namespace = "Gtk", name = "PrintSettings"})
    CString ->                              -- key : TBasicType TUTF8
    IO ()

{- |
Removes any value associated with /@key@/.
This has the same effect as setting the value to 'Nothing'.

/Since: 2.10/
-}
printSettingsUnset ::
    (B.CallStack.HasCallStack, MonadIO m, IsPrintSettings a) =>
    a
    {- ^ /@settings@/: a 'GI.Gtk.Objects.PrintSettings.PrintSettings' -}
    -> T.Text
    {- ^ /@key@/: a key -}
    -> m ()
printSettingsUnset settings key = liftIO $ do
    settings' <- unsafeManagedPtrCastPtr settings
    key' <- textToCString key
    gtk_print_settings_unset settings' key'
    touchManagedPtr settings
    freeMem key'
    return ()

#if ENABLE_OVERLOADING
data PrintSettingsUnsetMethodInfo
instance (signature ~ (T.Text -> m ()), MonadIO m, IsPrintSettings a) => O.MethodInfo PrintSettingsUnsetMethodInfo a signature where
    overloadedMethod _ = printSettingsUnset

#endif