gi-poppler-0.0.34.14: GI/Poppler/Structs/PageTransition.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
A #PopplerPageTransition structures describes a visual transition
to use when moving between pages during a presentation
-}
module GI.Poppler.Structs.PageTransition
(
-- * Exported types
PageTransition(..) ,
newZeroPageTransition ,
noPageTransition ,
-- * Methods
-- ** pageTransitionCopy
PageTransitionCopyMethodInfo ,
pageTransitionCopy ,
-- ** pageTransitionFree
PageTransitionFreeMethodInfo ,
pageTransitionFree ,
-- ** pageTransitionNew
pageTransitionNew ,
-- * Properties
-- ** Alignment
pageTransitionAlignment ,
pageTransitionReadAlignment ,
pageTransitionWriteAlignment ,
-- ** Angle
pageTransitionAngle ,
pageTransitionReadAngle ,
pageTransitionWriteAngle ,
-- ** Direction
pageTransitionDirection ,
pageTransitionReadDirection ,
pageTransitionWriteDirection ,
-- ** Duration
pageTransitionDuration ,
pageTransitionReadDuration ,
pageTransitionWriteDuration ,
-- ** Rectangular
pageTransitionReadRectangular ,
pageTransitionRectangular ,
pageTransitionWriteRectangular ,
-- ** Scale
pageTransitionReadScale ,
pageTransitionScale ,
pageTransitionWriteScale ,
-- ** Type
pageTransitionReadType ,
pageTransitionType ,
pageTransitionWriteType ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Poppler.Types
import GI.Poppler.Callbacks
newtype PageTransition = PageTransition (ForeignPtr PageTransition)
foreign import ccall "poppler_page_transition_get_type" c_poppler_page_transition_get_type ::
IO GType
instance BoxedObject PageTransition where
boxedType _ = c_poppler_page_transition_get_type
-- | Construct a `PageTransition` struct initialized to zero.
newZeroPageTransition :: MonadIO m => m PageTransition
newZeroPageTransition = liftIO $ callocBoxedBytes 40 >>= wrapBoxed PageTransition
instance tag ~ 'AttrSet => Constructible PageTransition tag where
new _ attrs = do
o <- newZeroPageTransition
GI.Attributes.set o attrs
return o
noPageTransition :: Maybe PageTransition
noPageTransition = Nothing
pageTransitionReadType :: MonadIO m => PageTransition -> m PageTransitionType
pageTransitionReadType s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
pageTransitionWriteType :: MonadIO m => PageTransition -> PageTransitionType -> m ()
pageTransitionWriteType s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 0) (val' :: CUInt)
data PageTransitionTypeFieldInfo
instance AttrInfo PageTransitionTypeFieldInfo where
type AttrAllowedOps PageTransitionTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PageTransitionTypeFieldInfo = (~) PageTransitionType
type AttrBaseTypeConstraint PageTransitionTypeFieldInfo = (~) PageTransition
type AttrGetType PageTransitionTypeFieldInfo = PageTransitionType
type AttrLabel PageTransitionTypeFieldInfo = "type"
attrGet _ = pageTransitionReadType
attrSet _ = pageTransitionWriteType
attrConstruct = undefined
attrClear _ = undefined
pageTransitionType :: AttrLabelProxy "type"
pageTransitionType = AttrLabelProxy
pageTransitionReadAlignment :: MonadIO m => PageTransition -> m PageTransitionAlignment
pageTransitionReadAlignment s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 4) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
pageTransitionWriteAlignment :: MonadIO m => PageTransition -> PageTransitionAlignment -> m ()
pageTransitionWriteAlignment s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 4) (val' :: CUInt)
data PageTransitionAlignmentFieldInfo
instance AttrInfo PageTransitionAlignmentFieldInfo where
type AttrAllowedOps PageTransitionAlignmentFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PageTransitionAlignmentFieldInfo = (~) PageTransitionAlignment
type AttrBaseTypeConstraint PageTransitionAlignmentFieldInfo = (~) PageTransition
type AttrGetType PageTransitionAlignmentFieldInfo = PageTransitionAlignment
type AttrLabel PageTransitionAlignmentFieldInfo = "alignment"
attrGet _ = pageTransitionReadAlignment
attrSet _ = pageTransitionWriteAlignment
attrConstruct = undefined
attrClear _ = undefined
pageTransitionAlignment :: AttrLabelProxy "alignment"
pageTransitionAlignment = AttrLabelProxy
pageTransitionReadDirection :: MonadIO m => PageTransition -> m PageTransitionDirection
pageTransitionReadDirection s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO CUInt
let val' = (toEnum . fromIntegral) val
return val'
pageTransitionWriteDirection :: MonadIO m => PageTransition -> PageTransitionDirection -> m ()
pageTransitionWriteDirection s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 8) (val' :: CUInt)
data PageTransitionDirectionFieldInfo
instance AttrInfo PageTransitionDirectionFieldInfo where
type AttrAllowedOps PageTransitionDirectionFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PageTransitionDirectionFieldInfo = (~) PageTransitionDirection
type AttrBaseTypeConstraint PageTransitionDirectionFieldInfo = (~) PageTransition
type AttrGetType PageTransitionDirectionFieldInfo = PageTransitionDirection
type AttrLabel PageTransitionDirectionFieldInfo = "direction"
attrGet _ = pageTransitionReadDirection
attrSet _ = pageTransitionWriteDirection
attrConstruct = undefined
attrClear _ = undefined
pageTransitionDirection :: AttrLabelProxy "direction"
pageTransitionDirection = AttrLabelProxy
pageTransitionReadDuration :: MonadIO m => PageTransition -> m Int32
pageTransitionReadDuration s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 12) :: IO Int32
return val
pageTransitionWriteDuration :: MonadIO m => PageTransition -> Int32 -> m ()
pageTransitionWriteDuration s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 12) (val :: Int32)
data PageTransitionDurationFieldInfo
instance AttrInfo PageTransitionDurationFieldInfo where
type AttrAllowedOps PageTransitionDurationFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PageTransitionDurationFieldInfo = (~) Int32
type AttrBaseTypeConstraint PageTransitionDurationFieldInfo = (~) PageTransition
type AttrGetType PageTransitionDurationFieldInfo = Int32
type AttrLabel PageTransitionDurationFieldInfo = "duration"
attrGet _ = pageTransitionReadDuration
attrSet _ = pageTransitionWriteDuration
attrConstruct = undefined
attrClear _ = undefined
pageTransitionDuration :: AttrLabelProxy "duration"
pageTransitionDuration = AttrLabelProxy
pageTransitionReadAngle :: MonadIO m => PageTransition -> m Int32
pageTransitionReadAngle s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO Int32
return val
pageTransitionWriteAngle :: MonadIO m => PageTransition -> Int32 -> m ()
pageTransitionWriteAngle s val = liftIO $ withManagedPtr s $ \ptr -> do
poke (ptr `plusPtr` 16) (val :: Int32)
data PageTransitionAngleFieldInfo
instance AttrInfo PageTransitionAngleFieldInfo where
type AttrAllowedOps PageTransitionAngleFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PageTransitionAngleFieldInfo = (~) Int32
type AttrBaseTypeConstraint PageTransitionAngleFieldInfo = (~) PageTransition
type AttrGetType PageTransitionAngleFieldInfo = Int32
type AttrLabel PageTransitionAngleFieldInfo = "angle"
attrGet _ = pageTransitionReadAngle
attrSet _ = pageTransitionWriteAngle
attrConstruct = undefined
attrClear _ = undefined
pageTransitionAngle :: AttrLabelProxy "angle"
pageTransitionAngle = AttrLabelProxy
pageTransitionReadScale :: MonadIO m => PageTransition -> m Double
pageTransitionReadScale s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CDouble
let val' = realToFrac val
return val'
pageTransitionWriteScale :: MonadIO m => PageTransition -> Double -> m ()
pageTransitionWriteScale s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 24) (val' :: CDouble)
data PageTransitionScaleFieldInfo
instance AttrInfo PageTransitionScaleFieldInfo where
type AttrAllowedOps PageTransitionScaleFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PageTransitionScaleFieldInfo = (~) Double
type AttrBaseTypeConstraint PageTransitionScaleFieldInfo = (~) PageTransition
type AttrGetType PageTransitionScaleFieldInfo = Double
type AttrLabel PageTransitionScaleFieldInfo = "scale"
attrGet _ = pageTransitionReadScale
attrSet _ = pageTransitionWriteScale
attrConstruct = undefined
attrClear _ = undefined
pageTransitionScale :: AttrLabelProxy "scale"
pageTransitionScale = AttrLabelProxy
pageTransitionReadRectangular :: MonadIO m => PageTransition -> m Bool
pageTransitionReadRectangular s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO CInt
let val' = (/= 0) val
return val'
pageTransitionWriteRectangular :: MonadIO m => PageTransition -> Bool -> m ()
pageTransitionWriteRectangular s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = (fromIntegral . fromEnum) val
poke (ptr `plusPtr` 32) (val' :: CInt)
data PageTransitionRectangularFieldInfo
instance AttrInfo PageTransitionRectangularFieldInfo where
type AttrAllowedOps PageTransitionRectangularFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint PageTransitionRectangularFieldInfo = (~) Bool
type AttrBaseTypeConstraint PageTransitionRectangularFieldInfo = (~) PageTransition
type AttrGetType PageTransitionRectangularFieldInfo = Bool
type AttrLabel PageTransitionRectangularFieldInfo = "rectangular"
attrGet _ = pageTransitionReadRectangular
attrSet _ = pageTransitionWriteRectangular
attrConstruct = undefined
attrClear _ = undefined
pageTransitionRectangular :: AttrLabelProxy "rectangular"
pageTransitionRectangular = AttrLabelProxy
type instance AttributeList PageTransition = PageTransitionAttributeList
type PageTransitionAttributeList = ('[ '("type", PageTransitionTypeFieldInfo), '("alignment", PageTransitionAlignmentFieldInfo), '("direction", PageTransitionDirectionFieldInfo), '("duration", PageTransitionDurationFieldInfo), '("angle", PageTransitionAngleFieldInfo), '("scale", PageTransitionScaleFieldInfo), '("rectangular", PageTransitionRectangularFieldInfo)] :: [(Symbol, *)])
-- method PageTransition::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface "Poppler" "PageTransition")
-- throws : False
-- Skip return : False
foreign import ccall "poppler_page_transition_new" poppler_page_transition_new ::
IO (Ptr PageTransition)
pageTransitionNew ::
(MonadIO m) =>
m PageTransition -- result
pageTransitionNew = liftIO $ do
result <- poppler_page_transition_new
checkUnexpectedReturnNULL "poppler_page_transition_new" result
result' <- (wrapBoxed PageTransition) result
return result'
-- method PageTransition::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "PageTransition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "Poppler" "PageTransition")
-- throws : False
-- Skip return : False
foreign import ccall "poppler_page_transition_copy" poppler_page_transition_copy ::
Ptr PageTransition -> -- _obj : TInterface "Poppler" "PageTransition"
IO (Ptr PageTransition)
pageTransitionCopy ::
(MonadIO m) =>
PageTransition -- _obj
-> m PageTransition -- result
pageTransitionCopy _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
result <- poppler_page_transition_copy _obj'
checkUnexpectedReturnNULL "poppler_page_transition_copy" result
result' <- (wrapBoxed PageTransition) result
touchManagedPtr _obj
return result'
data PageTransitionCopyMethodInfo
instance (signature ~ (m PageTransition), MonadIO m) => MethodInfo PageTransitionCopyMethodInfo PageTransition signature where
overloadedMethod _ = pageTransitionCopy
-- method PageTransition::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "PageTransition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "poppler_page_transition_free" poppler_page_transition_free ::
Ptr PageTransition -> -- _obj : TInterface "Poppler" "PageTransition"
IO ()
pageTransitionFree ::
(MonadIO m) =>
PageTransition -- _obj
-> m () -- result
pageTransitionFree _obj = liftIO $ do
let _obj' = unsafeManagedPtrGetPtr _obj
poppler_page_transition_free _obj'
touchManagedPtr _obj
return ()
data PageTransitionFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => MethodInfo PageTransitionFreeMethodInfo PageTransition signature where
overloadedMethod _ = pageTransitionFree
type family ResolvePageTransitionMethod (t :: Symbol) (o :: *) :: * where
ResolvePageTransitionMethod "copy" o = PageTransitionCopyMethodInfo
ResolvePageTransitionMethod "free" o = PageTransitionFreeMethodInfo
ResolvePageTransitionMethod l o = MethodResolutionFailed l o
instance (info ~ ResolvePageTransitionMethod t PageTransition, MethodInfo info PageTransition p) => IsLabelProxy t (PageTransition -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolvePageTransitionMethod t PageTransition, MethodInfo info PageTransition p) => IsLabel t (PageTransition -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif