| Copyright | Will Thompson and Iñaki García Etxebarria |
|---|---|
| License | LGPL-2.1 |
| Maintainer | Iñaki García Etxebarria |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
GI.Pango.Structs.GlyphItem
Description
A PangoGlyphItem is a pair of a PangoItem and the glyphs
resulting from shaping the items text.
As an example of the usage of PangoGlyphItem, the results
of shaping text with PangoLayout is a list of PangoLayoutLine,
each of which contains a list of PangoGlyphItem.
Synopsis
- newtype GlyphItem = GlyphItem (ManagedPtr GlyphItem)
- newZeroGlyphItem :: MonadIO m => m GlyphItem
- glyphItemApplyAttrs :: (HasCallStack, MonadIO m) => GlyphItem -> Text -> AttrList -> m [GlyphItem]
- glyphItemCopy :: (HasCallStack, MonadIO m) => GlyphItem -> m (Maybe GlyphItem)
- glyphItemFree :: (HasCallStack, MonadIO m) => GlyphItem -> m ()
- glyphItemGetLogicalWidths :: (HasCallStack, MonadIO m) => GlyphItem -> Text -> [Int32] -> m ()
- glyphItemLetterSpace :: (HasCallStack, MonadIO m) => GlyphItem -> Text -> [LogAttr] -> Int32 -> m ()
- glyphItemSplit :: (HasCallStack, MonadIO m) => GlyphItem -> Text -> Int32 -> m (Maybe GlyphItem)
- getGlyphItemEndXOffset :: MonadIO m => GlyphItem -> m Int32
- setGlyphItemEndXOffset :: MonadIO m => GlyphItem -> Int32 -> m ()
- clearGlyphItemGlyphs :: MonadIO m => GlyphItem -> m ()
- getGlyphItemGlyphs :: MonadIO m => GlyphItem -> m (Maybe GlyphString)
- setGlyphItemGlyphs :: MonadIO m => GlyphItem -> Ptr GlyphString -> m ()
- clearGlyphItemItem :: MonadIO m => GlyphItem -> m ()
- getGlyphItemItem :: MonadIO m => GlyphItem -> m (Maybe Item)
- setGlyphItemItem :: MonadIO m => GlyphItem -> Ptr Item -> m ()
- getGlyphItemStartXOffset :: MonadIO m => GlyphItem -> m Int32
- setGlyphItemStartXOffset :: MonadIO m => GlyphItem -> Int32 -> m ()
- getGlyphItemYOffset :: MonadIO m => GlyphItem -> m Int32
- setGlyphItemYOffset :: MonadIO m => GlyphItem -> Int32 -> m ()
Exported types
Memory-managed wrapper type.
Instances
| Eq GlyphItem Source # | |
| GBoxed GlyphItem Source # | |
Defined in GI.Pango.Structs.GlyphItem | |
| ManagedPtrNewtype GlyphItem Source # | |
Defined in GI.Pango.Structs.GlyphItem Methods toManagedPtr :: GlyphItem -> ManagedPtr GlyphItem | |
| TypedObject GlyphItem Source # | |
Defined in GI.Pango.Structs.GlyphItem | |
| HasParentTypes GlyphItem Source # | |
Defined in GI.Pango.Structs.GlyphItem | |
| tag ~ 'AttrSet => Constructible GlyphItem tag Source # | |
| IsGValue (Maybe GlyphItem) Source # | Convert |
Defined in GI.Pango.Structs.GlyphItem Methods gvalueGType_ :: IO GType gvalueSet_ :: Ptr GValue -> Maybe GlyphItem -> IO () gvalueGet_ :: Ptr GValue -> IO (Maybe GlyphItem) | |
| type ParentTypes GlyphItem Source # | |
Defined in GI.Pango.Structs.GlyphItem | |
newZeroGlyphItem :: MonadIO m => m GlyphItem Source #
Construct a GlyphItem struct initialized to zero.
Methods
Click to display all available methods, including inherited ones
applyAttrs
Arguments
| :: (HasCallStack, MonadIO m) | |
| => GlyphItem |
|
| -> Text |
|
| -> AttrList |
|
| -> m [GlyphItem] | Returns: a
list of glyph items resulting from splitting |
Splits a shaped item (PangoGlyphItem) into multiple items based
on an attribute list.
The idea is that if you have attributes that don't affect shaping,
such as color or underline, to avoid affecting shaping, you filter
them out (attrListFilter), apply the shaping process
and then reapply them to the result using this function.
All attributes that start or end inside a cluster are applied
to that cluster; for instance, if half of a cluster is underlined
and the other-half strikethrough, then the cluster will end
up with both underline and strikethrough attributes. In these
cases, it may happen that item->extra_attrs for some of the
result items can have multiple attributes of the same type.
This function takes ownership of glyphItem; it will be reused
as one of the elements in the list.
Since: 1.2
copy
Arguments
| :: (HasCallStack, MonadIO m) | |
| => GlyphItem |
|
| -> m (Maybe GlyphItem) | Returns: the newly allocated |
Make a deep copy of an existing PangoGlyphItem structure.
Since: 1.20
free
Arguments
| :: (HasCallStack, MonadIO m) | |
| => GlyphItem |
|
| -> m () |
Frees a PangoGlyphItem and resources to which it points.
Since: 1.6
getLogicalWidths
glyphItemGetLogicalWidths Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => GlyphItem |
|
| -> Text |
|
| -> [Int32] |
|
| -> m () |
Given a PangoGlyphItem and the corresponding text, determine the
width corresponding to each character.
When multiple characters compose a single cluster, the width of the entire cluster is divided equally among the characters.
See also glyphStringGetLogicalWidths.
Since: 1.26
letterSpace
Arguments
| :: (HasCallStack, MonadIO m) | |
| => GlyphItem |
|
| -> Text |
|
| -> [LogAttr] |
|
| -> Int32 |
|
| -> m () |
Adds spacing between the graphemes of glyphItem to
give the effect of typographic letter spacing.
Since: 1.6
split
Arguments
| :: (HasCallStack, MonadIO m) | |
| => GlyphItem |
|
| -> Text |
|
| -> Int32 |
|
| -> m (Maybe GlyphItem) | Returns: the newly allocated item
representing text before |
Modifies orig to cover only the text after splitIndex, and
returns a new item that covers the text before splitIndex that
used to be in orig.
You can think of splitIndex as the length of the returned item.
splitIndex may not be 0, and it may not be greater than or equal
to the length of orig (that is, there must be at least one byte
assigned to each item, you can't create a zero-length item).
This function is similar in function to itemSplit (and uses
it internally.)
Since: 1.2
Properties
endXOffset
horizontal displacement to apply after th glyph item. Positive values shift right
getGlyphItemEndXOffset :: MonadIO m => GlyphItem -> m Int32 Source #
Get the value of the “end_x_offset” field.
When overloading is enabled, this is equivalent to
get glyphItem #endXOffset
setGlyphItemEndXOffset :: MonadIO m => GlyphItem -> Int32 -> m () Source #
Set the value of the “end_x_offset” field.
When overloading is enabled, this is equivalent to
setglyphItem [ #endXOffset:=value ]
glyphs
corresponding PangoGlyphString
clearGlyphItemGlyphs :: MonadIO m => GlyphItem -> m () Source #
Set the value of the “glyphs” field to Nothing.
When overloading is enabled, this is equivalent to
clear #glyphs
getGlyphItemGlyphs :: MonadIO m => GlyphItem -> m (Maybe GlyphString) Source #
Get the value of the “glyphs” field.
When overloading is enabled, this is equivalent to
get glyphItem #glyphs
setGlyphItemGlyphs :: MonadIO m => GlyphItem -> Ptr GlyphString -> m () Source #
Set the value of the “glyphs” field.
When overloading is enabled, this is equivalent to
setglyphItem [ #glyphs:=value ]
item
corresponding PangoItem
clearGlyphItemItem :: MonadIO m => GlyphItem -> m () Source #
Set the value of the “item” field to Nothing.
When overloading is enabled, this is equivalent to
clear #item
getGlyphItemItem :: MonadIO m => GlyphItem -> m (Maybe Item) Source #
Get the value of the “item” field.
When overloading is enabled, this is equivalent to
get glyphItem #item
setGlyphItemItem :: MonadIO m => GlyphItem -> Ptr Item -> m () Source #
Set the value of the “item” field.
When overloading is enabled, this is equivalent to
setglyphItem [ #item:=value ]
startXOffset
horizontal displacement to apply before the glyph item. Positive values shift right
getGlyphItemStartXOffset :: MonadIO m => GlyphItem -> m Int32 Source #
Get the value of the “start_x_offset” field.
When overloading is enabled, this is equivalent to
get glyphItem #startXOffset
setGlyphItemStartXOffset :: MonadIO m => GlyphItem -> Int32 -> m () Source #
Set the value of the “start_x_offset” field.
When overloading is enabled, this is equivalent to
setglyphItem [ #startXOffset:=value ]
yOffset
shift of the baseline, relative to the baseline of the containing line. Positive values shift upwards
getGlyphItemYOffset :: MonadIO m => GlyphItem -> m Int32 Source #
Get the value of the “y_offset” field.
When overloading is enabled, this is equivalent to
get glyphItem #yOffset
setGlyphItemYOffset :: MonadIO m => GlyphItem -> Int32 -> m () Source #
Set the value of the “y_offset” field.
When overloading is enabled, this is equivalent to
setglyphItem [ #yOffset:=value ]