    {-# LINE 2 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
    {-# LANGUAGE ScopedTypeVariables #-}

    {-# LINE 3 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
    -- -*-haskell-*-
    -- GIMP Toolkit (GTK) Widget PrintSettings
    --
    -- Author : Andy Stewart
    --
    -- Created: 28 Mar 2010
    --
    -- Copyright (C) 2010 Andy Stewart
    --
    -- This library is free software; you can redistribute it and/or
    -- modify it under the terms of the GNU Lesser General Public
    -- License as published by the Free Software Foundation; either
    -- version 2.1 of the License, or (at your option) any later version.
    --
    -- This library is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    -- Lesser General Public License for more details.
    --
    -- |
    -- Maintainer : gtk2hs-users@lists.sourceforge.net
    -- Stability : provisional
    -- Portability : portable (depends on GHC)
    --
    -- Stores print settings
    --
    -- * Module available since Gtk+ version 2.10
    --
    module Graphics.UI.Gtk.Printing.PrintSettings (

    -- * Detail
    --
    -- | A 'PrintSettings' 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.
    --

    -- * Class Hierarchy
    --
    -- |
    -- @
    -- | 'GObject'
    -- | +----PrintSettings
    -- @

    -- * Types
      PrintSettings,
      PrintSettingsClass,
      castToPrintSettings,
      toPrintSettings,
      -- PageRange,

    -- * Enums
      PageOrientation(..),

      NumberUpLayout(..),

      PrintQuality(..),
      PrintDuplex(..),
      PrintPages(..),
      PageSet(..),

    -- * Constructors
      printSettingsNew,

      printSettingsNewFromFile,

    -- * Methods
      printSettingsCopy,
      printSettingsHasKey,
      printSettingsGet,
      printSettingsSet,
      printSettingsUnset,
      printSettingsForeach,
      printSettingsGetBool,
      printSettingsSetBool,
      printSettingsGetDouble,
      printSettingsGetDoubleWithDefault,
      printSettingsSetDouble,
      printSettingsGetLength,
      printSettingsSetLength,
      printSettingsGetInt,
      printSettingsGetIntWithDefault,
      printSettingsSetInt,
      printSettingsGetPaperWidth,
      printSettingsSetPaperWidth,
      printSettingsGetPaperHeight,
      printSettingsSetPaperHeight,

      printSettingsSetResolutionXy,
      printSettingsGetResolutionX,
      printSettingsGetResolutionY,

      -- printSettingsGetPageRanges,
      -- printSettingsSetPageRanges,

      printSettingsLoadFile,

      printSettingsToFile,

    -- * Attributes
      printSettingsPrinter,
      printSettingsOrientation,
      printSettingsPaperSize,
      printSettingsUseColor,
      printSettingsCollate,
      printSettingsReverse,
      printSettingsDuplex,
      printSettingsQuality,
      printSettingsNCopies,
      printSettingsNumberUp,
      printSettingsResolution,
      printSettingsScale,
      printSettingsPrintPages,
      printSettingsPageSet,
      printSettingsDefaultSource,
      printSettingsMediaType,
      printSettingsDither,
      printSettingsFinishings,
      printSettingsOutputBin,

      printSettingsNumberUpLayout,

      printSettingsPrinterLpi,

      ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.Attributes
    import System.Glib.UTFString
    import System.Glib.GError
    import Graphics.UI.Gtk.Types
    {-# LINE 152 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    import Graphics.UI.Gtk.Printing.PaperSize (PaperSize(PaperSize), mkPaperSize, Unit(..))

    {-# LINE 157 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    --------------------
    -- Enums
    data PageOrientation = PageOrientationPortrait
                         | PageOrientationLandscape
                         | PageOrientationReversePortrait
                         | PageOrientationReverseLandscape
                         deriving (Int -> PageOrientation
    PageOrientation -> Int
    PageOrientation -> [PageOrientation]
    PageOrientation -> PageOrientation
    PageOrientation -> PageOrientation -> [PageOrientation]
    PageOrientation
    -> PageOrientation -> PageOrientation -> [PageOrientation]
    (PageOrientation -> PageOrientation)
    -> (PageOrientation -> PageOrientation)
    -> (Int -> PageOrientation)
    -> (PageOrientation -> Int)
    -> (PageOrientation -> [PageOrientation])
    -> (PageOrientation -> PageOrientation -> [PageOrientation])
    -> (PageOrientation -> PageOrientation -> [PageOrientation])
    -> (PageOrientation
        -> PageOrientation -> PageOrientation -> [PageOrientation])
    -> Enum PageOrientation
    forall a.
    (a -> a)
    -> (a -> a)
    -> (Int -> a)
    -> (a -> Int)
    -> (a -> [a])
    -> (a -> a -> [a])
    -> (a -> a -> [a])
    -> (a -> a -> a -> [a])
    -> Enum a
    $csucc :: PageOrientation -> PageOrientation
    succ :: PageOrientation -> PageOrientation
    $cpred :: PageOrientation -> PageOrientation
    pred :: PageOrientation -> PageOrientation
    $ctoEnum :: Int -> PageOrientation
    toEnum :: Int -> PageOrientation
    $cfromEnum :: PageOrientation -> Int
    fromEnum :: PageOrientation -> Int
    $cenumFrom :: PageOrientation -> [PageOrientation]
    enumFrom :: PageOrientation -> [PageOrientation]
    $cenumFromThen :: PageOrientation -> PageOrientation -> [PageOrientation]
    enumFromThen :: PageOrientation -> PageOrientation -> [PageOrientation]
    $cenumFromTo :: PageOrientation -> PageOrientation -> [PageOrientation]
    enumFromTo :: PageOrientation -> PageOrientation -> [PageOrientation]
    $cenumFromThenTo :: PageOrientation
    -> PageOrientation -> PageOrientation -> [PageOrientation]
    enumFromThenTo :: PageOrientation
    -> PageOrientation -> PageOrientation -> [PageOrientation]
    Enum,PageOrientation
    PageOrientation -> PageOrientation -> Bounded PageOrientation
    forall a. a -> a -> Bounded a
    $cminBound :: PageOrientation
    minBound :: PageOrientation
    $cmaxBound :: PageOrientation
    maxBound :: PageOrientation
    Bounded,PageOrientation -> PageOrientation -> Bool
    (PageOrientation -> PageOrientation -> Bool)
    -> (PageOrientation -> PageOrientation -> Bool)
    -> Eq PageOrientation
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PageOrientation -> PageOrientation -> Bool
    == :: PageOrientation -> PageOrientation -> Bool
    $c/= :: PageOrientation -> PageOrientation -> Bool
    /= :: PageOrientation -> PageOrientation -> Bool
    Eq,Int -> PageOrientation -> ShowS
    [PageOrientation] -> ShowS
    PageOrientation -> String
    (Int -> PageOrientation -> ShowS)
    -> (PageOrientation -> String)
    -> ([PageOrientation] -> ShowS)
    -> Show PageOrientation
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PageOrientation -> ShowS
    showsPrec :: Int -> PageOrientation -> ShowS
    $cshow :: PageOrientation -> String
    show :: PageOrientation -> String
    $cshowList :: [PageOrientation] -> ShowS
    showList :: [PageOrientation] -> ShowS
    Show)

    {-# LINE 162 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    data PrintQuality = PrintQualityLow
                      | PrintQualityNormal
                      | PrintQualityHigh
                      | PrintQualityDraft
                      deriving (Int -> PrintQuality
    PrintQuality -> Int
    PrintQuality -> [PrintQuality]
    PrintQuality -> PrintQuality
    PrintQuality -> PrintQuality -> [PrintQuality]
    PrintQuality -> PrintQuality -> PrintQuality -> [PrintQuality]
    (PrintQuality -> PrintQuality)
    -> (PrintQuality -> PrintQuality)
    -> (Int -> PrintQuality)
    -> (PrintQuality -> Int)
    -> (PrintQuality -> [PrintQuality])
    -> (PrintQuality -> PrintQuality -> [PrintQuality])
    -> (PrintQuality -> PrintQuality -> [PrintQuality])
    -> (PrintQuality -> PrintQuality -> PrintQuality -> [PrintQuality])
    -> Enum PrintQuality
    forall a.
    (a -> a)
    -> (a -> a)
    -> (Int -> a)
    -> (a -> Int)
    -> (a -> [a])
    -> (a -> a -> [a])
    -> (a -> a -> [a])
    -> (a -> a -> a -> [a])
    -> Enum a
    $csucc :: PrintQuality -> PrintQuality
    succ :: PrintQuality -> PrintQuality
    $cpred :: PrintQuality -> PrintQuality
    pred :: PrintQuality -> PrintQuality
    $ctoEnum :: Int -> PrintQuality
    toEnum :: Int -> PrintQuality
    $cfromEnum :: PrintQuality -> Int
    fromEnum :: PrintQuality -> Int
    $cenumFrom :: PrintQuality -> [PrintQuality]
    enumFrom :: PrintQuality -> [PrintQuality]
    $cenumFromThen :: PrintQuality -> PrintQuality -> [PrintQuality]
    enumFromThen :: PrintQuality -> PrintQuality -> [PrintQuality]
    $cenumFromTo :: PrintQuality -> PrintQuality -> [PrintQuality]
    enumFromTo :: PrintQuality -> PrintQuality -> [PrintQuality]
    $cenumFromThenTo :: PrintQuality -> PrintQuality -> PrintQuality -> [PrintQuality]
    enumFromThenTo :: PrintQuality -> PrintQuality -> PrintQuality -> [PrintQuality]
    Enum,PrintQuality
    PrintQuality -> PrintQuality -> Bounded PrintQuality
    forall a. a -> a -> Bounded a
    $cminBound :: PrintQuality
    minBound :: PrintQuality
    $cmaxBound :: PrintQuality
    maxBound :: PrintQuality
    Bounded,PrintQuality -> PrintQuality -> Bool
    (PrintQuality -> PrintQuality -> Bool)
    -> (PrintQuality -> PrintQuality -> Bool) -> Eq PrintQuality
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PrintQuality -> PrintQuality -> Bool
    == :: PrintQuality -> PrintQuality -> Bool
    $c/= :: PrintQuality -> PrintQuality -> Bool
    /= :: PrintQuality -> PrintQuality -> Bool
    Eq,Int -> PrintQuality -> ShowS
    [PrintQuality] -> ShowS
    PrintQuality -> String
    (Int -> PrintQuality -> ShowS)
    -> (PrintQuality -> String)
    -> ([PrintQuality] -> ShowS)
    -> Show PrintQuality
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PrintQuality -> ShowS
    showsPrec :: Int -> PrintQuality -> ShowS
    $cshow :: PrintQuality -> String
    show :: PrintQuality -> String
    $cshowList :: [PrintQuality] -> ShowS
    showList :: [PrintQuality] -> ShowS
    Show)

    {-# LINE 164 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    data PrintDuplex = PrintDuplexSimplex
                     | PrintDuplexHorizontal
                     | PrintDuplexVertical
                     deriving (Enum,Bounded,Eq,Show)

    {-# LINE 166 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    data PrintPages = PrintPagesAll
                    | PrintPagesCurrent
                    | PrintPagesRanges
                    | PrintPagesSelection
                    deriving (Int -> PrintPages
    PrintPages -> Int
    PrintPages -> [PrintPages]
    PrintPages -> PrintPages
    PrintPages -> PrintPages -> [PrintPages]
    PrintPages -> PrintPages -> PrintPages -> [PrintPages]
    (PrintPages -> PrintPages)
    -> (PrintPages -> PrintPages)
    -> (Int -> PrintPages)
    -> (PrintPages -> Int)
    -> (PrintPages -> [PrintPages])
    -> (PrintPages -> PrintPages -> [PrintPages])
    -> (PrintPages -> PrintPages -> [PrintPages])
    -> (PrintPages -> PrintPages -> PrintPages -> [PrintPages])
    -> Enum PrintPages
    forall a.
    (a -> a)
    -> (a -> a)
    -> (Int -> a)
    -> (a -> Int)
    -> (a -> [a])
    -> (a -> a -> [a])
    -> (a -> a -> [a])
    -> (a -> a -> a -> [a])
    -> Enum a
    $csucc :: PrintPages -> PrintPages
    succ :: PrintPages -> PrintPages
    $cpred :: PrintPages -> PrintPages
    pred :: PrintPages -> PrintPages
    $ctoEnum :: Int -> PrintPages
    toEnum :: Int -> PrintPages
    $cfromEnum :: PrintPages -> Int
    fromEnum :: PrintPages -> Int
    $cenumFrom :: PrintPages -> [PrintPages]
    enumFrom :: PrintPages -> [PrintPages]
    $cenumFromThen :: PrintPages -> PrintPages -> [PrintPages]
    enumFromThen :: PrintPages -> PrintPages -> [PrintPages]
    $cenumFromTo :: PrintPages -> PrintPages -> [PrintPages]
    enumFromTo :: PrintPages -> PrintPages -> [PrintPages]
    $cenumFromThenTo :: PrintPages -> PrintPages -> PrintPages -> [PrintPages]
    enumFromThenTo :: PrintPages -> PrintPages -> PrintPages -> [PrintPages]
    Enum,PrintPages
    PrintPages -> PrintPages -> Bounded PrintPages
    forall a. a -> a -> Bounded a
    $cminBound :: PrintPages
    minBound :: PrintPages
    $cmaxBound :: PrintPages
    maxBound :: PrintPages
    Bounded,PrintPages -> PrintPages -> Bool
    (PrintPages -> PrintPages -> Bool)
    -> (PrintPages -> PrintPages -> Bool) -> Eq PrintPages
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: PrintPages -> PrintPages -> Bool
    == :: PrintPages -> PrintPages -> Bool
    $c/= :: PrintPages -> PrintPages -> Bool
    /= :: PrintPages -> PrintPages -> Bool
    Eq,Int -> PrintPages -> ShowS
    [PrintPages] -> ShowS
    PrintPages -> String
    (Int -> PrintPages -> ShowS)
    -> (PrintPages -> String)
    -> ([PrintPages] -> ShowS)
    -> Show PrintPages
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> PrintPages -> ShowS
    showsPrec :: Int -> PrintPages -> ShowS
    $cshow :: PrintPages -> String
    show :: PrintPages -> String
    $cshowList :: [PrintPages] -> ShowS
    showList :: [PrintPages] -> ShowS
    Show)

    {-# LINE 168 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    data PageSet = PageSetAll
                 | PageSetEven
                 | PageSetOdd
                 deriving (Enum,Bounded,Eq,Show)

    {-# LINE 170 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    -- | Used to determine the layout of pages on a sheet when printing multiple pages per sheet.
    data NumberUpLayout = NumberUpLayoutLeftToRightTopToBottom
                        | NumberUpLayoutLeftToRightBottomToTop
                        | NumberUpLayoutRightToLeftTopToBottom
                        | NumberUpLayoutRightToLeftBottomToTop
                        | NumberUpLayoutTopToBottomLeftToRight
                        | NumberUpLayoutTopToBottomRightToLeft
                        | NumberUpLayoutBottomToTopLeftToRight
                        | NumberUpLayoutBottomToTopRightToLeft
                        deriving (Enum,Bounded,Eq,Show)

    {-# LINE 174 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    --------------------
    -- Constructors

    -- | Creates a new 'PrintSettings' object.
    --
    printSettingsNew :: IO PrintSettings
    printSettingsNew =
      wrapNewGObject mkPrintSettings $
      gtk_print_settings_new
    {-# LINE 185 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    -- | Reads the print settings from @fileName@. Returns a new 'PrintSettings'
    -- object with the restored settings.
    --
    -- * Available since Gtk+ version 2.12
    --
    printSettingsNewFromFile :: GlibFilePath fp
     => fp -- ^ @fileName@ - the filename to read the settings from
     -> IO PrintSettings
    printSettingsNewFromFile :: forall fp. GlibFilePath fp => fp -> IO PrintSettings
    printSettingsNewFromFile fp
    fileName =
      (ForeignPtr PrintSettings -> PrintSettings,
     FinalizerPtr PrintSettings)
    -> IO (Ptr PrintSettings) -> IO PrintSettings
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    wrapNewGObject (ForeignPtr PrintSettings -> PrintSettings,
     FinalizerPtr PrintSettings)
    forall {a}.
    (ForeignPtr PrintSettings -> PrintSettings, FinalizerPtr a)
    mkPrintSettings (IO (Ptr PrintSettings) -> IO PrintSettings)
    -> IO (Ptr PrintSettings) -> IO PrintSettings
    forall a b. (a -> b) -> a -> b
    $
      (Ptr (Ptr ()) -> IO (Ptr PrintSettings)) -> IO (Ptr PrintSettings)
    forall a. (Ptr (Ptr ()) -> IO a) -> IO a
    propagateGError ((Ptr (Ptr ()) -> IO (Ptr PrintSettings))
     -> IO (Ptr PrintSettings))
    -> (Ptr (Ptr ()) -> IO (Ptr PrintSettings))
    -> IO (Ptr PrintSettings)
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr ())
    errorPtr ->
      fp -> (CString -> IO (Ptr PrintSettings)) -> IO (Ptr PrintSettings)
    forall a. fp -> (CString -> IO a) -> IO a
    forall fp a. GlibFilePath fp => fp -> (CString -> IO a) -> IO a
    withUTFFilePath fp
    fileName ((CString -> IO (Ptr PrintSettings)) -> IO (Ptr PrintSettings))
    -> (CString -> IO (Ptr PrintSettings)) -> IO (Ptr PrintSettings)
    forall a b. (a -> b) -> a -> b
    $ \CString
    fileNamePtr ->
      CString -> Ptr (Ptr ()) -> IO (Ptr PrintSettings)
    gtk_print_settings_new_from_file
    {-# LINE 200 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
            CString
    fileNamePtr
            Ptr (Ptr ())
    errorPtr

    --------------------
    -- Methods

    -- | Copies a 'PrintSettings' object.
    --
    printSettingsCopy :: PrintSettingsClass self => self
     -> IO PrintSettings -- ^ returns a newly allocated copy of @other@
    printSettingsCopy :: forall self. PrintSettingsClass self => self -> IO PrintSettings
    printSettingsCopy self
    self =
      (ForeignPtr PrintSettings -> PrintSettings,
     FinalizerPtr PrintSettings)
    -> IO (Ptr PrintSettings) -> IO PrintSettings
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    wrapNewGObject (ForeignPtr PrintSettings -> PrintSettings,
     FinalizerPtr PrintSettings)
    forall {a}.
    (ForeignPtr PrintSettings -> PrintSettings, FinalizerPtr a)
    mkPrintSettings (IO (Ptr PrintSettings) -> IO PrintSettings)
    -> IO (Ptr PrintSettings) -> IO PrintSettings
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO (Ptr PrintSettings))
    -> IO (Ptr PrintSettings)
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO (Ptr PrintSettings))
     -> IO (Ptr PrintSettings))
    -> (Ptr PrintSettings -> IO (Ptr PrintSettings))
    -> IO (Ptr PrintSettings)
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO (Ptr PrintSettings)
    gtk_print_settings_copy Ptr PrintSettings
    argPtr1)
    {-# LINE 215 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Returns @True@, if a value is associated with @key@.
    --
    printSettingsHasKey :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> IO Bool -- ^ returns @True@, if @key@ has a value
    printSettingsHasKey :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO Bool
    printSettingsHasKey self
    self string
    key =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO CInt
    gtk_print_settings_has_key Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 226 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr

    -- | Looks up the string value associated with @key@.
    --
    printSettingsGet :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> IO string -- ^ returns the string value for @key@
    printSettingsGet :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO string
    printSettingsGet self
    self string
    key =
      string -> (CString -> IO string) -> IO string
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO string) -> IO string)
    -> (CString -> IO string) -> IO string
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CString) -> IO CString)
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO CString
    gtk_print_settings_get Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 237 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Associates @value@ with @key@.
    --
    printSettingsSet :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> string -- ^ @value@ - a string value
     -> IO ()
    printSettingsSet :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> string -> IO ()
    printSettingsSet self
    self string
    key string
    value =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    value ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    valuePtr ->
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CString
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CString -> IO ()
    gtk_print_settings_set Ptr PrintSettings
    argPtr1 CString
    arg2 CString
    arg3)
    {-# LINE 251 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        CString
    valuePtr

    -- | Removes any value associated with @key@
    --
    printSettingsUnset :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> IO ()
    printSettingsUnset :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsUnset self
    self string
    key =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO ()
    gtk_print_settings_unset Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 263 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr

    -- | Calls @func@ for each key-value pair of @settings@.
    --
    printSettingsForeach :: PrintSettingsClass self => self
     -> (String -> IO ()) -- ^ @func@ - the function to call
     -> IO ()
    printSettingsForeach :: forall self.
    PrintSettingsClass self =>
    self -> (String -> IO ()) -> IO ()
    printSettingsForeach self
    self String -> IO ()
    func = do
      funcPtr <- (CString -> CString -> Ptr () -> IO ()) -> IO PrintSettingsFunc
    mkPrintSettingsFunc ((CString -> CString -> Ptr () -> IO ()) -> IO PrintSettingsFunc)
    -> (CString -> CString -> Ptr () -> IO ()) -> IO PrintSettingsFunc
    forall a b. (a -> b) -> a -> b
    $ \CString
    _ CString
    strPtr Ptr ()
    _ -> do
        str <- CString -> IO String
    peekCString CString
    strPtr
        func str
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) PrintSettingsFunc
    arg2 Ptr ()
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> PrintSettingsFunc -> Ptr () -> IO ()
    gtk_print_settings_foreach Ptr PrintSettings
    argPtr1 PrintSettingsFunc
    arg2 Ptr ()
    arg3)
    {-# LINE 276 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        funcPtr
        (castFunPtrToPtr funcPtr)

    type PrintSettingsFunc = FunPtr (((Ptr CChar) -> ((Ptr CChar) -> ((Ptr ()) -> (IO ())))))
    {-# LINE 281 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}

    foreign import ccall "wrapper" mkPrintSettingsFunc ::
      (CString -> CString -> Ptr () -> IO ())
      -> IO PrintSettingsFunc

    -- | Returns the boolean represented by the value that is associated with
    -- @key@.
    --
    -- The string \"true\" represents @True@, any other string @False@.
    --
    printSettingsGetBool :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> IO Bool -- ^ returns @True@, if @key@ maps to a true value.
    printSettingsGetBool :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO Bool
    printSettingsGetBool self
    self string
    key =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO CInt
    gtk_print_settings_get_bool Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 298 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr

    -- | Sets @key@ to a boolean value.
    --
    printSettingsSetBool :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> Bool -- ^ @value@ - a boolean
     -> IO ()
    printSettingsSetBool :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> Bool -> IO ()
    printSettingsSetBool self
    self string
    key Bool
    value =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CInt
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CInt -> IO ()
    gtk_print_settings_set_bool Ptr PrintSettings
    argPtr1 CString
    arg2 CInt
    arg3)
    {-# LINE 310 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    value)

    -- | Returns the double value associated with @key@, or 0.
    --
    printSettingsGetDouble :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> IO Double -- ^ returns the double value of @key@
    printSettingsGetDouble :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO Double
    printSettingsGetDouble self
    self string
    key =
      (CDouble -> Double) -> IO CDouble -> IO Double
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CDouble -> Double
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CDouble -> IO Double) -> IO CDouble -> IO Double
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CDouble) -> IO CDouble
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO CDouble) -> IO CDouble)
    -> (CString -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CDouble) -> IO CDouble)
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO CDouble
    gtk_print_settings_get_double Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 323 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr

    -- | 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 'gAsciiStrtod'.
    --
    printSettingsGetDoubleWithDefault :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> Double -- ^ @def@ - the default value
     -> IO Double -- ^ returns the floating point number associated with @key@
    printSettingsGetDoubleWithDefault :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> Double -> IO Double
    printSettingsGetDoubleWithDefault self
    self string
    key Double
    def =
      (CDouble -> Double) -> IO CDouble -> IO Double
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CDouble -> Double
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CDouble -> IO Double) -> IO CDouble -> IO Double
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CDouble) -> IO CDouble
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO CDouble) -> IO CDouble)
    -> (CString -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CDouble
    arg3 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CDouble) -> IO CDouble)
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CDouble -> IO CDouble
    gtk_print_settings_get_double_with_default Ptr PrintSettings
    argPtr1 CString
    arg2 CDouble
    arg3)
    {-# LINE 340 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        (Double -> CDouble
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Double
    def)

    -- | Sets @key@ to a double value.
    --
    printSettingsSetDouble :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> Double -- ^ @value@ - a double value
     -> IO ()
    printSettingsSetDouble :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> Double -> IO ()
    printSettingsSetDouble self
    self string
    key Double
    value =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CDouble
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CDouble -> IO ()
    gtk_print_settings_set_double Ptr PrintSettings
    argPtr1 CString
    arg2 CDouble
    arg3)
    {-# LINE 353 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        (Double -> CDouble
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Double
    value)

    -- | Returns the value associated with @key@, interpreted as a length. The
    -- returned value is converted to @units@.
    --
    printSettingsGetLength :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> Unit -- ^ @unit@ - the unit of the return value
     -> IO Double -- ^ returns the length value of @key@, converted to @unit@
    printSettingsGetLength :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> Unit -> IO Double
    printSettingsGetLength self
    self string
    key Unit
    unit =
      (CDouble -> Double) -> IO CDouble -> IO Double
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CDouble -> Double
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CDouble -> IO Double) -> IO CDouble -> IO Double
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CDouble) -> IO CDouble
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO CDouble) -> IO CDouble)
    -> (CString -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CInt
    arg3 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CDouble) -> IO CDouble)
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CInt -> IO CDouble
    gtk_print_settings_get_length Ptr PrintSettings
    argPtr1 CString
    arg2 CInt
    arg3)
    {-# LINE 368 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (Unit -> Int) -> Unit -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Unit -> Int
    forall a. Enum a => a -> Int
    fromEnum) Unit
    unit)

    -- | Associates a length in units of @unit@ with @key@.
    --
    printSettingsSetLength :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> Double -- ^ @value@ - a length
     -> Unit -- ^ @unit@ - the unit of @length@
     -> IO ()
    printSettingsSetLength :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> Double -> Unit -> IO ()
    printSettingsSetLength self
    self string
    key Double
    value Unit
    unit =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CDouble
    arg3 CInt
    arg4 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CDouble -> CInt -> IO ()
    gtk_print_settings_set_length Ptr PrintSettings
    argPtr1 CString
    arg2 CDouble
    arg3 CInt
    arg4)
    {-# LINE 382 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        (Double -> CDouble
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Double
    value)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (Unit -> Int) -> Unit -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Unit -> Int
    forall a. Enum a => a -> Int
    fromEnum) Unit
    unit)

    -- | Returns the integer value of @key@, or 0.
    --
    printSettingsGetInt :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> IO Int -- ^ returns the integer value of @key@
    printSettingsGetInt :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO Int
    printSettingsGetInt self
    self string
    key =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO CInt
    gtk_print_settings_get_int Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 396 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr

    -- | Returns the value of @key@, interpreted as an integer, or the default
    -- value.
    --
    printSettingsGetIntWithDefault :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> Int -- ^ @def@ - the default value
     -> IO Int -- ^ returns the integer value of @key@
    printSettingsGetIntWithDefault :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> Int -> IO Int
    printSettingsGetIntWithDefault self
    self string
    key Int
    def =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CInt
    arg3 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CInt -> IO CInt
    gtk_print_settings_get_int_with_default Ptr PrintSettings
    argPtr1 CString
    arg2 CInt
    arg3)
    {-# LINE 410 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    def)

    -- | Sets @key@ to an integer value.
    --
    printSettingsSetInt :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @key@ - a key
     -> Int -- ^ @value@ - an integer
     -> IO ()
    printSettingsSetInt :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> Int -> IO ()
    printSettingsSetInt self
    self string
    key Int
    value =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    key ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    keyPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 CInt
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> CInt -> IO ()
    gtk_print_settings_set_int Ptr PrintSettings
    argPtr1 CString
    arg2 CInt
    arg3)
    {-# LINE 423 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    keyPtr
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    value)

    -- | Convenience function to obtain the value of ''PrintSettingsPrinter''.
    printSettingsGetPrinter :: (PrintSettingsClass self, GlibString string) => self
     -> IO string -- ^ returns the printer name
    printSettingsGetPrinter :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetPrinter self
    self =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CString) -> IO CString)
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CString
    gtk_print_settings_get_printer Ptr PrintSettings
    argPtr1)
    {-# LINE 432 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Convenience function to obtain the value of ''PrintSettingsPrinter''.
    printSettingsSetPrinter :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @printer@ - the printer name
     -> IO ()
    printSettingsSetPrinter :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetPrinter self
    self string
    printer =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    printer ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    printerPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO ()
    gtk_print_settings_set_printer Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 442 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    printerPtr

    -- | Get the value of ''PrintSettingsOrientation'', converted to a 'PageOrientation'.
    printSettingsGetOrientation :: PrintSettingsClass self => self
     -> IO PageOrientation -- ^ returns the orientation
    printSettingsGetOrientation :: forall self. PrintSettingsClass self => self -> IO PageOrientation
    printSettingsGetOrientation self
    self =
      (CInt -> PageOrientation) -> IO CInt -> IO PageOrientation
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> PageOrientation
    forall a. Enum a => Int -> a
    toEnum (Int -> PageOrientation)
    -> (CInt -> Int) -> CInt -> PageOrientation
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO PageOrientation) -> IO CInt -> IO PageOrientation
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_orientation Ptr PrintSettings
    argPtr1)
    {-# LINE 451 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of ''PrintSettingsOrientation''.
    printSettingsSetOrientation :: PrintSettingsClass self => self
     -> PageOrientation -- ^ @orientation@ - a page orientation
     -> IO ()
    printSettingsSetOrientation :: forall self.
    PrintSettingsClass self =>
    self -> PageOrientation -> IO ()
    printSettingsSetOrientation self
    self PageOrientation
    orientation =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_orientation Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 459 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt)
    -> (PageOrientation -> Int) -> PageOrientation -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . PageOrientation -> Int
    forall a. Enum a => a -> Int
    fromEnum) PageOrientation
    orientation)

    -- | Gets the value of 'PrintSettingsPaperFormat', converted to a 'PaperSize'.
    printSettingsGetPaperSize :: PrintSettingsClass self => self
     -> IO PaperSize -- ^ returns the paper size
    printSettingsGetPaperSize :: forall self. PrintSettingsClass self => self -> IO PaperSize
    printSettingsGetPaperSize self
    self =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO (Ptr ())) -> IO (Ptr ()))
    -> (Ptr PrintSettings -> IO (Ptr ())) -> IO (Ptr ())
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO (Ptr ())
    gtk_print_settings_get_paper_size Ptr PrintSettings
    argPtr1)
    {-# LINE 467 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
                (self -> PrintSettings
    forall o. PrintSettingsClass o => o -> PrintSettings
    toPrintSettings self
    self)
      IO (Ptr ()) -> (Ptr () -> IO PaperSize) -> IO PaperSize
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= Ptr PaperSize -> IO PaperSize
    mkPaperSize (Ptr PaperSize -> IO PaperSize)
    -> (Ptr () -> Ptr PaperSize) -> Ptr () -> IO PaperSize
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Ptr () -> Ptr PaperSize
    forall a b. Ptr a -> Ptr b
    castPtr

    -- | Sets the value of 'PrintSettingsPaperFormat', 'PrintSettingsPaperWidth' and
    -- 'PrintSettingsPaperHeight'.
    printSettingsSetPaperSize :: PrintSettingsClass self => self
     -> PaperSize -- ^ @paperSize@ - a paper size
     -> IO ()
    printSettingsSetPaperSize :: forall self. PrintSettingsClass self => self -> PaperSize -> IO ()
    printSettingsSetPaperSize self
    self (PaperSize ForeignPtr PaperSize
    paperSize) =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) Ptr ()
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> Ptr () -> IO ()
    gtk_print_settings_set_paper_size Ptr PrintSettings
    argPtr1 Ptr ()
    arg2)
    {-# LINE 477 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Ptr PaperSize -> Ptr ()
    forall a b. Ptr a -> Ptr b
    castPtr (Ptr PaperSize -> Ptr ()) -> Ptr PaperSize -> Ptr ()
    forall a b. (a -> b) -> a -> b
    $ ForeignPtr PaperSize -> Ptr PaperSize
    forall a. ForeignPtr a -> Ptr a
    unsafeForeignPtrToPtr (ForeignPtr PaperSize -> Ptr PaperSize)
    -> ForeignPtr PaperSize -> Ptr PaperSize
    forall a b. (a -> b) -> a -> b
    $ ForeignPtr PaperSize
    paperSize)

    -- | Gets the value of 'PrintSettingsPaperWidth', converted to unit.
    --
    printSettingsGetPaperWidth :: PrintSettingsClass self => self
     -> Unit -- ^ @unit@ - the unit for the return value
     -> IO Double -- ^ returns the paper width, in units of @unit@
    printSettingsGetPaperWidth :: forall self. PrintSettingsClass self => self -> Unit -> IO Double
    printSettingsGetPaperWidth self
    self Unit
    unit =
      (CDouble -> Double) -> IO CDouble -> IO Double
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CDouble -> Double
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CDouble -> IO Double) -> IO CDouble -> IO Double
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CDouble) -> IO CDouble)
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO CDouble
    gtk_print_settings_get_paper_width Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 488 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (Unit -> Int) -> Unit -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Unit -> Int
    forall a. Enum a => a -> Int
    fromEnum) Unit
    unit)

    -- | Sets the value of 'PrintSettingsPaperWidth'.
    --
    printSettingsSetPaperWidth :: PrintSettingsClass self => self
     -> Double -- ^ @width@ - the paper width
     -> Unit -- ^ @unit@ - the units of @width@
     -> IO ()
    printSettingsSetPaperWidth :: forall self.
    PrintSettingsClass self =>
    self -> Double -> Unit -> IO ()
    printSettingsSetPaperWidth self
    self Double
    width Unit
    unit =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CDouble
    arg2 CInt
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CDouble -> CInt -> IO ()
    gtk_print_settings_set_paper_width Ptr PrintSettings
    argPtr1 CDouble
    arg2 CInt
    arg3)
    {-# LINE 499 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Double -> CDouble
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Double
    width)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (Unit -> Int) -> Unit -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Unit -> Int
    forall a. Enum a => a -> Int
    fromEnum) Unit
    unit)

    -- | Gets the value of 'PrintSettingsPaperHeight', converted to unit.
    --
    printSettingsGetPaperHeight :: PrintSettingsClass self => self
     -> Unit -- ^ @unit@ - the unit for the return value
     -> IO Double -- ^ returns the paper height, in units of @unit@
    printSettingsGetPaperHeight :: forall self. PrintSettingsClass self => self -> Unit -> IO Double
    printSettingsGetPaperHeight self
    self Unit
    unit =
      (CDouble -> Double) -> IO CDouble -> IO Double
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CDouble -> Double
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CDouble -> IO Double) -> IO CDouble -> IO Double
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CDouble) -> IO CDouble)
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO CDouble
    gtk_print_settings_get_paper_height Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 511 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (Unit -> Int) -> Unit -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Unit -> Int
    forall a. Enum a => a -> Int
    fromEnum) Unit
    unit)

    -- | Sets the value of 'PrintSettingsPaperHeight'.
    --
    printSettingsSetPaperHeight :: PrintSettingsClass self => self
     -> Double -- ^ @height@ - the paper height
     -> Unit -- ^ @unit@ - the units of @height@
     -> IO ()
    printSettingsSetPaperHeight :: forall self.
    PrintSettingsClass self =>
    self -> Double -> Unit -> IO ()
    printSettingsSetPaperHeight self
    self Double
    height Unit
    unit =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CDouble
    arg2 CInt
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CDouble -> CInt -> IO ()
    gtk_print_settings_set_paper_height Ptr PrintSettings
    argPtr1 CDouble
    arg2 CInt
    arg3)
    {-# LINE 522 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Double -> CDouble
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Double
    height)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (Unit -> Int) -> Unit -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . Unit -> Int
    forall a. Enum a => a -> Int
    fromEnum) Unit
    unit)

    -- | Gets the value of ''PrintSettingsUseColor''.
    printSettingsGetUseColor :: PrintSettingsClass self => self
     -> IO Bool -- ^ returns whether to use color
    printSettingsGetUseColor :: forall self. PrintSettingsClass self => self -> IO Bool
    printSettingsGetUseColor self
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_use_color Ptr PrintSettings
    argPtr1)
    {-# LINE 532 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of ''PrintSettingsUseColor''.
    printSettingsSetUseColor :: PrintSettingsClass self => self
     -> Bool -- ^ @useColor@ - whether to use color
     -> IO ()
    printSettingsSetUseColor :: forall self. PrintSettingsClass self => self -> Bool -> IO ()
    printSettingsSetUseColor self
    self Bool
    useColor =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_use_color Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 540 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    useColor)

    -- | Gets the value of ''PrintSettingsCollate''.
    printSettingsGetCollate :: PrintSettingsClass self => self
     -> IO Bool -- ^ returns whether to collate the printed pages
    printSettingsGetCollate :: forall self. PrintSettingsClass self => self -> IO Bool
    printSettingsGetCollate self
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_collate Ptr PrintSettings
    argPtr1)
    {-# LINE 549 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of ''PrintSettingsCollate''.
    printSettingsSetCollate :: PrintSettingsClass self => self
     -> Bool -- ^ @collate@ - whether to collate the output
     -> IO ()
    printSettingsSetCollate :: forall self. PrintSettingsClass self => self -> Bool -> IO ()
    printSettingsSetCollate self
    self Bool
    collate =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_collate Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 557 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    collate)

    -- | Gets the value of ''PrintSettingsReverse''.
    printSettingsGetReverse :: PrintSettingsClass self => self
     -> IO Bool -- ^ returns whether to reverse the order of the printed pages
    printSettingsGetReverse :: forall self. PrintSettingsClass self => self -> IO Bool
    printSettingsGetReverse self
    self =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_reverse Ptr PrintSettings
    argPtr1)
    {-# LINE 566 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of ''PrintSettingsReverse''.
    printSettingsSetReverse :: PrintSettingsClass self => self
     -> Bool -- ^ @reverse@ - whether to reverse the output
     -> IO ()
    printSettingsSetReverse :: forall self. PrintSettingsClass self => self -> Bool -> IO ()
    printSettingsSetReverse self
    self Bool
    reverse =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_reverse Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 574 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Bool -> CInt
    forall a. Num a => Bool -> a
    fromBool Bool
    reverse)

    -- | Gets the value of ''PrintSettingsDuplex''.
    printSettingsGetDuplex :: PrintSettingsClass self => self
     -> IO PrintDuplex -- ^ returns whether to print the output in duplex.
    printSettingsGetDuplex :: forall self. PrintSettingsClass self => self -> IO PrintDuplex
    printSettingsGetDuplex self
    self =
      (CInt -> PrintDuplex) -> IO CInt -> IO PrintDuplex
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> PrintDuplex
    forall a. Enum a => Int -> a
    toEnum (Int -> PrintDuplex) -> (CInt -> Int) -> CInt -> PrintDuplex
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO PrintDuplex) -> IO CInt -> IO PrintDuplex
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_duplex Ptr PrintSettings
    argPtr1)
    {-# LINE 583 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsDuplex'.
    printSettingsSetDuplex :: PrintSettingsClass self => self
     -> PrintDuplex -- ^ @duplex@ - a 'PrintDuplex' value
     -> IO ()
    printSettingsSetDuplex :: forall self.
    PrintSettingsClass self =>
    self -> PrintDuplex -> IO ()
    printSettingsSetDuplex self
    self PrintDuplex
    duplex =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_duplex Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 591 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (PrintDuplex -> Int) -> PrintDuplex -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . PrintDuplex -> Int
    forall a. Enum a => a -> Int
    fromEnum) PrintDuplex
    duplex)

    -- | Gets the value of 'PrintSettingsQuality'.
    printSettingsGetQuality :: PrintSettingsClass self => self
     -> IO PrintQuality -- ^ returns the print quality
    printSettingsGetQuality :: forall self. PrintSettingsClass self => self -> IO PrintQuality
    printSettingsGetQuality self
    self =
      (CInt -> PrintQuality) -> IO CInt -> IO PrintQuality
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> PrintQuality
    forall a. Enum a => Int -> a
    toEnum (Int -> PrintQuality) -> (CInt -> Int) -> CInt -> PrintQuality
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO PrintQuality) -> IO CInt -> IO PrintQuality
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_quality Ptr PrintSettings
    argPtr1)
    {-# LINE 600 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsQuality'.
    printSettingsSetQuality :: PrintSettingsClass self => self
     -> PrintQuality -- ^ @quality@ - a 'PrintQuality' value
     -> IO ()
    printSettingsSetQuality :: forall self.
    PrintSettingsClass self =>
    self -> PrintQuality -> IO ()
    printSettingsSetQuality self
    self PrintQuality
    quality =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_quality Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 608 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (PrintQuality -> Int) -> PrintQuality -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . PrintQuality -> Int
    forall a. Enum a => a -> Int
    fromEnum) PrintQuality
    quality)

    -- | Gets the value of 'PrintSettingsNCopies'.
    printSettingsGetNCopies :: PrintSettingsClass self => self
     -> IO Int -- ^ returns the number of copies to print
    printSettingsGetNCopies :: forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetNCopies self
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_n_copies Ptr PrintSettings
    argPtr1)
    {-# LINE 617 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsNCopies'.
    printSettingsSetNCopies :: PrintSettingsClass self => self
     -> Int -- ^ @numCopies@ - the number of copies
     -> IO ()
    printSettingsSetNCopies :: forall self. PrintSettingsClass self => self -> Int -> IO ()
    printSettingsSetNCopies self
    self Int
    numCopies =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_n_copies Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 625 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    numCopies)

    -- | Gets the value of 'PrintSettingsNumberUp'.
    printSettingsGetNumberUp :: PrintSettingsClass self => self
     -> IO Int -- ^ returns the number of pages per sheet
    printSettingsGetNumberUp :: forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetNumberUp self
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_number_up Ptr PrintSettings
    argPtr1)
    {-# LINE 634 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsNumberUp'.
    printSettingsSetNumberUp :: PrintSettingsClass self => self
     -> Int -- ^ @numberUp@ - the number of pages per sheet
     -> IO ()
    printSettingsSetNumberUp :: forall self. PrintSettingsClass self => self -> Int -> IO ()
    printSettingsSetNumberUp self
    self Int
    numberUp =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_number_up Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 642 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    numberUp)

    -- | Gets the value of 'PrintSettingsNumberUpLayout'.
    printSettingsGetNumberUpLayout :: PrintSettingsClass self => self
     -> IO NumberUpLayout -- ^ returns layout of page in number-up mode
    printSettingsGetNumberUpLayout :: forall self. PrintSettingsClass self => self -> IO NumberUpLayout
    printSettingsGetNumberUpLayout self
    self =
      (CInt -> NumberUpLayout) -> IO CInt -> IO NumberUpLayout
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> NumberUpLayout
    forall a. Enum a => Int -> a
    toEnum (Int -> NumberUpLayout) -> (CInt -> Int) -> CInt -> NumberUpLayout
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO NumberUpLayout) -> IO CInt -> IO NumberUpLayout
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_number_up_layout Ptr PrintSettings
    argPtr1)
    {-# LINE 652 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsNumberUpLayout'.
    printSettingsSetNumberUpLayout :: PrintSettingsClass self => self
     -> NumberUpLayout -- ^ @numberUpLayout@ - a 'NumberUpLayout' value
     -> IO ()
    printSettingsSetNumberUpLayout :: forall self.
    PrintSettingsClass self =>
    self -> NumberUpLayout -> IO ()
    printSettingsSetNumberUpLayout self
    self NumberUpLayout
    numberUpLayout =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_number_up_layout Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 660 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (NumberUpLayout -> Int) -> NumberUpLayout -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . NumberUpLayout -> Int
    forall a. Enum a => a -> Int
    fromEnum) NumberUpLayout
    numberUpLayout)

    -- | Gets the value of 'PrintSettingsResolution'.
    printSettingsGetResolution :: PrintSettingsClass self => self
     -> IO Int -- ^ returns the resolution in dpi
    printSettingsGetResolution :: forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetResolution self
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_resolution Ptr PrintSettings
    argPtr1)
    {-# LINE 670 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the values of 'PrintSettingsResolution', 'PrintSettingsResolutionX' and
    -- 'PrintSettingsResolutionY'.
    printSettingsSetResolution :: PrintSettingsClass self => self
     -> Int -- ^ @resolution@ - the resolution in dpi
     -> IO ()
    printSettingsSetResolution :: forall self. PrintSettingsClass self => self -> Int -> IO ()
    printSettingsSetResolution self
    self Int
    resolution =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_resolution Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 679 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    resolution)

    -- | Sets the values of 'PrintSettingsResolution', 'PrintSettingsResolutionX' and
    -- 'PrintSettingsResolutionY'.
    --
    -- * Available since Gtk+ version 2.16
    --
    printSettingsSetResolutionXy :: PrintSettingsClass self => self
     -> Int -- ^ @resolutionX@ - the horizontal resolution in dpi
     -> Int -- ^ @resolutionY@ - the vertical resolution in dpi
     -> IO ()
    printSettingsSetResolutionXy :: forall self. PrintSettingsClass self => self -> Int -> Int -> IO ()
    printSettingsSetResolutionXy self
    self Int
    resolutionX Int
    resolutionY =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 CInt
    arg3 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> CInt -> IO ()
    gtk_print_settings_set_resolution_xy Ptr PrintSettings
    argPtr1 CInt
    arg2 CInt
    arg3)
    {-# LINE 694 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    resolutionX)
        (Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral Int
    resolutionY)

    -- | Gets the value of @"resolution-x"@.
    --
    -- * Available since Gtk+ version 2.16
    --
    printSettingsGetResolutionX :: PrintSettingsClass self => self
     -> IO Int -- ^ returns the horizontal resolution in dpi
    printSettingsGetResolutionX :: forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetResolutionX self
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_resolution_x Ptr PrintSettings
    argPtr1)
    {-# LINE 707 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Gets the value of @"resolution-y"@.
    --
    -- * Available since Gtk+ version 2.16
    --
    printSettingsGetResolutionY :: PrintSettingsClass self => self
     -> IO Int -- ^ returns the vertical resolution in dpi
    printSettingsGetResolutionY :: forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetResolutionY self
    self =
      (CInt -> Int) -> IO CInt -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (IO CInt -> IO Int) -> IO CInt -> IO Int
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_resolution_y Ptr PrintSettings
    argPtr1)
    {-# LINE 718 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Gets the value of 'PrintSettingsPrinterLpi'.
    printSettingsGetPrinterLpi :: PrintSettingsClass self => self
     -> IO Double -- ^ returns the resolution in lpi (lines per inch)
    printSettingsGetPrinterLpi :: forall self. PrintSettingsClass self => self -> IO Double
    printSettingsGetPrinterLpi self
    self =
      (CDouble -> Double) -> IO CDouble -> IO Double
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CDouble -> Double
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CDouble -> IO Double) -> IO CDouble -> IO Double
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CDouble) -> IO CDouble)
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CDouble
    gtk_print_settings_get_printer_lpi Ptr PrintSettings
    argPtr1)
    {-# LINE 726 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsPrinterLpi'.
    printSettingsSetPrinterLpi :: PrintSettingsClass self => self
     -> Double -- ^ @lpi@ - the resolution in lpi (lines per inch)
     -> IO ()
    printSettingsSetPrinterLpi :: forall self. PrintSettingsClass self => self -> Double -> IO ()
    printSettingsSetPrinterLpi self
    self Double
    lpi =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CDouble
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CDouble -> IO ()
    gtk_print_settings_set_printer_lpi Ptr PrintSettings
    argPtr1 CDouble
    arg2)
    {-# LINE 734 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Double -> CDouble
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Double
    lpi)

    -- | Gets the value of 'PrintSettingsScale'.
    printSettingsGetScale :: PrintSettingsClass self => self
     -> IO Double -- ^ returns the scale in percent
    printSettingsGetScale :: forall self. PrintSettingsClass self => self -> IO Double
    printSettingsGetScale self
    self =
      (CDouble -> Double) -> IO CDouble -> IO Double
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CDouble -> Double
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac (IO CDouble -> IO Double) -> IO CDouble -> IO Double
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CDouble) -> IO CDouble)
    -> (Ptr PrintSettings -> IO CDouble) -> IO CDouble
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CDouble
    gtk_print_settings_get_scale Ptr PrintSettings
    argPtr1)
    {-# LINE 744 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsScale'.
    printSettingsSetScale :: PrintSettingsClass self => self
     -> Double -- ^ @scale@ - the scale in percent
     -> IO ()
    printSettingsSetScale :: forall self. PrintSettingsClass self => self -> Double -> IO ()
    printSettingsSetScale self
    self Double
    scale =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CDouble
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CDouble -> IO ()
    gtk_print_settings_set_scale Ptr PrintSettings
    argPtr1 CDouble
    arg2)
    {-# LINE 752 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        (Double -> CDouble
    forall a b. (Real a, Fractional b) => a -> b
    realToFrac Double
    scale)

    -- | Gets the value of 'PrintSettingsPrintPages'.
    printSettingsGetPrintPages :: PrintSettingsClass self => self
     -> IO PrintPages -- ^ returns which pages to print
    printSettingsGetPrintPages :: forall self. PrintSettingsClass self => self -> IO PrintPages
    printSettingsGetPrintPages self
    self =
      (CInt -> PrintPages) -> IO CInt -> IO PrintPages
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> PrintPages
    forall a. Enum a => Int -> a
    toEnum (Int -> PrintPages) -> (CInt -> Int) -> CInt -> PrintPages
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO PrintPages) -> IO CInt -> IO PrintPages
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_print_pages Ptr PrintSettings
    argPtr1)
    {-# LINE 761 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsPrintPages'.
    printSettingsSetPrintPages :: PrintSettingsClass self => self
     -> PrintPages -- ^ @pages@ - a 'PrintPages' value
     -> IO ()
    printSettingsSetPrintPages :: forall self. PrintSettingsClass self => self -> PrintPages -> IO ()
    printSettingsSetPrintPages self
    self PrintPages
    pages =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_print_pages Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 769 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (PrintPages -> Int) -> PrintPages -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . PrintPages -> Int
    forall a. Enum a => a -> Int
    fromEnum) PrintPages
    pages)

    -- | Gets the value of 'PrintSettingsPageRanges'.
    --
    -- printSettingsGetPageRanges :: PrintSettingsClass self => self
    -- -> IO [PageRange] -- ^ returns an array of 'PageRange'.
    -- printSettingsGetPageRanges self =
    -- alloca $ \numRangesPtr -> do
    -- rangeListPtr <- {# call gtk_print_settings_get_page_ranges #}
    -- (toPrintSettings self)
    -- numRangesPtr
    -- rangeLen <- peek numRangesPtr
    -- ptrList <- peekArray (fromIntegral rangeLen) (castPtr rangeListPtr)
    -- rangeList <- mapM peek ptrList
    -- {#call unsafe g_free#} (castPtr rangeListPtr)
    -- return rangeList

    -- | Sets the value of @"page-ranges"@.
    --
    -- printSettingsSetPageRanges :: PrintSettingsClass self => self
    -- -> [PageRange] -- ^ @pageRanges@ - an array of 'PageRange'
    -- -> IO ()
    -- printSettingsSetPageRanges self rangeList =
    -- withArrayLen (concatMap (\(PageRange x y) -> [fromIntegral x, fromIntegral y]) rangeList)
    -- $ \rangeLen rangeListPtr ->
    -- {# call gtk_print_settings_set_page_ranges #}
    -- (toPrintSettings self)
    -- (castPtr rangeListPtr)
    -- (fromIntegral rangeLen)

    -- | Gets the value of 'PrintSettingsPageSet'.
    printSettingsGetPageSet :: PrintSettingsClass self => self
     -> IO PageSet -- ^ returns the set of pages to print
    printSettingsGetPageSet :: forall self. PrintSettingsClass self => self -> IO PageSet
    printSettingsGetPageSet self
    self =
      (CInt -> PageSet) -> IO CInt -> IO PageSet
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM (Int -> PageSet
    forall a. Enum a => Int -> a
    toEnum (Int -> PageSet) -> (CInt -> Int) -> CInt -> PageSet
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . CInt -> Int
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral) (IO CInt -> IO PageSet) -> IO CInt -> IO PageSet
    forall a b. (a -> b) -> a -> b
    $
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CInt
    gtk_print_settings_get_page_set Ptr PrintSettings
    argPtr1)
    {-# LINE 806 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)

    -- | Sets the value of 'PrintSettingsPageSet'.
    printSettingsSetPageSet :: PrintSettingsClass self => self
     -> PageSet -- ^ @pageSet@ - a 'PageSet' value
     -> IO ()
    printSettingsSetPageSet :: forall self. PrintSettingsClass self => self -> PageSet -> IO ()
    printSettingsSetPageSet self
    self PageSet
    pageSet =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CInt
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CInt -> IO ()
    gtk_print_settings_set_page_set Ptr PrintSettings
    argPtr1 CInt
    arg2)
    {-# LINE 814 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        ((Int -> CInt
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Int -> CInt) -> (PageSet -> Int) -> PageSet -> CInt
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . PageSet -> Int
    forall a. Enum a => a -> Int
    fromEnum) PageSet
    pageSet)

    -- | Gets the value of 'PrintSettingsDefaultSource'.
    printSettingsGetDefaultSource :: (PrintSettingsClass self, GlibString string) => self
     -> IO string -- ^ returns the default source
    printSettingsGetDefaultSource :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetDefaultSource self
    self =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CString) -> IO CString)
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CString
    gtk_print_settings_get_default_source Ptr PrintSettings
    argPtr1)
    {-# LINE 822 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Sets the value of 'PrintSettingsDefaultSource'.
    printSettingsSetDefaultSource :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @defaultSource@ - the default source
     -> IO ()
    printSettingsSetDefaultSource :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetDefaultSource self
    self string
    defaultSource =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    defaultSource ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    defaultSourcePtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO ()
    gtk_print_settings_set_default_source Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 832 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    defaultSourcePtr

    -- | Gets the value of 'PrintSettingsMediaType'.
    printSettingsGetMediaType :: (PrintSettingsClass self, GlibString string) => self
     -> IO string -- ^ returns the media type
    printSettingsGetMediaType :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetMediaType self
    self =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CString) -> IO CString)
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CString
    gtk_print_settings_get_media_type Ptr PrintSettings
    argPtr1)
    {-# LINE 840 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Sets the value of 'PrintSettingsMediaType'.
    printSettingsSetMediaType :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @mediaType@ - the media type
     -> IO ()
    printSettingsSetMediaType :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetMediaType self
    self string
    mediaType =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    mediaType ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    mediaTypePtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO ()
    gtk_print_settings_set_media_type Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 850 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    mediaTypePtr

    -- | Gets the value of 'PrintSettingsDither'.
    printSettingsGetDither :: (PrintSettingsClass self, GlibString string) => self
     -> IO string -- ^ returns the dithering that is used
    printSettingsGetDither :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetDither self
    self =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CString) -> IO CString)
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CString
    gtk_print_settings_get_dither Ptr PrintSettings
    argPtr1)
    {-# LINE 858 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Sets the value of 'PrintSettingsDither'.
    printSettingsSetDither :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @dither@ - the dithering that is used
     -> IO ()
    printSettingsSetDither :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetDither self
    self string
    dither =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    dither ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    ditherPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO ()
    gtk_print_settings_set_dither Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 868 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    ditherPtr

    -- | Gets the value of 'PrintSettingsFinishings'.
    printSettingsGetFinishings :: (PrintSettingsClass self, GlibString string) => self
     -> IO string -- ^ returns the finishings
    printSettingsGetFinishings :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetFinishings self
    self =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CString) -> IO CString)
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CString
    gtk_print_settings_get_finishings Ptr PrintSettings
    argPtr1)
    {-# LINE 876 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Sets the value of 'PrintSettingsFinishings'.
    printSettingsSetFinishings :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @finishings@ - the finishings
     -> IO ()
    printSettingsSetFinishings :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetFinishings self
    self string
    finishings =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    finishings ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    finishingsPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO ()
    gtk_print_settings_set_finishings Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 886 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    finishingsPtr

    -- | Gets the value of 'PrintSettingsOutputBin'.
    printSettingsGetOutputBin :: (PrintSettingsClass self, GlibString string) => self
     -> IO string -- ^ returns the output bin
    printSettingsGetOutputBin :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetOutputBin self
    self =
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CString) -> IO CString)
    -> (Ptr PrintSettings -> IO CString) -> IO CString
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> IO CString
    gtk_print_settings_get_output_bin Ptr PrintSettings
    argPtr1)
    {-# LINE 894 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
      IO CString -> (CString -> IO string) -> IO string
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= CString -> IO string
    forall s. GlibString s => CString -> IO s
    peekUTFString

    -- | Sets the value of 'PrintSettingsOutputBin'.
    printSettingsSetOutputBin :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @outputBin@ - the output bin
     -> IO ()
    printSettingsSetOutputBin :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetOutputBin self
    self string
    outputBin =
      string -> (CString -> IO ()) -> IO ()
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    outputBin ((CString -> IO ()) -> IO ()) -> (CString -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \CString
    outputBinPtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 -> ForeignPtr PrintSettings -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO ()) -> IO ())
    -> (Ptr PrintSettings -> IO ()) -> IO ()
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> IO ()
    gtk_print_settings_set_output_bin Ptr PrintSettings
    argPtr1 CString
    arg2)
    {-# LINE 904 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    outputBinPtr

    -- | Reads the print settings from @fileName@. See 'printSettingsToFile'.
    --
    -- * Available since Gtk+ version 2.14
    --
    printSettingsLoadFile :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @fileName@ - the filename to read the settings from
     -> IO Bool -- ^ returns @True@ on success
    printSettingsLoadFile :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO Bool
    printSettingsLoadFile self
    self string
    fileName =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (Ptr (Ptr ()) -> IO CInt) -> IO CInt
    forall a. (Ptr (Ptr ()) -> IO a) -> IO a
    propagateGError ((Ptr (Ptr ()) -> IO CInt) -> IO CInt)
    -> (Ptr (Ptr ()) -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr ())
    errorPtr ->
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    fileName ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    fileNamePtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 Ptr (Ptr ())
    arg3 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> Ptr (Ptr ()) -> IO CInt
    gtk_print_settings_load_file Ptr PrintSettings
    argPtr1 CString
    arg2 Ptr (Ptr ())
    arg3)
    {-# LINE 921 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    fileNamePtr
        Ptr (Ptr ())
    errorPtr

    -- | This function saves the print settings from @settings@ to @fileName@.
    --
    -- * Available since Gtk+ version 2.12
    --
    printSettingsToFile :: (PrintSettingsClass self, GlibString string) => self
     -> string -- ^ @fileName@ - the file to save to
     -> IO Bool -- ^ returns @True@ on success
    printSettingsToFile :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO Bool
    printSettingsToFile self
    self string
    fileName =
      (CInt -> Bool) -> IO CInt -> IO Bool
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM CInt -> Bool
    forall a. (Eq a, Num a) => a -> Bool
    toBool (IO CInt -> IO Bool) -> IO CInt -> IO Bool
    forall a b. (a -> b) -> a -> b
    $
      (Ptr (Ptr ()) -> IO CInt) -> IO CInt
    forall a. (Ptr (Ptr ()) -> IO a) -> IO a
    propagateGError ((Ptr (Ptr ()) -> IO CInt) -> IO CInt)
    -> (Ptr (Ptr ()) -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr (Ptr ())
    errorPtr ->
      string -> (CString -> IO CInt) -> IO CInt
    forall a. string -> (CString -> IO a) -> IO a
    forall s a. GlibString s => s -> (CString -> IO a) -> IO a
    withUTFString string
    fileName ((CString -> IO CInt) -> IO CInt)
    -> (CString -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \CString
    fileNamePtr ->
      (\(PrintSettings ForeignPtr PrintSettings
    arg1) CString
    arg2 Ptr (Ptr ())
    arg3 -> ForeignPtr PrintSettings
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
    withForeignPtr ForeignPtr PrintSettings
    arg1 ((Ptr PrintSettings -> IO CInt) -> IO CInt)
    -> (Ptr PrintSettings -> IO CInt) -> IO CInt
    forall a b. (a -> b) -> a -> b
    $ \Ptr PrintSettings
    argPtr1 ->Ptr PrintSettings -> CString -> Ptr (Ptr ()) -> IO CInt
    gtk_print_settings_to_file Ptr PrintSettings
    argPtr1 CString
    arg2 Ptr (Ptr ())
    arg3)
    {-# LINE 940 "./Graphics/UI/Gtk/Printing/PrintSettings.chs" #-}
        (toPrintSettings self)
        CString
    fileNamePtr
        Ptr (Ptr ())
    errorPtr

    -- | Obtain the value of 'PrintSettingsPrinter'.
    printSettingsPrinter :: (PrintSettingsClass self, GlibString string) => Attr self string
    printSettingsPrinter :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    Attr self string
    printSettingsPrinter = (self -> IO string)
    -> (self -> string -> IO ()) -> ReadWriteAttr self string string
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO string
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetPrinter
      self -> string -> IO ()
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetPrinter

    -- | The value of ''PrintSettingsOrientation'', converted to a 'PageOrientation'.
    printSettingsOrientation :: PrintSettingsClass self => Attr self PageOrientation
    printSettingsOrientation :: forall self. PrintSettingsClass self => Attr self PageOrientation
    printSettingsOrientation = (self -> IO PageOrientation)
    -> (self -> PageOrientation -> IO ())
    -> ReadWriteAttr self PageOrientation PageOrientation
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO PageOrientation
    forall self. PrintSettingsClass self => self -> IO PageOrientation
    printSettingsGetOrientation
      self -> PageOrientation -> IO ()
    forall self.
    PrintSettingsClass self =>
    self -> PageOrientation -> IO ()
    printSettingsSetOrientation

    -- | The value of 'PrintSettingsPaperFormat', converted to a 'PaperSize'.
    printSettingsPaperSize :: PrintSettingsClass self => Attr self PaperSize
    printSettingsPaperSize :: forall self. PrintSettingsClass self => Attr self PaperSize
    printSettingsPaperSize = (self -> IO PaperSize)
    -> (self -> PaperSize -> IO ())
    -> ReadWriteAttr self PaperSize PaperSize
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO PaperSize
    forall self. PrintSettingsClass self => self -> IO PaperSize
    printSettingsGetPaperSize
      self -> PaperSize -> IO ()
    forall self. PrintSettingsClass self => self -> PaperSize -> IO ()
    printSettingsSetPaperSize

    -- | The value of ''PrintSettingsUseColor''.
    printSettingsUseColor :: PrintSettingsClass self => Attr self Bool
    printSettingsUseColor :: forall self. PrintSettingsClass self => Attr self Bool
    printSettingsUseColor = (self -> IO Bool)
    -> (self -> Bool -> IO ()) -> ReadWriteAttr self Bool Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Bool
    forall self. PrintSettingsClass self => self -> IO Bool
    printSettingsGetUseColor
      self -> Bool -> IO ()
    forall self. PrintSettingsClass self => self -> Bool -> IO ()
    printSettingsSetUseColor

    -- | The value of ''PrintSettingsCollate''.
    printSettingsCollate :: PrintSettingsClass self => Attr self Bool
    printSettingsCollate :: forall self. PrintSettingsClass self => Attr self Bool
    printSettingsCollate = (self -> IO Bool)
    -> (self -> Bool -> IO ()) -> ReadWriteAttr self Bool Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Bool
    forall self. PrintSettingsClass self => self -> IO Bool
    printSettingsGetCollate
      self -> Bool -> IO ()
    forall self. PrintSettingsClass self => self -> Bool -> IO ()
    printSettingsSetCollate

    -- | The value of ''PrintSettingsReverse''.
    printSettingsReverse :: PrintSettingsClass self => Attr self Bool
    printSettingsReverse :: forall self. PrintSettingsClass self => Attr self Bool
    printSettingsReverse = (self -> IO Bool)
    -> (self -> Bool -> IO ()) -> ReadWriteAttr self Bool Bool
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Bool
    forall self. PrintSettingsClass self => self -> IO Bool
    printSettingsGetReverse
      self -> Bool -> IO ()
    forall self. PrintSettingsClass self => self -> Bool -> IO ()
    printSettingsSetReverse

    -- | The value of ''PrintSettingsDuplex''.
    printSettingsDuplex :: PrintSettingsClass self => Attr self PrintDuplex
    printSettingsDuplex :: forall self. PrintSettingsClass self => Attr self PrintDuplex
    printSettingsDuplex = (self -> IO PrintDuplex)
    -> (self -> PrintDuplex -> IO ())
    -> ReadWriteAttr self PrintDuplex PrintDuplex
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO PrintDuplex
    forall self. PrintSettingsClass self => self -> IO PrintDuplex
    printSettingsGetDuplex
      self -> PrintDuplex -> IO ()
    forall self.
    PrintSettingsClass self =>
    self -> PrintDuplex -> IO ()
    printSettingsSetDuplex

    -- | The value of ''PrintSettingsQuality''.
    printSettingsQuality :: PrintSettingsClass self => Attr self PrintQuality
    printSettingsQuality :: forall self. PrintSettingsClass self => Attr self PrintQuality
    printSettingsQuality = (self -> IO PrintQuality)
    -> (self -> PrintQuality -> IO ())
    -> ReadWriteAttr self PrintQuality PrintQuality
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO PrintQuality
    forall self. PrintSettingsClass self => self -> IO PrintQuality
    printSettingsGetQuality
      self -> PrintQuality -> IO ()
    forall self.
    PrintSettingsClass self =>
    self -> PrintQuality -> IO ()
    printSettingsSetQuality

    -- | The value of 'PrintSettingsNCopies'.
    printSettingsNCopies :: PrintSettingsClass self => Attr self Int
    printSettingsNCopies :: forall self. PrintSettingsClass self => Attr self Int
    printSettingsNCopies = (self -> IO Int)
    -> (self -> Int -> IO ()) -> ReadWriteAttr self Int Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Int
    forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetNCopies
      self -> Int -> IO ()
    forall self. PrintSettingsClass self => self -> Int -> IO ()
    printSettingsSetNCopies

    -- | The value of 'PrintSettingsNumberUp'.
    printSettingsNumberUp :: PrintSettingsClass self => Attr self Int
    printSettingsNumberUp :: forall self. PrintSettingsClass self => Attr self Int
    printSettingsNumberUp = (self -> IO Int)
    -> (self -> Int -> IO ()) -> ReadWriteAttr self Int Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Int
    forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetNumberUp
      self -> Int -> IO ()
    forall self. PrintSettingsClass self => self -> Int -> IO ()
    printSettingsSetNumberUp

    -- | The value of 'PrintSettingsResolution'.
    printSettingsResolution :: PrintSettingsClass self => Attr self Int
    printSettingsResolution :: forall self. PrintSettingsClass self => Attr self Int
    printSettingsResolution = (self -> IO Int)
    -> (self -> Int -> IO ()) -> ReadWriteAttr self Int Int
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Int
    forall self. PrintSettingsClass self => self -> IO Int
    printSettingsGetResolution
      self -> Int -> IO ()
    forall self. PrintSettingsClass self => self -> Int -> IO ()
    printSettingsSetResolution

    -- | The value of 'PrintSettingsScale'.
    printSettingsScale :: PrintSettingsClass self => Attr self Double
    printSettingsScale :: forall self. PrintSettingsClass self => Attr self Double
    printSettingsScale = (self -> IO Double)
    -> (self -> Double -> IO ()) -> ReadWriteAttr self Double Double
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Double
    forall self. PrintSettingsClass self => self -> IO Double
    printSettingsGetScale
      self -> Double -> IO ()
    forall self. PrintSettingsClass self => self -> Double -> IO ()
    printSettingsSetScale

    -- | The value of 'PrintSettingsPrintPages'.
    printSettingsPrintPages :: PrintSettingsClass self => Attr self PrintPages
    printSettingsPrintPages :: forall self. PrintSettingsClass self => Attr self PrintPages
    printSettingsPrintPages = (self -> IO PrintPages)
    -> (self -> PrintPages -> IO ())
    -> ReadWriteAttr self PrintPages PrintPages
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO PrintPages
    forall self. PrintSettingsClass self => self -> IO PrintPages
    printSettingsGetPrintPages
      self -> PrintPages -> IO ()
    forall self. PrintSettingsClass self => self -> PrintPages -> IO ()
    printSettingsSetPrintPages

    -- | The value of 'PrintSettingsPageSet'.
    printSettingsPageSet :: PrintSettingsClass self => Attr self PageSet
    printSettingsPageSet :: forall self. PrintSettingsClass self => Attr self PageSet
    printSettingsPageSet = (self -> IO PageSet)
    -> (self -> PageSet -> IO ()) -> ReadWriteAttr self PageSet PageSet
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO PageSet
    forall self. PrintSettingsClass self => self -> IO PageSet
    printSettingsGetPageSet
      self -> PageSet -> IO ()
    forall self. PrintSettingsClass self => self -> PageSet -> IO ()
    printSettingsSetPageSet

    -- | The value of 'PrintSettingsDefaultSource'.
    printSettingsDefaultSource :: (PrintSettingsClass self, GlibString string) => Attr self string
    printSettingsDefaultSource :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    Attr self string
    printSettingsDefaultSource = (self -> IO string)
    -> (self -> string -> IO ()) -> ReadWriteAttr self string string
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO string
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetDefaultSource
      self -> string -> IO ()
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetDefaultSource

    -- | The value of 'PrintSettingsMediaType'.
    printSettingsMediaType :: (PrintSettingsClass self, GlibString string) => Attr self string
    printSettingsMediaType :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    Attr self string
    printSettingsMediaType = (self -> IO string)
    -> (self -> string -> IO ()) -> ReadWriteAttr self string string
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO string
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetMediaType
      self -> string -> IO ()
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetMediaType

    -- | The value of 'PrintSettingsDither'.
    printSettingsDither :: (PrintSettingsClass self, GlibString string) => Attr self string
    printSettingsDither :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    Attr self string
    printSettingsDither = (self -> IO string)
    -> (self -> string -> IO ()) -> ReadWriteAttr self string string
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO string
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetDither
      self -> string -> IO ()
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetDither

    -- | The value of 'PrintSettingsFinishings'.
    printSettingsFinishings :: (PrintSettingsClass self, GlibString string) => Attr self string
    printSettingsFinishings :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    Attr self string
    printSettingsFinishings = (self -> IO string)
    -> (self -> string -> IO ()) -> ReadWriteAttr self string string
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO string
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetFinishings
      self -> string -> IO ()
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetFinishings

    -- | The value of 'PrintSettingsOutputBin'.
    printSettingsOutputBin :: (PrintSettingsClass self, GlibString string) => Attr self string
    printSettingsOutputBin :: forall self string.
    (PrintSettingsClass self, GlibString string) =>
    Attr self string
    printSettingsOutputBin = (self -> IO string)
    -> (self -> string -> IO ()) -> ReadWriteAttr self string string
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO string
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> IO string
    printSettingsGetOutputBin
      self -> string -> IO ()
    forall self string.
    (PrintSettingsClass self, GlibString string) =>
    self -> string -> IO ()
    printSettingsSetOutputBin

    -- | The value of 'PrintSettingsNumberUpLayout'.
    printSettingsNumberUpLayout :: PrintSettingsClass self => Attr self NumberUpLayout
    printSettingsNumberUpLayout :: forall self. PrintSettingsClass self => Attr self NumberUpLayout
    printSettingsNumberUpLayout = (self -> IO NumberUpLayout)
    -> (self -> NumberUpLayout -> IO ())
    -> ReadWriteAttr self NumberUpLayout NumberUpLayout
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO NumberUpLayout
    forall self. PrintSettingsClass self => self -> IO NumberUpLayout
    printSettingsGetNumberUpLayout
      self -> NumberUpLayout -> IO ()
    forall self.
    PrintSettingsClass self =>
    self -> NumberUpLayout -> IO ()
    printSettingsSetNumberUpLayout

    -- | The value of 'PrintSettingsPrinterLpi'.
    printSettingsPrinterLpi :: PrintSettingsClass self => Attr self Double
    printSettingsPrinterLpi :: forall self. PrintSettingsClass self => Attr self Double
    printSettingsPrinterLpi = (self -> IO Double)
    -> (self -> Double -> IO ()) -> ReadWriteAttr self Double Double
    forall o a b.
    (o -> IO a) -> (o -> b -> IO ()) -> ReadWriteAttr o a b
    newAttr
      self -> IO Double
    forall self. PrintSettingsClass self => self -> IO Double
    printSettingsGetPrinterLpi
      self -> Double -> IO ()
    forall self. PrintSettingsClass self => self -> Double -> IO ()
    printSettingsSetPrinterLpi

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

    foreign import ccall safe "gtk_print_settings_new_from_file"
      gtk_print_settings_new_from_file :: ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO (Ptr PrintSettings))))

    foreign import ccall safe "gtk_print_settings_copy"
      gtk_print_settings_copy :: ((Ptr PrintSettings) -> (IO (Ptr PrintSettings)))

    foreign import ccall safe "gtk_print_settings_has_key"
      gtk_print_settings_has_key :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO CInt)))

    foreign import ccall safe "gtk_print_settings_get"
      gtk_print_settings_get :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO (Ptr CChar))))

    foreign import ccall safe "gtk_print_settings_set"
      gtk_print_settings_set :: ((Ptr PrintSettings) -> ((Ptr CChar) -> ((Ptr CChar) -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_unset"
      gtk_print_settings_unset :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_foreach"
      gtk_print_settings_foreach :: ((Ptr PrintSettings) -> ((FunPtr ((Ptr CChar) -> ((Ptr CChar) -> ((Ptr ()) -> (IO ()))))) -> ((Ptr ()) -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_get_bool"
      gtk_print_settings_get_bool :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO CInt)))

    foreign import ccall safe "gtk_print_settings_set_bool"
      gtk_print_settings_set_bool :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_get_double"
      gtk_print_settings_get_double :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO CDouble)))

    foreign import ccall safe "gtk_print_settings_get_double_with_default"
      gtk_print_settings_get_double_with_default :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (CDouble -> (IO CDouble))))

    foreign import ccall safe "gtk_print_settings_set_double"
      gtk_print_settings_set_double :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (CDouble -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_get_length"
      gtk_print_settings_get_length :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (CInt -> (IO CDouble))))

    foreign import ccall safe "gtk_print_settings_set_length"
      gtk_print_settings_set_length :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (CDouble -> (CInt -> (IO ())))))

    foreign import ccall safe "gtk_print_settings_get_int"
      gtk_print_settings_get_int :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO CInt)))

    foreign import ccall safe "gtk_print_settings_get_int_with_default"
      gtk_print_settings_get_int_with_default :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (CInt -> (IO CInt))))

    foreign import ccall safe "gtk_print_settings_set_int"
      gtk_print_settings_set_int :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_get_printer"
      gtk_print_settings_get_printer :: ((Ptr PrintSettings) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_print_settings_set_printer"
      gtk_print_settings_set_printer :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_orientation"
      gtk_print_settings_get_orientation :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_orientation"
      gtk_print_settings_set_orientation :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_paper_size"
      gtk_print_settings_get_paper_size :: ((Ptr PrintSettings) -> (IO (Ptr ())))

    foreign import ccall safe "gtk_print_settings_set_paper_size"
      gtk_print_settings_set_paper_size :: ((Ptr PrintSettings) -> ((Ptr ()) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_paper_width"
      gtk_print_settings_get_paper_width :: ((Ptr PrintSettings) -> (CInt -> (IO CDouble)))

    foreign import ccall safe "gtk_print_settings_set_paper_width"
      gtk_print_settings_set_paper_width :: ((Ptr PrintSettings) -> (CDouble -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_get_paper_height"
      gtk_print_settings_get_paper_height :: ((Ptr PrintSettings) -> (CInt -> (IO CDouble)))

    foreign import ccall safe "gtk_print_settings_set_paper_height"
      gtk_print_settings_set_paper_height :: ((Ptr PrintSettings) -> (CDouble -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_get_use_color"
      gtk_print_settings_get_use_color :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_use_color"
      gtk_print_settings_set_use_color :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_collate"
      gtk_print_settings_get_collate :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_collate"
      gtk_print_settings_set_collate :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_reverse"
      gtk_print_settings_get_reverse :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_reverse"
      gtk_print_settings_set_reverse :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_duplex"
      gtk_print_settings_get_duplex :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_duplex"
      gtk_print_settings_set_duplex :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_quality"
      gtk_print_settings_get_quality :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_quality"
      gtk_print_settings_set_quality :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_n_copies"
      gtk_print_settings_get_n_copies :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_n_copies"
      gtk_print_settings_set_n_copies :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_number_up"
      gtk_print_settings_get_number_up :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_number_up"
      gtk_print_settings_set_number_up :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_number_up_layout"
      gtk_print_settings_get_number_up_layout :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_number_up_layout"
      gtk_print_settings_set_number_up_layout :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_resolution"
      gtk_print_settings_get_resolution :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_resolution"
      gtk_print_settings_set_resolution :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_set_resolution_xy"
      gtk_print_settings_set_resolution_xy :: ((Ptr PrintSettings) -> (CInt -> (CInt -> (IO ()))))

    foreign import ccall safe "gtk_print_settings_get_resolution_x"
      gtk_print_settings_get_resolution_x :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_get_resolution_y"
      gtk_print_settings_get_resolution_y :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_get_printer_lpi"
      gtk_print_settings_get_printer_lpi :: ((Ptr PrintSettings) -> (IO CDouble))

    foreign import ccall safe "gtk_print_settings_set_printer_lpi"
      gtk_print_settings_set_printer_lpi :: ((Ptr PrintSettings) -> (CDouble -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_scale"
      gtk_print_settings_get_scale :: ((Ptr PrintSettings) -> (IO CDouble))

    foreign import ccall safe "gtk_print_settings_set_scale"
      gtk_print_settings_set_scale :: ((Ptr PrintSettings) -> (CDouble -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_print_pages"
      gtk_print_settings_get_print_pages :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_print_pages"
      gtk_print_settings_set_print_pages :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_page_set"
      gtk_print_settings_get_page_set :: ((Ptr PrintSettings) -> (IO CInt))

    foreign import ccall safe "gtk_print_settings_set_page_set"
      gtk_print_settings_set_page_set :: ((Ptr PrintSettings) -> (CInt -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_default_source"
      gtk_print_settings_get_default_source :: ((Ptr PrintSettings) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_print_settings_set_default_source"
      gtk_print_settings_set_default_source :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_media_type"
      gtk_print_settings_get_media_type :: ((Ptr PrintSettings) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_print_settings_set_media_type"
      gtk_print_settings_set_media_type :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_dither"
      gtk_print_settings_get_dither :: ((Ptr PrintSettings) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_print_settings_set_dither"
      gtk_print_settings_set_dither :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_finishings"
      gtk_print_settings_get_finishings :: ((Ptr PrintSettings) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_print_settings_set_finishings"
      gtk_print_settings_set_finishings :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_get_output_bin"
      gtk_print_settings_get_output_bin :: ((Ptr PrintSettings) -> (IO (Ptr CChar)))

    foreign import ccall safe "gtk_print_settings_set_output_bin"
      gtk_print_settings_set_output_bin :: ((Ptr PrintSettings) -> ((Ptr CChar) -> (IO ())))

    foreign import ccall safe "gtk_print_settings_load_file"
      gtk_print_settings_load_file :: ((Ptr PrintSettings) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO CInt))))

    foreign import ccall safe "gtk_print_settings_to_file"
      gtk_print_settings_to_file :: ((Ptr PrintSettings) -> ((Ptr CChar) -> ((Ptr (Ptr ())) -> (IO CInt))))