Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > f51238514e2abe817779ad2fe01b0759 > files > 17

icu-doc-4.4-2.1mdv2010.2.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ICU 4.4: ParagraphLayout.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<h1>ParagraphLayout.h</h1><a href="ParagraphLayout_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> **********************************************************************</span>
<a name="l00003"></a>00003 <span class="comment"> *   Copyright (C) 2002-2010, International Business Machines</span>
<a name="l00004"></a>00004 <span class="comment"> *   Corporation and others.  All Rights Reserved.</span>
<a name="l00005"></a>00005 <span class="comment"> **********************************************************************</span>
<a name="l00006"></a>00006 <span class="comment"> */</span>
<a name="l00007"></a>00007 
<a name="l00008"></a>00008 <span class="preprocessor">#ifndef __PARAGRAPHLAYOUT_H</span>
<a name="l00009"></a>00009 <span class="preprocessor"></span>
<a name="l00010"></a>00010 <span class="preprocessor">#define __PARAGRAPHLAYOUT_H</span>
<a name="l00011"></a>00011 <span class="preprocessor"></span>
<a name="l00017"></a>00017 <span class="comment">/*</span>
<a name="l00018"></a>00018 <span class="comment"> * ParagraphLayout doesn&apos;t make much sense without</span>
<a name="l00019"></a>00019 <span class="comment"> * BreakIterator...</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &quot;<a class="code" href="uscript_8h.html" title="C API: Unicode Script Information.">unicode/uscript.h</a>&quot;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#if ! UCONFIG_NO_BREAK_ITERATION</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span>
<a name="l00024"></a>00024 <span class="preprocessor">#include &quot;<a class="code" href="LETypes_8h.html" title="C API: Basic definitions for the ICU LayoutEngine.">layout/LETypes.h</a>&quot;</span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &quot;<a class="code" href="LEFontInstance_8h.html" title="C++ API: Layout Engine Font Instance object.">layout/LEFontInstance.h</a>&quot;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &quot;<a class="code" href="LayoutEngine_8h.html" title="C++ API: Virtual base class for complex text layout.">layout/LayoutEngine.h</a>&quot;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &quot;<a class="code" href="ubidi_8h.html" title="C API: Bidi algorithm.">unicode/ubidi.h</a>&quot;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &quot;<a class="code" href="brkiter_8h.html" title="C++ API: Break Iterator.">unicode/brkiter.h</a>&quot;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="RunArrays_8h.html" title="C++ API: base class for building classes which represent data that is associated...">layout/RunArrays.h</a>&quot;</span>
<a name="l00031"></a>00031 
<a name="l00032"></a>00032 <a class="code" href="uversion_8h.html#a7d9374e037299886d4192b763b4c5e8b" title="This is used to begin a declaration of a public ICU C++ API.">U_NAMESPACE_BEGIN</a>
<a name="l00033"></a>00033 
<a name="l00044"></a><a class="code" href="classParagraphLayout.html">00044</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#a29c71565364a6e97d98b45c4e928d567" title="Set to export library symbols from inside the layout extensions library, and to import...">U_LAYOUTEX_API</a> <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a> : <span class="keyword">public</span> <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>
<a name="l00045"></a>00045 {
<a name="l00046"></a>00046 <span class="keyword">public</span>:
<a name="l00047"></a>00047     <span class="keyword">class </span><a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a>;
<a name="l00048"></a>00048 
<a name="l00060"></a><a class="code" href="classParagraphLayout_1_1Line.html">00060</a>     <span class="keyword">class </span><a class="code" href="utypes_8h.html#a29c71565364a6e97d98b45c4e928d567" title="Set to export library symbols from inside the layout extensions library, and to import...">U_LAYOUTEX_API</a> <a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a> : <span class="keyword">public</span> <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>
<a name="l00061"></a>00061     {
<a name="l00062"></a>00062     <span class="keyword">public</span>:
<a name="l00071"></a>00071         ~<a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a>();
<a name="l00072"></a>00072 
<a name="l00080"></a>00080         <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> countRuns() <span class="keyword">const</span>;
<a name="l00081"></a>00081 
<a name="l00090"></a>00090         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getAscent() <span class="keyword">const</span>;
<a name="l00091"></a>00091 
<a name="l00100"></a>00100         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getDescent() <span class="keyword">const</span>;
<a name="l00101"></a>00101 
<a name="l00110"></a>00110         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getLeading() <span class="keyword">const</span>;
<a name="l00111"></a>00111 
<a name="l00121"></a>00121         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getWidth() <span class="keyword">const</span>;
<a name="l00122"></a>00122     
<a name="l00138"></a>00138         <span class="keyword">const</span> <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a> *getVisualRun(<a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> runIndex) <span class="keyword">const</span>;
<a name="l00139"></a>00139 
<a name="l00145"></a><a class="code" href="classParagraphLayout_1_1Line.html#a7133cf4733116c9200c02941d6ca0b9e">00145</a>         <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classParagraphLayout_1_1Line.html#a7133cf4733116c9200c02941d6ca0b9e" title="ICU &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for this class.">getStaticClassID</a>() { <span class="keywordflow">return</span> (<a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a>)&amp;fgClassID; }
<a name="l00146"></a>00146 
<a name="l00152"></a><a class="code" href="classParagraphLayout_1_1Line.html#ab85cdebcf42a0b5ddbce39ef9cd964c2">00152</a>         <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classParagraphLayout_1_1Line.html#ab85cdebcf42a0b5ddbce39ef9cd964c2" title="ICU &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for the actual class.">getDynamicClassID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> getStaticClassID(); }
<a name="l00153"></a>00153 
<a name="l00154"></a>00154     <span class="keyword">private</span>:
<a name="l00155"></a>00155 
<a name="l00160"></a>00160         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> fgClassID;
<a name="l00161"></a>00161 
<a name="l00162"></a>00162         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a>;
<a name="l00163"></a>00163 
<a name="l00164"></a>00164         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fAscent;
<a name="l00165"></a>00165         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fDescent;
<a name="l00166"></a>00166         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fLeading;
<a name="l00167"></a>00167 
<a name="l00168"></a>00168         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fRunCount;
<a name="l00169"></a>00169         <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fRunCapacity;
<a name="l00170"></a>00170 
<a name="l00171"></a>00171         <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a> **fRuns;
<a name="l00172"></a>00172 
<a name="l00173"></a>00173         <span class="keyword">inline</span> <a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a>();
<a name="l00174"></a>00174         <span class="keyword">inline</span> <a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a>(<span class="keyword">const</span> <a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a> &amp;other);
<a name="l00175"></a>00175         <span class="keyword">inline</span> <a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a> &amp; <span class="comment">/*other*/</span>) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; };
<a name="l00176"></a>00176 
<a name="l00177"></a>00177         <span class="keywordtype">void</span> computeMetrics();
<a name="l00178"></a>00178 
<a name="l00179"></a>00179         <span class="keywordtype">void</span> append(<span class="keyword">const</span> <a class="code" href="classLEFontInstance.html" title="This is a virtual base class that serves as the interface between a LayoutEngine...">LEFontInstance</a> *font, <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a> direction, <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> glyphCount,
<a name="l00180"></a>00180                     <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#ae440e077586bced1a0d1c534643ffc23" title="Used for glyph indices.">LEGlyphID</a> glyphs[], <span class="keyword">const</span> <span class="keywordtype">float</span> positions[], <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> glyphToCharMap[]);
<a name="l00181"></a>00181     };
<a name="l00182"></a>00182 
<a name="l00198"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html">00198</a>     <span class="keyword">class </span><a class="code" href="utypes_8h.html#a29c71565364a6e97d98b45c4e928d567" title="Set to export library symbols from inside the layout extensions library, and to import...">U_LAYOUTEX_API</a> <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a> : <span class="keyword">public</span> <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>
<a name="l00199"></a>00199     {
<a name="l00200"></a>00200     <span class="keyword">public</span>:
<a name="l00213"></a>00213         <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classLEFontInstance.html" title="This is a virtual base class that serves as the interface between a LayoutEngine...">LEFontInstance</a> *getFont() <span class="keyword">const</span>;
<a name="l00214"></a>00214 
<a name="l00223"></a>00223         <span class="keyword">inline</span> <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a> getDirection() <span class="keyword">const</span>;
<a name="l00224"></a>00224 
<a name="l00232"></a>00232         <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getGlyphCount() <span class="keyword">const</span>;
<a name="l00233"></a>00233 
<a name="l00244"></a>00244         <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#ae440e077586bced1a0d1c534643ffc23" title="Used for glyph indices.">LEGlyphID</a> *getGlyphs() <span class="keyword">const</span>;
<a name="l00245"></a>00245 
<a name="l00259"></a>00259         <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">float</span> *getPositions() <span class="keyword">const</span>;
<a name="l00260"></a>00260 
<a name="l00271"></a>00271         <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> *getGlyphToCharMap() <span class="keyword">const</span>;
<a name="l00272"></a>00272 
<a name="l00281"></a>00281         <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getAscent() <span class="keyword">const</span>;
<a name="l00282"></a>00282 
<a name="l00291"></a>00291         <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getDescent() <span class="keyword">const</span>;
<a name="l00292"></a>00292 
<a name="l00301"></a>00301         <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getLeading() <span class="keyword">const</span>;
<a name="l00302"></a>00302 
<a name="l00308"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#ada2a43633ffc27e1757d0066c700bff6">00308</a>         <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classParagraphLayout_1_1VisualRun.html#ada2a43633ffc27e1757d0066c700bff6" title="ICU &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for this class.">getStaticClassID</a>() { <span class="keywordflow">return</span> (<a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a>)&amp;fgClassID; }
<a name="l00309"></a>00309 
<a name="l00315"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a32d45bb6958b3e4c7d5ae9bab6336c90">00315</a>         <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classParagraphLayout_1_1VisualRun.html#a32d45bb6958b3e4c7d5ae9bab6336c90" title="ICU &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for the actual class.">getDynamicClassID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> getStaticClassID(); }
<a name="l00316"></a>00316 
<a name="l00317"></a>00317     <span class="keyword">private</span>:
<a name="l00318"></a>00318 
<a name="l00323"></a>00323         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> fgClassID;
<a name="l00324"></a>00324 
<a name="l00325"></a>00325         <span class="keyword">const</span> <a class="code" href="classLEFontInstance.html" title="This is a virtual base class that serves as the interface between a LayoutEngine...">LEFontInstance</a> *fFont;
<a name="l00326"></a>00326         <span class="keyword">const</span> <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a>  fDirection;
<a name="l00327"></a>00327 
<a name="l00328"></a>00328         <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fGlyphCount;
<a name="l00329"></a>00329 
<a name="l00330"></a>00330         <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#ae440e077586bced1a0d1c534643ffc23" title="Used for glyph indices.">LEGlyphID</a> *fGlyphs;
<a name="l00331"></a>00331         <span class="keyword">const</span> <span class="keywordtype">float</span>     *fPositions;
<a name="l00332"></a>00332         <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>  *fGlyphToCharMap;
<a name="l00333"></a>00333 
<a name="l00334"></a>00334         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classParagraphLayout_1_1Line.html" title="This class represents a single line of text in a ParagraphLayout.">Line</a>;
<a name="l00335"></a>00335 
<a name="l00336"></a>00336         <span class="keyword">inline</span> <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a>();
<a name="l00337"></a>00337         <span class="keyword">inline</span> <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a>(<span class="keyword">const</span> <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a> &amp;other);
<a name="l00338"></a>00338         <span class="keyword">inline</span> <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classParagraphLayout_1_1VisualRun.html" title="This object represents a single visual run in a line of text in a paragraph.">VisualRun</a> &amp;<span class="comment">/*other*/</span>) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; };
<a name="l00339"></a>00339 
<a name="l00340"></a>00340         <span class="keyword">inline</span> VisualRun(<span class="keyword">const</span> <a class="code" href="classLEFontInstance.html" title="This is a virtual base class that serves as the interface between a LayoutEngine...">LEFontInstance</a> *font, <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a> direction, <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> glyphCount,
<a name="l00341"></a>00341                   <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#ae440e077586bced1a0d1c534643ffc23" title="Used for glyph indices.">LEGlyphID</a> glyphs[], <span class="keyword">const</span> <span class="keywordtype">float</span> positions[], <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> glyphToCharMap[]);
<a name="l00342"></a>00342 
<a name="l00343"></a>00343         ~VisualRun();
<a name="l00344"></a>00344     };
<a name="l00345"></a>00345 
<a name="l00389"></a>00389     <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a>(<span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a903cb689308cdef41500411d096a2c2d" title="Used to represent 16-bit Unicode code points.">LEUnicode</a> chars[], <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> count,
<a name="l00390"></a>00390                     <span class="keyword">const</span> <a class="code" href="classFontRuns.html" title="The FontRuns class associates pointers to LEFontInstance objects with runs of text...">FontRuns</a> *fontRuns,
<a name="l00391"></a>00391                     <span class="keyword">const</span> <a class="code" href="classValueRuns.html" title="The ValueRuns class associates integer values with runs of text.">ValueRuns</a> *levelRuns,
<a name="l00392"></a>00392                     <span class="keyword">const</span> <a class="code" href="classValueRuns.html" title="The ValueRuns class associates integer values with runs of text.">ValueRuns</a> *scriptRuns,
<a name="l00393"></a>00393                     <span class="keyword">const</span> <a class="code" href="classLocaleRuns.html" title="The LocaleRuns class associates pointers to Locale objects with runs of text.">LocaleRuns</a> *localeRuns,
<a name="l00394"></a>00394                     <a class="code" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606" title="UBiDiLevel is the type of the level values in this Bidi implementation.">UBiDiLevel</a> paragraphLevel, <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> vertical,
<a name="l00395"></a>00395                     <a class="code" href="LETypes_8h.html#a2f75d3bb5abf7f0a71adbf00826e1934" title="Error codes returned by the LayoutEngine.">LEErrorCode</a> &amp;status);
<a name="l00396"></a>00396 
<a name="l00403"></a>00403     ~<a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a>();
<a name="l00404"></a>00404 
<a name="l00405"></a>00405     <span class="comment">// Note: the following is #if 0&apos;d out because there&apos;s no good</span>
<a name="l00406"></a>00406     <span class="comment">// way to implement it without either calling layoutEngineFactory()</span>
<a name="l00407"></a>00407     <span class="comment">// or duplicating the logic there...</span>
<a name="l00408"></a>00408 <span class="preprocessor">#if 0</span>
<a name="l00409"></a>00409 <span class="preprocessor"></span>
<a name="l00424"></a>00424     <span class="keyword">static</span> <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> isComplex(<span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a903cb689308cdef41500411d096a2c2d" title="Used to represent 16-bit Unicode code points.">LEUnicode</a> chars[], <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> count, <span class="keyword">const</span> <a class="code" href="classFontRuns.html" title="The FontRuns class associates pointers to LEFontInstance objects with runs of text...">FontRuns</a> *fontRuns);
<a name="l00425"></a>00425 <span class="preprocessor">#else</span>
<a name="l00426"></a>00426 <span class="preprocessor"></span>
<a name="l00438"></a>00438     <span class="keyword">static</span> <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> isComplex(<span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a903cb689308cdef41500411d096a2c2d" title="Used to represent 16-bit Unicode code points.">LEUnicode</a> chars[], <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> count);
<a name="l00439"></a>00439 
<a name="l00440"></a>00440 <span class="preprocessor">#endif</span>
<a name="l00441"></a>00441 <span class="preprocessor"></span>
<a name="l00451"></a>00451     <span class="keyword">inline</span> <a class="code" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606" title="UBiDiLevel is the type of the level values in this Bidi implementation.">UBiDiLevel</a> getParagraphLevel();
<a name="l00452"></a>00452 
<a name="l00462"></a>00462     <span class="keyword">inline</span> <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a> getTextDirection();
<a name="l00463"></a>00463 
<a name="l00472"></a>00472     <span class="keyword">virtual</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getAscent() <span class="keyword">const</span>;
<a name="l00473"></a>00473 
<a name="l00482"></a>00482     <span class="keyword">virtual</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getDescent() <span class="keyword">const</span>;
<a name="l00483"></a>00483 
<a name="l00492"></a>00492     <span class="keyword">virtual</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getLeading() <span class="keyword">const</span>;
<a name="l00493"></a>00493 
<a name="l00500"></a>00500     <span class="keyword">inline</span> <span class="keywordtype">void</span> reflow();
<a name="l00510"></a>00510     <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> isDone() <span class="keyword">const</span>;
<a name="l00511"></a>00511 
<a name="l00529"></a>00529     Line *nextLine(<span class="keywordtype">float</span> width);
<a name="l00530"></a>00530 
<a name="l00536"></a><a class="code" href="classParagraphLayout.html#aa2b61f27a4915a526eced0e2b089f182">00536</a>     <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classParagraphLayout.html#aa2b61f27a4915a526eced0e2b089f182" title="ICU &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for this class.">getStaticClassID</a>() { <span class="keywordflow">return</span> (<a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a>)&amp;fgClassID; }
<a name="l00537"></a>00537 
<a name="l00543"></a><a class="code" href="classParagraphLayout.html#ac9d732c6f5f630acf85c17d213fb850a">00543</a>     <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classParagraphLayout.html#ac9d732c6f5f630acf85c17d213fb850a" title="ICU &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for the actual class.">getDynamicClassID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> getStaticClassID(); }
<a name="l00544"></a>00544 
<a name="l00545"></a>00545 <span class="keyword">private</span>:
<a name="l00546"></a>00546 
<a name="l00547"></a>00547 
<a name="l00552"></a>00552     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> fgClassID;
<a name="l00553"></a>00553 
<a name="l00554"></a>00554     <span class="keyword">struct </span>StyleRunInfo
<a name="l00555"></a>00555     {
<a name="l00556"></a>00556           <a class="code" href="classLayoutEngine.html" title="This is a virtual base class used to do complex text layout.">LayoutEngine</a>   *engine;
<a name="l00557"></a>00557     <span class="keyword">const</span> <a class="code" href="classLEFontInstance.html" title="This is a virtual base class that serves as the interface between a LayoutEngine...">LEFontInstance</a> *font;
<a name="l00558"></a>00558     <span class="keyword">const</span> <a class="code" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a>         *locale;
<a name="l00559"></a>00559           <a class="code" href="LETypes_8h.html#ae440e077586bced1a0d1c534643ffc23" title="Used for glyph indices.">LEGlyphID</a>      *glyphs;
<a name="l00560"></a>00560           <span class="keywordtype">float</span>          *positions;
<a name="l00561"></a>00561           <a class="code" href="uscript_8h.html#a5036ff9ca2a7f1d2bde07875bb235df0" title="Constants for ISO 15924 script codes.">UScriptCode</a>     script;
<a name="l00562"></a>00562           <a class="code" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606" title="UBiDiLevel is the type of the level values in this Bidi implementation.">UBiDiLevel</a>      level;
<a name="l00563"></a>00563           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>        runBase;
<a name="l00564"></a>00564           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>        runLimit;
<a name="l00565"></a>00565           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>        glyphBase;
<a name="l00566"></a>00566           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>        glyphCount;
<a name="l00567"></a>00567     };
<a name="l00568"></a>00568 
<a name="l00569"></a>00569     <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a>() {};
<a name="l00570"></a>00570     <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a>(<span class="keyword">const</span> <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a> &amp; <span class="comment">/*other*/</span>) : <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>( ){};
<a name="l00571"></a>00571     <span class="keyword">inline</span> <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a> &amp;operator=(<span class="keyword">const</span> <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a> &amp; <span class="comment">/*other*/</span>) { <span class="keywordflow">return</span> *<span class="keyword">this</span>; };
<a name="l00572"></a>00572 
<a name="l00573"></a>00573     <span class="keywordtype">void</span> computeLevels(<a class="code" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606" title="UBiDiLevel is the type of the level values in this Bidi implementation.">UBiDiLevel</a> paragraphLevel);
<a name="l00574"></a>00574 
<a name="l00575"></a>00575     Line *computeVisualRuns();
<a name="l00576"></a>00576     <span class="keywordtype">void</span> appendRun(Line *line, <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> run, <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> firstChar, <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> lastChar);
<a name="l00577"></a>00577 
<a name="l00578"></a>00578     <span class="keywordtype">void</span> computeScripts();
<a name="l00579"></a>00579 
<a name="l00580"></a>00580     <span class="keywordtype">void</span> computeLocales();
<a name="l00581"></a>00581 
<a name="l00582"></a>00582     <span class="keywordtype">void</span> computeSubFonts(<span class="keyword">const</span> <a class="code" href="classFontRuns.html" title="The FontRuns class associates pointers to LEFontInstance objects with runs of text...">FontRuns</a> *fontRuns, <a class="code" href="LETypes_8h.html#a2f75d3bb5abf7f0a71adbf00826e1934" title="Error codes returned by the LayoutEngine.">LEErrorCode</a> &amp;status);
<a name="l00583"></a>00583 
<a name="l00584"></a>00584     <span class="keywordtype">void</span> computeMetrics();
<a name="l00585"></a>00585 
<a name="l00586"></a>00586     <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getLanguageCode(<span class="keyword">const</span> <a class="code" href="classLocale.html" title="A Locale object represents a specific geographical, political, or cultural region...">Locale</a> *locale);
<a name="l00587"></a>00587 
<a name="l00588"></a>00588     <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> getCharRun(<a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> charIndex);
<a name="l00589"></a>00589 
<a name="l00590"></a>00590     <span class="keyword">static</span> <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> isComplex(<a class="code" href="uscript_8h.html#a5036ff9ca2a7f1d2bde07875bb235df0" title="Constants for ISO 15924 script codes.">UScriptCode</a> script);
<a name="l00591"></a>00591 
<a name="l00592"></a>00592     <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> previousBreak(<a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> charIndex);
<a name="l00593"></a>00593 
<a name="l00594"></a>00594 
<a name="l00595"></a>00595     <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a903cb689308cdef41500411d096a2c2d" title="Used to represent 16-bit Unicode code points.">LEUnicode</a> *fChars;
<a name="l00596"></a>00596           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>   fCharCount;
<a name="l00597"></a>00597 
<a name="l00598"></a>00598     <span class="keyword">const</span> <a class="code" href="classFontRuns.html" title="The FontRuns class associates pointers to LEFontInstance objects with runs of text...">FontRuns</a>   *fFontRuns;
<a name="l00599"></a>00599     <span class="keyword">const</span> <a class="code" href="classValueRuns.html" title="The ValueRuns class associates integer values with runs of text.">ValueRuns</a>  *fLevelRuns;
<a name="l00600"></a>00600     <span class="keyword">const</span> <a class="code" href="classValueRuns.html" title="The ValueRuns class associates integer values with runs of text.">ValueRuns</a>  *fScriptRuns;
<a name="l00601"></a>00601     <span class="keyword">const</span> <a class="code" href="classLocaleRuns.html" title="The LocaleRuns class associates pointers to Locale objects with runs of text.">LocaleRuns</a> *fLocaleRuns;
<a name="l00602"></a>00602 
<a name="l00603"></a>00603           <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> fVertical;
<a name="l00604"></a>00604           <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> fClientLevels;
<a name="l00605"></a>00605           <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> fClientScripts;
<a name="l00606"></a>00606           <a class="code" href="LETypes_8h.html#a4b77bc254d0e88fdabffde9c03e6728f" title="A type used for boolean values.">le_bool</a> fClientLocales;
<a name="l00607"></a>00607 
<a name="l00608"></a>00608           <a class="code" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606" title="UBiDiLevel is the type of the level values in this Bidi implementation.">UBiDiLevel</a> *fEmbeddingLevels;
<a name="l00609"></a>00609 
<a name="l00610"></a>00610           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fAscent;
<a name="l00611"></a>00611           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fDescent;
<a name="l00612"></a>00612           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> fLeading;
<a name="l00613"></a>00613 
<a name="l00614"></a>00614           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> *fGlyphToCharMap;
<a name="l00615"></a>00615           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> *fCharToMinGlyphMap;
<a name="l00616"></a>00616           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> *fCharToMaxGlyphMap;
<a name="l00617"></a>00617           <span class="keywordtype">float</span>    *fGlyphWidths;
<a name="l00618"></a>00618           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>  fGlyphCount;
<a name="l00619"></a>00619 
<a name="l00620"></a>00620           <a class="code" href="ubidi_8h.html#aeed24292bbed966df93f088bc6791f74">UBiDi</a> *fParaBidi;
<a name="l00621"></a>00621           <a class="code" href="ubidi_8h.html#aeed24292bbed966df93f088bc6791f74">UBiDi</a> *fLineBidi;
<a name="l00622"></a>00622 
<a name="l00623"></a>00623           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>     *fStyleRunLimits;
<a name="l00624"></a>00624           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>     *fStyleIndices;
<a name="l00625"></a>00625           StyleRunInfo *fStyleRunInfo;
<a name="l00626"></a>00626           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>      fStyleRunCount;
<a name="l00627"></a>00627 
<a name="l00628"></a>00628           <a class="code" href="classBreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries...">BreakIterator</a> *fBreakIterator;
<a name="l00629"></a>00629           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>       fLineStart;
<a name="l00630"></a>00630           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>       fLineEnd;
<a name="l00631"></a>00631 
<a name="l00632"></a>00632           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>       fFirstVisualRun;
<a name="l00633"></a>00633           <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a>       fLastVisualRun;
<a name="l00634"></a>00634           <span class="keywordtype">float</span>          fVisualRunLastX;
<a name="l00635"></a>00635           <span class="keywordtype">float</span>          fVisualRunLastY;
<a name="l00636"></a>00636 };
<a name="l00637"></a>00637 
<a name="l00638"></a><a class="code" href="classParagraphLayout.html#a90f17221c71a4bbb893dc43bf44b8352">00638</a> <span class="keyword">inline</span> <a class="code" href="ubidi_8h.html#ab2460a19f323ab9787a79a95db91a606" title="UBiDiLevel is the type of the level values in this Bidi implementation.">UBiDiLevel</a> <a class="code" href="classParagraphLayout.html#a90f17221c71a4bbb893dc43bf44b8352" title="Return the resolved paragraph level.">ParagraphLayout::getParagraphLevel</a>()
<a name="l00639"></a>00639 {
<a name="l00640"></a>00640     <span class="keywordflow">return</span> <a class="code" href="ubidi_8h.html#a6724e673e9ff8f0ee47bd24e47ceb95a" title="Get the paragraph level of the text.">ubidi_getParaLevel</a>(fParaBidi);
<a name="l00641"></a>00641 }
<a name="l00642"></a>00642 
<a name="l00643"></a><a class="code" href="classParagraphLayout.html#a2a90412e5a4c2465d5068920579137fc">00643</a> <span class="keyword">inline</span> <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a> <a class="code" href="classParagraphLayout.html#a2a90412e5a4c2465d5068920579137fc" title="Return the directionality of the text in the paragraph.">ParagraphLayout::getTextDirection</a>()
<a name="l00644"></a>00644 {
<a name="l00645"></a>00645     <span class="keywordflow">return</span> <a class="code" href="ubidi_8h.html#af31ec52194764c663c224f5171e95ea3" title="Get the directionality of the text.">ubidi_getDirection</a>(fParaBidi);
<a name="l00646"></a>00646 }
<a name="l00647"></a>00647 
<a name="l00648"></a><a class="code" href="classParagraphLayout.html#a437d556bb78f8f31a3167cdebed34697">00648</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classParagraphLayout.html#a437d556bb78f8f31a3167cdebed34697" title="Reset line breaking to start from the beginning of the paragraph.">ParagraphLayout::reflow</a>()
<a name="l00649"></a>00649 {
<a name="l00650"></a>00650     fLineEnd = 0;
<a name="l00651"></a>00651 }
<a name="l00652"></a>00652 
<a name="l00653"></a>00653 <span class="keyword">inline</span> ParagraphLayout::Line::Line()
<a name="l00654"></a>00654     : <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>(), fAscent(0), fDescent(0), fLeading(0), fRunCount(0), fRunCapacity(0), fRuns(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>)
<a name="l00655"></a>00655 {
<a name="l00656"></a>00656     <span class="comment">// nothing else to do</span>
<a name="l00657"></a>00657 }
<a name="l00658"></a>00658 
<a name="l00659"></a>00659 <span class="keyword">inline</span> ParagraphLayout::Line::Line(<span class="keyword">const</span> Line &amp; <span class="comment">/*other*/</span>)
<a name="l00660"></a>00660     : <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>(), fAscent(0), fDescent(0), fLeading(0), fRunCount(0), fRunCapacity(0), fRuns(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>)
<a name="l00661"></a>00661 {
<a name="l00662"></a>00662     <span class="comment">// nothing else to do</span>
<a name="l00663"></a>00663 }
<a name="l00664"></a>00664 
<a name="l00665"></a><a class="code" href="classParagraphLayout_1_1Line.html#a55f4bdd7d980820d736ea0df45139191">00665</a> <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> <a class="code" href="classParagraphLayout_1_1Line.html#a55f4bdd7d980820d736ea0df45139191" title="Count the number of visual runs in the line.">ParagraphLayout::Line::countRuns</a>()<span class="keyword"> const</span>
<a name="l00666"></a>00666 <span class="keyword"></span>{
<a name="l00667"></a>00667     <span class="keywordflow">return</span> fRunCount;
<a name="l00668"></a>00668 }
<a name="l00669"></a>00669 
<a name="l00670"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#ae09eadf5efc2a90aaf8ac4f37afc00c3">00670</a> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classLEFontInstance.html" title="This is a virtual base class that serves as the interface between a LayoutEngine...">LEFontInstance</a> *<a class="code" href="classParagraphLayout_1_1VisualRun.html#ae09eadf5efc2a90aaf8ac4f37afc00c3" title="Get the LEFontInstance object which represents the font of the visual run.">ParagraphLayout::VisualRun::getFont</a>()<span class="keyword"> const</span>
<a name="l00671"></a>00671 <span class="keyword"></span>{
<a name="l00672"></a>00672     <span class="keywordflow">return</span> fFont;
<a name="l00673"></a>00673 }
<a name="l00674"></a>00674 
<a name="l00675"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a6e383e7f79db97e8de6227c0c4f63931">00675</a> <span class="keyword">inline</span> <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a> <a class="code" href="classParagraphLayout_1_1VisualRun.html#a6e383e7f79db97e8de6227c0c4f63931" title="Get the direction of the visual run.">ParagraphLayout::VisualRun::getDirection</a>()<span class="keyword"> const</span>
<a name="l00676"></a>00676 <span class="keyword"></span>{
<a name="l00677"></a>00677     <span class="keywordflow">return</span> fDirection;
<a name="l00678"></a>00678 }
<a name="l00679"></a>00679 
<a name="l00680"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a4c5d161a68f2305a4c473b907d12c924">00680</a> <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> <a class="code" href="classParagraphLayout_1_1VisualRun.html#a4c5d161a68f2305a4c473b907d12c924" title="Get the number of glyphs in the visual run.">ParagraphLayout::VisualRun::getGlyphCount</a>()<span class="keyword"> const</span>
<a name="l00681"></a>00681 <span class="keyword"></span>{
<a name="l00682"></a>00682     <span class="keywordflow">return</span> fGlyphCount;
<a name="l00683"></a>00683 }
<a name="l00684"></a>00684 
<a name="l00685"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a50442ccb7da5d3442a608f3a70e990bd">00685</a> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#ae440e077586bced1a0d1c534643ffc23" title="Used for glyph indices.">LEGlyphID</a> *<a class="code" href="classParagraphLayout_1_1VisualRun.html#a50442ccb7da5d3442a608f3a70e990bd" title="Get the glyphs in the visual run.">ParagraphLayout::VisualRun::getGlyphs</a>()<span class="keyword"> const</span>
<a name="l00686"></a>00686 <span class="keyword"></span>{
<a name="l00687"></a>00687     <span class="keywordflow">return</span> fGlyphs;
<a name="l00688"></a>00688 }
<a name="l00689"></a>00689 
<a name="l00690"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a383fd1c8e4bdadb470aec916e0f98ce5">00690</a> <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">float</span> *<a class="code" href="classParagraphLayout_1_1VisualRun.html#a383fd1c8e4bdadb470aec916e0f98ce5" title="Get the (x, y) positions of the glyphs in the visual run.">ParagraphLayout::VisualRun::getPositions</a>()<span class="keyword"> const</span>
<a name="l00691"></a>00691 <span class="keyword"></span>{
<a name="l00692"></a>00692     <span class="keywordflow">return</span> fPositions;
<a name="l00693"></a>00693 }
<a name="l00694"></a>00694 
<a name="l00695"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a13d64c3e5ca2cb73236595c0ae71c464">00695</a> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> *<a class="code" href="classParagraphLayout_1_1VisualRun.html#a13d64c3e5ca2cb73236595c0ae71c464" title="Get the glyph-to-character map for this visual run.">ParagraphLayout::VisualRun::getGlyphToCharMap</a>()<span class="keyword"> const</span>
<a name="l00696"></a>00696 <span class="keyword"></span>{
<a name="l00697"></a>00697     <span class="keywordflow">return</span> fGlyphToCharMap;
<a name="l00698"></a>00698 }
<a name="l00699"></a>00699 
<a name="l00700"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#ae3fb40ca14c91aa607db680e5bd4bfc0">00700</a> <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> <a class="code" href="classParagraphLayout.html#ac107efb21e93bb88d279547cf9ef3a89" title="Return the max ascent value for all the fonts in the paragraph.">ParagraphLayout::VisualRun::getAscent</a>()<span class="keyword"> const</span>
<a name="l00701"></a>00701 <span class="keyword"></span>{
<a name="l00702"></a>00702     <span class="keywordflow">return</span> fFont-&gt;<a class="code" href="classLEFontInstance.html#ae998881f1c92d740d2508c34c5452d7e" title="Get the font&amp;#39;s ascent.">getAscent</a>();
<a name="l00703"></a>00703 }
<a name="l00704"></a>00704 
<a name="l00705"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a20e181a7eca537305e8d95e4b66b8c4b">00705</a> <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> <a class="code" href="classParagraphLayout.html#a442b8a63149d41f5a9072aae90b39c8f" title="Return the max descent value for all the fonts in the paragraph.">ParagraphLayout::VisualRun::getDescent</a>()<span class="keyword"> const</span>
<a name="l00706"></a>00706 <span class="keyword"></span>{
<a name="l00707"></a>00707     <span class="keywordflow">return</span> fFont-&gt;<a class="code" href="classLEFontInstance.html#aad3b9dbda9a15e478781aa033737da9e" title="Get the font&amp;#39;s descent.">getDescent</a>();
<a name="l00708"></a>00708 }
<a name="l00709"></a>00709 
<a name="l00710"></a><a class="code" href="classParagraphLayout_1_1VisualRun.html#a072e80a8db2b95d835baf289aedc6fea">00710</a> <span class="keyword">inline</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> <a class="code" href="classParagraphLayout.html#a8aee0a8278e9c7b019748ba04f56e909" title="Return the max leading value for all the fonts in the paragraph.">ParagraphLayout::VisualRun::getLeading</a>()<span class="keyword"> const</span>
<a name="l00711"></a>00711 <span class="keyword"></span>{
<a name="l00712"></a>00712     <span class="keywordflow">return</span> fFont-&gt;<a class="code" href="classLEFontInstance.html#ad64ff3fc567404a2fb2bc79f2c254c00" title="Get the font&amp;#39;s leading.">getLeading</a>();
<a name="l00713"></a>00713 }
<a name="l00714"></a>00714 
<a name="l00715"></a>00715 <span class="keyword">inline</span> ParagraphLayout::VisualRun::VisualRun()
<a name="l00716"></a>00716     : <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>(), fFont(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>), fDirection(<a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102a3378628e1b7851cd6d00e7f74d29f6c3" title="All left-to-right text.">UBIDI_LTR</a>), fGlyphCount(0), fGlyphs(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>), fPositions(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>), fGlyphToCharMap(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>)
<a name="l00717"></a>00717 {
<a name="l00718"></a>00718     <span class="comment">// nothing</span>
<a name="l00719"></a>00719 }
<a name="l00720"></a>00720 
<a name="l00721"></a>00721 <span class="keyword">inline</span> ParagraphLayout::VisualRun::VisualRun(<span class="keyword">const</span> VisualRun &amp;<span class="comment">/*other*/</span>)
<a name="l00722"></a>00722     : <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a>(), fFont(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>), fDirection(<a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102a3378628e1b7851cd6d00e7f74d29f6c3" title="All left-to-right text.">UBIDI_LTR</a>), fGlyphCount(0), fGlyphs(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>), fPositions(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>), fGlyphToCharMap(<a class="code" href="utypes_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4" title="Define NULL if necessary, to 0 for C++ and to ((void *)0) for C.">NULL</a>)
<a name="l00723"></a>00723 {
<a name="l00724"></a>00724     <span class="comment">// nothing</span>
<a name="l00725"></a>00725 }
<a name="l00726"></a>00726 
<a name="l00727"></a>00727 <span class="keyword">inline</span> ParagraphLayout::VisualRun::VisualRun(<span class="keyword">const</span> <a class="code" href="classLEFontInstance.html" title="This is a virtual base class that serves as the interface between a LayoutEngine...">LEFontInstance</a> *font, <a class="code" href="ubidi_8h.html#a68a6b5fdcbf80aaa51b5bd39f7f31102" title="UBiDiDirection values indicate the text direction.">UBiDiDirection</a> direction, <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> glyphCount,
<a name="l00728"></a>00728                                              <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#ae440e077586bced1a0d1c534643ffc23" title="Used for glyph indices.">LEGlyphID</a> glyphs[], <span class="keyword">const</span> <span class="keywordtype">float</span> positions[], <span class="keyword">const</span> <a class="code" href="LETypes_8h.html#a3ae79f31399d76e3055d2a2745bd0d9a" title="A type used for signed, 32-bit integers.">le_int32</a> glyphToCharMap[])
<a name="l00729"></a>00729     : fFont(font), fDirection(direction), fGlyphCount(glyphCount),
<a name="l00730"></a>00730       fGlyphs(glyphs), fPositions(positions), fGlyphToCharMap(glyphToCharMap)
<a name="l00731"></a>00731 {
<a name="l00732"></a>00732     <span class="comment">// nothing else needs to be done!</span>
<a name="l00733"></a>00733 }
<a name="l00734"></a>00734 
<a name="l00735"></a>00735 <a class="code" href="uversion_8h.html#a3da1f00f3b02976ac53c014a3e4c0933" title="This is used to end a declaration of a public ICU C++ API.">U_NAMESPACE_END</a>
<a name="l00736"></a>00736 <span class="preprocessor">#endif</span>
<a name="l00737"></a>00737 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
</pre></div></div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Mar 2010 for ICU 4.4 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>