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 |
GI.Pango.Structs.GlyphItemIter
Contents
Description
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 (ManagedPtr 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
- getGlyphItemIterEndChar :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIter_endChar :: AttrLabelProxy "endChar"
- setGlyphItemIterEndChar :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- getGlyphItemIterEndGlyph :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIter_endGlyph :: AttrLabelProxy "endGlyph"
- setGlyphItemIterEndGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- getGlyphItemIterEndIndex :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIter_endIndex :: AttrLabelProxy "endIndex"
- setGlyphItemIterEndIndex :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- clearGlyphItemIterGlyphItem :: MonadIO m => GlyphItemIter -> m ()
- getGlyphItemIterGlyphItem :: MonadIO m => GlyphItemIter -> m (Maybe GlyphItem)
- glyphItemIter_glyphItem :: AttrLabelProxy "glyphItem"
- setGlyphItemIterGlyphItem :: MonadIO m => GlyphItemIter -> Ptr GlyphItem -> m ()
- getGlyphItemIterStartChar :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIter_startChar :: AttrLabelProxy "startChar"
- setGlyphItemIterStartChar :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- getGlyphItemIterStartGlyph :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIter_startGlyph :: AttrLabelProxy "startGlyph"
- setGlyphItemIterStartGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- getGlyphItemIterStartIndex :: MonadIO m => GlyphItemIter -> m Int32
- glyphItemIter_startIndex :: AttrLabelProxy "startIndex"
- setGlyphItemIterStartIndex :: MonadIO m => GlyphItemIter -> Int32 -> m ()
- clearGlyphItemIterText :: MonadIO m => GlyphItemIter -> m ()
- getGlyphItemIterText :: MonadIO m => GlyphItemIter -> m (Maybe Text)
- glyphItemIter_text :: AttrLabelProxy "text"
- setGlyphItemIterText :: MonadIO m => GlyphItemIter -> CString -> m ()
Exported types
newtype GlyphItemIter Source #
Constructors
GlyphItemIter (ManagedPtr GlyphItemIter) |
Instances
BoxedObject GlyphItemIter Source # | |
(~) AttrOpTag tag AttrSet => Constructible GlyphItemIter tag Source # | |
((~) * info (ResolveGlyphItemIterMethod t GlyphItemIter), MethodInfo * info GlyphItemIter p) => IsLabel t (GlyphItemIter -> p) Source # | |
((~) * info (ResolveGlyphItemIterMethod t GlyphItemIter), MethodInfo * info GlyphItemIter p) => IsLabelProxy t (GlyphItemIter -> p) Source # | |
HasAttributeList * GlyphItemIter Source # | |
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterPrevClusterMethodInfo GlyphItemIter signature Source # | |
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterNextClusterMethodInfo GlyphItemIter signature Source # | |
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitStartMethodInfo GlyphItemIter signature Source # | |
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitEndMethodInfo GlyphItemIter signature Source # | |
((~) * signature (m ()), MonadIO m) => MethodInfo * GlyphItemIterFreeMethodInfo GlyphItemIter signature Source # | |
((~) * signature (m (Maybe GlyphItemIter)), MonadIO m) => MethodInfo * GlyphItemIterCopyMethodInfo GlyphItemIter signature Source # | |
type AttributeList GlyphItemIter Source # | |
newZeroGlyphItemIter :: MonadIO m => m GlyphItemIter Source #
Construct a GlyphItemIter
struct initialized to zero.
Methods
copy
data GlyphItemIterCopyMethodInfo Source #
Instances
((~) * signature (m (Maybe GlyphItemIter)), MonadIO m) => MethodInfo * GlyphItemIterCopyMethodInfo GlyphItemIter signature Source # | |
glyphItemIterCopy :: MonadIO m => GlyphItemIter -> m (Maybe GlyphItemIter) Source #
free
data GlyphItemIterFreeMethodInfo Source #
Instances
((~) * signature (m ()), MonadIO m) => MethodInfo * GlyphItemIterFreeMethodInfo GlyphItemIter signature Source # | |
glyphItemIterFree :: MonadIO m => GlyphItemIter -> m () Source #
initEnd
data GlyphItemIterInitEndMethodInfo Source #
Instances
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitEndMethodInfo GlyphItemIter signature Source # | |
glyphItemIterInitEnd :: MonadIO m => GlyphItemIter -> GlyphItem -> Text -> m Bool Source #
initStart
data GlyphItemIterInitStartMethodInfo Source #
Instances
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitStartMethodInfo GlyphItemIter signature Source # | |
glyphItemIterInitStart :: MonadIO m => GlyphItemIter -> GlyphItem -> Text -> m Bool Source #
nextCluster
data GlyphItemIterNextClusterMethodInfo Source #
Instances
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterNextClusterMethodInfo GlyphItemIter signature Source # | |
glyphItemIterNextCluster :: MonadIO m => GlyphItemIter -> m Bool Source #
prevCluster
data GlyphItemIterPrevClusterMethodInfo Source #
Instances
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterPrevClusterMethodInfo GlyphItemIter signature Source # | |
glyphItemIterPrevCluster :: MonadIO m => GlyphItemIter -> m Bool Source #
Properties
endChar
getGlyphItemIterEndChar :: MonadIO m => GlyphItemIter -> m Int32 Source #
glyphItemIter_endChar :: AttrLabelProxy "endChar" Source #
setGlyphItemIterEndChar :: MonadIO m => GlyphItemIter -> Int32 -> m () Source #
endGlyph
getGlyphItemIterEndGlyph :: MonadIO m => GlyphItemIter -> m Int32 Source #
glyphItemIter_endGlyph :: AttrLabelProxy "endGlyph" Source #
setGlyphItemIterEndGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m () Source #
endIndex
getGlyphItemIterEndIndex :: MonadIO m => GlyphItemIter -> m Int32 Source #
glyphItemIter_endIndex :: AttrLabelProxy "endIndex" Source #
setGlyphItemIterEndIndex :: MonadIO m => GlyphItemIter -> Int32 -> m () Source #
glyphItem
clearGlyphItemIterGlyphItem :: MonadIO m => GlyphItemIter -> m () Source #
getGlyphItemIterGlyphItem :: MonadIO m => GlyphItemIter -> m (Maybe GlyphItem) Source #
glyphItemIter_glyphItem :: AttrLabelProxy "glyphItem" Source #
setGlyphItemIterGlyphItem :: MonadIO m => GlyphItemIter -> Ptr GlyphItem -> m () Source #
startChar
getGlyphItemIterStartChar :: MonadIO m => GlyphItemIter -> m Int32 Source #
glyphItemIter_startChar :: AttrLabelProxy "startChar" Source #
setGlyphItemIterStartChar :: MonadIO m => GlyphItemIter -> Int32 -> m () Source #
startGlyph
getGlyphItemIterStartGlyph :: MonadIO m => GlyphItemIter -> m Int32 Source #
glyphItemIter_startGlyph :: AttrLabelProxy "startGlyph" Source #
setGlyphItemIterStartGlyph :: MonadIO m => GlyphItemIter -> Int32 -> m () Source #
startIndex
getGlyphItemIterStartIndex :: MonadIO m => GlyphItemIter -> m Int32 Source #
glyphItemIter_startIndex :: AttrLabelProxy "startIndex" Source #
setGlyphItemIterStartIndex :: MonadIO m => GlyphItemIter -> Int32 -> m () Source #
text
clearGlyphItemIterText :: MonadIO m => GlyphItemIter -> m () Source #
getGlyphItemIterText :: MonadIO m => GlyphItemIter -> m (Maybe Text) Source #
glyphItemIter_text :: AttrLabelProxy "text" Source #
setGlyphItemIterText :: MonadIO m => GlyphItemIter -> CString -> m () Source #