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 GlyphItemIter
is an iterator over the clusters in a
GlyphItem
. The <firstterm>forward direction</firstterm> of the
iterator is the logical direction of text. That is, with increasing
startIndex
and startChar
values. If glyphItem
is right-to-left
(that is, if <literal>glyphItem
->item->analysis.level</literal> is odd),
then startGlyph
decreases as the iterator moves forward. Moreover,
in right-to-left cases, startGlyph
is greater than endGlyph
.
An iterator should be initialized using either of
glyphItemIterInitStart
and
glyphItemIterInitEnd
, for forward and backward iteration
respectively, and walked over using any desired mixture of
glyphItemIterNextCluster
and
glyphItemIterPrevCluster
. 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>glyphItem
->item->offset</literal> to get to the
text of glyphItem
. The startIndex
and endIndex
values can directly
index into text
. The startGlyph
, endGlyph
, startChar
, and endChar
values however are zero-based for the glyphItem
. 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 GlyphItemIter
should be modified manually.
- newtype GlyphItemIter = GlyphItemIter (ManagedPtr GlyphItemIter)
- newZeroGlyphItemIter :: MonadIO m => m GlyphItemIter
- noGlyphItemIter :: Maybe GlyphItemIter
- data GlyphItemIterCopyMethodInfo
- glyphItemIterCopy :: (HasCallStack, MonadIO m) => GlyphItemIter -> m (Maybe GlyphItemIter)
- data GlyphItemIterFreeMethodInfo
- glyphItemIterFree :: (HasCallStack, MonadIO m) => GlyphItemIter -> m ()
- data GlyphItemIterInitEndMethodInfo
- glyphItemIterInitEnd :: (HasCallStack, MonadIO m) => GlyphItemIter -> GlyphItem -> Text -> m Bool
- data GlyphItemIterInitStartMethodInfo
- glyphItemIterInitStart :: (HasCallStack, MonadIO m) => GlyphItemIter -> GlyphItem -> Text -> m Bool
- data GlyphItemIterNextClusterMethodInfo
- glyphItemIterNextCluster :: (HasCallStack, MonadIO m) => GlyphItemIter -> m Bool
- data GlyphItemIterPrevClusterMethodInfo
- glyphItemIterPrevCluster :: (HasCallStack, 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
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 # | |
Arguments
:: (HasCallStack, MonadIO m) | |
=> GlyphItemIter |
|
-> m (Maybe GlyphItemIter) | Returns: the newly allocated |
Make a shallow copy of an existing GlyphItemIter
structure.
Since: 1.22
free
data GlyphItemIterFreeMethodInfo Source #
Instances
((~) * signature (m ()), MonadIO m) => MethodInfo * GlyphItemIterFreeMethodInfo GlyphItemIter signature Source # | |
Arguments
:: (HasCallStack, MonadIO m) | |
=> GlyphItemIter |
|
-> m () |
Frees a GlyphItemIter
created by glyphItemIterCopy
.
Since: 1.22
initEnd
data GlyphItemIterInitEndMethodInfo Source #
Instances
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitEndMethodInfo GlyphItemIter signature Source # | |
Arguments
:: (HasCallStack, MonadIO m) | |
=> GlyphItemIter |
|
-> GlyphItem |
|
-> Text |
|
-> m Bool | Returns: |
Initializes a GlyphItemIter
structure to point to the
last cluster in a glyph item.
See GlyphItemIter
for details of cluster orders.
Since: 1.22
initStart
data GlyphItemIterInitStartMethodInfo Source #
Instances
((~) * signature (GlyphItem -> Text -> m Bool), MonadIO m) => MethodInfo * GlyphItemIterInitStartMethodInfo GlyphItemIter signature Source # | |
glyphItemIterInitStart Source #
Arguments
:: (HasCallStack, MonadIO m) | |
=> GlyphItemIter |
|
-> GlyphItem |
|
-> Text |
|
-> m Bool | Returns: |
Initializes a GlyphItemIter
structure to point to the
first cluster in a glyph item.
See GlyphItemIter
for details of cluster orders.
Since: 1.22
nextCluster
data GlyphItemIterNextClusterMethodInfo Source #
Instances
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterNextClusterMethodInfo GlyphItemIter signature Source # | |
glyphItemIterNextCluster Source #
Arguments
:: (HasCallStack, MonadIO m) | |
=> GlyphItemIter |
|
-> m Bool | Returns: |
Advances the iterator to the next cluster in the glyph item.
See GlyphItemIter
for details of cluster orders.
Since: 1.22
prevCluster
data GlyphItemIterPrevClusterMethodInfo Source #
Instances
((~) * signature (m Bool), MonadIO m) => MethodInfo * GlyphItemIterPrevClusterMethodInfo GlyphItemIter signature Source # | |
glyphItemIterPrevCluster Source #
Arguments
:: (HasCallStack, MonadIO m) | |
=> GlyphItemIter |
|
-> m Bool | Returns: |
Moves the iterator to the preceding cluster in the glyph item.
See GlyphItemIter
for details of cluster orders.
Since: 1.22
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 #