{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Poppler.Objects.AnnotLine
(
AnnotLine(..) ,
IsAnnotLine ,
toAnnotLine ,
#if defined(ENABLE_OVERLOADING)
ResolveAnnotLineMethod ,
#endif
annotLineNew ,
#if defined(ENABLE_OVERLOADING)
AnnotLineSetVerticesMethodInfo ,
#endif
annotLineSetVertices ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Poppler.Objects.Annot as Poppler.Annot
import {-# SOURCE #-} qualified GI.Poppler.Objects.AnnotMarkup as Poppler.AnnotMarkup
import {-# SOURCE #-} qualified GI.Poppler.Objects.Document as Poppler.Document
import {-# SOURCE #-} qualified GI.Poppler.Structs.Point as Poppler.Point
import {-# SOURCE #-} qualified GI.Poppler.Structs.Rectangle as Poppler.Rectangle
newtype AnnotLine = AnnotLine (SP.ManagedPtr AnnotLine)
deriving (AnnotLine -> AnnotLine -> Bool
(AnnotLine -> AnnotLine -> Bool)
-> (AnnotLine -> AnnotLine -> Bool) -> Eq AnnotLine
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AnnotLine -> AnnotLine -> Bool
$c/= :: AnnotLine -> AnnotLine -> Bool
== :: AnnotLine -> AnnotLine -> Bool
$c== :: AnnotLine -> AnnotLine -> Bool
Eq)
instance SP.ManagedPtrNewtype AnnotLine where
toManagedPtr :: AnnotLine -> ManagedPtr AnnotLine
toManagedPtr (AnnotLine ManagedPtr AnnotLine
p) = ManagedPtr AnnotLine
p
foreign import ccall "poppler_annot_line_get_type"
c_poppler_annot_line_get_type :: IO B.Types.GType
instance B.Types.TypedObject AnnotLine where
glibType :: IO GType
glibType = IO GType
c_poppler_annot_line_get_type
instance B.Types.GObject AnnotLine
class (SP.GObject o, O.IsDescendantOf AnnotLine o) => IsAnnotLine o
instance (SP.GObject o, O.IsDescendantOf AnnotLine o) => IsAnnotLine o
instance O.HasParentTypes AnnotLine
type instance O.ParentTypes AnnotLine = '[Poppler.AnnotMarkup.AnnotMarkup, Poppler.Annot.Annot, GObject.Object.Object]
toAnnotLine :: (MIO.MonadIO m, IsAnnotLine o) => o -> m AnnotLine
toAnnotLine :: forall (m :: * -> *) o.
(MonadIO m, IsAnnotLine o) =>
o -> m AnnotLine
toAnnotLine = IO AnnotLine -> m AnnotLine
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO AnnotLine -> m AnnotLine)
-> (o -> IO AnnotLine) -> o -> m AnnotLine
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr AnnotLine -> AnnotLine) -> o -> IO AnnotLine
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr AnnotLine -> AnnotLine
AnnotLine
instance B.GValue.IsGValue (Maybe AnnotLine) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_poppler_annot_line_get_type
gvalueSet_ :: Ptr GValue -> Maybe AnnotLine -> IO ()
gvalueSet_ Ptr GValue
gv Maybe AnnotLine
P.Nothing = Ptr GValue -> Ptr AnnotLine -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr AnnotLine
forall a. Ptr a
FP.nullPtr :: FP.Ptr AnnotLine)
gvalueSet_ Ptr GValue
gv (P.Just AnnotLine
obj) = AnnotLine -> (Ptr AnnotLine -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr AnnotLine
obj (Ptr GValue -> Ptr AnnotLine -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe AnnotLine)
gvalueGet_ Ptr GValue
gv = do
Ptr AnnotLine
ptr <- Ptr GValue -> IO (Ptr AnnotLine)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr AnnotLine)
if Ptr AnnotLine
ptr Ptr AnnotLine -> Ptr AnnotLine -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr AnnotLine
forall a. Ptr a
FP.nullPtr
then AnnotLine -> Maybe AnnotLine
forall a. a -> Maybe a
P.Just (AnnotLine -> Maybe AnnotLine)
-> IO AnnotLine -> IO (Maybe AnnotLine)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr AnnotLine -> AnnotLine)
-> Ptr AnnotLine -> IO AnnotLine
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr AnnotLine -> AnnotLine
AnnotLine Ptr AnnotLine
ptr
else Maybe AnnotLine -> IO (Maybe AnnotLine)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe AnnotLine
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveAnnotLineMethod (t :: Symbol) (o :: *) :: * where
ResolveAnnotLineMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveAnnotLineMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveAnnotLineMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveAnnotLineMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveAnnotLineMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveAnnotLineMethod "hasPopup" o = Poppler.AnnotMarkup.AnnotMarkupHasPopupMethodInfo
ResolveAnnotLineMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveAnnotLineMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveAnnotLineMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveAnnotLineMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveAnnotLineMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveAnnotLineMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveAnnotLineMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveAnnotLineMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveAnnotLineMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveAnnotLineMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveAnnotLineMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveAnnotLineMethod "getAnnotType" o = Poppler.Annot.AnnotGetAnnotTypeMethodInfo
ResolveAnnotLineMethod "getColor" o = Poppler.Annot.AnnotGetColorMethodInfo
ResolveAnnotLineMethod "getContents" o = Poppler.Annot.AnnotGetContentsMethodInfo
ResolveAnnotLineMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveAnnotLineMethod "getDate" o = Poppler.AnnotMarkup.AnnotMarkupGetDateMethodInfo
ResolveAnnotLineMethod "getExternalData" o = Poppler.AnnotMarkup.AnnotMarkupGetExternalDataMethodInfo
ResolveAnnotLineMethod "getFlags" o = Poppler.Annot.AnnotGetFlagsMethodInfo
ResolveAnnotLineMethod "getLabel" o = Poppler.AnnotMarkup.AnnotMarkupGetLabelMethodInfo
ResolveAnnotLineMethod "getModified" o = Poppler.Annot.AnnotGetModifiedMethodInfo
ResolveAnnotLineMethod "getName" o = Poppler.Annot.AnnotGetNameMethodInfo
ResolveAnnotLineMethod "getOpacity" o = Poppler.AnnotMarkup.AnnotMarkupGetOpacityMethodInfo
ResolveAnnotLineMethod "getPageIndex" o = Poppler.Annot.AnnotGetPageIndexMethodInfo
ResolveAnnotLineMethod "getPopupIsOpen" o = Poppler.AnnotMarkup.AnnotMarkupGetPopupIsOpenMethodInfo
ResolveAnnotLineMethod "getPopupRectangle" o = Poppler.AnnotMarkup.AnnotMarkupGetPopupRectangleMethodInfo
ResolveAnnotLineMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveAnnotLineMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveAnnotLineMethod "getRectangle" o = Poppler.Annot.AnnotGetRectangleMethodInfo
ResolveAnnotLineMethod "getReplyTo" o = Poppler.AnnotMarkup.AnnotMarkupGetReplyToMethodInfo
ResolveAnnotLineMethod "getSubject" o = Poppler.AnnotMarkup.AnnotMarkupGetSubjectMethodInfo
ResolveAnnotLineMethod "setColor" o = Poppler.Annot.AnnotSetColorMethodInfo
ResolveAnnotLineMethod "setContents" o = Poppler.Annot.AnnotSetContentsMethodInfo
ResolveAnnotLineMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveAnnotLineMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveAnnotLineMethod "setFlags" o = Poppler.Annot.AnnotSetFlagsMethodInfo
ResolveAnnotLineMethod "setLabel" o = Poppler.AnnotMarkup.AnnotMarkupSetLabelMethodInfo
ResolveAnnotLineMethod "setOpacity" o = Poppler.AnnotMarkup.AnnotMarkupSetOpacityMethodInfo
ResolveAnnotLineMethod "setPopup" o = Poppler.AnnotMarkup.AnnotMarkupSetPopupMethodInfo
ResolveAnnotLineMethod "setPopupIsOpen" o = Poppler.AnnotMarkup.AnnotMarkupSetPopupIsOpenMethodInfo
ResolveAnnotLineMethod "setPopupRectangle" o = Poppler.AnnotMarkup.AnnotMarkupSetPopupRectangleMethodInfo
ResolveAnnotLineMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveAnnotLineMethod "setRectangle" o = Poppler.Annot.AnnotSetRectangleMethodInfo
ResolveAnnotLineMethod "setVertices" o = AnnotLineSetVerticesMethodInfo
ResolveAnnotLineMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveAnnotLineMethod t AnnotLine, O.OverloadedMethod info AnnotLine p) => OL.IsLabel t (AnnotLine -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveAnnotLineMethod t AnnotLine, O.OverloadedMethod info AnnotLine p, R.HasField t AnnotLine p) => R.HasField t AnnotLine p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveAnnotLineMethod t AnnotLine, O.OverloadedMethodInfo info AnnotLine) => OL.IsLabel t (O.MethodProxy info AnnotLine) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList AnnotLine
type instance O.AttributeList AnnotLine = AnnotLineAttributeList
type AnnotLineAttributeList = ('[ ] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList AnnotLine = AnnotLineSignalList
type AnnotLineSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "poppler_annot_line_new" poppler_annot_line_new ::
Ptr Poppler.Document.Document ->
Ptr Poppler.Rectangle.Rectangle ->
Ptr Poppler.Point.Point ->
Ptr Poppler.Point.Point ->
IO (Ptr AnnotLine)
annotLineNew ::
(B.CallStack.HasCallStack, MonadIO m, Poppler.Document.IsDocument a) =>
a
-> Poppler.Rectangle.Rectangle
-> Poppler.Point.Point
-> Poppler.Point.Point
-> m AnnotLine
annotLineNew :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDocument a) =>
a -> Rectangle -> Point -> Point -> m AnnotLine
annotLineNew a
doc Rectangle
rect Point
start Point
end = IO AnnotLine -> m AnnotLine
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO AnnotLine -> m AnnotLine) -> IO AnnotLine -> m AnnotLine
forall a b. (a -> b) -> a -> b
$ do
Ptr Document
doc' <- a -> IO (Ptr Document)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
doc
Ptr Rectangle
rect' <- Rectangle -> IO (Ptr Rectangle)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Rectangle
rect
Ptr Point
start' <- Point -> IO (Ptr Point)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Point
start
Ptr Point
end' <- Point -> IO (Ptr Point)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Point
end
Ptr AnnotLine
result <- Ptr Document
-> Ptr Rectangle -> Ptr Point -> Ptr Point -> IO (Ptr AnnotLine)
poppler_annot_line_new Ptr Document
doc' Ptr Rectangle
rect' Ptr Point
start' Ptr Point
end'
Text -> Ptr AnnotLine -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"annotLineNew" Ptr AnnotLine
result
AnnotLine
result' <- ((ManagedPtr AnnotLine -> AnnotLine)
-> Ptr AnnotLine -> IO AnnotLine
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr AnnotLine -> AnnotLine
AnnotLine) Ptr AnnotLine
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
doc
Rectangle -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Rectangle
rect
Point -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Point
start
Point -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Point
end
AnnotLine -> IO AnnotLine
forall (m :: * -> *) a. Monad m => a -> m a
return AnnotLine
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "poppler_annot_line_set_vertices" poppler_annot_line_set_vertices ::
Ptr AnnotLine ->
Ptr Poppler.Point.Point ->
Ptr Poppler.Point.Point ->
IO ()
annotLineSetVertices ::
(B.CallStack.HasCallStack, MonadIO m, IsAnnotLine a) =>
a
-> Poppler.Point.Point
-> Poppler.Point.Point
-> m ()
annotLineSetVertices :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsAnnotLine a) =>
a -> Point -> Point -> m ()
annotLineSetVertices a
popplerAnnot Point
start Point
end = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr AnnotLine
popplerAnnot' <- a -> IO (Ptr AnnotLine)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
popplerAnnot
Ptr Point
start' <- Point -> IO (Ptr Point)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Point
start
Ptr Point
end' <- Point -> IO (Ptr Point)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Point
end
Ptr AnnotLine -> Ptr Point -> Ptr Point -> IO ()
poppler_annot_line_set_vertices Ptr AnnotLine
popplerAnnot' Ptr Point
start' Ptr Point
end'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
popplerAnnot
Point -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Point
start
Point -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Point
end
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data AnnotLineSetVerticesMethodInfo
instance (signature ~ (Poppler.Point.Point -> Poppler.Point.Point -> m ()), MonadIO m, IsAnnotLine a) => O.OverloadedMethod AnnotLineSetVerticesMethodInfo a signature where
overloadedMethod = annotLineSetVertices
instance O.OverloadedMethodInfo AnnotLineSetVerticesMethodInfo a where
overloadedMethodInfo = O.MethodInfo {
O.overloadedMethodName = "GI.Poppler.Objects.AnnotLine.annotLineSetVertices",
O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-poppler-0.18.25/docs/GI-Poppler-Objects-AnnotLine.html#v:annotLineSetVertices"
}
#endif