packages feed

gi-poppler-0.0.34.14: GI/Poppler/Structs/AnnotCalloutLine.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)
-}

module GI.Poppler.Structs.AnnotCalloutLine
    ( 

-- * Exported types
    AnnotCalloutLine(..)                    ,
    newZeroAnnotCalloutLine                 ,
    noAnnotCalloutLine                      ,


 -- * Methods
-- ** annotCalloutLineCopy
    AnnotCalloutLineCopyMethodInfo          ,
    annotCalloutLineCopy                    ,


-- ** annotCalloutLineFree
    AnnotCalloutLineFreeMethodInfo          ,
    annotCalloutLineFree                    ,


-- ** annotCalloutLineNew
    annotCalloutLineNew                     ,




 -- * Properties
-- ** Multiline
    annotCalloutLineMultiline               ,
    annotCalloutLineReadMultiline           ,
    annotCalloutLineWriteMultiline          ,


-- ** X1
    annotCalloutLineReadX1                  ,
    annotCalloutLineWriteX1                 ,
    annotCalloutLineX1                      ,


-- ** X2
    annotCalloutLineReadX2                  ,
    annotCalloutLineWriteX2                 ,
    annotCalloutLineX2                      ,


-- ** X3
    annotCalloutLineReadX3                  ,
    annotCalloutLineWriteX3                 ,
    annotCalloutLineX3                      ,


-- ** Y1
    annotCalloutLineReadY1                  ,
    annotCalloutLineWriteY1                 ,
    annotCalloutLineY1                      ,


-- ** Y2
    annotCalloutLineReadY2                  ,
    annotCalloutLineWriteY2                 ,
    annotCalloutLineY2                      ,


-- ** Y3
    annotCalloutLineReadY3                  ,
    annotCalloutLineWriteY3                 ,
    annotCalloutLineY3                      ,




    ) 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 AnnotCalloutLine = AnnotCalloutLine (ForeignPtr AnnotCalloutLine)
foreign import ccall "poppler_annot_callout_line_get_type" c_poppler_annot_callout_line_get_type :: 
    IO GType

instance BoxedObject AnnotCalloutLine where
    boxedType _ = c_poppler_annot_callout_line_get_type

-- | Construct a `AnnotCalloutLine` struct initialized to zero.
newZeroAnnotCalloutLine :: MonadIO m => m AnnotCalloutLine
newZeroAnnotCalloutLine = liftIO $ callocBoxedBytes 56 >>= wrapBoxed AnnotCalloutLine

instance tag ~ 'AttrSet => Constructible AnnotCalloutLine tag where
    new _ attrs = do
        o <- newZeroAnnotCalloutLine
        GI.Attributes.set o attrs
        return o


noAnnotCalloutLine :: Maybe AnnotCalloutLine
noAnnotCalloutLine = Nothing

annotCalloutLineReadMultiline :: MonadIO m => AnnotCalloutLine -> m Bool
annotCalloutLineReadMultiline s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO CInt
    let val' = (/= 0) val
    return val'

annotCalloutLineWriteMultiline :: MonadIO m => AnnotCalloutLine -> Bool -> m ()
annotCalloutLineWriteMultiline s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = (fromIntegral . fromEnum) val
    poke (ptr `plusPtr` 0) (val' :: CInt)

data AnnotCalloutLineMultilineFieldInfo
instance AttrInfo AnnotCalloutLineMultilineFieldInfo where
    type AttrAllowedOps AnnotCalloutLineMultilineFieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint AnnotCalloutLineMultilineFieldInfo = (~) Bool
    type AttrBaseTypeConstraint AnnotCalloutLineMultilineFieldInfo = (~) AnnotCalloutLine
    type AttrGetType AnnotCalloutLineMultilineFieldInfo = Bool
    type AttrLabel AnnotCalloutLineMultilineFieldInfo = "multiline"
    attrGet _ = annotCalloutLineReadMultiline
    attrSet _ = annotCalloutLineWriteMultiline
    attrConstruct = undefined
    attrClear _ = undefined

annotCalloutLineMultiline :: AttrLabelProxy "multiline"
annotCalloutLineMultiline = AttrLabelProxy


annotCalloutLineReadX1 :: MonadIO m => AnnotCalloutLine -> m Double
annotCalloutLineReadX1 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 8) :: IO CDouble
    let val' = realToFrac val
    return val'

annotCalloutLineWriteX1 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
annotCalloutLineWriteX1 s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 8) (val' :: CDouble)

data AnnotCalloutLineX1FieldInfo
instance AttrInfo AnnotCalloutLineX1FieldInfo where
    type AttrAllowedOps AnnotCalloutLineX1FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint AnnotCalloutLineX1FieldInfo = (~) Double
    type AttrBaseTypeConstraint AnnotCalloutLineX1FieldInfo = (~) AnnotCalloutLine
    type AttrGetType AnnotCalloutLineX1FieldInfo = Double
    type AttrLabel AnnotCalloutLineX1FieldInfo = "x1"
    attrGet _ = annotCalloutLineReadX1
    attrSet _ = annotCalloutLineWriteX1
    attrConstruct = undefined
    attrClear _ = undefined

annotCalloutLineX1 :: AttrLabelProxy "x1"
annotCalloutLineX1 = AttrLabelProxy


annotCalloutLineReadY1 :: MonadIO m => AnnotCalloutLine -> m Double
annotCalloutLineReadY1 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 16) :: IO CDouble
    let val' = realToFrac val
    return val'

annotCalloutLineWriteY1 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
annotCalloutLineWriteY1 s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 16) (val' :: CDouble)

data AnnotCalloutLineY1FieldInfo
instance AttrInfo AnnotCalloutLineY1FieldInfo where
    type AttrAllowedOps AnnotCalloutLineY1FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint AnnotCalloutLineY1FieldInfo = (~) Double
    type AttrBaseTypeConstraint AnnotCalloutLineY1FieldInfo = (~) AnnotCalloutLine
    type AttrGetType AnnotCalloutLineY1FieldInfo = Double
    type AttrLabel AnnotCalloutLineY1FieldInfo = "y1"
    attrGet _ = annotCalloutLineReadY1
    attrSet _ = annotCalloutLineWriteY1
    attrConstruct = undefined
    attrClear _ = undefined

annotCalloutLineY1 :: AttrLabelProxy "y1"
annotCalloutLineY1 = AttrLabelProxy


annotCalloutLineReadX2 :: MonadIO m => AnnotCalloutLine -> m Double
annotCalloutLineReadX2 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 24) :: IO CDouble
    let val' = realToFrac val
    return val'

annotCalloutLineWriteX2 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
annotCalloutLineWriteX2 s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 24) (val' :: CDouble)

data AnnotCalloutLineX2FieldInfo
instance AttrInfo AnnotCalloutLineX2FieldInfo where
    type AttrAllowedOps AnnotCalloutLineX2FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint AnnotCalloutLineX2FieldInfo = (~) Double
    type AttrBaseTypeConstraint AnnotCalloutLineX2FieldInfo = (~) AnnotCalloutLine
    type AttrGetType AnnotCalloutLineX2FieldInfo = Double
    type AttrLabel AnnotCalloutLineX2FieldInfo = "x2"
    attrGet _ = annotCalloutLineReadX2
    attrSet _ = annotCalloutLineWriteX2
    attrConstruct = undefined
    attrClear _ = undefined

annotCalloutLineX2 :: AttrLabelProxy "x2"
annotCalloutLineX2 = AttrLabelProxy


annotCalloutLineReadY2 :: MonadIO m => AnnotCalloutLine -> m Double
annotCalloutLineReadY2 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 32) :: IO CDouble
    let val' = realToFrac val
    return val'

annotCalloutLineWriteY2 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
annotCalloutLineWriteY2 s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 32) (val' :: CDouble)

data AnnotCalloutLineY2FieldInfo
instance AttrInfo AnnotCalloutLineY2FieldInfo where
    type AttrAllowedOps AnnotCalloutLineY2FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint AnnotCalloutLineY2FieldInfo = (~) Double
    type AttrBaseTypeConstraint AnnotCalloutLineY2FieldInfo = (~) AnnotCalloutLine
    type AttrGetType AnnotCalloutLineY2FieldInfo = Double
    type AttrLabel AnnotCalloutLineY2FieldInfo = "y2"
    attrGet _ = annotCalloutLineReadY2
    attrSet _ = annotCalloutLineWriteY2
    attrConstruct = undefined
    attrClear _ = undefined

annotCalloutLineY2 :: AttrLabelProxy "y2"
annotCalloutLineY2 = AttrLabelProxy


annotCalloutLineReadX3 :: MonadIO m => AnnotCalloutLine -> m Double
annotCalloutLineReadX3 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 40) :: IO CDouble
    let val' = realToFrac val
    return val'

annotCalloutLineWriteX3 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
annotCalloutLineWriteX3 s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 40) (val' :: CDouble)

data AnnotCalloutLineX3FieldInfo
instance AttrInfo AnnotCalloutLineX3FieldInfo where
    type AttrAllowedOps AnnotCalloutLineX3FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint AnnotCalloutLineX3FieldInfo = (~) Double
    type AttrBaseTypeConstraint AnnotCalloutLineX3FieldInfo = (~) AnnotCalloutLine
    type AttrGetType AnnotCalloutLineX3FieldInfo = Double
    type AttrLabel AnnotCalloutLineX3FieldInfo = "x3"
    attrGet _ = annotCalloutLineReadX3
    attrSet _ = annotCalloutLineWriteX3
    attrConstruct = undefined
    attrClear _ = undefined

annotCalloutLineX3 :: AttrLabelProxy "x3"
annotCalloutLineX3 = AttrLabelProxy


annotCalloutLineReadY3 :: MonadIO m => AnnotCalloutLine -> m Double
annotCalloutLineReadY3 s = liftIO $ withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 48) :: IO CDouble
    let val' = realToFrac val
    return val'

annotCalloutLineWriteY3 :: MonadIO m => AnnotCalloutLine -> Double -> m ()
annotCalloutLineWriteY3 s val = liftIO $ withManagedPtr s $ \ptr -> do
    let val' = realToFrac val
    poke (ptr `plusPtr` 48) (val' :: CDouble)

data AnnotCalloutLineY3FieldInfo
instance AttrInfo AnnotCalloutLineY3FieldInfo where
    type AttrAllowedOps AnnotCalloutLineY3FieldInfo = '[ 'AttrSet, 'AttrGet]
    type AttrSetTypeConstraint AnnotCalloutLineY3FieldInfo = (~) Double
    type AttrBaseTypeConstraint AnnotCalloutLineY3FieldInfo = (~) AnnotCalloutLine
    type AttrGetType AnnotCalloutLineY3FieldInfo = Double
    type AttrLabel AnnotCalloutLineY3FieldInfo = "y3"
    attrGet _ = annotCalloutLineReadY3
    attrSet _ = annotCalloutLineWriteY3
    attrConstruct = undefined
    attrClear _ = undefined

annotCalloutLineY3 :: AttrLabelProxy "y3"
annotCalloutLineY3 = AttrLabelProxy



type instance AttributeList AnnotCalloutLine = AnnotCalloutLineAttributeList
type AnnotCalloutLineAttributeList = ('[ '("multiline", AnnotCalloutLineMultilineFieldInfo), '("x1", AnnotCalloutLineX1FieldInfo), '("y1", AnnotCalloutLineY1FieldInfo), '("x2", AnnotCalloutLineX2FieldInfo), '("y2", AnnotCalloutLineY2FieldInfo), '("x3", AnnotCalloutLineX3FieldInfo), '("y3", AnnotCalloutLineY3FieldInfo)] :: [(Symbol, *)])

-- method AnnotCalloutLine::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : Just (TInterface "Poppler" "AnnotCalloutLine")
-- throws : False
-- Skip return : False

foreign import ccall "poppler_annot_callout_line_new" poppler_annot_callout_line_new :: 
    IO (Ptr AnnotCalloutLine)


annotCalloutLineNew ::
    (MonadIO m) =>
    m AnnotCalloutLine                      -- result
annotCalloutLineNew  = liftIO $ do
    result <- poppler_annot_callout_line_new
    checkUnexpectedReturnNULL "poppler_annot_callout_line_new" result
    result' <- (wrapBoxed AnnotCalloutLine) result
    return result'

-- method AnnotCalloutLine::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotCalloutLine", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface "Poppler" "AnnotCalloutLine")
-- throws : False
-- Skip return : False

foreign import ccall "poppler_annot_callout_line_copy" poppler_annot_callout_line_copy :: 
    Ptr AnnotCalloutLine ->                 -- _obj : TInterface "Poppler" "AnnotCalloutLine"
    IO (Ptr AnnotCalloutLine)


annotCalloutLineCopy ::
    (MonadIO m) =>
    AnnotCalloutLine                        -- _obj
    -> m AnnotCalloutLine                   -- result
annotCalloutLineCopy _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- poppler_annot_callout_line_copy _obj'
    checkUnexpectedReturnNULL "poppler_annot_callout_line_copy" result
    result' <- (wrapBoxed AnnotCalloutLine) result
    touchManagedPtr _obj
    return result'

data AnnotCalloutLineCopyMethodInfo
instance (signature ~ (m AnnotCalloutLine), MonadIO m) => MethodInfo AnnotCalloutLineCopyMethodInfo AnnotCalloutLine signature where
    overloadedMethod _ = annotCalloutLineCopy

-- method AnnotCalloutLine::free
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Poppler" "AnnotCalloutLine", 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_annot_callout_line_free" poppler_annot_callout_line_free :: 
    Ptr AnnotCalloutLine ->                 -- _obj : TInterface "Poppler" "AnnotCalloutLine"
    IO ()


annotCalloutLineFree ::
    (MonadIO m) =>
    AnnotCalloutLine                        -- _obj
    -> m ()                                 -- result
annotCalloutLineFree _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    poppler_annot_callout_line_free _obj'
    touchManagedPtr _obj
    return ()

data AnnotCalloutLineFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => MethodInfo AnnotCalloutLineFreeMethodInfo AnnotCalloutLine signature where
    overloadedMethod _ = annotCalloutLineFree

type family ResolveAnnotCalloutLineMethod (t :: Symbol) (o :: *) :: * where
    ResolveAnnotCalloutLineMethod "copy" o = AnnotCalloutLineCopyMethodInfo
    ResolveAnnotCalloutLineMethod "free" o = AnnotCalloutLineFreeMethodInfo
    ResolveAnnotCalloutLineMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveAnnotCalloutLineMethod t AnnotCalloutLine, MethodInfo info AnnotCalloutLine p) => IsLabelProxy t (AnnotCalloutLine -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveAnnotCalloutLineMethod t AnnotCalloutLine, MethodInfo info AnnotCalloutLine p) => IsLabel t (AnnotCalloutLine -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif