{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) See also gtk_print_settings_set_page_ranges(). -} module GI.Gtk.Structs.PageRange ( -- * Exported types PageRange(..) , newZeroPageRange , noPageRange , -- * Properties -- ** End pageRangeReadEnd , -- ** Start pageRangeReadStart , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Gtk.Types import GI.Gtk.Callbacks newtype PageRange = PageRange (ForeignPtr PageRange) -- | Construct a `PageRange` struct initialized to zero. newZeroPageRange :: MonadIO m => m PageRange newZeroPageRange = liftIO $ callocBytes 8 >>= wrapPtr PageRange noPageRange :: Maybe PageRange noPageRange = Nothing pageRangeReadStart :: PageRange -> IO Int32 pageRangeReadStart s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 0) :: IO Int32 return val pageRangeReadEnd :: PageRange -> IO Int32 pageRangeReadEnd s = withManagedPtr s $ \ptr -> do val <- peek (ptr `plusPtr` 4) :: IO Int32 return val type family ResolvePageRangeMethod (t :: Symbol) (o :: *) :: * where ResolvePageRangeMethod l o = MethodResolutionFailed l o instance (info ~ ResolvePageRangeMethod t PageRange, MethodInfo info PageRange p) => IsLabelProxy t (PageRange -> p) where fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info) #if MIN_VERSION_base(4,9,0) instance (info ~ ResolvePageRangeMethod t PageRange, MethodInfo info PageRange p) => IsLabel t (PageRange -> p) where fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info) #endif