⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.10
Server IP:
157.245.101.34
Server:
Linux skvinfotech-website 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64
Server Software:
Apache/2.4.41 (Ubuntu)
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
libgtk-3-dev
/
pango
/
View File Name :
pango-Text-Processing.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Rendering: Pango Reference Manual</title> <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> <link rel="home" href="index.html" title="Pango Reference Manual"> <link rel="up" href="pango.html" title="Basic Pango Interfaces"> <link rel="prev" href="pango.html" title="Basic Pango Interfaces"> <link rel="next" href="pango-Fonts.html" title="Fonts"> <meta name="generator" content="GTK-Doc V1.32 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> <td width="100%" align="left" class="shortcuts"> <a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> <a href="#pango-Text-Processing.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> <a href="#pango-Text-Processing.object-hierarchy" class="shortcut">Object Hierarchy</a></span> </td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="u" href="pango.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="p" href="pango.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="n" href="pango-Fonts.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> </tr></table> <div class="refentry"> <a name="pango-Text-Processing"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2><span class="refentrytitle"><a name="pango-Text-Processing.top_of_page"></a>Rendering</span></h2> <p>Rendering — Functions to run the rendering pipeline</p> </td> <td class="gallery_image" valign="top" align="right"></td> </tr></table></div> <div class="refsect1"> <a name="pango-Text-Processing.functions"></a><h2>Functions</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="functions_proto_type"> <col class="functions_proto_name"> </colgroup> <tbody> <tr> <td class="function_type"> <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()">pango_itemize</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-itemize-with-base-dir" title="pango_itemize_with_base_dir ()">pango_itemize_with_base_dir</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-item-free" title="pango_item_free ()">pango_item_free</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="returnvalue">PangoItem</span></a> * </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-item-copy" title="pango_item_copy ()">pango_item_copy</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="returnvalue">PangoItem</span></a> * </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-item-new" title="pango_item_new ()">pango_item_new</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="returnvalue">PangoItem</span></a> * </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-item-split" title="pango_item_split ()">pango_item_split</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-item-apply-attrs" title="pango_item_apply_attrs ()">pango_item_apply_attrs</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-reorder-items" title="pango_reorder_items ()">pango_reorder_items</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-break" title="pango_break ()">pango_break</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-get-log-attrs" title="pango_get_log_attrs ()">pango_get_log_attrs</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-find-paragraph-boundary" title="pango_find_paragraph_boundary ()">pango_find_paragraph_boundary</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-default-break" title="pango_default_break ()">pango_default_break</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-tailor-break" title="pango_tailor_break ()">pango_tailor_break</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-shape" title="pango_shape ()">pango_shape</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-shape-full" title="pango_shape_full ()">pango_shape_full</a> <span class="c_punctuation">()</span> </td> </tr> <tr> <td class="function_type"> <span class="returnvalue">void</span> </td> <td class="function_name"> <a class="link" href="pango-Text-Processing.html#pango-shape-with-flags" title="pango_shape_with_flags ()">pango_shape_with_flags</a> <span class="c_punctuation">()</span> </td> </tr> </tbody> </table></div> </div> <a name="PangoItem"></a><div class="refsect1"> <a name="pango-Text-Processing.other"></a><h2>Types and Values</h2> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="other_proto_type"> <col class="other_proto_name"> </colgroup> <tbody> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="pango-Text-Processing.html#PangoItem-struct" title="struct PangoItem">PangoItem</a></td> </tr> <tr> <td class="datatype_keyword">struct</td> <td class="function_name"><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis">PangoAnalysis</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="pango-Text-Processing.html#PANGO-ANALYSIS-FLAG-CENTERED-BASELINE:CAPS" title="PANGO_ANALYSIS_FLAG_CENTERED_BASELINE">PANGO_ANALYSIS_FLAG_CENTERED_BASELINE</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="pango-Text-Processing.html#PANGO-ANALYSIS-FLAG-IS-ELLIPSIS:CAPS" title="PANGO_ANALYSIS_FLAG_IS_ELLIPSIS">PANGO_ANALYSIS_FLAG_IS_ELLIPSIS</a></td> </tr> <tr> <td class="define_keyword">#define</td> <td class="function_name"><a class="link" href="pango-Text-Processing.html#PANGO-ANALYSIS-FLAG-NEED-HYPHEN:CAPS" title="PANGO_ANALYSIS_FLAG_NEED_HYPHEN">PANGO_ANALYSIS_FLAG_NEED_HYPHEN</a></td> </tr> <tr> <td class="datatype_keyword"> </td> <td class="function_name"><a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr">PangoLogAttr</a></td> </tr> <tr> <td class="datatype_keyword">enum</td> <td class="function_name"><a class="link" href="pango-Text-Processing.html#PangoShapeFlags" title="enum PangoShapeFlags">PangoShapeFlags</a></td> </tr> </tbody> </table></div> </div> <div class="refsect1"> <a name="pango-Text-Processing.object-hierarchy"></a><h2>Object Hierarchy</h2> <pre class="screen"> <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a> <span class="lineart">╰──</span> PangoItem <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a> <span class="lineart">╰──</span> PangoShapeFlags </pre> </div> <div class="refsect1"> <a name="pango-Text-Processing.description"></a><h2>Description</h2> <p>The Pango rendering pipeline takes a string of Unicode characters and converts it into glyphs. The functions described in this section accomplish various steps of this process.</p> <p><span class="inlinemediaobject"><img src="pipeline.png"></span></p> </div> <div class="refsect1"> <a name="pango-Text-Processing.functions_details"></a><h2>Functions</h2> <div class="refsect2"> <a name="pango-itemize"></a><h3>pango_itemize ()</h3> <pre class="programlisting"><a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * pango_itemize (<em class="parameter"><code><a class="link" href="pango-Contexts.html#PangoContext"><span class="type">PangoContext</span></a> *context</code></em>, <em class="parameter"><code>const <span class="type">char</span> *text</code></em>, <em class="parameter"><code><span class="type">int</span> start_index</code></em>, <em class="parameter"><code><span class="type">int</span> length</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Attributes.html#PangoAttrList"><span class="type">PangoAttrList</span></a> *attrs</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Attributes.html#PangoAttrIterator"><span class="type">PangoAttrIterator</span></a> *cached_iter</code></em>);</pre> <p>Breaks a piece of text into segments with consistent directional level and shaping engine. Each byte of <em class="parameter"><code>text</code></em> will be contained in exactly one of the items in the returned list; the generated list of items will be in logical order (the start offsets of the items are ascending).</p> <p><em class="parameter"><code>cached_iter</code></em> should be an iterator over <em class="parameter"><code>attrs</code></em> currently positioned at a range before or containing <em class="parameter"><code>start_index</code></em> ; <em class="parameter"><code>cached_iter</code></em> will be advanced to the range covering the position just after <em class="parameter"><code>start_index</code></em> + <em class="parameter"><code>length</code></em> . (i.e. if itemizing in a loop, just keep passing in the same <em class="parameter"><code>cached_iter</code></em> ).</p> <div class="refsect3"> <a name="pango-itemize.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>context</p></td> <td class="parameter_description"><p>a structure holding information that affects the itemization process.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>the text to itemize. Must be valid UTF-8</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>start_index</p></td> <td class="parameter_description"><p>first byte in <em class="parameter"><code>text</code></em> to process</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>the number of bytes (not characters) to process after <em class="parameter"><code>start_index</code></em> . This must be >= 0.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>attrs</p></td> <td class="parameter_description"><p>the set of attributes that apply to <em class="parameter"><code>text</code></em> .</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>cached_iter</p></td> <td class="parameter_description"><p>Cached attribute iterator, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="pango-itemize.returns"></a><h4>Returns</h4> <p>a <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> structures. The items should be freed using <a class="link" href="pango-Text-Processing.html#pango-item-free" title="pango_item_free ()"><code class="function">pango_item_free()</code></a> probably in combination with <a href="../glib/glib-Doubly-Linked-Lists.html#g-list-foreach"><code class="function">g_list_foreach()</code></a>, and the list itself using <a href="../glib/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>. </p> <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Pango.Item]</span></p> </div> </div> <hr> <div class="refsect2"> <a name="pango-itemize-with-base-dir"></a><h3>pango_itemize_with_base_dir ()</h3> <pre class="programlisting"><a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * pango_itemize_with_base_dir (<em class="parameter"><code><a class="link" href="pango-Contexts.html#PangoContext"><span class="type">PangoContext</span></a> *context</code></em>, <em class="parameter"><code><a class="link" href="pango-Bidirectional-Text.html#PangoDirection" title="enum PangoDirection"><span class="type">PangoDirection</span></a> base_dir</code></em>, <em class="parameter"><code>const <span class="type">char</span> *text</code></em>, <em class="parameter"><code><span class="type">int</span> start_index</code></em>, <em class="parameter"><code><span class="type">int</span> length</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Attributes.html#PangoAttrList"><span class="type">PangoAttrList</span></a> *attrs</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Attributes.html#PangoAttrIterator"><span class="type">PangoAttrIterator</span></a> *cached_iter</code></em>);</pre> <p>Like <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>, but the base direction to use when computing bidirectional levels (see <a class="link" href="pango-Contexts.html#pango-context-set-base-dir" title="pango_context_set_base_dir ()"><code class="function">pango_context_set_base_dir()</code></a>), is specified explicitly rather than gotten from the <a class="link" href="pango-Contexts.html#PangoContext"><span class="type">PangoContext</span></a>.</p> <div class="refsect3"> <a name="pango-itemize-with-base-dir.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>context</p></td> <td class="parameter_description"><p>a structure holding information that affects the itemization process.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>base_dir</p></td> <td class="parameter_description"><p>base direction to use for bidirectional processing</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>the text to itemize.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>start_index</p></td> <td class="parameter_description"><p>first byte in <em class="parameter"><code>text</code></em> to process</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>the number of bytes (not characters) to process after <em class="parameter"><code>start_index</code></em> . This must be >= 0.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>attrs</p></td> <td class="parameter_description"><p>the set of attributes that apply to <em class="parameter"><code>text</code></em> .</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>cached_iter</p></td> <td class="parameter_description"><p>Cached attribute iterator, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="pango-itemize-with-base-dir.returns"></a><h4>Returns</h4> <p>a <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> structures. The items should be freed using <a class="link" href="pango-Text-Processing.html#pango-item-free" title="pango_item_free ()"><code class="function">pango_item_free()</code></a> probably in combination with <a href="../glib/glib-Doubly-Linked-Lists.html#g-list-foreach"><code class="function">g_list_foreach()</code></a>, and the list itself using <a href="../glib/glib-Doubly-Linked-Lists.html#g-list-free"><code class="function">g_list_free()</code></a>. </p> <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Pango.Item]</span></p> </div> <p class="since">Since: <a class="link" href="api-index-1-4.html#api-index-1.4">1.4</a></p> </div> <hr> <div class="refsect2"> <a name="pango-item-free"></a><h3>pango_item_free ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_item_free (<em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> *item</code></em>);</pre> <p>Free a <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> and all associated memory.</p> <div class="refsect3"> <a name="pango-item-free.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>item</p></td> <td class="parameter_description"><p>a <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a>, may be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td> </tr></tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="pango-item-copy"></a><h3>pango_item_copy ()</h3> <pre class="programlisting"><a class="link" href="pango-Text-Processing.html#PangoItem"><span class="returnvalue">PangoItem</span></a> * pango_item_copy (<em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> *item</code></em>);</pre> <p>Copy an existing <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> structure.</p> <div class="refsect3"> <a name="pango-item-copy.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>item</p></td> <td class="parameter_description"><p>a <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a>, may be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="pango-item-copy.returns"></a><h4>Returns</h4> <p>the newly allocated <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a>, which should be freed with <a class="link" href="pango-Text-Processing.html#pango-item-free" title="pango_item_free ()"><code class="function">pango_item_free()</code></a>, or <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>item</code></em> was <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p> <p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p> </div> </div> <hr> <div class="refsect2"> <a name="pango-item-new"></a><h3>pango_item_new ()</h3> <pre class="programlisting"><a class="link" href="pango-Text-Processing.html#PangoItem"><span class="returnvalue">PangoItem</span></a> * pango_item_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre> <p>Creates a new <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> structure initialized to default values.</p> <div class="refsect3"> <a name="pango-item-new.returns"></a><h4>Returns</h4> <p> the newly allocated <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a>, which should be freed with <a class="link" href="pango-Text-Processing.html#pango-item-free" title="pango_item_free ()"><code class="function">pango_item_free()</code></a>.</p> </div> </div> <hr> <div class="refsect2"> <a name="pango-item-split"></a><h3>pango_item_split ()</h3> <pre class="programlisting"><a class="link" href="pango-Text-Processing.html#PangoItem"><span class="returnvalue">PangoItem</span></a> * pango_item_split (<em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> *orig</code></em>, <em class="parameter"><code><span class="type">int</span> split_index</code></em>, <em class="parameter"><code><span class="type">int</span> split_offset</code></em>);</pre> <p>Modifies <em class="parameter"><code>orig</code></em> to cover only the text after <em class="parameter"><code>split_index</code></em> , and returns a new item that covers the text before <em class="parameter"><code>split_index</code></em> that used to be in <em class="parameter"><code>orig</code></em> . You can think of <em class="parameter"><code>split_index</code></em> as the length of the returned item. <em class="parameter"><code>split_index</code></em> may not be 0, and it may not be greater than or equal to the length of <em class="parameter"><code>orig</code></em> (that is, there must be at least one byte assigned to each item, you can't create a zero-length item). <em class="parameter"><code>split_offset</code></em> is the length of the first item in chars, and must be provided because the text used to generate the item isn't available, so <a class="link" href="pango-Text-Processing.html#pango-item-split" title="pango_item_split ()"><code class="function">pango_item_split()</code></a> can't count the char length of the split items itself.</p> <div class="refsect3"> <a name="pango-item-split.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>orig</p></td> <td class="parameter_description"><p>a <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a></p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>split_index</p></td> <td class="parameter_description"><p>byte index of position to split item, relative to the start of the item</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>split_offset</p></td> <td class="parameter_description"><p>number of chars between start of <em class="parameter"><code>orig</code></em> and <em class="parameter"><code>split_index</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <div class="refsect3"> <a name="pango-item-split.returns"></a><h4>Returns</h4> <p> new item representing text before <em class="parameter"><code>split_index</code></em> , which should be freed with <a class="link" href="pango-Text-Processing.html#pango-item-free" title="pango_item_free ()"><code class="function">pango_item_free()</code></a>.</p> </div> </div> <hr> <div class="refsect2"> <a name="pango-item-apply-attrs"></a><h3>pango_item_apply_attrs ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_item_apply_attrs (<em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> *item</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Attributes.html#PangoAttrIterator"><span class="type">PangoAttrIterator</span></a> *iter</code></em>);</pre> <p>Add attributes to a PangoItem. The idea is that you have attributes that don't affect itemization, such as font features, so you filter them out using <a class="link" href="pango-Text-Attributes.html#pango-attr-list-filter" title="pango_attr_list_filter ()"><code class="function">pango_attr_list_filter()</code></a>, itemize your text, then reapply the attributes to the resulting items using this function.</p> <p>The <em class="parameter"><code>iter</code></em> should be positioned before the range of the item, and will be advanced past it. This function is meant to be called in a loop over the items resulting from itemization, while passing the iter to each call.</p> <div class="refsect3"> <a name="pango-item-apply-attrs.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>item</p></td> <td class="parameter_description"><p>a <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a></p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>iter</p></td> <td class="parameter_description"><p>a <a class="link" href="pango-Text-Attributes.html#PangoAttrIterator"><span class="type">PangoAttrIterator</span></a></p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-1-44.html#api-index-1.44">1.44</a></p> </div> <hr> <div class="refsect2"> <a name="pango-reorder-items"></a><h3>pango_reorder_items ()</h3> <pre class="programlisting"><a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * pango_reorder_items (<em class="parameter"><code><a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *logical_items</code></em>);</pre> <p>From a list of items in logical order and the associated directional levels, produce a list in visual order. The original list is unmodified.</p> <div class="refsect3"> <a name="pango-reorder-items.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody><tr> <td class="parameter_name"><p>logical_items</p></td> <td class="parameter_description"><p>a <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> in logical order. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Pango.Item]</span></td> </tr></tbody> </table></div> </div> <div class="refsect3"> <a name="pango-reorder-items.returns"></a><h4>Returns</h4> <p>a <a href="../glib/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> structures in visual order.</p> <p>(Please open a bug if you use this function. It is not a particularly convenient interface, and the code is duplicated elsewhere in Pango for that reason.). </p> <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Pango.Item]</span></p> </div> </div> <hr> <div class="refsect2"> <a name="pango-break"></a><h3>pango_break ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_break (<em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>, <em class="parameter"><code><span class="type">int</span> length</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> *analysis</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> *attrs</code></em>, <em class="parameter"><code><span class="type">int</span> attrs_len</code></em>);</pre> <div class="warning"> <p><code class="literal">pango_break</code> has been deprecated since version 1.44 and should not be used in newly-written code.</p> <p>Use <a class="link" href="pango-Text-Processing.html#pango-default-break" title="pango_default_break ()"><code class="function">pango_default_break()</code></a> and <a class="link" href="pango-Text-Processing.html#pango-tailor-break" title="pango_tailor_break ()"><code class="function">pango_tailor_break()</code></a></p> </div> <p>Determines possible line, word, and character breaks for a string of Unicode text with a single analysis. For most purposes you may want to use <a class="link" href="pango-Text-Processing.html#pango-get-log-attrs" title="pango_get_log_attrs ()"><code class="function">pango_get_log_attrs()</code></a>.</p> <div class="refsect3"> <a name="pango-break.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>the text to process. Must be valid UTF-8</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>length of <em class="parameter"><code>text</code></em> in bytes (may be -1 if <em class="parameter"><code>text</code></em> is nul-terminated)</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>analysis</p></td> <td class="parameter_description"><p><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a></p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>attrs</p></td> <td class="parameter_description"><p>an array to store character information in. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=attrs_len]</span></td> </tr> <tr> <td class="parameter_name"><p>attrs_len</p></td> <td class="parameter_description"><p>size of the array passed as <em class="parameter"><code>attrs</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="pango-get-log-attrs"></a><h3>pango_get_log_attrs ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_get_log_attrs (<em class="parameter"><code>const <span class="type">char</span> *text</code></em>, <em class="parameter"><code><span class="type">int</span> length</code></em>, <em class="parameter"><code><span class="type">int</span> level</code></em>, <em class="parameter"><code><a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage"><span class="type">PangoLanguage</span></a> *language</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> *log_attrs</code></em>, <em class="parameter"><code><span class="type">int</span> attrs_len</code></em>);</pre> <p>Computes a <a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> for each character in <em class="parameter"><code>text</code></em> . The <em class="parameter"><code>log_attrs</code></em> array must have one <a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> for each position in <em class="parameter"><code>text</code></em> ; if <em class="parameter"><code>text</code></em> contains N characters, it has N+1 positions, including the last position at the end of the text. <em class="parameter"><code>text</code></em> should be an entire paragraph; logical attributes can't be computed without context (for example you need to see spaces on either side of a word to know the word is a word).</p> <div class="refsect3"> <a name="pango-get-log-attrs.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>text to process. Must be valid UTF-8</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>length in bytes of <em class="parameter"><code>text</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>level</p></td> <td class="parameter_description"><p>embedding level, or -1 if unknown</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>language</p></td> <td class="parameter_description"><p>language tag</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>log_attrs</p></td> <td class="parameter_description"><p>array with one <a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> per character in <em class="parameter"><code>text</code></em> , plus one extra, to be filled in. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=attrs_len]</span></td> </tr> <tr> <td class="parameter_name"><p>attrs_len</p></td> <td class="parameter_description"><p>length of <em class="parameter"><code>log_attrs</code></em> array</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="pango-find-paragraph-boundary"></a><h3>pango_find_paragraph_boundary ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_find_paragraph_boundary (<em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *paragraph_delimiter_index</code></em>, <em class="parameter"><code><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *next_paragraph_start</code></em>);</pre> <p>Locates a paragraph boundary in <em class="parameter"><code>text</code></em> . A boundary is caused by delimiter characters, such as a newline, carriage return, carriage return-newline pair, or Unicode paragraph separator character. The index of the run of delimiters is returned in <em class="parameter"><code>paragraph_delimiter_index</code></em> . The index of the start of the paragraph (index after all delimiters) is stored in <em class="parameter"><code>next_paragraph_start</code></em> .</p> <p>If no delimiters are found, both <em class="parameter"><code>paragraph_delimiter_index</code></em> and <em class="parameter"><code>next_paragraph_start</code></em> are filled with the length of <em class="parameter"><code>text</code></em> (an index one off the end).</p> <div class="refsect3"> <a name="pango-find-paragraph-boundary.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>UTF-8 text</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>length of <em class="parameter"><code>text</code></em> in bytes, or -1 if nul-terminated</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>paragraph_delimiter_index</p></td> <td class="parameter_description"><p>return location for index of delimiter. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td> </tr> <tr> <td class="parameter_name"><p>next_paragraph_start</p></td> <td class="parameter_description"><p>return location for start of next paragraph. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="pango-default-break"></a><h3>pango_default_break ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_default_break (<em class="parameter"><code>const <a href="../glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *text</code></em>, <em class="parameter"><code><span class="type">int</span> length</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> *analysis</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> *attrs</code></em>, <em class="parameter"><code><span class="type">int</span> attrs_len</code></em>);</pre> <p>This is the default break algorithm. It applies Unicode rules without language-specific tailoring, therefore the <em class="parameter"><code>analyis</code></em> argument is unused and can be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p> <p>See <a class="link" href="pango-Text-Processing.html#pango-tailor-break" title="pango_tailor_break ()"><code class="function">pango_tailor_break()</code></a> for language-specific breaks.</p> <div class="refsect3"> <a name="pango-default-break.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>text to break. Must be valid UTF-8</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>length of text in bytes (may be -1 if <em class="parameter"><code>text</code></em> is nul-terminated)</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>analysis</p></td> <td class="parameter_description"><p>a <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> for the <em class="parameter"><code>text</code></em> . </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td> </tr> <tr> <td class="parameter_name"><p>attrs</p></td> <td class="parameter_description"><p>logical attributes to fill in</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>attrs_len</p></td> <td class="parameter_description"><p>size of the array passed as <em class="parameter"><code>attrs</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="pango-tailor-break"></a><h3>pango_tailor_break ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_tailor_break (<em class="parameter"><code>const <span class="type">char</span> *text</code></em>, <em class="parameter"><code><span class="type">int</span> length</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> *analysis</code></em>, <em class="parameter"><code><span class="type">int</span> offset</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> *log_attrs</code></em>, <em class="parameter"><code><span class="type">int</span> log_attrs_len</code></em>);</pre> <p>Apply language-specific tailoring to the breaks in <em class="parameter"><code>log_attrs</code></em> , which are assumed to have been produced by <a class="link" href="pango-Text-Processing.html#pango-default-break" title="pango_default_break ()"><code class="function">pango_default_break()</code></a>.</p> <p>If <em class="parameter"><code>offset</code></em> is not -1, it is used to apply attributes from <em class="parameter"><code>analysis</code></em> that are relevant to line breaking.</p> <div class="refsect3"> <a name="pango-tailor-break.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>text to process. Must be valid UTF-8</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>length in bytes of <em class="parameter"><code>text</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>analysis</p></td> <td class="parameter_description"><p><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a> for <em class="parameter"><code>text</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>offset</p></td> <td class="parameter_description"><p>Byte offset of <em class="parameter"><code>text</code></em> from the beginning of the paragraph, or -1 to ignore attributes from <em class="parameter"><code>analysis</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>log_attrs</p></td> <td class="parameter_description"><p>array with one <a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> per character in <em class="parameter"><code>text</code></em> , plus one extra, to be filled in. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=log_attrs_len]</span></td> </tr> <tr> <td class="parameter_name"><p>log_attrs_len</p></td> <td class="parameter_description"><p>length of <em class="parameter"><code>log_attrs</code></em> array</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-1-44.html#api-index-1.44">1.44</a></p> </div> <hr> <div class="refsect2"> <a name="pango-shape"></a><h3>pango_shape ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_shape (<em class="parameter"><code>const <span class="type">char</span> *text</code></em>, <em class="parameter"><code><span class="type">int</span> length</code></em>, <em class="parameter"><code>const <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> *analysis</code></em>, <em class="parameter"><code><a class="link" href="pango-Glyph-Storage.html#PangoGlyphString"><span class="type">PangoGlyphString</span></a> *glyphs</code></em>);</pre> <p>Given a segment of text and the corresponding <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure returned from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>, convert the characters into glyphs. You may also pass in only a substring of the item from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>.</p> <p>It is recommended that you use <a class="link" href="pango-Text-Processing.html#pango-shape-full" title="pango_shape_full ()"><code class="function">pango_shape_full()</code></a> instead, since that API allows for shaping interaction happening across text item boundaries.</p> <div class="refsect3"> <a name="pango-shape.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>text</p></td> <td class="parameter_description"><p>the text to process</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>length</p></td> <td class="parameter_description"><p>the length (in bytes) of <em class="parameter"><code>text</code></em> </p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>analysis</p></td> <td class="parameter_description"><p><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a></p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>glyphs</p></td> <td class="parameter_description"><p>glyph string in which to store results</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="pango-shape-full"></a><h3>pango_shape_full ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_shape_full (<em class="parameter"><code>const <span class="type">char</span> *item_text</code></em>, <em class="parameter"><code><span class="type">int</span> item_length</code></em>, <em class="parameter"><code>const <span class="type">char</span> *paragraph_text</code></em>, <em class="parameter"><code><span class="type">int</span> paragraph_length</code></em>, <em class="parameter"><code>const <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> *analysis</code></em>, <em class="parameter"><code><a class="link" href="pango-Glyph-Storage.html#PangoGlyphString"><span class="type">PangoGlyphString</span></a> *glyphs</code></em>);</pre> <p>Given a segment of text and the corresponding <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure returned from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>, convert the characters into glyphs. You may also pass in only a substring of the item from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>.</p> <p>This is similar to <a class="link" href="pango-Text-Processing.html#pango-shape" title="pango_shape ()"><code class="function">pango_shape()</code></a>, except it also can optionally take the full paragraph text as input, which will then be used to perform certain cross-item shaping interactions. If you have access to the broader text of which <em class="parameter"><code>item_text</code></em> is part of, provide the broader text as <em class="parameter"><code>paragraph_text</code></em> . If <em class="parameter"><code>paragraph_text</code></em> is <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, item text is used instead.</p> <div class="refsect3"> <a name="pango-shape-full.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>item_text</p></td> <td class="parameter_description"><p>valid UTF-8 text to shape.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>item_length</p></td> <td class="parameter_description"><p>the length (in bytes) of <em class="parameter"><code>item_text</code></em> . -1 means nul-terminated text.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>paragraph_text</p></td> <td class="parameter_description"><p>text of the paragraph (see details). May be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> </tr> <tr> <td class="parameter_name"><p>paragraph_length</p></td> <td class="parameter_description"><p>the length (in bytes) of <em class="parameter"><code>paragraph_text</code></em> . -1 means nul-terminated text.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>analysis</p></td> <td class="parameter_description"><p><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>glyphs</p></td> <td class="parameter_description"><p>glyph string in which to store results.</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-1-32.html#api-index-1.32">1.32</a></p> </div> <hr> <div class="refsect2"> <a name="pango-shape-with-flags"></a><h3>pango_shape_with_flags ()</h3> <pre class="programlisting"><span class="returnvalue">void</span> pango_shape_with_flags (<em class="parameter"><code>const <span class="type">char</span> *item_text</code></em>, <em class="parameter"><code><span class="type">int</span> item_length</code></em>, <em class="parameter"><code>const <span class="type">char</span> *paragraph_text</code></em>, <em class="parameter"><code><span class="type">int</span> paragraph_length</code></em>, <em class="parameter"><code>const <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> *analysis</code></em>, <em class="parameter"><code><a class="link" href="pango-Glyph-Storage.html#PangoGlyphString"><span class="type">PangoGlyphString</span></a> *glyphs</code></em>, <em class="parameter"><code><a class="link" href="pango-Text-Processing.html#PangoShapeFlags" title="enum PangoShapeFlags"><span class="type">PangoShapeFlags</span></a> flags</code></em>);</pre> <p>Given a segment of text and the corresponding <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure returned from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>, convert the characters into glyphs. You may also pass in only a substring of the item from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a>.</p> <p>This is similar to <a class="link" href="pango-Text-Processing.html#pango-shape-full" title="pango_shape_full ()"><code class="function">pango_shape_full()</code></a>, except it also takes flags that can influence the shaping process.</p> <div class="refsect3"> <a name="pango-shape-with-flags.parameters"></a><h4>Parameters</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="150px" class="parameters_name"> <col class="parameters_description"> <col width="200px" class="parameters_annotations"> </colgroup> <tbody> <tr> <td class="parameter_name"><p>item_text</p></td> <td class="parameter_description"><p>valid UTF-8 text to shape</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>item_length</p></td> <td class="parameter_description"><p>the length (in bytes) of <em class="parameter"><code>item_text</code></em> . -1 means nul-terminated text.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>paragraph_text</p></td> <td class="parameter_description"><p>text of the paragraph (see details). May be <a href="../glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td> <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td> </tr> <tr> <td class="parameter_name"><p>paragraph_length</p></td> <td class="parameter_description"><p>the length (in bytes) of <em class="parameter"><code>paragraph_text</code></em> . -1 means nul-terminated text.</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>analysis</p></td> <td class="parameter_description"><p><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure from <a class="link" href="pango-Text-Processing.html#pango-itemize" title="pango_itemize ()"><code class="function">pango_itemize()</code></a></p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>glyphs</p></td> <td class="parameter_description"><p>glyph string in which to store results</p></td> <td class="parameter_annotations"> </td> </tr> <tr> <td class="parameter_name"><p>flags</p></td> <td class="parameter_description"><p>flags influencing the shaping process</p></td> <td class="parameter_annotations"> </td> </tr> </tbody> </table></div> </div> <p class="since">Since: <a class="link" href="api-index-1-44.html#api-index-1.44">1.44</a></p> </div> </div> <div class="refsect1"> <a name="pango-Text-Processing.other_details"></a><h2>Types and Values</h2> <div class="refsect2"> <a name="PangoItem-struct"></a><h3>struct PangoItem</h3> <pre class="programlisting">struct PangoItem { gint offset; gint length; gint num_chars; PangoAnalysis analysis; }; </pre> <p>The <a class="link" href="pango-Text-Processing.html#PangoItem"><span class="type">PangoItem</span></a> structure stores information about a segment of text.</p> <div class="refsect3"> <a name="PangoItem.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="PangoItem-struct.offset"></a>offset</code></em>;</p></td> <td class="struct_member_description"><p>byte offset of the start of this item in text.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="PangoItem-struct.length"></a>length</code></em>;</p></td> <td class="struct_member_description"><p>length of this item in bytes.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="PangoItem-struct.num-chars"></a>num_chars</code></em>;</p></td> <td class="struct_member_description"><p>number of Unicode characters in the item.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> <em class="structfield"><code><a name="PangoItem-struct.analysis"></a>analysis</code></em>;</p></td> <td class="struct_member_description"><p>analysis results for the item.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="PangoAnalysis"></a><h3>struct PangoAnalysis</h3> <pre class="programlisting">struct PangoAnalysis { PangoEngineShape *shape_engine; PangoEngineLang *lang_engine; PangoFont *font; guint8 level; guint8 gravity; guint8 flags; guint8 script; PangoLanguage *language; GSList *extra_attrs; }; </pre> <p>The <a class="link" href="pango-Text-Processing.html#PangoAnalysis" title="struct PangoAnalysis"><span class="type">PangoAnalysis</span></a> structure stores information about the properties of a segment of text.</p> <div class="refsect3"> <a name="PangoAnalysis.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><a class="link" href="PangoEngineShape.html" title="PangoEngineShape"><span class="type">PangoEngineShape</span></a> *<em class="structfield"><code><a name="PangoAnalysis.shape-engine"></a>shape_engine</code></em>;</p></td> <td class="struct_member_description"><p>unused</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="PangoEngineLang.html" title="PangoEngineLang"><span class="type">PangoEngineLang</span></a> *<em class="structfield"><code><a name="PangoAnalysis.lang-engine"></a>lang_engine</code></em>;</p></td> <td class="struct_member_description"><p>unused</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="pango-Fonts.html#PangoFont"><span class="type">PangoFont</span></a> *<em class="structfield"><code><a name="PangoAnalysis.font"></a>font</code></em>;</p></td> <td class="struct_member_description"><p>the font for this segment.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="PangoAnalysis.level"></a>level</code></em>;</p></td> <td class="struct_member_description"><p>the bidirectional level for this segment.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="PangoAnalysis.gravity"></a>gravity</code></em>;</p></td> <td class="struct_member_description"><p>the glyph orientation for this segment (A <a class="link" href="pango-Vertical-Text.html#PangoGravity" title="enum PangoGravity"><span class="type">PangoGravity</span></a>).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="PangoAnalysis.flags"></a>flags</code></em>;</p></td> <td class="struct_member_description"><p>boolean flags for this segment (Since: 1.16).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="PangoAnalysis.script"></a>script</code></em>;</p></td> <td class="struct_member_description"><p>the detected script for this segment (A <a class="link" href="pango-Scripts-and-Languages.html#PangoScript" title="enum PangoScript"><span class="type">PangoScript</span></a>) (Since: 1.18).</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a class="link" href="pango-Scripts-and-Languages.html#PangoLanguage"><span class="type">PangoLanguage</span></a> *<em class="structfield"><code><a name="PangoAnalysis.language"></a>language</code></em>;</p></td> <td class="struct_member_description"><p>the detected language for this segment.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> *<em class="structfield"><code><a name="PangoAnalysis.extra-attrs"></a>extra_attrs</code></em>;</p></td> <td class="struct_member_description"><p>extra attributes for this segment.</p></td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="PANGO-ANALYSIS-FLAG-CENTERED-BASELINE:CAPS"></a><h3>PANGO_ANALYSIS_FLAG_CENTERED_BASELINE</h3> <pre class="programlisting">#define PANGO_ANALYSIS_FLAG_CENTERED_BASELINE (1 << 0) </pre> <p>Whether the segment should be shifted to center around the baseline. Used in vertical writing directions mostly.</p> <p class="since">Since: <a class="link" href="api-index-1-16.html#api-index-1.16">1.16</a></p> </div> <hr> <div class="refsect2"> <a name="PANGO-ANALYSIS-FLAG-IS-ELLIPSIS:CAPS"></a><h3>PANGO_ANALYSIS_FLAG_IS_ELLIPSIS</h3> <pre class="programlisting">#define PANGO_ANALYSIS_FLAG_IS_ELLIPSIS (1 << 1) </pre> <p>This flag is used to mark runs that hold ellipsized text, in an ellipsized layout.</p> <p class="since">Since: 1.36.7</p> </div> <hr> <div class="refsect2"> <a name="PANGO-ANALYSIS-FLAG-NEED-HYPHEN:CAPS"></a><h3>PANGO_ANALYSIS_FLAG_NEED_HYPHEN</h3> <pre class="programlisting">#define PANGO_ANALYSIS_FLAG_NEED_HYPHEN (1 << 2) </pre> <p>This flag tells Pango to add a hyphen at the end of the run during shaping.</p> <p class="since">Since: <a class="link" href="api-index-1-44.html#api-index-1.44">1.44</a></p> </div> <hr> <div class="refsect2"> <a name="PangoLogAttr"></a><h3>PangoLogAttr</h3> <pre class="programlisting">typedef struct { guint is_line_break : 1; guint is_mandatory_break : 1; guint is_char_break : 1; guint is_white : 1; guint is_cursor_position : 1; guint is_word_start : 1; guint is_word_end : 1; guint is_sentence_boundary : 1; guint is_sentence_start : 1; guint is_sentence_end : 1; guint backspace_deletes_character : 1; guint is_expandable_space : 1; guint is_word_boundary : 1; } PangoLogAttr; </pre> <p>The <a class="link" href="pango-Text-Processing.html#PangoLogAttr" title="PangoLogAttr"><span class="type">PangoLogAttr</span></a> structure stores information about the attributes of a single character.</p> <div class="refsect3"> <a name="PangoLogAttr.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="struct_members_name"> <col class="struct_members_description"> <col width="200px" class="struct_members_annotations"> </colgroup> <tbody> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-line-break"></a>is_line_break</code></em> : 1;</p></td> <td class="struct_member_description"><p>if set, can break line in front of character</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-mandatory-break"></a>is_mandatory_break</code></em> : 1;</p></td> <td class="struct_member_description"><p>if set, must break line in front of character</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-char-break"></a>is_char_break</code></em> : 1;</p></td> <td class="struct_member_description"><p>if set, can break here when doing character wrapping</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-white"></a>is_white</code></em> : 1;</p></td> <td class="struct_member_description"><p>is whitespace character</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-cursor-position"></a>is_cursor_position</code></em> : 1;</p></td> <td class="struct_member_description"> <p>if set, cursor can appear in front of character. i.e. this is a grapheme boundary, or the first character in the text. This flag implements Unicode's</p> <a class="ulink" href="http://www.unicode.org/reports/tr29/" target="_top">Grapheme Cluster Boundaries</a> semantics.</td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-word-start"></a>is_word_start</code></em> : 1;</p></td> <td class="struct_member_description"><p>is first character in a word</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-word-end"></a>is_word_end</code></em> : 1;</p></td> <td class="struct_member_description"><p>is first non-word char after a word Note that in degenerate cases, you could have both <em class="parameter"><code>is_word_start</code></em> and <em class="parameter"><code>is_word_end</code></em> set for some character.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-sentence-boundary"></a>is_sentence_boundary</code></em> : 1;</p></td> <td class="struct_member_description"><p>is a sentence boundary. There are two ways to divide sentences. The first assigns all inter-sentence whitespace/control/format chars to some sentence, so all chars are in some sentence; <em class="parameter"><code>is_sentence_boundary</code></em> denotes the boundaries there. The second way doesn't assign between-sentence spaces, etc. to any sentence, so <em class="parameter"><code>is_sentence_start</code></em> /<em class="parameter"><code>is_sentence_end</code></em> mark the boundaries of those sentences.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-sentence-start"></a>is_sentence_start</code></em> : 1;</p></td> <td class="struct_member_description"><p>is first character in a sentence</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-sentence-end"></a>is_sentence_end</code></em> : 1;</p></td> <td class="struct_member_description"><p>is first char after a sentence. Note that in degenerate cases, you could have both <em class="parameter"><code>is_sentence_start</code></em> and <em class="parameter"><code>is_sentence_end</code></em> set for some character. (e.g. no space after a period, so the next sentence starts right away)</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.backspace-deletes-character"></a>backspace_deletes_character</code></em> : 1;</p></td> <td class="struct_member_description"><p>if set, backspace deletes one character rather than the entire grapheme cluster. This field is only meaningful on grapheme boundaries (where <em class="parameter"><code>is_cursor_position</code></em> is set). In some languages, the full grapheme (e.g. letter + diacritics) is considered a unit, while in others, each decomposed character in the grapheme is a unit. In the default implementation of <a class="link" href="pango-Text-Processing.html#pango-break" title="pango_break ()"><code class="function">pango_break()</code></a>, this bit is set on all grapheme boundaries except those following Latin, Cyrillic or Greek base characters.</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-expandable-space"></a>is_expandable_space</code></em> : 1;</p></td> <td class="struct_member_description"><p>is a whitespace character that can possibly be expanded for justification purposes. (Since: 1.18)</p></td> <td class="struct_member_annotations"> </td> </tr> <tr> <td class="struct_member_name"><p><a href="../glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="PangoLogAttr.is-word-boundary"></a>is_word_boundary</code></em> : 1;</p></td> <td class="struct_member_description"> <p>is a word boundary, as defined by UAX<span class="type">29</span>. More specifically, means that this is not a position in the middle of a word. For example, both sides of a punctuation mark are considered word boundaries. This flag is particularly useful when selecting text word-by-word. This flag implements Unicode's</p> <a class="ulink" href="http://www.unicode.org/reports/tr29/" target="_top">Word Boundaries</a> semantics. (Since: 1.22)</td> <td class="struct_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> <hr> <div class="refsect2"> <a name="PangoShapeFlags"></a><h3>enum PangoShapeFlags</h3> <p>Flags influencing the shaping process. These can be passed to <a class="link" href="pango-Text-Processing.html#pango-shape-with-flags" title="pango_shape_with_flags ()"><code class="function">pango_shape_with_flags()</code></a>.</p> <div class="refsect3"> <a name="PangoShapeFlags.members"></a><h4>Members</h4> <div class="informaltable"><table class="informaltable" width="100%" border="0"> <colgroup> <col width="300px" class="enum_members_name"> <col class="enum_members_description"> <col width="200px" class="enum_members_annotations"> </colgroup> <tbody> <tr> <td class="enum_member_name"><p><a name="PANGO-SHAPE-NONE:CAPS"></a>PANGO_SHAPE_NONE</p></td> <td class="enum_member_description"> <p>Default value.</p> </td> <td class="enum_member_annotations"> </td> </tr> <tr> <td class="enum_member_name"><p><a name="PANGO-SHAPE-ROUND-POSITIONS:CAPS"></a>PANGO_SHAPE_ROUND_POSITIONS</p></td> <td class="enum_member_description"> <p>Round glyph positions and widths to whole device units. This option should be set if the target renderer can't do subpixel positioning of glyphs.</p> </td> <td class="enum_member_annotations"> </td> </tr> </tbody> </table></div> </div> </div> </div> </div> <div class="footer"> <hr>Generated by GTK-Doc V1.32</div> </body> </html>