{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gsk.Structs.Transform
(
Transform(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveTransformMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
TransformEqualMethodInfo ,
#endif
transformEqual ,
#if defined(ENABLE_OVERLOADING)
TransformGetCategoryMethodInfo ,
#endif
transformGetCategory ,
#if defined(ENABLE_OVERLOADING)
TransformInvertMethodInfo ,
#endif
transformInvert ,
#if defined(ENABLE_OVERLOADING)
TransformMatrixMethodInfo ,
#endif
transformMatrix ,
#if defined(ENABLE_OVERLOADING)
TransformMatrix2dMethodInfo ,
#endif
transformMatrix2d ,
transformNew ,
transformParse ,
#if defined(ENABLE_OVERLOADING)
TransformPerspectiveMethodInfo ,
#endif
transformPerspective ,
#if defined(ENABLE_OVERLOADING)
TransformPrintMethodInfo ,
#endif
transformPrint ,
#if defined(ENABLE_OVERLOADING)
TransformRefMethodInfo ,
#endif
transformRef ,
#if defined(ENABLE_OVERLOADING)
TransformRotateMethodInfo ,
#endif
transformRotate ,
#if defined(ENABLE_OVERLOADING)
TransformRotate3dMethodInfo ,
#endif
transformRotate3d ,
#if defined(ENABLE_OVERLOADING)
TransformScaleMethodInfo ,
#endif
transformScale ,
#if defined(ENABLE_OVERLOADING)
TransformScale3dMethodInfo ,
#endif
transformScale3d ,
#if defined(ENABLE_OVERLOADING)
TransformSkewMethodInfo ,
#endif
transformSkew ,
#if defined(ENABLE_OVERLOADING)
TransformTo2dMethodInfo ,
#endif
transformTo2d ,
#if defined(ENABLE_OVERLOADING)
TransformTo2dComponentsMethodInfo ,
#endif
transformTo2dComponents ,
#if defined(ENABLE_OVERLOADING)
TransformToAffineMethodInfo ,
#endif
transformToAffine ,
#if defined(ENABLE_OVERLOADING)
TransformToMatrixMethodInfo ,
#endif
transformToMatrix ,
#if defined(ENABLE_OVERLOADING)
TransformToStringMethodInfo ,
#endif
transformToString ,
#if defined(ENABLE_OVERLOADING)
TransformToTranslateMethodInfo ,
#endif
transformToTranslate ,
#if defined(ENABLE_OVERLOADING)
TransformTransformMethodInfo ,
#endif
transformTransform ,
#if defined(ENABLE_OVERLOADING)
TransformTransformBoundsMethodInfo ,
#endif
transformTransformBounds ,
#if defined(ENABLE_OVERLOADING)
TransformTransformPointMethodInfo ,
#endif
transformTransformPoint ,
#if defined(ENABLE_OVERLOADING)
TransformTranslateMethodInfo ,
#endif
transformTranslate ,
#if defined(ENABLE_OVERLOADING)
TransformTranslate3dMethodInfo ,
#endif
transformTranslate3d ,
#if defined(ENABLE_OVERLOADING)
TransformUnrefMethodInfo ,
#endif
transformUnref ,
) 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.GHashTable as B.GHT
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.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 Data.Word as DW
import qualified Data.Int as DI
import qualified System.Posix.Types as SPT
import qualified Foreign.C.Types as FCT
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Structs.String as GLib.String
import qualified GI.Graphene.Structs.Matrix as Graphene.Matrix
import qualified GI.Graphene.Structs.Point as Graphene.Point
import qualified GI.Graphene.Structs.Point3D as Graphene.Point3D
import qualified GI.Graphene.Structs.Rect as Graphene.Rect
import qualified GI.Graphene.Structs.Vec3 as Graphene.Vec3
import {-# SOURCE #-} qualified GI.Gsk.Enums as Gsk.Enums
#else
import qualified GI.GLib.Structs.String as GLib.String
import qualified GI.Graphene.Structs.Matrix as Graphene.Matrix
import qualified GI.Graphene.Structs.Point as Graphene.Point
import qualified GI.Graphene.Structs.Point3D as Graphene.Point3D
import qualified GI.Graphene.Structs.Rect as Graphene.Rect
import qualified GI.Graphene.Structs.Vec3 as Graphene.Vec3
import {-# SOURCE #-} qualified GI.Gsk.Enums as Gsk.Enums
#endif
newtype Transform = Transform (SP.ManagedPtr Transform)
deriving (Transform -> Transform -> Bool
(Transform -> Transform -> Bool)
-> (Transform -> Transform -> Bool) -> Eq Transform
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Transform -> Transform -> Bool
== :: Transform -> Transform -> Bool
$c/= :: Transform -> Transform -> Bool
/= :: Transform -> Transform -> Bool
Eq)
instance SP.ManagedPtrNewtype Transform where
toManagedPtr :: Transform -> ManagedPtr Transform
toManagedPtr (Transform ManagedPtr Transform
p) = ManagedPtr Transform
p
foreign import ccall "gsk_transform_get_type" c_gsk_transform_get_type ::
IO GType
type instance O.ParentTypes Transform = '[]
instance O.HasParentTypes Transform
instance B.Types.TypedObject Transform where
glibType :: IO GType
glibType = IO GType
c_gsk_transform_get_type
instance B.Types.GBoxed Transform
instance B.GValue.IsGValue (Maybe Transform) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gsk_transform_get_type
gvalueSet_ :: Ptr GValue -> Maybe Transform -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Transform
P.Nothing = Ptr GValue -> Ptr Transform -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr Transform
forall a. Ptr a
FP.nullPtr :: FP.Ptr Transform)
gvalueSet_ Ptr GValue
gv (P.Just Transform
obj) = Transform -> (Ptr Transform -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Transform
obj (Ptr GValue -> Ptr Transform -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Transform)
gvalueGet_ Ptr GValue
gv = do
ptr <- Ptr GValue -> IO (Ptr Transform)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr Transform)
if ptr /= FP.nullPtr
then P.Just <$> B.ManagedPtr.newBoxed Transform ptr
else return P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Transform
type instance O.AttributeList Transform = TransformAttributeList
type TransformAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "gsk_transform_new" gsk_transform_new ::
IO (Ptr Transform)
transformNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
m Transform
transformNew :: forall (m :: * -> *). (HasCallStack, MonadIO m) => m Transform
transformNew = IO Transform -> m Transform
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Transform -> m Transform) -> IO Transform -> m Transform
forall a b. (a -> b) -> a -> b
$ do
result <- IO (Ptr Transform)
gsk_transform_new
checkUnexpectedReturnNULL "transformNew" result
result' <- (wrapBoxed Transform) result
return result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gsk_transform_equal" gsk_transform_equal ::
Ptr Transform ->
Ptr Transform ->
IO CInt
transformEqual ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Maybe (Transform)
-> m Bool
transformEqual :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Maybe Transform -> m Bool
transformEqual Maybe Transform
first Maybe Transform
second = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
maybeFirst <- case Maybe Transform
first of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jFirst -> do
jFirst' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jFirst
return jFirst'
maybeSecond <- case second of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSecond -> do
jSecond' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jSecond
return jSecond'
result <- gsk_transform_equal maybeFirst maybeSecond
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
whenJust first touchManagedPtr
whenJust second touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data TransformEqualMethodInfo
instance (signature ~ (Maybe (Transform) -> m Bool), MonadIO m) => O.OverloadedMethod TransformEqualMethodInfo Transform signature where
overloadedMethod i = transformEqual (Just i)
instance O.OverloadedMethodInfo TransformEqualMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformEqual",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformEqual"
})
#endif
foreign import ccall "gsk_transform_get_category" gsk_transform_get_category ::
Ptr Transform ->
IO CUInt
transformGetCategory ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> m Gsk.Enums.TransformCategory
transformGetCategory :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> m TransformCategory
transformGetCategory Maybe Transform
self = IO TransformCategory -> m TransformCategory
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TransformCategory -> m TransformCategory)
-> IO TransformCategory -> m TransformCategory
forall a b. (a -> b) -> a -> b
$ do
maybeSelf <- case Maybe Transform
self of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSelf -> do
jSelf' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jSelf
return jSelf'
result <- gsk_transform_get_category maybeSelf
let result' = (Int -> TransformCategory
forall a. Enum a => Int -> a
toEnum (Int -> TransformCategory)
-> (CUInt -> Int) -> CUInt -> TransformCategory
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
whenJust self touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data TransformGetCategoryMethodInfo
instance (signature ~ (m Gsk.Enums.TransformCategory), MonadIO m) => O.OverloadedMethod TransformGetCategoryMethodInfo Transform signature where
overloadedMethod i = transformGetCategory (Just i)
instance O.OverloadedMethodInfo TransformGetCategoryMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformGetCategory",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformGetCategory"
})
#endif
foreign import ccall "gsk_transform_invert" gsk_transform_invert ::
Ptr Transform ->
IO (Ptr Transform)
transformInvert ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> m (Maybe Transform)
transformInvert :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> m (Maybe Transform)
transformInvert Maybe Transform
self = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeSelf <- case Maybe Transform
self of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSelf -> do
jSelf' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jSelf
return jSelf'
result <- gsk_transform_invert maybeSelf
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust self touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformInvertMethodInfo
instance (signature ~ (m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformInvertMethodInfo Transform signature where
overloadedMethod i = transformInvert (Just i)
instance O.OverloadedMethodInfo TransformInvertMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformInvert",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformInvert"
})
#endif
foreign import ccall "gsk_transform_matrix" gsk_transform_matrix ::
Ptr Transform ->
Ptr Graphene.Matrix.Matrix ->
IO (Ptr Transform)
transformMatrix ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Graphene.Matrix.Matrix
-> m Transform
transformMatrix :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Matrix -> m Transform
transformMatrix Maybe Transform
next Matrix
matrix = IO Transform -> m Transform
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Transform -> m Transform) -> IO Transform -> m Transform
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
matrix' <- unsafeManagedPtrGetPtr matrix
result <- gsk_transform_matrix maybeNext matrix'
checkUnexpectedReturnNULL "transformMatrix" result
result' <- (wrapBoxed Transform) result
whenJust next touchManagedPtr
touchManagedPtr matrix
return result'
#if defined(ENABLE_OVERLOADING)
data TransformMatrixMethodInfo
instance (signature ~ (Graphene.Matrix.Matrix -> m Transform), MonadIO m) => O.OverloadedMethod TransformMatrixMethodInfo Transform signature where
overloadedMethod i = transformMatrix (Just i)
instance O.OverloadedMethodInfo TransformMatrixMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformMatrix",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformMatrix"
})
#endif
foreign import ccall "gsk_transform_matrix_2d" gsk_transform_matrix_2d ::
Ptr Transform ->
CFloat ->
CFloat ->
CFloat ->
CFloat ->
CFloat ->
CFloat ->
IO (Ptr Transform)
transformMatrix2d ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Float
-> Float
-> Float
-> Float
-> Float
-> Float
-> m (Maybe Transform)
transformMatrix2d :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform
-> Float
-> Float
-> Float
-> Float
-> Float
-> Float
-> m (Maybe Transform)
transformMatrix2d Maybe Transform
next Float
xx Float
yx Float
xy Float
yy Float
dx Float
dy = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
let xx' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
xx
let yx' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
yx
let xy' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
xy
let yy' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
yy
let dx' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
dx
let dy' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
dy
result <- gsk_transform_matrix_2d maybeNext xx' yx' xy' yy' dx' dy'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformMatrix2dMethodInfo
instance (signature ~ (Float -> Float -> Float -> Float -> Float -> Float -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformMatrix2dMethodInfo Transform signature where
overloadedMethod i = transformMatrix2d (Just i)
instance O.OverloadedMethodInfo TransformMatrix2dMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformMatrix2d",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformMatrix2d"
})
#endif
foreign import ccall "gsk_transform_perspective" gsk_transform_perspective ::
Ptr Transform ->
CFloat ->
IO (Ptr Transform)
transformPerspective ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Float
-> m Transform
transformPerspective :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Float -> m Transform
transformPerspective Maybe Transform
next Float
depth = IO Transform -> m Transform
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Transform -> m Transform) -> IO Transform -> m Transform
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
let depth' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
depth
result <- gsk_transform_perspective maybeNext depth'
checkUnexpectedReturnNULL "transformPerspective" result
result' <- (wrapBoxed Transform) result
whenJust next touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data TransformPerspectiveMethodInfo
instance (signature ~ (Float -> m Transform), MonadIO m) => O.OverloadedMethod TransformPerspectiveMethodInfo Transform signature where
overloadedMethod i = transformPerspective (Just i)
instance O.OverloadedMethodInfo TransformPerspectiveMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformPerspective",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformPerspective"
})
#endif
foreign import ccall "gsk_transform_print" gsk_transform_print ::
Ptr Transform ->
Ptr GLib.String.String ->
IO ()
transformPrint ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> GLib.String.String
-> m ()
transformPrint :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> String -> m ()
transformPrint Maybe Transform
self String
string = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeSelf <- case Maybe Transform
self of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSelf -> do
jSelf' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jSelf
return jSelf'
string' <- unsafeManagedPtrGetPtr string
gsk_transform_print maybeSelf string'
whenJust self touchManagedPtr
touchManagedPtr string
return ()
#if defined(ENABLE_OVERLOADING)
data TransformPrintMethodInfo
instance (signature ~ (GLib.String.String -> m ()), MonadIO m) => O.OverloadedMethod TransformPrintMethodInfo Transform signature where
overloadedMethod i = transformPrint (Just i)
instance O.OverloadedMethodInfo TransformPrintMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformPrint",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformPrint"
})
#endif
foreign import ccall "gsk_transform_ref" gsk_transform_ref ::
Ptr Transform ->
IO (Ptr Transform)
transformRef ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> m (Maybe Transform)
transformRef :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> m (Maybe Transform)
transformRef Maybe Transform
self = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeSelf <- case Maybe Transform
self of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSelf -> do
jSelf' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jSelf
return jSelf'
result <- gsk_transform_ref maybeSelf
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust self touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformRefMethodInfo
instance (signature ~ (m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformRefMethodInfo Transform signature where
overloadedMethod i = transformRef (Just i)
instance O.OverloadedMethodInfo TransformRefMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformRef",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformRef"
})
#endif
foreign import ccall "gsk_transform_rotate" gsk_transform_rotate ::
Ptr Transform ->
CFloat ->
IO (Ptr Transform)
transformRotate ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Float
-> m (Maybe Transform)
transformRotate :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Float -> m (Maybe Transform)
transformRotate Maybe Transform
next Float
angle = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
let angle' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
angle
result <- gsk_transform_rotate maybeNext angle'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformRotateMethodInfo
instance (signature ~ (Float -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformRotateMethodInfo Transform signature where
overloadedMethod i = transformRotate (Just i)
instance O.OverloadedMethodInfo TransformRotateMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformRotate",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformRotate"
})
#endif
foreign import ccall "gsk_transform_rotate_3d" gsk_transform_rotate_3d ::
Ptr Transform ->
CFloat ->
Ptr Graphene.Vec3.Vec3 ->
IO (Ptr Transform)
transformRotate3d ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Float
-> Graphene.Vec3.Vec3
-> m (Maybe Transform)
transformRotate3d :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Float -> Vec3 -> m (Maybe Transform)
transformRotate3d Maybe Transform
next Float
angle Vec3
axis = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
let angle' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
angle
axis' <- unsafeManagedPtrGetPtr axis
result <- gsk_transform_rotate_3d maybeNext angle' axis'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
touchManagedPtr axis
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformRotate3dMethodInfo
instance (signature ~ (Float -> Graphene.Vec3.Vec3 -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformRotate3dMethodInfo Transform signature where
overloadedMethod i = transformRotate3d (Just i)
instance O.OverloadedMethodInfo TransformRotate3dMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformRotate3d",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformRotate3d"
})
#endif
foreign import ccall "gsk_transform_scale" gsk_transform_scale ::
Ptr Transform ->
CFloat ->
CFloat ->
IO (Ptr Transform)
transformScale ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Float
-> Float
-> m (Maybe Transform)
transformScale :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Float -> Float -> m (Maybe Transform)
transformScale Maybe Transform
next Float
factorX Float
factorY = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
let factorX' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
factorX
let factorY' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
factorY
result <- gsk_transform_scale maybeNext factorX' factorY'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformScaleMethodInfo
instance (signature ~ (Float -> Float -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformScaleMethodInfo Transform signature where
overloadedMethod i = transformScale (Just i)
instance O.OverloadedMethodInfo TransformScaleMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformScale",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformScale"
})
#endif
foreign import ccall "gsk_transform_scale_3d" gsk_transform_scale_3d ::
Ptr Transform ->
CFloat ->
CFloat ->
CFloat ->
IO (Ptr Transform)
transformScale3d ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Float
-> Float
-> Float
-> m (Maybe Transform)
transformScale3d :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Float -> Float -> Float -> m (Maybe Transform)
transformScale3d Maybe Transform
next Float
factorX Float
factorY Float
factorZ = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
let factorX' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
factorX
let factorY' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
factorY
let factorZ' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
factorZ
result <- gsk_transform_scale_3d maybeNext factorX' factorY' factorZ'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformScale3dMethodInfo
instance (signature ~ (Float -> Float -> Float -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformScale3dMethodInfo Transform signature where
overloadedMethod i = transformScale3d (Just i)
instance O.OverloadedMethodInfo TransformScale3dMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformScale3d",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformScale3d"
})
#endif
foreign import ccall "gsk_transform_skew" gsk_transform_skew ::
Ptr Transform ->
CFloat ->
CFloat ->
IO (Ptr Transform)
transformSkew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Float
-> Float
-> m (Maybe Transform)
transformSkew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Float -> Float -> m (Maybe Transform)
transformSkew Maybe Transform
next Float
skewX Float
skewY = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
let skewX' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
skewX
let skewY' = Float -> CFloat
forall a b. (Real a, Fractional b) => a -> b
realToFrac Float
skewY
result <- gsk_transform_skew maybeNext skewX' skewY'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformSkewMethodInfo
instance (signature ~ (Float -> Float -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformSkewMethodInfo Transform signature where
overloadedMethod i = transformSkew (Just i)
instance O.OverloadedMethodInfo TransformSkewMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformSkew",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformSkew"
})
#endif
foreign import ccall "gsk_transform_to_2d" gsk_transform_to_2d ::
Ptr Transform ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
IO ()
transformTo2d ::
(B.CallStack.HasCallStack, MonadIO m) =>
Transform
-> m ((Float, Float, Float, Float, Float, Float))
transformTo2d :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Transform -> m (Float, Float, Float, Float, Float, Float)
transformTo2d Transform
self = IO (Float, Float, Float, Float, Float, Float)
-> m (Float, Float, Float, Float, Float, Float)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Float, Float, Float, Float, Float, Float)
-> m (Float, Float, Float, Float, Float, Float))
-> IO (Float, Float, Float, Float, Float, Float)
-> m (Float, Float, Float, Float, Float, Float)
forall a b. (a -> b) -> a -> b
$ do
self' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
self
outXx <- allocMem :: IO (Ptr CFloat)
outYx <- allocMem :: IO (Ptr CFloat)
outXy <- allocMem :: IO (Ptr CFloat)
outYy <- allocMem :: IO (Ptr CFloat)
outDx <- allocMem :: IO (Ptr CFloat)
outDy <- allocMem :: IO (Ptr CFloat)
gsk_transform_to_2d self' outXx outYx outXy outYy outDx outDy
outXx' <- peek outXx
let outXx'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outXx'
outYx' <- peek outYx
let outYx'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outYx'
outXy' <- peek outXy
let outXy'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outXy'
outYy' <- peek outYy
let outYy'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outYy'
outDx' <- peek outDx
let outDx'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDx'
outDy' <- peek outDy
let outDy'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDy'
touchManagedPtr self
freeMem outXx
freeMem outYx
freeMem outXy
freeMem outYy
freeMem outDx
freeMem outDy
return (outXx'', outYx'', outXy'', outYy'', outDx'', outDy'')
#if defined(ENABLE_OVERLOADING)
data TransformTo2dMethodInfo
instance (signature ~ (m ((Float, Float, Float, Float, Float, Float))), MonadIO m) => O.OverloadedMethod TransformTo2dMethodInfo Transform signature where
overloadedMethod = transformTo2d
instance O.OverloadedMethodInfo TransformTo2dMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformTo2d",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformTo2d"
})
#endif
foreign import ccall "gsk_transform_to_2d_components" gsk_transform_to_2d_components ::
Ptr Transform ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
IO ()
transformTo2dComponents ::
(B.CallStack.HasCallStack, MonadIO m) =>
Transform
-> m ((Float, Float, Float, Float, Float, Float, Float))
transformTo2dComponents :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Transform -> m (Float, Float, Float, Float, Float, Float, Float)
transformTo2dComponents Transform
self = IO (Float, Float, Float, Float, Float, Float, Float)
-> m (Float, Float, Float, Float, Float, Float, Float)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Float, Float, Float, Float, Float, Float, Float)
-> m (Float, Float, Float, Float, Float, Float, Float))
-> IO (Float, Float, Float, Float, Float, Float, Float)
-> m (Float, Float, Float, Float, Float, Float, Float)
forall a b. (a -> b) -> a -> b
$ do
self' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
self
outSkewX <- allocMem :: IO (Ptr CFloat)
outSkewY <- allocMem :: IO (Ptr CFloat)
outScaleX <- allocMem :: IO (Ptr CFloat)
outScaleY <- allocMem :: IO (Ptr CFloat)
outAngle <- allocMem :: IO (Ptr CFloat)
outDx <- allocMem :: IO (Ptr CFloat)
outDy <- allocMem :: IO (Ptr CFloat)
gsk_transform_to_2d_components self' outSkewX outSkewY outScaleX outScaleY outAngle outDx outDy
outSkewX' <- peek outSkewX
let outSkewX'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outSkewX'
outSkewY' <- peek outSkewY
let outSkewY'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outSkewY'
outScaleX' <- peek outScaleX
let outScaleX'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outScaleX'
outScaleY' <- peek outScaleY
let outScaleY'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outScaleY'
outAngle' <- peek outAngle
let outAngle'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outAngle'
outDx' <- peek outDx
let outDx'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDx'
outDy' <- peek outDy
let outDy'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDy'
touchManagedPtr self
freeMem outSkewX
freeMem outSkewY
freeMem outScaleX
freeMem outScaleY
freeMem outAngle
freeMem outDx
freeMem outDy
return (outSkewX'', outSkewY'', outScaleX'', outScaleY'', outAngle'', outDx'', outDy'')
#if defined(ENABLE_OVERLOADING)
data TransformTo2dComponentsMethodInfo
instance (signature ~ (m ((Float, Float, Float, Float, Float, Float, Float))), MonadIO m) => O.OverloadedMethod TransformTo2dComponentsMethodInfo Transform signature where
overloadedMethod = transformTo2dComponents
instance O.OverloadedMethodInfo TransformTo2dComponentsMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformTo2dComponents",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformTo2dComponents"
})
#endif
foreign import ccall "gsk_transform_to_affine" gsk_transform_to_affine ::
Ptr Transform ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
Ptr CFloat ->
IO ()
transformToAffine ::
(B.CallStack.HasCallStack, MonadIO m) =>
Transform
-> m ((Float, Float, Float, Float))
transformToAffine :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Transform -> m (Float, Float, Float, Float)
transformToAffine Transform
self = IO (Float, Float, Float, Float) -> m (Float, Float, Float, Float)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Float, Float, Float, Float) -> m (Float, Float, Float, Float))
-> IO (Float, Float, Float, Float)
-> m (Float, Float, Float, Float)
forall a b. (a -> b) -> a -> b
$ do
self' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
self
outScaleX <- allocMem :: IO (Ptr CFloat)
outScaleY <- allocMem :: IO (Ptr CFloat)
outDx <- allocMem :: IO (Ptr CFloat)
outDy <- allocMem :: IO (Ptr CFloat)
gsk_transform_to_affine self' outScaleX outScaleY outDx outDy
outScaleX' <- peek outScaleX
let outScaleX'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outScaleX'
outScaleY' <- peek outScaleY
let outScaleY'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outScaleY'
outDx' <- peek outDx
let outDx'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDx'
outDy' <- peek outDy
let outDy'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDy'
touchManagedPtr self
freeMem outScaleX
freeMem outScaleY
freeMem outDx
freeMem outDy
return (outScaleX'', outScaleY'', outDx'', outDy'')
#if defined(ENABLE_OVERLOADING)
data TransformToAffineMethodInfo
instance (signature ~ (m ((Float, Float, Float, Float))), MonadIO m) => O.OverloadedMethod TransformToAffineMethodInfo Transform signature where
overloadedMethod = transformToAffine
instance O.OverloadedMethodInfo TransformToAffineMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformToAffine",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformToAffine"
})
#endif
foreign import ccall "gsk_transform_to_matrix" gsk_transform_to_matrix ::
Ptr Transform ->
Ptr Graphene.Matrix.Matrix ->
IO ()
transformToMatrix ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> m (Graphene.Matrix.Matrix)
transformToMatrix :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> m Matrix
transformToMatrix Maybe Transform
self = IO Matrix -> m Matrix
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Matrix -> m Matrix) -> IO Matrix -> m Matrix
forall a b. (a -> b) -> a -> b
$ do
maybeSelf <- case Maybe Transform
self of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSelf -> do
jSelf' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jSelf
return jSelf'
outMatrix <- SP.callocBoxedBytes 64 :: IO (Ptr Graphene.Matrix.Matrix)
gsk_transform_to_matrix maybeSelf outMatrix
outMatrix' <- (wrapBoxed Graphene.Matrix.Matrix) outMatrix
whenJust self touchManagedPtr
return outMatrix'
#if defined(ENABLE_OVERLOADING)
data TransformToMatrixMethodInfo
instance (signature ~ (m (Graphene.Matrix.Matrix)), MonadIO m) => O.OverloadedMethod TransformToMatrixMethodInfo Transform signature where
overloadedMethod i = transformToMatrix (Just i)
instance O.OverloadedMethodInfo TransformToMatrixMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformToMatrix",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformToMatrix"
})
#endif
foreign import ccall "gsk_transform_to_string" gsk_transform_to_string ::
Ptr Transform ->
IO CString
transformToString ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> m T.Text
transformToString :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> m Text
transformToString Maybe Transform
self = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
maybeSelf <- case Maybe Transform
self of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSelf -> do
jSelf' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jSelf
return jSelf'
result <- gsk_transform_to_string maybeSelf
checkUnexpectedReturnNULL "transformToString" result
result' <- cstringToText result
freeMem result
whenJust self touchManagedPtr
return result'
#if defined(ENABLE_OVERLOADING)
data TransformToStringMethodInfo
instance (signature ~ (m T.Text), MonadIO m) => O.OverloadedMethod TransformToStringMethodInfo Transform signature where
overloadedMethod i = transformToString (Just i)
instance O.OverloadedMethodInfo TransformToStringMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformToString",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformToString"
})
#endif
foreign import ccall "gsk_transform_to_translate" gsk_transform_to_translate ::
Ptr Transform ->
Ptr CFloat ->
Ptr CFloat ->
IO ()
transformToTranslate ::
(B.CallStack.HasCallStack, MonadIO m) =>
Transform
-> m ((Float, Float))
transformToTranslate :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Transform -> m (Float, Float)
transformToTranslate Transform
self = IO (Float, Float) -> m (Float, Float)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Float, Float) -> m (Float, Float))
-> IO (Float, Float) -> m (Float, Float)
forall a b. (a -> b) -> a -> b
$ do
self' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
self
outDx <- allocMem :: IO (Ptr CFloat)
outDy <- allocMem :: IO (Ptr CFloat)
gsk_transform_to_translate self' outDx outDy
outDx' <- peek outDx
let outDx'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDx'
outDy' <- peek outDy
let outDy'' = CFloat -> Float
forall a b. (Real a, Fractional b) => a -> b
realToFrac CFloat
outDy'
touchManagedPtr self
freeMem outDx
freeMem outDy
return (outDx'', outDy'')
#if defined(ENABLE_OVERLOADING)
data TransformToTranslateMethodInfo
instance (signature ~ (m ((Float, Float))), MonadIO m) => O.OverloadedMethod TransformToTranslateMethodInfo Transform signature where
overloadedMethod = transformToTranslate
instance O.OverloadedMethodInfo TransformToTranslateMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformToTranslate",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformToTranslate"
})
#endif
foreign import ccall "gsk_transform_transform" gsk_transform_transform ::
Ptr Transform ->
Ptr Transform ->
IO (Ptr Transform)
transformTransform ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Maybe (Transform)
-> m (Maybe Transform)
transformTransform :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Maybe Transform -> m (Maybe Transform)
transformTransform Maybe Transform
next Maybe Transform
other = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
maybeOther <- case other of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jOther -> do
jOther' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jOther
return jOther'
result <- gsk_transform_transform maybeNext maybeOther
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
whenJust other touchManagedPtr
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformTransformMethodInfo
instance (signature ~ (Maybe (Transform) -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformTransformMethodInfo Transform signature where
overloadedMethod i = transformTransform (Just i)
instance O.OverloadedMethodInfo TransformTransformMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformTransform",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformTransform"
})
#endif
foreign import ccall "gsk_transform_transform_bounds" gsk_transform_transform_bounds ::
Ptr Transform ->
Ptr Graphene.Rect.Rect ->
Ptr Graphene.Rect.Rect ->
IO ()
transformTransformBounds ::
(B.CallStack.HasCallStack, MonadIO m) =>
Transform
-> Graphene.Rect.Rect
-> m (Graphene.Rect.Rect)
transformTransformBounds :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Transform -> Rect -> m Rect
transformTransformBounds Transform
self Rect
rect = IO Rect -> m Rect
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Rect -> m Rect) -> IO Rect -> m Rect
forall a b. (a -> b) -> a -> b
$ do
self' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
self
rect' <- unsafeManagedPtrGetPtr rect
outRect <- SP.callocBoxedBytes 16 :: IO (Ptr Graphene.Rect.Rect)
gsk_transform_transform_bounds self' rect' outRect
outRect' <- (wrapBoxed Graphene.Rect.Rect) outRect
touchManagedPtr self
touchManagedPtr rect
return outRect'
#if defined(ENABLE_OVERLOADING)
data TransformTransformBoundsMethodInfo
instance (signature ~ (Graphene.Rect.Rect -> m (Graphene.Rect.Rect)), MonadIO m) => O.OverloadedMethod TransformTransformBoundsMethodInfo Transform signature where
overloadedMethod = transformTransformBounds
instance O.OverloadedMethodInfo TransformTransformBoundsMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformTransformBounds",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformTransformBounds"
})
#endif
foreign import ccall "gsk_transform_transform_point" gsk_transform_transform_point ::
Ptr Transform ->
Ptr Graphene.Point.Point ->
Ptr Graphene.Point.Point ->
IO ()
transformTransformPoint ::
(B.CallStack.HasCallStack, MonadIO m) =>
Transform
-> Graphene.Point.Point
-> m (Graphene.Point.Point)
transformTransformPoint :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Transform -> Point -> m Point
transformTransformPoint Transform
self Point
point = IO Point -> m Point
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Point -> m Point) -> IO Point -> m Point
forall a b. (a -> b) -> a -> b
$ do
self' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
self
point' <- unsafeManagedPtrGetPtr point
outPoint <- SP.callocBoxedBytes 8 :: IO (Ptr Graphene.Point.Point)
gsk_transform_transform_point self' point' outPoint
outPoint' <- (wrapBoxed Graphene.Point.Point) outPoint
touchManagedPtr self
touchManagedPtr point
return outPoint'
#if defined(ENABLE_OVERLOADING)
data TransformTransformPointMethodInfo
instance (signature ~ (Graphene.Point.Point -> m (Graphene.Point.Point)), MonadIO m) => O.OverloadedMethod TransformTransformPointMethodInfo Transform signature where
overloadedMethod = transformTransformPoint
instance O.OverloadedMethodInfo TransformTransformPointMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformTransformPoint",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformTransformPoint"
})
#endif
foreign import ccall "gsk_transform_translate" gsk_transform_translate ::
Ptr Transform ->
Ptr Graphene.Point.Point ->
IO (Ptr Transform)
transformTranslate ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Graphene.Point.Point
-> m (Maybe Transform)
transformTranslate :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Point -> m (Maybe Transform)
transformTranslate Maybe Transform
next Point
point = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
point' <- unsafeManagedPtrGetPtr point
result <- gsk_transform_translate maybeNext point'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
touchManagedPtr point
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformTranslateMethodInfo
instance (signature ~ (Graphene.Point.Point -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformTranslateMethodInfo Transform signature where
overloadedMethod i = transformTranslate (Just i)
instance O.OverloadedMethodInfo TransformTranslateMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformTranslate",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformTranslate"
})
#endif
foreign import ccall "gsk_transform_translate_3d" gsk_transform_translate_3d ::
Ptr Transform ->
Ptr Graphene.Point3D.Point3D ->
IO (Ptr Transform)
transformTranslate3d ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> Graphene.Point3D.Point3D
-> m (Maybe Transform)
transformTranslate3d :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> Point3D -> m (Maybe Transform)
transformTranslate3d Maybe Transform
next Point3D
point = IO (Maybe Transform) -> m (Maybe Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Transform) -> m (Maybe Transform))
-> IO (Maybe Transform) -> m (Maybe Transform)
forall a b. (a -> b) -> a -> b
$ do
maybeNext <- case Maybe Transform
next of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jNext -> do
jNext' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed Transform
jNext
return jNext'
point' <- unsafeManagedPtrGetPtr point
result <- gsk_transform_translate_3d maybeNext point'
maybeResult <- convertIfNonNull result $ \Ptr Transform
result' -> do
result'' <- ((ManagedPtr Transform -> Transform)
-> Ptr Transform -> IO Transform
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr Transform -> Transform
Transform) Ptr Transform
result'
return result''
whenJust next touchManagedPtr
touchManagedPtr point
return maybeResult
#if defined(ENABLE_OVERLOADING)
data TransformTranslate3dMethodInfo
instance (signature ~ (Graphene.Point3D.Point3D -> m (Maybe Transform)), MonadIO m) => O.OverloadedMethod TransformTranslate3dMethodInfo Transform signature where
overloadedMethod i = transformTranslate3d (Just i)
instance O.OverloadedMethodInfo TransformTranslate3dMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformTranslate3d",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformTranslate3d"
})
#endif
foreign import ccall "gsk_transform_unref" gsk_transform_unref ::
Ptr Transform ->
IO ()
transformUnref ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (Transform)
-> m ()
transformUnref :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Transform -> m ()
transformUnref Maybe Transform
self = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
maybeSelf <- case Maybe Transform
self of
Maybe Transform
Nothing -> Ptr Transform -> IO (Ptr Transform)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Transform
forall a. Ptr a
FP.nullPtr
Just Transform
jSelf -> do
jSelf' <- Transform -> IO (Ptr Transform)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Transform
jSelf
return jSelf'
gsk_transform_unref maybeSelf
whenJust self touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING)
data TransformUnrefMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod TransformUnrefMethodInfo Transform signature where
overloadedMethod i = transformUnref (Just i)
instance O.OverloadedMethodInfo TransformUnrefMethodInfo Transform where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gsk.Structs.Transform.transformUnref",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gsk-4.0.9/docs/GI-Gsk-Structs-Transform.html#v:transformUnref"
})
#endif
foreign import ccall "gsk_transform_parse" gsk_transform_parse ::
CString ->
Ptr (Ptr Transform) ->
IO CInt
transformParse ::
(B.CallStack.HasCallStack, MonadIO m) =>
T.Text
-> m ((Bool, Transform))
transformParse :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> m (Bool, Transform)
transformParse Text
string = IO (Bool, Transform) -> m (Bool, Transform)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Transform) -> m (Bool, Transform))
-> IO (Bool, Transform) -> m (Bool, Transform)
forall a b. (a -> b) -> a -> b
$ do
string' <- Text -> IO CString
textToCString Text
string
outTransform <- callocMem :: IO (Ptr (Ptr Transform))
result <- gsk_transform_parse string' outTransform
let result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
outTransform' <- peek outTransform
outTransform'' <- (wrapBoxed Transform) outTransform'
freeMem string'
freeMem outTransform
return (result', outTransform'')
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveTransformMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveTransformMethod "equal" o = TransformEqualMethodInfo
ResolveTransformMethod "invert" o = TransformInvertMethodInfo
ResolveTransformMethod "matrix" o = TransformMatrixMethodInfo
ResolveTransformMethod "matrix2d" o = TransformMatrix2dMethodInfo
ResolveTransformMethod "perspective" o = TransformPerspectiveMethodInfo
ResolveTransformMethod "print" o = TransformPrintMethodInfo
ResolveTransformMethod "ref" o = TransformRefMethodInfo
ResolveTransformMethod "rotate" o = TransformRotateMethodInfo
ResolveTransformMethod "rotate3d" o = TransformRotate3dMethodInfo
ResolveTransformMethod "scale" o = TransformScaleMethodInfo
ResolveTransformMethod "scale3d" o = TransformScale3dMethodInfo
ResolveTransformMethod "skew" o = TransformSkewMethodInfo
ResolveTransformMethod "to2d" o = TransformTo2dMethodInfo
ResolveTransformMethod "to2dComponents" o = TransformTo2dComponentsMethodInfo
ResolveTransformMethod "toAffine" o = TransformToAffineMethodInfo
ResolveTransformMethod "toMatrix" o = TransformToMatrixMethodInfo
ResolveTransformMethod "toString" o = TransformToStringMethodInfo
ResolveTransformMethod "toTranslate" o = TransformToTranslateMethodInfo
ResolveTransformMethod "transform" o = TransformTransformMethodInfo
ResolveTransformMethod "transformBounds" o = TransformTransformBoundsMethodInfo
ResolveTransformMethod "transformPoint" o = TransformTransformPointMethodInfo
ResolveTransformMethod "translate" o = TransformTranslateMethodInfo
ResolveTransformMethod "translate3d" o = TransformTranslate3dMethodInfo
ResolveTransformMethod "unref" o = TransformUnrefMethodInfo
ResolveTransformMethod "getCategory" o = TransformGetCategoryMethodInfo
ResolveTransformMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveTransformMethod t Transform, O.OverloadedMethod info Transform p) => OL.IsLabel t (Transform -> 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 ~ ResolveTransformMethod t Transform, O.OverloadedMethod info Transform p, R.HasField t Transform p) => R.HasField t Transform p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveTransformMethod t Transform, O.OverloadedMethodInfo info Transform) => OL.IsLabel t (O.MethodProxy info Transform) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif