<!-- 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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data 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 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'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 "<a class="code" href="uscript_8h.html" title="C API: Unicode Script Information.">unicode/uscript.h</a>"</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 "<a class="code" href="LETypes_8h.html" title="C API: Basic definitions for the ICU LayoutEngine.">layout/LETypes.h</a>"</span> <a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="LEFontInstance_8h.html" title="C++ API: Layout Engine Font Instance object.">layout/LEFontInstance.h</a>"</span> <a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="LayoutEngine_8h.html" title="C++ API: Virtual base class for complex text layout.">layout/LayoutEngine.h</a>"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="ubidi_8h.html" title="C API: Bidi algorithm.">unicode/ubidi.h</a>"</span> <a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="brkiter_8h.html" title="C++ API: Break Iterator.">unicode/brkiter.h</a>"</span> <a name="l00029"></a>00029 <a name="l00030"></a>00030 <span class="preprocessor">#include "<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>"</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 &quot;boilerplate&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 &quot;boilerplate&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 &quot;poor man&#39;s RTTI&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>)&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 &quot;poor man&#39;s RTTI&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> &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> &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> & <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 &quot;boilerplate&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 &quot;poor man&#39;s RTTI&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>)&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 &quot;poor man&#39;s RTTI&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> &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> &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> &<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> &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'd out because there'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 &quot;poor man&#39;s RTTI&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>)&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 &quot;poor man&#39;s RTTI&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> & <span class="comment">/*other*/</span>) : <a class="code" href="classUObject.html" title="UObject is the common ICU &quot;boilerplate&quot; class.">UObject</a>( ){}; <a name="l00571"></a>00571 <span class="keyword">inline</span> <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a> &operator=(<span class="keyword">const</span> <a class="code" href="classParagraphLayout.html" title="ParagraphLayout.">ParagraphLayout</a> & <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> &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 &quot;boilerplate&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 & <span class="comment">/*other*/</span>) <a name="l00660"></a>00660 : <a class="code" href="classUObject.html" title="UObject is the common ICU &quot;boilerplate&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-><a class="code" href="classLEFontInstance.html#ae998881f1c92d740d2508c34c5452d7e" title="Get the font&#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-><a class="code" href="classLEFontInstance.html#aad3b9dbda9a15e478781aa033737da9e" title="Get the font&#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-><a class="code" href="classLEFontInstance.html#ad64ff3fc567404a2fb2bc79f2c254c00" title="Get the font&#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 &quot;boilerplate&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 &<span class="comment">/*other*/</span>) <a name="l00722"></a>00722 : <a class="code" href="classUObject.html" title="UObject is the common ICU &quot;boilerplate&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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </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 <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>