{-# LINE 1 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} {-# LANGUAGE CPP, ScopedTypeVariables #-} {-# OPTIONS_HADDOCK hide #-} -- -*-haskell-*- -- GIMP Toolkit (GTK) Structures for Pango -- -- Author : Axel Simon -- -- Created: 2 March 2008 -- -- Copyright (C) 2008 Axel Simon -- -- 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. -- -- #hide -- #include <glib-2.0/glib.h> -- | -- Maintainer : gtk2hs-users@lists.sourceforge.net -- Stability : provisional -- Portability : portable (depends on GHC) -- module Graphics.UI.Gtk.Poppler.Structs ( PopplerRectangle(..), peekPopplerRectangle, PopplerColor(..), peekPopplerColor, ) where import Control.Monad (liftM) import Data.IORef import Control.Exception import System.Glib.FFI import System.Glib.UTFString ( peekUTFString, UTFCorrection, ofsToUTF, ofsFromUTF ) import System.Glib.GObject (makeNewGObject) -- | Rectangles describing an area in 'Double's. -- -- * Specifies x, y, width and height -- data PopplerRectangle = PopplerRectangle Double Double Double Double deriving Show instance Storable PopplerRectangle where sizeOf _ = 32 {-# LINE 59 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} alignment _ = alignment (undefined:: Double) {-# LINE 60 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} peek ptr = do (PopplerRectangle x1_ y1_ x2_ y2_) <- peekPopplerRectangle ptr return $ PopplerRectangle (realToFrac x1_) (realToFrac y1_) (realToFrac x2_) (realToFrac y2_) poke ptr (PopplerRectangle x1 y1 x2 y2) = do (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr (x1::Double) {-# LINE 66 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 8) ptr (y1::Double) {-# LINE 67 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 16) ptr (x2::Double) {-# LINE 68 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 24) ptr (y2::Double) {-# LINE 69 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} peekPopplerRectangle :: Ptr PopplerRectangle -> IO PopplerRectangle peekPopplerRectangle ptr = do (x1_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr {-# LINE 73 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (y1_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr {-# LINE 74 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (x2_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 16) ptr {-# LINE 75 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (y2_ ::Double) <- (\hsc_ptr -> peekByteOff hsc_ptr 24) ptr {-# LINE 76 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} return (PopplerRectangle (realToFrac x1_) (realToFrac y1_) (realToFrac x2_) (realToFrac y2_)) data PopplerColor = PopplerColor (Word16) (Word16) (Word16) {-# LINE 80 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} deriving (Eq,Show) instance Storable PopplerColor where sizeOf _ = 6 {-# LINE 84 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} alignment _ = alignment (undefined::Word16) {-# LINE 85 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} peek ptr = peekPopplerColor ptr poke ptr (PopplerColor red green blue) = do (\hsc_ptr -> pokeByteOff hsc_ptr 0) ptr red {-# LINE 88 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 2) ptr green {-# LINE 89 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} (\hsc_ptr -> pokeByteOff hsc_ptr 4) ptr blue {-# LINE 90 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} peekPopplerColor :: Ptr PopplerColor -> IO PopplerColor peekPopplerColor ptr = do red <- (\hsc_ptr -> peekByteOff hsc_ptr 0) ptr {-# LINE 94 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} green <- (\hsc_ptr -> peekByteOff hsc_ptr 2) ptr {-# LINE 95 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} blue <- (\hsc_ptr -> peekByteOff hsc_ptr 4) ptr {-# LINE 96 "Graphics/UI/Gtk/Poppler/Structs.hsc" #-} return $ PopplerColor red green blue