{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) 'GI.Pango.Objects.Renderer.Renderer' is a base class for objects that are used to render Pango objects such as 'GI.Pango.Structs.GlyphString.GlyphString' and 'GI.Pango.Objects.Layout.Layout'. /Since: 1.8/ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Pango.Objects.Renderer ( -- * Exported types Renderer(..) , IsRenderer , toRenderer , noRenderer , -- * Methods -- ** activate #method:activate# #if ENABLE_OVERLOADING RendererActivateMethodInfo , #endif rendererActivate , -- ** deactivate #method:deactivate# #if ENABLE_OVERLOADING RendererDeactivateMethodInfo , #endif rendererDeactivate , -- ** drawErrorUnderline #method:drawErrorUnderline# #if ENABLE_OVERLOADING RendererDrawErrorUnderlineMethodInfo , #endif rendererDrawErrorUnderline , -- ** drawGlyph #method:drawGlyph# #if ENABLE_OVERLOADING RendererDrawGlyphMethodInfo , #endif rendererDrawGlyph , -- ** drawGlyphItem #method:drawGlyphItem# #if ENABLE_OVERLOADING RendererDrawGlyphItemMethodInfo , #endif rendererDrawGlyphItem , -- ** drawGlyphs #method:drawGlyphs# #if ENABLE_OVERLOADING RendererDrawGlyphsMethodInfo , #endif rendererDrawGlyphs , -- ** drawLayout #method:drawLayout# #if ENABLE_OVERLOADING RendererDrawLayoutMethodInfo , #endif rendererDrawLayout , -- ** drawLayoutLine #method:drawLayoutLine# #if ENABLE_OVERLOADING RendererDrawLayoutLineMethodInfo , #endif rendererDrawLayoutLine , -- ** drawRectangle #method:drawRectangle# #if ENABLE_OVERLOADING RendererDrawRectangleMethodInfo , #endif rendererDrawRectangle , -- ** drawTrapezoid #method:drawTrapezoid# #if ENABLE_OVERLOADING RendererDrawTrapezoidMethodInfo , #endif rendererDrawTrapezoid , -- ** getAlpha #method:getAlpha# #if ENABLE_OVERLOADING RendererGetAlphaMethodInfo , #endif rendererGetAlpha , -- ** getColor #method:getColor# #if ENABLE_OVERLOADING RendererGetColorMethodInfo , #endif rendererGetColor , -- ** getLayout #method:getLayout# #if ENABLE_OVERLOADING RendererGetLayoutMethodInfo , #endif rendererGetLayout , -- ** getLayoutLine #method:getLayoutLine# #if ENABLE_OVERLOADING RendererGetLayoutLineMethodInfo , #endif rendererGetLayoutLine , -- ** getMatrix #method:getMatrix# #if ENABLE_OVERLOADING RendererGetMatrixMethodInfo , #endif rendererGetMatrix , -- ** partChanged #method:partChanged# #if ENABLE_OVERLOADING RendererPartChangedMethodInfo , #endif rendererPartChanged , -- ** setAlpha #method:setAlpha# #if ENABLE_OVERLOADING RendererSetAlphaMethodInfo , #endif rendererSetAlpha , -- ** setColor #method:setColor# #if ENABLE_OVERLOADING RendererSetColorMethodInfo , #endif rendererSetColor , -- ** setMatrix #method:setMatrix# #if ENABLE_OVERLOADING RendererSetMatrixMethodInfo , #endif rendererSetMatrix , ) 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.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.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 GI.GObject.Objects.Object as GObject.Object import {-# SOURCE #-} qualified GI.Pango.Enums as Pango.Enums import {-# SOURCE #-} qualified GI.Pango.Objects.Font as Pango.Font import {-# SOURCE #-} qualified GI.Pango.Objects.Layout as Pango.Layout import {-# SOURCE #-} qualified GI.Pango.Structs.Color as Pango.Color import {-# SOURCE #-} qualified GI.Pango.Structs.GlyphItem as Pango.GlyphItem import {-# SOURCE #-} qualified GI.Pango.Structs.GlyphString as Pango.GlyphString import {-# SOURCE #-} qualified GI.Pango.Structs.LayoutLine as Pango.LayoutLine import {-# SOURCE #-} qualified GI.Pango.Structs.Matrix as Pango.Matrix -- | Memory-managed wrapper type. newtype Renderer = Renderer (ManagedPtr Renderer) foreign import ccall "pango_renderer_get_type" c_pango_renderer_get_type :: IO GType instance GObject Renderer where gobjectType = c_pango_renderer_get_type -- | Type class for types which can be safely cast to `Renderer`, for instance with `toRenderer`. class (GObject o, O.IsDescendantOf Renderer o) => IsRenderer o instance (GObject o, O.IsDescendantOf Renderer o) => IsRenderer o instance O.HasParentTypes Renderer type instance O.ParentTypes Renderer = '[GObject.Object.Object] -- | Cast to `Renderer`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toRenderer :: (MonadIO m, IsRenderer o) => o -> m Renderer toRenderer = liftIO . unsafeCastTo Renderer -- | A convenience alias for `Nothing` :: `Maybe` `Renderer`. noRenderer :: Maybe Renderer noRenderer = Nothing #if ENABLE_OVERLOADING type family ResolveRendererMethod (t :: Symbol) (o :: *) :: * where ResolveRendererMethod "activate" o = RendererActivateMethodInfo ResolveRendererMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveRendererMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveRendererMethod "deactivate" o = RendererDeactivateMethodInfo ResolveRendererMethod "drawErrorUnderline" o = RendererDrawErrorUnderlineMethodInfo ResolveRendererMethod "drawGlyph" o = RendererDrawGlyphMethodInfo ResolveRendererMethod "drawGlyphItem" o = RendererDrawGlyphItemMethodInfo ResolveRendererMethod "drawGlyphs" o = RendererDrawGlyphsMethodInfo ResolveRendererMethod "drawLayout" o = RendererDrawLayoutMethodInfo ResolveRendererMethod "drawLayoutLine" o = RendererDrawLayoutLineMethodInfo ResolveRendererMethod "drawRectangle" o = RendererDrawRectangleMethodInfo ResolveRendererMethod "drawTrapezoid" o = RendererDrawTrapezoidMethodInfo ResolveRendererMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveRendererMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveRendererMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveRendererMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveRendererMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveRendererMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveRendererMethod "partChanged" o = RendererPartChangedMethodInfo ResolveRendererMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveRendererMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveRendererMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveRendererMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveRendererMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveRendererMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveRendererMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveRendererMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveRendererMethod "getAlpha" o = RendererGetAlphaMethodInfo ResolveRendererMethod "getColor" o = RendererGetColorMethodInfo ResolveRendererMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveRendererMethod "getLayout" o = RendererGetLayoutMethodInfo ResolveRendererMethod "getLayoutLine" o = RendererGetLayoutLineMethodInfo ResolveRendererMethod "getMatrix" o = RendererGetMatrixMethodInfo ResolveRendererMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveRendererMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveRendererMethod "setAlpha" o = RendererSetAlphaMethodInfo ResolveRendererMethod "setColor" o = RendererSetColorMethodInfo ResolveRendererMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveRendererMethod "setMatrix" o = RendererSetMatrixMethodInfo ResolveRendererMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveRendererMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveRendererMethod t Renderer, O.MethodInfo info Renderer p) => OL.IsLabel t (Renderer -> 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 #if ENABLE_OVERLOADING instance O.HasAttributeList Renderer type instance O.AttributeList Renderer = RendererAttributeList type RendererAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList Renderer = RendererSignalList type RendererSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method Renderer::activate -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_activate" pango_renderer_activate :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) IO () {- | Does initial setup before rendering operations on /@renderer@/. 'GI.Pango.Objects.Renderer.rendererDeactivate' should be called when done drawing. Calls such as 'GI.Pango.Objects.Renderer.rendererDrawLayout' automatically activate the layout before drawing on it. Calls to 'GI.Pango.Objects.Renderer.rendererActivate' and 'GI.Pango.Objects.Renderer.rendererDeactivate' can be nested and the renderer will only be initialized and deinitialized once. /Since: 1.8/ -} rendererActivate :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> m () rendererActivate renderer = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer pango_renderer_activate renderer' touchManagedPtr renderer return () #if ENABLE_OVERLOADING data RendererActivateMethodInfo instance (signature ~ (m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererActivateMethodInfo a signature where overloadedMethod _ = rendererActivate #endif -- method Renderer::deactivate -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_deactivate" pango_renderer_deactivate :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) IO () {- | Cleans up after rendering operations on /@renderer@/. See docs for 'GI.Pango.Objects.Renderer.rendererActivate'. /Since: 1.8/ -} rendererDeactivate :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> m () rendererDeactivate renderer = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer pango_renderer_deactivate renderer' touchManagedPtr renderer return () #if ENABLE_OVERLOADING data RendererDeactivateMethodInfo instance (signature ~ (m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererDeactivateMethodInfo a signature where overloadedMethod _ = rendererDeactivate #endif -- method Renderer::draw_error_underline -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate of underline, in Pango units in user coordinate system", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate of underline, in Pango units in user coordinate system", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "width of underline, in Pango units in user coordinate system", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "height of underline, in Pango units in user coordinate system", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_error_underline" pango_renderer_draw_error_underline :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt Int32 -> -- width : TBasicType TInt Int32 -> -- height : TBasicType TInt IO () {- | Draw a squiggly line that approximately covers the given rectangle in the style of an underline used to indicate a spelling error. (The width of the underline is rounded to an integer number of up\/down segments and the resulting rectangle is centered in the original rectangle) This should be called while /@renderer@/ is already active. Use 'GI.Pango.Objects.Renderer.rendererActivate' to activate a renderer. /Since: 1.8/ -} rendererDrawErrorUnderline :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Int32 {- ^ /@x@/: X coordinate of underline, in Pango units in user coordinate system -} -> Int32 {- ^ /@y@/: Y coordinate of underline, in Pango units in user coordinate system -} -> Int32 {- ^ /@width@/: width of underline, in Pango units in user coordinate system -} -> Int32 {- ^ /@height@/: height of underline, in Pango units in user coordinate system -} -> m () rendererDrawErrorUnderline renderer x y width height = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer pango_renderer_draw_error_underline renderer' x y width height touchManagedPtr renderer return () #if ENABLE_OVERLOADING data RendererDrawErrorUnderlineMethodInfo instance (signature ~ (Int32 -> Int32 -> Int32 -> Int32 -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererDrawErrorUnderlineMethodInfo a signature where overloadedMethod _ = rendererDrawErrorUnderline #endif -- method Renderer::draw_glyph -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "font", argType = TInterface (Name {namespace = "Pango", name = "Font"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoFont", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "glyph", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the glyph index of a single glyph", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate of left edge of baseline of glyph", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate of left edge of baseline of glyph", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_glyph" pango_renderer_draw_glyph :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) Ptr Pango.Font.Font -> -- font : TInterface (Name {namespace = "Pango", name = "Font"}) Word32 -> -- glyph : TBasicType TUInt32 CDouble -> -- x : TBasicType TDouble CDouble -> -- y : TBasicType TDouble IO () {- | Draws a single glyph with coordinates in device space. /Since: 1.8/ -} rendererDrawGlyph :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a, Pango.Font.IsFont b) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> b {- ^ /@font@/: a 'GI.Pango.Objects.Font.Font' -} -> Word32 {- ^ /@glyph@/: the glyph index of a single glyph -} -> Double {- ^ /@x@/: X coordinate of left edge of baseline of glyph -} -> Double {- ^ /@y@/: Y coordinate of left edge of baseline of glyph -} -> m () rendererDrawGlyph renderer font glyph x y = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer font' <- unsafeManagedPtrCastPtr font let x' = realToFrac x let y' = realToFrac y pango_renderer_draw_glyph renderer' font' glyph x' y' touchManagedPtr renderer touchManagedPtr font return () #if ENABLE_OVERLOADING data RendererDrawGlyphMethodInfo instance (signature ~ (b -> Word32 -> Double -> Double -> m ()), MonadIO m, IsRenderer a, Pango.Font.IsFont b) => O.MethodInfo RendererDrawGlyphMethodInfo a signature where overloadedMethod _ = rendererDrawGlyph #endif -- method Renderer::draw_glyph_item -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the UTF-8 text that @glyph_item refers to, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "glyph_item", argType = TInterface (Name {namespace = "Pango", name = "GlyphItem"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoGlyphItem", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_glyph_item" pango_renderer_draw_glyph_item :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CString -> -- text : TBasicType TUTF8 Ptr Pango.GlyphItem.GlyphItem -> -- glyph_item : TInterface (Name {namespace = "Pango", name = "GlyphItem"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt IO () {- | Draws the glyphs in /@glyphItem@/ with the specified 'GI.Pango.Objects.Renderer.Renderer', embedding the text associated with the glyphs in the output if the output format supports it (PDF for example). Note that /@text@/ is the start of the text for layout, which is then indexed by \/@glyphItem@/->item->offset\<\/literal>. If /@text@/ is 'Nothing', this simply calls 'GI.Pango.Objects.Renderer.rendererDrawGlyphs'. The default implementation of this method simply falls back to 'GI.Pango.Objects.Renderer.rendererDrawGlyphs'. /Since: 1.22/ -} rendererDrawGlyphItem :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Maybe (T.Text) {- ^ /@text@/: the UTF-8 text that /@glyphItem@/ refers to, or 'Nothing' -} -> Pango.GlyphItem.GlyphItem {- ^ /@glyphItem@/: a 'GI.Pango.Structs.GlyphItem.GlyphItem' -} -> Int32 {- ^ /@x@/: X position of left edge of baseline, in user space coordinates in Pango units. -} -> Int32 {- ^ /@y@/: Y position of left edge of baseline, in user space coordinates in Pango units. -} -> m () rendererDrawGlyphItem renderer text glyphItem x y = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer maybeText <- case text of Nothing -> return nullPtr Just jText -> do jText' <- textToCString jText return jText' glyphItem' <- unsafeManagedPtrGetPtr glyphItem pango_renderer_draw_glyph_item renderer' maybeText glyphItem' x y touchManagedPtr renderer touchManagedPtr glyphItem freeMem maybeText return () #if ENABLE_OVERLOADING data RendererDrawGlyphItemMethodInfo instance (signature ~ (Maybe (T.Text) -> Pango.GlyphItem.GlyphItem -> Int32 -> Int32 -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererDrawGlyphItemMethodInfo a signature where overloadedMethod _ = rendererDrawGlyphItem #endif -- method Renderer::draw_glyphs -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "font", argType = TInterface (Name {namespace = "Pango", name = "Font"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoFont", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "glyphs", argType = TInterface (Name {namespace = "Pango", name = "GlyphString"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoGlyphString", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_glyphs" pango_renderer_draw_glyphs :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) Ptr Pango.Font.Font -> -- font : TInterface (Name {namespace = "Pango", name = "Font"}) Ptr Pango.GlyphString.GlyphString -> -- glyphs : TInterface (Name {namespace = "Pango", name = "GlyphString"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt IO () {- | Draws the glyphs in /@glyphs@/ with the specified 'GI.Pango.Objects.Renderer.Renderer'. /Since: 1.8/ -} rendererDrawGlyphs :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a, Pango.Font.IsFont b) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> b {- ^ /@font@/: a 'GI.Pango.Objects.Font.Font' -} -> Pango.GlyphString.GlyphString {- ^ /@glyphs@/: a 'GI.Pango.Structs.GlyphString.GlyphString' -} -> Int32 {- ^ /@x@/: X position of left edge of baseline, in user space coordinates in Pango units. -} -> Int32 {- ^ /@y@/: Y position of left edge of baseline, in user space coordinates in Pango units. -} -> m () rendererDrawGlyphs renderer font glyphs x y = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer font' <- unsafeManagedPtrCastPtr font glyphs' <- unsafeManagedPtrGetPtr glyphs pango_renderer_draw_glyphs renderer' font' glyphs' x y touchManagedPtr renderer touchManagedPtr font touchManagedPtr glyphs return () #if ENABLE_OVERLOADING data RendererDrawGlyphsMethodInfo instance (signature ~ (b -> Pango.GlyphString.GlyphString -> Int32 -> Int32 -> m ()), MonadIO m, IsRenderer a, Pango.Font.IsFont b) => O.MethodInfo RendererDrawGlyphsMethodInfo a signature where overloadedMethod _ = rendererDrawGlyphs #endif -- method Renderer::draw_layout -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "layout", argType = TInterface (Name {namespace = "Pango", name = "Layout"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoLayout", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_layout" pango_renderer_draw_layout :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) Ptr Pango.Layout.Layout -> -- layout : TInterface (Name {namespace = "Pango", name = "Layout"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt IO () {- | Draws /@layout@/ with the specified 'GI.Pango.Objects.Renderer.Renderer'. /Since: 1.8/ -} rendererDrawLayout :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a, Pango.Layout.IsLayout b) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> b {- ^ /@layout@/: a 'GI.Pango.Objects.Layout.Layout' -} -> Int32 {- ^ /@x@/: X position of left edge of baseline, in user space coordinates in Pango units. -} -> Int32 {- ^ /@y@/: Y position of left edge of baseline, in user space coordinates in Pango units. -} -> m () rendererDrawLayout renderer layout x y = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer layout' <- unsafeManagedPtrCastPtr layout pango_renderer_draw_layout renderer' layout' x y touchManagedPtr renderer touchManagedPtr layout return () #if ENABLE_OVERLOADING data RendererDrawLayoutMethodInfo instance (signature ~ (b -> Int32 -> Int32 -> m ()), MonadIO m, IsRenderer a, Pango.Layout.IsLayout b) => O.MethodInfo RendererDrawLayoutMethodInfo a signature where overloadedMethod _ = rendererDrawLayout #endif -- method Renderer::draw_layout_line -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TInterface (Name {namespace = "Pango", name = "LayoutLine"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoLayoutLine", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position of left edge of baseline, in user space coordinates\n in Pango units.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_layout_line" pango_renderer_draw_layout_line :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) Ptr Pango.LayoutLine.LayoutLine -> -- line : TInterface (Name {namespace = "Pango", name = "LayoutLine"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt IO () {- | Draws /@line@/ with the specified 'GI.Pango.Objects.Renderer.Renderer'. /Since: 1.8/ -} rendererDrawLayoutLine :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.LayoutLine.LayoutLine {- ^ /@line@/: a 'GI.Pango.Structs.LayoutLine.LayoutLine' -} -> Int32 {- ^ /@x@/: X position of left edge of baseline, in user space coordinates in Pango units. -} -> Int32 {- ^ /@y@/: Y position of left edge of baseline, in user space coordinates in Pango units. -} -> m () rendererDrawLayoutLine renderer line x y = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer line' <- unsafeManagedPtrGetPtr line pango_renderer_draw_layout_line renderer' line' x y touchManagedPtr renderer touchManagedPtr line return () #if ENABLE_OVERLOADING data RendererDrawLayoutLineMethodInfo instance (signature ~ (Pango.LayoutLine.LayoutLine -> Int32 -> Int32 -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererDrawLayoutLineMethodInfo a signature where overloadedMethod _ = rendererDrawLayoutLine #endif -- method Renderer::draw_rectangle -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TInterface (Name {namespace = "Pango", name = "RenderPart"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "type of object this rectangle is part of", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X position at which to draw rectangle, in user space coordinates in Pango units", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y position at which to draw rectangle, in user space coordinates in Pango units", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "width of rectangle in Pango units in user space coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "height of rectangle in Pango units in user space coordinates", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_rectangle" pango_renderer_draw_rectangle :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CUInt -> -- part : TInterface (Name {namespace = "Pango", name = "RenderPart"}) Int32 -> -- x : TBasicType TInt Int32 -> -- y : TBasicType TInt Int32 -> -- width : TBasicType TInt Int32 -> -- height : TBasicType TInt IO () {- | Draws an axis-aligned rectangle in user space coordinates with the specified 'GI.Pango.Objects.Renderer.Renderer'. This should be called while /@renderer@/ is already active. Use 'GI.Pango.Objects.Renderer.rendererActivate' to activate a renderer. /Since: 1.8/ -} rendererDrawRectangle :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.Enums.RenderPart {- ^ /@part@/: type of object this rectangle is part of -} -> Int32 {- ^ /@x@/: X position at which to draw rectangle, in user space coordinates in Pango units -} -> Int32 {- ^ /@y@/: Y position at which to draw rectangle, in user space coordinates in Pango units -} -> Int32 {- ^ /@width@/: width of rectangle in Pango units in user space coordinates -} -> Int32 {- ^ /@height@/: height of rectangle in Pango units in user space coordinates -} -> m () rendererDrawRectangle renderer part x y width height = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer let part' = (fromIntegral . fromEnum) part pango_renderer_draw_rectangle renderer' part' x y width height touchManagedPtr renderer return () #if ENABLE_OVERLOADING data RendererDrawRectangleMethodInfo instance (signature ~ (Pango.Enums.RenderPart -> Int32 -> Int32 -> Int32 -> Int32 -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererDrawRectangleMethodInfo a signature where overloadedMethod _ = rendererDrawRectangle #endif -- method Renderer::draw_trapezoid -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TInterface (Name {namespace = "Pango", name = "RenderPart"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "type of object this trapezoid is part of", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y1_", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate of top of trapezoid", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x11", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate of left end of top of trapezoid", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x21", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate of right end of top of trapezoid", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y2", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "Y coordinate of bottom of trapezoid", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x12", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate of left end of bottom of trapezoid", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x22", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "X coordinate of right end of bottom of trapezoid", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_draw_trapezoid" pango_renderer_draw_trapezoid :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CUInt -> -- part : TInterface (Name {namespace = "Pango", name = "RenderPart"}) CDouble -> -- y1_ : TBasicType TDouble CDouble -> -- x11 : TBasicType TDouble CDouble -> -- x21 : TBasicType TDouble CDouble -> -- y2 : TBasicType TDouble CDouble -> -- x12 : TBasicType TDouble CDouble -> -- x22 : TBasicType TDouble IO () {- | Draws a trapezoid with the parallel sides aligned with the X axis using the given 'GI.Pango.Objects.Renderer.Renderer'; coordinates are in device space. /Since: 1.8/ -} rendererDrawTrapezoid :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.Enums.RenderPart {- ^ /@part@/: type of object this trapezoid is part of -} -> Double {- ^ /@y1_@/: Y coordinate of top of trapezoid -} -> Double {- ^ /@x11@/: X coordinate of left end of top of trapezoid -} -> Double {- ^ /@x21@/: X coordinate of right end of top of trapezoid -} -> Double {- ^ /@y2@/: Y coordinate of bottom of trapezoid -} -> Double {- ^ /@x12@/: X coordinate of left end of bottom of trapezoid -} -> Double {- ^ /@x22@/: X coordinate of right end of bottom of trapezoid -} -> m () rendererDrawTrapezoid renderer part y1_ x11 x21 y2 x12 x22 = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer let part' = (fromIntegral . fromEnum) part let y1_' = realToFrac y1_ let x11' = realToFrac x11 let x21' = realToFrac x21 let y2' = realToFrac y2 let x12' = realToFrac x12 let x22' = realToFrac x22 pango_renderer_draw_trapezoid renderer' part' y1_' x11' x21' y2' x12' x22' touchManagedPtr renderer return () #if ENABLE_OVERLOADING data RendererDrawTrapezoidMethodInfo instance (signature ~ (Pango.Enums.RenderPart -> Double -> Double -> Double -> Double -> Double -> Double -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererDrawTrapezoidMethodInfo a signature where overloadedMethod _ = rendererDrawTrapezoid #endif -- method Renderer::get_alpha -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TInterface (Name {namespace = "Pango", name = "RenderPart"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the part to get the alpha for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUInt16) -- throws : False -- Skip return : False foreign import ccall "pango_renderer_get_alpha" pango_renderer_get_alpha :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CUInt -> -- part : TInterface (Name {namespace = "Pango", name = "RenderPart"}) IO Word16 {- | Gets the current alpha for the specified part. /Since: 1.38/ -} rendererGetAlpha :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.Enums.RenderPart {- ^ /@part@/: the part to get the alpha for -} -> m Word16 {- ^ __Returns:__ the alpha for the specified part, or 0 if it hasn\'t been set and should be inherited from the environment. -} rendererGetAlpha renderer part = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer let part' = (fromIntegral . fromEnum) part result <- pango_renderer_get_alpha renderer' part' touchManagedPtr renderer return result #if ENABLE_OVERLOADING data RendererGetAlphaMethodInfo instance (signature ~ (Pango.Enums.RenderPart -> m Word16), MonadIO m, IsRenderer a) => O.MethodInfo RendererGetAlphaMethodInfo a signature where overloadedMethod _ = rendererGetAlpha #endif -- method Renderer::get_color -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TInterface (Name {namespace = "Pango", name = "RenderPart"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the part to get the color for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Pango", name = "Color"})) -- throws : False -- Skip return : False foreign import ccall "pango_renderer_get_color" pango_renderer_get_color :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CUInt -> -- part : TInterface (Name {namespace = "Pango", name = "RenderPart"}) IO (Ptr Pango.Color.Color) {- | Gets the current rendering color for the specified part. /Since: 1.8/ -} rendererGetColor :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.Enums.RenderPart {- ^ /@part@/: the part to get the color for -} -> m (Maybe Pango.Color.Color) {- ^ __Returns:__ the color for the specified part, or 'Nothing' if it hasn\'t been set and should be inherited from the environment. -} rendererGetColor renderer part = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer let part' = (fromIntegral . fromEnum) part result <- pango_renderer_get_color renderer' part' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (newBoxed Pango.Color.Color) result' return result'' touchManagedPtr renderer return maybeResult #if ENABLE_OVERLOADING data RendererGetColorMethodInfo instance (signature ~ (Pango.Enums.RenderPart -> m (Maybe Pango.Color.Color)), MonadIO m, IsRenderer a) => O.MethodInfo RendererGetColorMethodInfo a signature where overloadedMethod _ = rendererGetColor #endif -- method Renderer::get_layout -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Pango", name = "Layout"})) -- throws : False -- Skip return : False foreign import ccall "pango_renderer_get_layout" pango_renderer_get_layout :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) IO (Ptr Pango.Layout.Layout) {- | Gets the layout currently being rendered using /@renderer@/. Calling this function only makes sense from inside a subclass\'s methods, like in its draw_shape\() for example. The returned layout should not be modified while still being rendered. /Since: 1.20/ -} rendererGetLayout :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> m (Maybe Pango.Layout.Layout) {- ^ __Returns:__ the layout, or 'Nothing' if no layout is being rendered using /@renderer@/ at this time. -} rendererGetLayout renderer = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer result <- pango_renderer_get_layout renderer' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (newObject Pango.Layout.Layout) result' return result'' touchManagedPtr renderer return maybeResult #if ENABLE_OVERLOADING data RendererGetLayoutMethodInfo instance (signature ~ (m (Maybe Pango.Layout.Layout)), MonadIO m, IsRenderer a) => O.MethodInfo RendererGetLayoutMethodInfo a signature where overloadedMethod _ = rendererGetLayout #endif -- method Renderer::get_layout_line -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Pango", name = "LayoutLine"})) -- throws : False -- Skip return : False foreign import ccall "pango_renderer_get_layout_line" pango_renderer_get_layout_line :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) IO (Ptr Pango.LayoutLine.LayoutLine) {- | Gets the layout line currently being rendered using /@renderer@/. Calling this function only makes sense from inside a subclass\'s methods, like in its draw_shape\() for example. The returned layout line should not be modified while still being rendered. /Since: 1.20/ -} rendererGetLayoutLine :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> m (Maybe Pango.LayoutLine.LayoutLine) {- ^ __Returns:__ the layout line, or 'Nothing' if no layout line is being rendered using /@renderer@/ at this time. -} rendererGetLayoutLine renderer = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer result <- pango_renderer_get_layout_line renderer' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (newBoxed Pango.LayoutLine.LayoutLine) result' return result'' touchManagedPtr renderer return maybeResult #if ENABLE_OVERLOADING data RendererGetLayoutLineMethodInfo instance (signature ~ (m (Maybe Pango.LayoutLine.LayoutLine)), MonadIO m, IsRenderer a) => O.MethodInfo RendererGetLayoutLineMethodInfo a signature where overloadedMethod _ = rendererGetLayoutLine #endif -- method Renderer::get_matrix -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Pango", name = "Matrix"})) -- throws : False -- Skip return : False foreign import ccall "pango_renderer_get_matrix" pango_renderer_get_matrix :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) IO (Ptr Pango.Matrix.Matrix) {- | Gets the transformation matrix that will be applied when rendering. See 'GI.Pango.Objects.Renderer.rendererSetMatrix'. /Since: 1.8/ -} rendererGetMatrix :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> m (Maybe Pango.Matrix.Matrix) {- ^ __Returns:__ the matrix, or 'Nothing' if no matrix has been set (which is the same as the identity matrix). The returned matrix is owned by Pango and must not be modified or freed. -} rendererGetMatrix renderer = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer result <- pango_renderer_get_matrix renderer' maybeResult <- convertIfNonNull result $ \result' -> do result'' <- (newBoxed Pango.Matrix.Matrix) result' return result'' touchManagedPtr renderer return maybeResult #if ENABLE_OVERLOADING data RendererGetMatrixMethodInfo instance (signature ~ (m (Maybe Pango.Matrix.Matrix)), MonadIO m, IsRenderer a) => O.MethodInfo RendererGetMatrixMethodInfo a signature where overloadedMethod _ = rendererGetMatrix #endif -- method Renderer::part_changed -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TInterface (Name {namespace = "Pango", name = "RenderPart"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the part for which rendering has changed.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_part_changed" pango_renderer_part_changed :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CUInt -> -- part : TInterface (Name {namespace = "Pango", name = "RenderPart"}) IO () {- | Informs Pango that the way that the rendering is done for /@part@/ has changed in a way that would prevent multiple pieces being joined together into one drawing call. For instance, if a subclass of 'GI.Pango.Objects.Renderer.Renderer' was to add a stipple option for drawing underlines, it needs to call \\ pango_renderer_part_changed (render, PANGO_RENDER_PART_UNDERLINE); \<\/programlisting>\<\/informalexample> When the stipple changes or underlines with different stipples might be joined together. Pango automatically calls this for changes to colors. (See 'GI.Pango.Objects.Renderer.rendererSetColor') /Since: 1.8/ -} rendererPartChanged :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.Enums.RenderPart {- ^ /@part@/: the part for which rendering has changed. -} -> m () rendererPartChanged renderer part = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer let part' = (fromIntegral . fromEnum) part pango_renderer_part_changed renderer' part' touchManagedPtr renderer return () #if ENABLE_OVERLOADING data RendererPartChangedMethodInfo instance (signature ~ (Pango.Enums.RenderPart -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererPartChangedMethodInfo a signature where overloadedMethod _ = rendererPartChanged #endif -- method Renderer::set_alpha -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TInterface (Name {namespace = "Pango", name = "RenderPart"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the part to set the alpha for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "alpha", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "an alpha value between 1 and 65536, or 0 to unset the alpha", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_set_alpha" pango_renderer_set_alpha :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CUInt -> -- part : TInterface (Name {namespace = "Pango", name = "RenderPart"}) Word16 -> -- alpha : TBasicType TUInt16 IO () {- | Sets the alpha for part of the rendering. Note that the alpha may only be used if a color is specified for /@part@/ as well. /Since: 1.38/ -} rendererSetAlpha :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.Enums.RenderPart {- ^ /@part@/: the part to set the alpha for -} -> Word16 {- ^ /@alpha@/: an alpha value between 1 and 65536, or 0 to unset the alpha -} -> m () rendererSetAlpha renderer part alpha = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer let part' = (fromIntegral . fromEnum) part pango_renderer_set_alpha renderer' part' alpha touchManagedPtr renderer return () #if ENABLE_OVERLOADING data RendererSetAlphaMethodInfo instance (signature ~ (Pango.Enums.RenderPart -> Word16 -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererSetAlphaMethodInfo a signature where overloadedMethod _ = rendererSetAlpha #endif -- method Renderer::set_color -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "part", argType = TInterface (Name {namespace = "Pango", name = "RenderPart"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the part to change the color of", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface (Name {namespace = "Pango", name = "Color"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the new color or %NULL to unset the current color", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_set_color" pango_renderer_set_color :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) CUInt -> -- part : TInterface (Name {namespace = "Pango", name = "RenderPart"}) Ptr Pango.Color.Color -> -- color : TInterface (Name {namespace = "Pango", name = "Color"}) IO () {- | Sets the color for part of the rendering. Also see 'GI.Pango.Objects.Renderer.rendererSetAlpha'. /Since: 1.8/ -} rendererSetColor :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Pango.Enums.RenderPart {- ^ /@part@/: the part to change the color of -} -> Maybe (Pango.Color.Color) {- ^ /@color@/: the new color or 'Nothing' to unset the current color -} -> m () rendererSetColor renderer part color = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer let part' = (fromIntegral . fromEnum) part maybeColor <- case color of Nothing -> return nullPtr Just jColor -> do jColor' <- unsafeManagedPtrGetPtr jColor return jColor' pango_renderer_set_color renderer' part' maybeColor touchManagedPtr renderer whenJust color touchManagedPtr return () #if ENABLE_OVERLOADING data RendererSetColorMethodInfo instance (signature ~ (Pango.Enums.RenderPart -> Maybe (Pango.Color.Color) -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererSetColorMethodInfo a signature where overloadedMethod _ = rendererSetColor #endif -- method Renderer::set_matrix -- method type : OrdinaryMethod -- Args : [Arg {argCName = "renderer", argType = TInterface (Name {namespace = "Pango", name = "Renderer"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #PangoRenderer", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "matrix", argType = TInterface (Name {namespace = "Pango", name = "Matrix"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #PangoMatrix, or %NULL to unset any existing matrix.\n (No matrix set is the same as setting the identity matrix.)", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "pango_renderer_set_matrix" pango_renderer_set_matrix :: Ptr Renderer -> -- renderer : TInterface (Name {namespace = "Pango", name = "Renderer"}) Ptr Pango.Matrix.Matrix -> -- matrix : TInterface (Name {namespace = "Pango", name = "Matrix"}) IO () {- | Sets the transformation matrix that will be applied when rendering. /Since: 1.8/ -} rendererSetMatrix :: (B.CallStack.HasCallStack, MonadIO m, IsRenderer a) => a {- ^ /@renderer@/: a 'GI.Pango.Objects.Renderer.Renderer' -} -> Maybe (Pango.Matrix.Matrix) {- ^ /@matrix@/: a 'GI.Pango.Structs.Matrix.Matrix', or 'Nothing' to unset any existing matrix. (No matrix set is the same as setting the identity matrix.) -} -> m () rendererSetMatrix renderer matrix = liftIO $ do renderer' <- unsafeManagedPtrCastPtr renderer maybeMatrix <- case matrix of Nothing -> return nullPtr Just jMatrix -> do jMatrix' <- unsafeManagedPtrGetPtr jMatrix return jMatrix' pango_renderer_set_matrix renderer' maybeMatrix touchManagedPtr renderer whenJust matrix touchManagedPtr return () #if ENABLE_OVERLOADING data RendererSetMatrixMethodInfo instance (signature ~ (Maybe (Pango.Matrix.Matrix) -> m ()), MonadIO m, IsRenderer a) => O.MethodInfo RendererSetMatrixMethodInfo a signature where overloadedMethod _ = rendererSetMatrix #endif