Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
A #PangoGlyphItemIter is an iterator over the clusters in a
#PangoGlyphItem. The firsttermforward direction/firstterm of the
iterator is the logical direction of text. That is, with increasing
start_index and
start_char values. If glyph_item is right-to-left
(that is, if literal
glyph_item->item->analysis.level/literal is odd),
then start_glyph decreases as the iterator moves forward. Moreover,
in right-to-left cases,
start_glyph is greater than @end_glyph.
An iterator should be initialized using either of pango_glyph_item_iter_init_start() and pango_glyph_item_iter_init_end(), for forward and backward iteration respectively, and walked over using any desired mixture of pango_glyph_item_iter_next_cluster() and pango_glyph_item_iter_prev_cluster(). A common idiom for doing a forward iteration over the clusters is: programlisting PangoGlyphItemIter cluster_iter; gboolean have_cluster;
for (have_cluster = pango_glyph_item_iter_init_start (&cluster_iter, glyph_item, text); have_cluster; have_cluster = pango_glyph_item_iter_next_cluster (&cluster_iter)) { ... } /programlisting
Note that text is the start of the text for layout, which is then
indexed by literal
glyph_item->item->offset/literal to get to the
text of glyph_item. The
start_index and end_index values can directly
index into
text. The start_glyph,
end_glyph, start_char, and
end_char
values however are zero-based for the @glyph_item. For each cluster, the
item pointed at by the start variables is included in the cluster while
the one pointed at by end variables is not.
None of the members of a #PangoGlyphItemIter should be modified manually.
- newtype GlyphItemIter = GlyphItemIter (ForeignPtr GlyphItemIter)
- newZeroGlyphItemIter :: MonadIO m => m GlyphItemIter
- noGlyphItemIter :: Maybe GlyphItemIter
- data GlyphItemIterCopyMethodInfo
- glyphItemIterCopy :: MonadIO m => GlyphItemIter -> m (Maybe GlyphItemIter)
- data GlyphItemIterFreeMethodInfo
- glyphItemIterFree :: MonadIO m => GlyphItemIter -> m ()
- data GlyphItemIterInitEndMethodInfo
- glyphItemIterInitEnd :: MonadIO m => GlyphItemIter -> GlyphItem -> Text -> m Bool
- data GlyphItemIterInitStartMethodInfo
- glyphItemIterInitStart :: MonadIO m => GlyphItemIter -> GlyphItem -> Text -> m Bool
- data GlyphItemIterNextClusterMethodInfo
- glyphItemIterNextCluster :: MonadIO m => GlyphItemIter -> m Bool
- data GlyphItemIterPrevClusterMethodInfo
- glyphItemIterPrevCluster :: MonadIO m => GlyphItemIter -> m Bool
- glyphItemIterEndChar :: AttrLabelProxy "endChar"
- glyphItemIterReadEndChar :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIterWriteEndChar :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- glyphItemIterEndGlyph :: AttrLabelProxy "endGlyph"
- glyphItemIterReadEndGlyph :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIterWriteEndGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- glyphItemIterEndIndex :: AttrLabelProxy "endIndex"
- glyphItemIterReadEndIndex :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIterWriteEndIndex :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- glyphItemIterClearGlyphItem :: MonadIO m => GlyphItemIter -> m ()
- glyphItemIterGlyphItem :: AttrLabelProxy "glyphItem"
- glyphItemIterReadGlyphItem :: MonadIO m => GlyphItemIter -> m (Maybe GlyphItem)
- glyphItemIterWriteGlyphItem :: MonadIO m => GlyphItemIter -> Ptr GlyphItem -> m ()
- glyphItemIterReadStartChar :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIterStartChar :: AttrLabelProxy "startChar"
- glyphItemIterWriteStartChar :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- glyphItemIterReadStartGlyph :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIterStartGlyph :: AttrLabelProxy "startGlyph"
- glyphItemIterWriteStartGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- glyphItemIterReadStartIndex :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIterStartIndex :: AttrLabelProxy "startIndex"
- glyphItemIterWriteStartIndex :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- glyphItemIterClearText :: MonadIO m => GlyphItemIter -> m ()
- glyphItemIterReadText :: MonadIO m => GlyphItemIter -> m (Maybe Text)
- glyphItemIterText :: AttrLabelProxy "text"
- glyphItemIterWriteText :: MonadIO m => GlyphItemIter -> CString -> m ()
Exported types
newtype GlyphItemIter Source
BoxedObject GlyphItemIter | |
(~) AttrOpTag tag AttrSet => Constructible GlyphItemIter tag | |
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterPrevClusterMethodInfo GlyphItemIter signature | |
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterNextClusterMethodInfo GlyphItemIter signature | |
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitStartMethodInfo GlyphItemIter signature | |
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitEndMethodInfo GlyphItemIter signature | |
((~) * signature (m ()), MonadIO m) => MethodInfo * GlyphItemIterFreeMethodInfo GlyphItemIter signature | |
((~) * signature (m (Maybe GlyphItemIter)), MonadIO m) => MethodInfo * GlyphItemIterCopyMethodInfo GlyphItemIter signature | |
((~) * info (ResolveGlyphItemIterMethod t GlyphItemIter), MethodInfo * info GlyphItemIter p) => IsLabelProxy t (GlyphItemIter -> p) | |
type AttributeList GlyphItemIter |
newZeroGlyphItemIter :: MonadIO m => m GlyphItemIter Source
Construct a GlyphItemIter
struct initialized to zero.
Methods
glyphItemIterCopy
data GlyphItemIterCopyMethodInfo Source
((~) * signature (m (Maybe GlyphItemIter)), MonadIO m) => MethodInfo * GlyphItemIterCopyMethodInfo GlyphItemIter signature |
glyphItemIterCopy :: MonadIO m => GlyphItemIter -> m (Maybe GlyphItemIter) Source
glyphItemIterFree
data GlyphItemIterFreeMethodInfo Source
((~) * signature (m ()), MonadIO m) => MethodInfo * GlyphItemIterFreeMethodInfo GlyphItemIter signature |
glyphItemIterFree :: MonadIO m => GlyphItemIter -> m () Source
glyphItemIterInitEnd
data GlyphItemIterInitEndMethodInfo Source
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitEndMethodInfo GlyphItemIter signature |
glyphItemIterInitEnd :: MonadIO m => GlyphItemIter -> GlyphItem -> Text -> m Bool Source
glyphItemIterInitStart
data GlyphItemIterInitStartMethodInfo Source
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitStartMethodInfo GlyphItemIter signature |
glyphItemIterInitStart :: MonadIO m => GlyphItemIter -> GlyphItem -> Text -> m Bool Source
glyphItemIterNextCluster
data GlyphItemIterNextClusterMethodInfo Source
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterNextClusterMethodInfo GlyphItemIter signature |
glyphItemIterNextCluster :: MonadIO m => GlyphItemIter -> m Bool Source
glyphItemIterPrevCluster
data GlyphItemIterPrevClusterMethodInfo Source
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterPrevClusterMethodInfo GlyphItemIter signature |
glyphItemIterPrevCluster :: MonadIO m => GlyphItemIter -> m Bool Source
Properties
EndChar
glyphItemIterEndChar :: AttrLabelProxy "endChar" Source
glyphItemIterReadEndChar :: MonadIO m => GlyphItemIter -> m Int32 Source
glyphItemIterWriteEndChar :: MonadIO m => GlyphItemIter -> Int32 -> m () Source
EndGlyph
glyphItemIterEndGlyph :: AttrLabelProxy "endGlyph" Source
glyphItemIterReadEndGlyph :: MonadIO m => GlyphItemIter -> m Int32 Source
glyphItemIterWriteEndGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m () Source
EndIndex
glyphItemIterEndIndex :: AttrLabelProxy "endIndex" Source
glyphItemIterReadEndIndex :: MonadIO m => GlyphItemIter -> m Int32 Source
glyphItemIterWriteEndIndex :: MonadIO m => GlyphItemIter -> Int32 -> m () Source
GlyphItem
glyphItemIterClearGlyphItem :: MonadIO m => GlyphItemIter -> m () Source
glyphItemIterGlyphItem :: AttrLabelProxy "glyphItem" Source
glyphItemIterReadGlyphItem :: MonadIO m => GlyphItemIter -> m (Maybe GlyphItem) Source
glyphItemIterWriteGlyphItem :: MonadIO m => GlyphItemIter -> Ptr GlyphItem -> m () Source
StartChar
glyphItemIterReadStartChar :: MonadIO m => GlyphItemIter -> m Int32 Source
glyphItemIterStartChar :: AttrLabelProxy "startChar" Source
glyphItemIterWriteStartChar :: MonadIO m => GlyphItemIter -> Int32 -> m () Source
StartGlyph
glyphItemIterReadStartGlyph :: MonadIO m => GlyphItemIter -> m Int32 Source
glyphItemIterStartGlyph :: AttrLabelProxy "startGlyph" Source
glyphItemIterWriteStartGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m () Source
StartIndex
glyphItemIterReadStartIndex :: MonadIO m => GlyphItemIter -> m Int32 Source
glyphItemIterStartIndex :: AttrLabelProxy "startIndex" Source
glyphItemIterWriteStartIndex :: MonadIO m => GlyphItemIter -> Int32 -> m () Source
Text
glyphItemIterClearText :: MonadIO m => GlyphItemIter -> m () Source
glyphItemIterReadText :: MonadIO m => GlyphItemIter -> m (Maybe Text) Source
glyphItemIterText :: AttrLabelProxy "text" Source
glyphItemIterWriteText :: MonadIO m => GlyphItemIter -> CString -> m () Source