module GI.Pango.Structs.Matrix
(
Matrix(..) ,
newZeroMatrix ,
noMatrix ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixConcatMethodInfo ,
#endif
matrixConcat ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixCopyMethodInfo ,
#endif
matrixCopy ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixFreeMethodInfo ,
#endif
matrixFree ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixGetFontScaleFactorMethodInfo ,
#endif
matrixGetFontScaleFactor ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixGetFontScaleFactorsMethodInfo ,
#endif
matrixGetFontScaleFactors ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixRotateMethodInfo ,
#endif
matrixRotate ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixScaleMethodInfo ,
#endif
matrixScale ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixTransformDistanceMethodInfo ,
#endif
matrixTransformDistance ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixTransformPixelRectangleMethodInfo ,
#endif
matrixTransformPixelRectangle ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixTransformPointMethodInfo ,
#endif
matrixTransformPoint ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
MatrixTranslateMethodInfo ,
#endif
matrixTranslate ,
getMatrixX0 ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
matrix_x0 ,
#endif
setMatrixX0 ,
getMatrixXx ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
matrix_xx ,
#endif
setMatrixXx ,
getMatrixXy ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
matrix_xy ,
#endif
setMatrixXy ,
getMatrixY0 ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
matrix_y0 ,
#endif
setMatrixY0 ,
getMatrixYx ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
matrix_yx ,
#endif
setMatrixYx ,
getMatrixYy ,
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
matrix_yy ,
#endif
setMatrixYy ,
) 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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
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 GI.Pango.Structs.Rectangle as Pango.Rectangle
newtype Matrix = Matrix (ManagedPtr Matrix)
foreign import ccall "pango_matrix_get_type" c_pango_matrix_get_type ::
IO GType
instance BoxedObject Matrix where
boxedType _ = c_pango_matrix_get_type
newZeroMatrix :: MonadIO m => m Matrix
newZeroMatrix = liftIO $ callocBoxedBytes 48 >>= wrapBoxed Matrix
instance tag ~ 'AttrSet => Constructible Matrix tag where
new _ attrs = do
o <- newZeroMatrix
GI.Attributes.set o attrs
return o
noMatrix :: Maybe Matrix
noMatrix = Nothing
getMatrixXx :: MonadIO m => Matrix -> m Double
getMatrixXx s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 0) :: IO CDouble
let val' = realToFrac val
return val'
setMatrixXx :: MonadIO m => Matrix -> Double -> m ()
setMatrixXx s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 0) (val' :: CDouble)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixXxFieldInfo
instance AttrInfo MatrixXxFieldInfo where
type AttrAllowedOps MatrixXxFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MatrixXxFieldInfo = (~) Double
type AttrBaseTypeConstraint MatrixXxFieldInfo = (~) Matrix
type AttrGetType MatrixXxFieldInfo = Double
type AttrLabel MatrixXxFieldInfo = "xx"
type AttrOrigin MatrixXxFieldInfo = Matrix
attrGet _ = getMatrixXx
attrSet _ = setMatrixXx
attrConstruct = undefined
attrClear _ = undefined
matrix_xx :: AttrLabelProxy "xx"
matrix_xx = AttrLabelProxy
#endif
getMatrixXy :: MonadIO m => Matrix -> m Double
getMatrixXy s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 8) :: IO CDouble
let val' = realToFrac val
return val'
setMatrixXy :: MonadIO m => Matrix -> Double -> m ()
setMatrixXy s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 8) (val' :: CDouble)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixXyFieldInfo
instance AttrInfo MatrixXyFieldInfo where
type AttrAllowedOps MatrixXyFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MatrixXyFieldInfo = (~) Double
type AttrBaseTypeConstraint MatrixXyFieldInfo = (~) Matrix
type AttrGetType MatrixXyFieldInfo = Double
type AttrLabel MatrixXyFieldInfo = "xy"
type AttrOrigin MatrixXyFieldInfo = Matrix
attrGet _ = getMatrixXy
attrSet _ = setMatrixXy
attrConstruct = undefined
attrClear _ = undefined
matrix_xy :: AttrLabelProxy "xy"
matrix_xy = AttrLabelProxy
#endif
getMatrixYx :: MonadIO m => Matrix -> m Double
getMatrixYx s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 16) :: IO CDouble
let val' = realToFrac val
return val'
setMatrixYx :: MonadIO m => Matrix -> Double -> m ()
setMatrixYx s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 16) (val' :: CDouble)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixYxFieldInfo
instance AttrInfo MatrixYxFieldInfo where
type AttrAllowedOps MatrixYxFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MatrixYxFieldInfo = (~) Double
type AttrBaseTypeConstraint MatrixYxFieldInfo = (~) Matrix
type AttrGetType MatrixYxFieldInfo = Double
type AttrLabel MatrixYxFieldInfo = "yx"
type AttrOrigin MatrixYxFieldInfo = Matrix
attrGet _ = getMatrixYx
attrSet _ = setMatrixYx
attrConstruct = undefined
attrClear _ = undefined
matrix_yx :: AttrLabelProxy "yx"
matrix_yx = AttrLabelProxy
#endif
getMatrixYy :: MonadIO m => Matrix -> m Double
getMatrixYy s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 24) :: IO CDouble
let val' = realToFrac val
return val'
setMatrixYy :: MonadIO m => Matrix -> Double -> m ()
setMatrixYy s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 24) (val' :: CDouble)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixYyFieldInfo
instance AttrInfo MatrixYyFieldInfo where
type AttrAllowedOps MatrixYyFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MatrixYyFieldInfo = (~) Double
type AttrBaseTypeConstraint MatrixYyFieldInfo = (~) Matrix
type AttrGetType MatrixYyFieldInfo = Double
type AttrLabel MatrixYyFieldInfo = "yy"
type AttrOrigin MatrixYyFieldInfo = Matrix
attrGet _ = getMatrixYy
attrSet _ = setMatrixYy
attrConstruct = undefined
attrClear _ = undefined
matrix_yy :: AttrLabelProxy "yy"
matrix_yy = AttrLabelProxy
#endif
getMatrixX0 :: MonadIO m => Matrix -> m Double
getMatrixX0 s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 32) :: IO CDouble
let val' = realToFrac val
return val'
setMatrixX0 :: MonadIO m => Matrix -> Double -> m ()
setMatrixX0 s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 32) (val' :: CDouble)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixX0FieldInfo
instance AttrInfo MatrixX0FieldInfo where
type AttrAllowedOps MatrixX0FieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MatrixX0FieldInfo = (~) Double
type AttrBaseTypeConstraint MatrixX0FieldInfo = (~) Matrix
type AttrGetType MatrixX0FieldInfo = Double
type AttrLabel MatrixX0FieldInfo = "x0"
type AttrOrigin MatrixX0FieldInfo = Matrix
attrGet _ = getMatrixX0
attrSet _ = setMatrixX0
attrConstruct = undefined
attrClear _ = undefined
matrix_x0 :: AttrLabelProxy "x0"
matrix_x0 = AttrLabelProxy
#endif
getMatrixY0 :: MonadIO m => Matrix -> m Double
getMatrixY0 s = liftIO $ withManagedPtr s $ \ptr -> do
val <- peek (ptr `plusPtr` 40) :: IO CDouble
let val' = realToFrac val
return val'
setMatrixY0 :: MonadIO m => Matrix -> Double -> m ()
setMatrixY0 s val = liftIO $ withManagedPtr s $ \ptr -> do
let val' = realToFrac val
poke (ptr `plusPtr` 40) (val' :: CDouble)
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixY0FieldInfo
instance AttrInfo MatrixY0FieldInfo where
type AttrAllowedOps MatrixY0FieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint MatrixY0FieldInfo = (~) Double
type AttrBaseTypeConstraint MatrixY0FieldInfo = (~) Matrix
type AttrGetType MatrixY0FieldInfo = Double
type AttrLabel MatrixY0FieldInfo = "y0"
type AttrOrigin MatrixY0FieldInfo = Matrix
attrGet _ = getMatrixY0
attrSet _ = setMatrixY0
attrConstruct = undefined
attrClear _ = undefined
matrix_y0 :: AttrLabelProxy "y0"
matrix_y0 = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
instance O.HasAttributeList Matrix
type instance O.AttributeList Matrix = MatrixAttributeList
type MatrixAttributeList = ('[ '("xx", MatrixXxFieldInfo), '("xy", MatrixXyFieldInfo), '("yx", MatrixYxFieldInfo), '("yy", MatrixYyFieldInfo), '("x0", MatrixX0FieldInfo), '("y0", MatrixY0FieldInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "pango_matrix_concat" pango_matrix_concat ::
Ptr Matrix ->
Ptr Matrix ->
IO ()
matrixConcat ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> Matrix
-> m ()
matrixConcat matrix newMatrix = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
newMatrix' <- unsafeManagedPtrGetPtr newMatrix
pango_matrix_concat matrix' newMatrix'
touchManagedPtr matrix
touchManagedPtr newMatrix
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixConcatMethodInfo
instance (signature ~ (Matrix -> m ()), MonadIO m) => O.MethodInfo MatrixConcatMethodInfo Matrix signature where
overloadedMethod _ = matrixConcat
#endif
foreign import ccall "pango_matrix_copy" pango_matrix_copy ::
Ptr Matrix ->
IO (Ptr Matrix)
matrixCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> m (Maybe Matrix)
matrixCopy matrix = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
result <- pango_matrix_copy matrix'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Matrix) result'
return result''
touchManagedPtr matrix
return maybeResult
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixCopyMethodInfo
instance (signature ~ (m (Maybe Matrix)), MonadIO m) => O.MethodInfo MatrixCopyMethodInfo Matrix signature where
overloadedMethod _ = matrixCopy
#endif
foreign import ccall "pango_matrix_free" pango_matrix_free ::
Ptr Matrix ->
IO ()
matrixFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> m ()
matrixFree matrix = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
pango_matrix_free matrix'
touchManagedPtr matrix
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.MethodInfo MatrixFreeMethodInfo Matrix signature where
overloadedMethod _ = matrixFree
#endif
foreign import ccall "pango_matrix_get_font_scale_factor" pango_matrix_get_font_scale_factor ::
Ptr Matrix ->
IO CDouble
matrixGetFontScaleFactor ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> m Double
matrixGetFontScaleFactor matrix = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
result <- pango_matrix_get_font_scale_factor matrix'
let result' = realToFrac result
touchManagedPtr matrix
return result'
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixGetFontScaleFactorMethodInfo
instance (signature ~ (m Double), MonadIO m) => O.MethodInfo MatrixGetFontScaleFactorMethodInfo Matrix signature where
overloadedMethod _ = matrixGetFontScaleFactor
#endif
foreign import ccall "pango_matrix_get_font_scale_factors" pango_matrix_get_font_scale_factors ::
Ptr Matrix ->
Ptr CDouble ->
Ptr CDouble ->
IO ()
matrixGetFontScaleFactors ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> m ((Double, Double))
matrixGetFontScaleFactors matrix = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
xscale <- allocMem :: IO (Ptr CDouble)
yscale <- allocMem :: IO (Ptr CDouble)
pango_matrix_get_font_scale_factors matrix' xscale yscale
xscale' <- peek xscale
let xscale'' = realToFrac xscale'
yscale' <- peek yscale
let yscale'' = realToFrac yscale'
touchManagedPtr matrix
freeMem xscale
freeMem yscale
return (xscale'', yscale'')
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixGetFontScaleFactorsMethodInfo
instance (signature ~ (m ((Double, Double))), MonadIO m) => O.MethodInfo MatrixGetFontScaleFactorsMethodInfo Matrix signature where
overloadedMethod _ = matrixGetFontScaleFactors
#endif
foreign import ccall "pango_matrix_rotate" pango_matrix_rotate ::
Ptr Matrix ->
CDouble ->
IO ()
matrixRotate ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> Double
-> m ()
matrixRotate matrix degrees = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
let degrees' = realToFrac degrees
pango_matrix_rotate matrix' degrees'
touchManagedPtr matrix
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixRotateMethodInfo
instance (signature ~ (Double -> m ()), MonadIO m) => O.MethodInfo MatrixRotateMethodInfo Matrix signature where
overloadedMethod _ = matrixRotate
#endif
foreign import ccall "pango_matrix_scale" pango_matrix_scale ::
Ptr Matrix ->
CDouble ->
CDouble ->
IO ()
matrixScale ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> Double
-> Double
-> m ()
matrixScale matrix scaleX scaleY = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
let scaleX' = realToFrac scaleX
let scaleY' = realToFrac scaleY
pango_matrix_scale matrix' scaleX' scaleY'
touchManagedPtr matrix
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixScaleMethodInfo
instance (signature ~ (Double -> Double -> m ()), MonadIO m) => O.MethodInfo MatrixScaleMethodInfo Matrix signature where
overloadedMethod _ = matrixScale
#endif
foreign import ccall "pango_matrix_transform_distance" pango_matrix_transform_distance ::
Ptr Matrix ->
Ptr CDouble ->
Ptr CDouble ->
IO ()
matrixTransformDistance ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> Double
-> Double
-> m ((Double, Double))
matrixTransformDistance matrix dx dy = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
let dx' = realToFrac dx
dx'' <- allocMem :: IO (Ptr CDouble)
poke dx'' dx'
let dy' = realToFrac dy
dy'' <- allocMem :: IO (Ptr CDouble)
poke dy'' dy'
pango_matrix_transform_distance matrix' dx'' dy''
dx''' <- peek dx''
let dx'''' = realToFrac dx'''
dy''' <- peek dy''
let dy'''' = realToFrac dy'''
touchManagedPtr matrix
freeMem dx''
freeMem dy''
return (dx'''', dy'''')
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixTransformDistanceMethodInfo
instance (signature ~ (Double -> Double -> m ((Double, Double))), MonadIO m) => O.MethodInfo MatrixTransformDistanceMethodInfo Matrix signature where
overloadedMethod _ = matrixTransformDistance
#endif
foreign import ccall "pango_matrix_transform_pixel_rectangle" pango_matrix_transform_pixel_rectangle ::
Ptr Matrix ->
Ptr Pango.Rectangle.Rectangle ->
IO ()
matrixTransformPixelRectangle ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> Maybe (Pango.Rectangle.Rectangle)
-> m ()
matrixTransformPixelRectangle matrix rect = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
maybeRect <- case rect of
Nothing -> return nullPtr
Just jRect -> do
jRect' <- unsafeManagedPtrGetPtr jRect
return jRect'
pango_matrix_transform_pixel_rectangle matrix' maybeRect
touchManagedPtr matrix
whenJust rect touchManagedPtr
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixTransformPixelRectangleMethodInfo
instance (signature ~ (Maybe (Pango.Rectangle.Rectangle) -> m ()), MonadIO m) => O.MethodInfo MatrixTransformPixelRectangleMethodInfo Matrix signature where
overloadedMethod _ = matrixTransformPixelRectangle
#endif
foreign import ccall "pango_matrix_transform_point" pango_matrix_transform_point ::
Ptr Matrix ->
Ptr CDouble ->
Ptr CDouble ->
IO ()
matrixTransformPoint ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> Double
-> Double
-> m ((Double, Double))
matrixTransformPoint matrix x y = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
let x' = realToFrac x
x'' <- allocMem :: IO (Ptr CDouble)
poke x'' x'
let y' = realToFrac y
y'' <- allocMem :: IO (Ptr CDouble)
poke y'' y'
pango_matrix_transform_point matrix' x'' y''
x''' <- peek x''
let x'''' = realToFrac x'''
y''' <- peek y''
let y'''' = realToFrac y'''
touchManagedPtr matrix
freeMem x''
freeMem y''
return (x'''', y'''')
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixTransformPointMethodInfo
instance (signature ~ (Double -> Double -> m ((Double, Double))), MonadIO m) => O.MethodInfo MatrixTransformPointMethodInfo Matrix signature where
overloadedMethod _ = matrixTransformPoint
#endif
foreign import ccall "pango_matrix_translate" pango_matrix_translate ::
Ptr Matrix ->
CDouble ->
CDouble ->
IO ()
matrixTranslate ::
(B.CallStack.HasCallStack, MonadIO m) =>
Matrix
-> Double
-> Double
-> m ()
matrixTranslate matrix tx ty = liftIO $ do
matrix' <- unsafeManagedPtrGetPtr matrix
let tx' = realToFrac tx
let ty' = realToFrac ty
pango_matrix_translate matrix' tx' ty'
touchManagedPtr matrix
return ()
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
data MatrixTranslateMethodInfo
instance (signature ~ (Double -> Double -> m ()), MonadIO m) => O.MethodInfo MatrixTranslateMethodInfo Matrix signature where
overloadedMethod _ = matrixTranslate
#endif
#if defined(ENABLE_OVERLOADING) && !defined(__HADDOCK_VERSION__)
type family ResolveMatrixMethod (t :: Symbol) (o :: *) :: * where
ResolveMatrixMethod "concat" o = MatrixConcatMethodInfo
ResolveMatrixMethod "copy" o = MatrixCopyMethodInfo
ResolveMatrixMethod "free" o = MatrixFreeMethodInfo
ResolveMatrixMethod "rotate" o = MatrixRotateMethodInfo
ResolveMatrixMethod "scale" o = MatrixScaleMethodInfo
ResolveMatrixMethod "transformDistance" o = MatrixTransformDistanceMethodInfo
ResolveMatrixMethod "transformPixelRectangle" o = MatrixTransformPixelRectangleMethodInfo
ResolveMatrixMethod "transformPoint" o = MatrixTransformPointMethodInfo
ResolveMatrixMethod "translate" o = MatrixTranslateMethodInfo
ResolveMatrixMethod "getFontScaleFactor" o = MatrixGetFontScaleFactorMethodInfo
ResolveMatrixMethod "getFontScaleFactors" o = MatrixGetFontScaleFactorsMethodInfo
ResolveMatrixMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveMatrixMethod t Matrix, O.MethodInfo info Matrix p) => O.IsLabelProxy t (Matrix -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveMatrixMethod t Matrix, O.MethodInfo info Matrix p) => O.IsLabel t (Matrix -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
#endif