<!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>FONTAINE: FontFace.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">FONTAINE <span id="projectnumber">1.0</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div class="header"> <div class="headertitle"> <h1>FontFace.h</h1> </div> </div> <div class="contents"> <a href="FontFace_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">// The Fontaine Font Analysis Project </span> <a name="l00003"></a>00003 <span class="comment">// </span> <a name="l00004"></a>00004 <span class="comment">// Copyright (c) 2009 by Edward H. Trager</span> <a name="l00005"></a>00005 <span class="comment">// All Rights Reserved</span> <a name="l00006"></a>00006 <span class="comment">// </span> <a name="l00007"></a>00007 <span class="comment">// Released under the GNU GPL version 2.0 or later.</span> <a name="l00008"></a>00008 <span class="comment">// </span> <a name="l00009"></a>00009 <a name="l00010"></a>00010 <a name="l00011"></a>00011 <span class="preprocessor">#ifndef FONTFACE_INCLUDED</span> <a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define FONTFACE_INCLUDED</span> <a name="l00013"></a>00013 <span class="preprocessor"></span> <a name="l00014"></a>00014 <span class="preprocessor">#include <string></span> <a name="l00015"></a>00015 <span class="preprocessor">#include <set></span> <a name="l00016"></a>00016 <span class="preprocessor">#include <vector></span> <a name="l00017"></a>00017 <a name="l00018"></a>00018 <span class="preprocessor">#include <ft2build.h></span> <a name="l00019"></a>00019 <span class="preprocessor">#include FT_FREETYPE_H</span> <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#include FT_SFNT_NAMES_H</span> <a name="l00021"></a>00021 <span class="preprocessor"></span> <a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="Utf8String_8h.html">Utf8String.h</a>"</span> <a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="FontLibrary_8h.html">FontLibrary.h</a>"</span> <a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="OrthographyResults_8h.html">OrthographyResults.h</a>"</span> <a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="LicenseData_8h.html">LicenseData.h</a>"</span> <a name="l00026"></a>00026 <a name="l00027"></a>00027 <span class="comment">//</span> <a name="l00028"></a>00028 <span class="comment">// Needed by the non-const fillReport() method:</span> <a name="l00029"></a>00029 <span class="comment">//</span> <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="MLR_8h.html">MLR.h</a>"</span> <a name="l00031"></a>00031 <a name="l00032"></a>00032 <span class="comment">//</span> <a name="l00033"></a>00033 <span class="comment">// This class contains information</span> <a name="l00034"></a>00034 <span class="comment">// about a single font file:</span> <a name="l00035"></a>00035 <span class="comment">// </span> <a name="l00036"></a><a class="code" href="classFontFace.html">00036</a> <span class="keyword">class </span><a class="code" href="classFontFace.html">FontFace</a>{ <a name="l00037"></a>00037 <a name="l00038"></a>00038 <span class="keyword">public</span>: <a name="l00039"></a>00039 <a name="l00040"></a>00040 <span class="comment">//</span> <a name="l00041"></a>00041 <span class="comment">// FontFaces are distinguished uniquely by </span> <a name="l00042"></a>00042 <span class="comment">// using commonName + subFamily as the key:</span> <a name="l00043"></a>00043 <span class="comment">// </span> <a name="l00044"></a><a class="code" href="structFontFace_1_1compare.html">00044</a> <span class="keyword">struct </span><a class="code" href="structFontFace_1_1compare.html">compare</a>{ <a name="l00045"></a><a class="code" href="structFontFace_1_1compare.html#a6bd74ea0986f8e9530209ab01990354d">00045</a> <span class="keywordtype">bool</span> <a class="code" href="structFontFace_1_1compare.html#a6bd74ea0986f8e9530209ab01990354d">operator()</a>(<span class="keyword">const</span> <a class="code" href="classFontFace.html">FontFace</a> *f1,<span class="keyword">const</span> <a class="code" href="classFontFace.html">FontFace</a> *f2)<span class="keyword"> const</span>{ <a name="l00046"></a>00046 std::string t1, t2; <a name="l00047"></a>00047 t1 = f1-><a class="code" href="classFontFace.html#af9daed118f79a9d7c7150aff1abe6cb5">_commonName</a>; <a name="l00048"></a>00048 t1 += f1-><a class="code" href="classFontFace.html#a60b7a5ca242d5d18e87a3e3c98d71566">_subFamily</a> ; <a name="l00049"></a>00049 t2 = f2-><a class="code" href="classFontFace.html#af9daed118f79a9d7c7150aff1abe6cb5">_commonName</a>; <a name="l00050"></a>00050 t2 += f2-><a class="code" href="classFontFace.html#a60b7a5ca242d5d18e87a3e3c98d71566">_subFamily</a> ; <a name="l00051"></a>00051 <span class="keywordflow">return</span> t1 < t2; <a name="l00052"></a>00052 } <a name="l00053"></a>00053 }; <a name="l00054"></a>00054 <a name="l00055"></a>00055 <span class="comment">//</span> <a name="l00056"></a>00056 <span class="comment">// The following enums generally follow the W3C CSS Standard (http://www.w3.org/TR/REC-CSS1):</span> <a name="l00057"></a>00057 <span class="comment">//</span> <a name="l00058"></a><a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269aa08b3a7437632ab0a21e322df0114e882">00058</a> <span class="keyword">enum</span> <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269a">FAMILY</a> { <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269aa08b3a7437632ab0a21e322df0114e882">SERIF</a>, <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269aaf1927bfd6621f3c6c05d71d8f908e9fc">SANS</a>, <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269aa5ed68c5caf8b42ec9357e370e5e59244">CURSIVE</a>, <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269aa3deaef13148a0e0b8c27a113f40c0c39">FANTASY</a>, <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269aabdedefeb1c6cfb7f7ede9f04a2026b8c">MONOSPACE</a> }; <a name="l00059"></a><a class="code" href="classFontFace.html#a8e939353bb23504b57ae8b5653f9d4f7">00059</a> <span class="keyword">enum</span> <a class="code" href="classFontFace.html#a8e939353bb23504b57ae8b5653f9d4f7">STYLE</a> { <a class="code" href="classFontFace.html#a8e939353bb23504b57ae8b5653f9d4f7acf8cc2a284a696132aa504d2454fc6fb">NORMAL</a>, <a class="code" href="classFontFace.html#a8e939353bb23504b57ae8b5653f9d4f7a166663c04ec483b3a4448c047e252dd8">ITALIC</a>, <a class="code" href="classFontFace.html#a8e939353bb23504b57ae8b5653f9d4f7a383f18b3624c7b7f0384db199035c352">OBLIQUE</a> }; <a name="l00060"></a><a class="code" href="classFontFace.html#a328e8d671fa91e461f6c23116d574728">00060</a> <span class="keyword">enum</span> <a class="code" href="classFontFace.html#a328e8d671fa91e461f6c23116d574728">VARIANT</a> { <a class="code" href="classFontFace.html#a328e8d671fa91e461f6c23116d574728ae5dae1a99d75ef325246fbf1dfc0c411">NORMAL_VARIANT</a>, <a class="code" href="classFontFace.html#a328e8d671fa91e461f6c23116d574728ac658cfd277cb78b077275647b4e8c974">SMALL_CAPS</a> }; <a name="l00061"></a>00061 <span class="comment">// </span> <a name="l00062"></a><a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422">00062</a> <span class="keyword">enum</span> <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422">WEIGHT</a> { <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422a8d4ee5011a30c38b94af658ca2a75fc7">NORMAL_WEIGHT</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422afc69f10c174b66b9d22c8e3c3415bfe0">BOLD</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422a8cb26b1299b50a50abce8c550eb61576">W100</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422a55ef1c4ba145441987ec8625c4383f3e">W200</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422a3994f8f8c0f14d9a589e2bdb7eb61629">W300</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422af3dde2bc8fb0747cbbaf4473049319b2">W400</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422ac465f56be212f5f3bd1dd3941c329fa1">W500</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422a5a9633e17d4a0448dc0a7218db5492bd">W600</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422a1c94abfbb861e872acac244633d5d35e">W700</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422aa3ba3a76f734ca64d371000a69f18170">W800</a>, <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422a52bbf067b2b72eb108e6a59dde0e38f1">W900</a> }; <a name="l00063"></a>00063 <span class="comment">//</span> <a name="l00064"></a>00064 <span class="comment">// As the common labels "serif" and "sans" are primarily applicable in typography in the</span> <a name="l00065"></a>00065 <span class="comment">// Western world, the following enum provides a generalization that is applicable across</span> <a name="l00066"></a>00066 <span class="comment">// all scripts:</span> <a name="l00067"></a>00067 <span class="comment">// </span> <a name="l00068"></a><a class="code" href="classFontFace.html#ac6b2e9b6134e41437c6ce8b32cf19f18a895a2ed7cf17270915b60525d065496d">00068</a> <span class="keyword">enum</span> <a class="code" href="classFontFace.html#ac6b2e9b6134e41437c6ce8b32cf19f18">STROKE</a> { <a class="code" href="classFontFace.html#ac6b2e9b6134e41437c6ce8b32cf19f18a895a2ed7cf17270915b60525d065496d">UNMODULATED</a>, <a class="code" href="classFontFace.html#ac6b2e9b6134e41437c6ce8b32cf19f18a0793e96ceb8beb2eb0c1ac0abdc5d5ef">SEMIMODULATED</a>, <a class="code" href="classFontFace.html#ac6b2e9b6134e41437c6ce8b32cf19f18a58c71a7c968d8b25cb154cc724c29aee">MODULATED</a> }; <a name="l00069"></a>00069 <a name="l00070"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684">00070</a> <span class="keyword">enum</span> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684">NAMEID</a> { <a name="l00071"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684af49bd22338e4e7ce4b02734167be7710">00071</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684af49bd22338e4e7ce4b02734167be7710">NID_COPYRIGHT</a> =0, <a name="l00072"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684aa2ff2b7167d92b9936491767472fbf6c">00072</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684aa2ff2b7167d92b9936491767472fbf6c">NID_FONT_FAMILY</a> =1, <a name="l00073"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a80b68d83f6f33c32222d2f598c3a6e30">00073</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a80b68d83f6f33c32222d2f598c3a6e30">NID_FONT_SUBFAM</a> =2, <a name="l00074"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a115d3d2299bb234845eb2ebaceda62cf">00074</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a115d3d2299bb234845eb2ebaceda62cf">NID_UNIQUE_ID</a> =3, <a name="l00075"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a16d150b135b4d5da01e1e3207e4a2c98">00075</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a16d150b135b4d5da01e1e3207e4a2c98">NID_FULL_NAME</a> =4, <a name="l00076"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a0fafce4776e8ec225beb57369a1e1909">00076</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a0fafce4776e8ec225beb57369a1e1909">NID_VERSION</a> =5, <a name="l00077"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684ad4459c4de2303136f1a4bd88edaa0149">00077</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684ad4459c4de2303136f1a4bd88edaa0149">NID_POSTSCRIPT</a> =6, <a name="l00078"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a3521e39cc1157820e12ce5d449557674">00078</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a3521e39cc1157820e12ce5d449557674">NID_TRADEMARK</a> =7, <a name="l00079"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a8f7c3e39789509f8fa6c6d7536242c06">00079</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a8f7c3e39789509f8fa6c6d7536242c06">NID_VENDOR</a> =8, <a name="l00080"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a2f392e2741d5f91fdea24fa95a745bb3">00080</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a2f392e2741d5f91fdea24fa95a745bb3">NID_DESIGNER</a> =9, <a name="l00081"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a03bf929e0873638c612c6b85a61bceeb">00081</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a03bf929e0873638c612c6b85a61bceeb">NID_DESCRIPTION</a> =10, <a name="l00082"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a44a8204576db908be2396fa57efeab0f">00082</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a44a8204576db908be2396fa57efeab0f">NID_URL_VENDOR</a> =11, <a name="l00083"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a8f6c6d94bb605cb7176ece386d420718">00083</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a8f6c6d94bb605cb7176ece386d420718">NID_URL_DESIGNER</a>=12, <a name="l00084"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684aea84db54a31de16b627ec55c85f88462">00084</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684aea84db54a31de16b627ec55c85f88462">NID_LICENSE</a> =13, <a name="l00085"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684af761ac3be3967219818f88c55d17e903">00085</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684af761ac3be3967219818f88c55d17e903">NID_URL_LICENSE</a> =14, <a name="l00086"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684af2e512c395fbad53b6777cef3ef6b8c3">00086</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684af2e512c395fbad53b6777cef3ef6b8c3">NID_RESERVED</a> =15, <a name="l00087"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a4f9f827a7b7363e4af0490eae8a7438b">00087</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a4f9f827a7b7363e4af0490eae8a7438b">NID_PREF_NAME</a> =16, <a name="l00088"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a46aa83f2e32333230a08fd2568b47c52">00088</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a46aa83f2e32333230a08fd2568b47c52">NID_PREF_SUBFAM</a> =17, <a name="l00089"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684ae927452b18edcf59b339f475f671fcee">00089</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684ae927452b18edcf59b339f475f671fcee">NID_MAC_FULLNAME</a>=18, <a name="l00090"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a0512ec4906244aae957f3d628eb53eee">00090</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684a0512ec4906244aae957f3d628eb53eee">NID_SAMPLETEXT</a> =19, <a name="l00091"></a><a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684aee6010154fdb2369ef2f71f9a725f51f">00091</a> <a class="code" href="classFontFace.html#a111868cfcb2607ec35702838b3f67684aee6010154fdb2369ef2f71f9a725f51f">NID_FINDFONT_NM</a> =20, <a name="l00092"></a>00092 }; <a name="l00093"></a>00093 <a name="l00094"></a>00094 <span class="keyword">private</span>: <a name="l00095"></a>00095 <a name="l00096"></a><a class="code" href="classFontFace.html#ade066ad01ec53520b113adf4ea67b6d0">00096</a> FT_Face <a class="code" href="classFontFace.html#ade066ad01ec53520b113adf4ea67b6d0">_face</a>; <a name="l00097"></a>00097 <a name="l00098"></a><a class="code" href="classFontFace.html#a9c9cbbbbecfcee184c964053d67d1529">00098</a> std::string <a class="code" href="classFontFace.html#a9c9cbbbbecfcee184c964053d67d1529">_fileName</a>; <a name="l00099"></a><a class="code" href="classFontFace.html#af9daed118f79a9d7c7150aff1abe6cb5">00099</a> std::string <a class="code" href="classFontFace.html#af9daed118f79a9d7c7150aff1abe6cb5">_commonName</a>; <span class="comment">// The English or common Font Family name. e.g. "HanWangKaiMediumPoIn1"</span> <a name="l00100"></a><a class="code" href="classFontFace.html#a78a6f98793180a0030111b48ec16677b">00100</a> std::string <a class="code" href="classFontFace.html#a78a6f98793180a0030111b48ec16677b">_nativeName</a>; <span class="comment">// The native Font Family name, e.g. "漢宗中楷體破音一"</span> <a name="l00101"></a><a class="code" href="classFontFace.html#a60b7a5ca242d5d18e87a3e3c98d71566">00101</a> std::string <a class="code" href="classFontFace.html#a60b7a5ca242d5d18e87a3e3c98d71566">_subFamily</a>; <span class="comment">// As given in the English or common subFamily record.</span> <a name="l00102"></a>00102 <a name="l00103"></a><a class="code" href="classFontFace.html#a913e93dede8b6bee95bb17b400493f78">00103</a> std::string <a class="code" href="classFontFace.html#a913e93dede8b6bee95bb17b400493f78">_copyright</a>; <a name="l00104"></a>00104 <a name="l00105"></a><a class="code" href="classFontFace.html#aecb860960076c1ddf0d1fc0330be2ad3">00105</a> std::string <a class="code" href="classFontFace.html#aecb860960076c1ddf0d1fc0330be2ad3">_licenseURL</a>; <span class="comment">// 2009.07.16.ET addendum</span> <a name="l00106"></a>00106 <a name="l00107"></a><a class="code" href="classFontFace.html#a6d0cfa1444bc43155d7c87be8173ff10">00107</a> <span class="keywordtype">unsigned</span> <a class="code" href="classFontFace.html#a6d0cfa1444bc43155d7c87be8173ff10">_glyphCount</a>; <span class="comment">// Number of glyphs</span> <a name="l00108"></a>00108 <a name="l00109"></a><a class="code" href="classFontFace.html#ab00dc166fbaed4da0a95185844549684">00109</a> <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269a">FAMILY</a> <a class="code" href="classFontFace.html#ab00dc166fbaed4da0a95185844549684">_genericFamily</a>; <a name="l00110"></a><a class="code" href="classFontFace.html#abdbc2778a0162925cf78f811f56ad907">00110</a> <a class="code" href="classFontFace.html#a8e939353bb23504b57ae8b5653f9d4f7">STYLE</a> <a class="code" href="classFontFace.html#abdbc2778a0162925cf78f811f56ad907">_style</a>; <a name="l00111"></a><a class="code" href="classFontFace.html#aea4d09e1694c1cb4868271436d33186e">00111</a> <a class="code" href="classFontFace.html#a328e8d671fa91e461f6c23116d574728">VARIANT</a> <a class="code" href="classFontFace.html#aea4d09e1694c1cb4868271436d33186e">_variant</a>; <a name="l00112"></a><a class="code" href="classFontFace.html#acdcbf116a463644ce6ddb63dd5486d64">00112</a> <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422">WEIGHT</a> <a class="code" href="classFontFace.html#acdcbf116a463644ce6ddb63dd5486d64">_weight</a>; <a name="l00113"></a><a class="code" href="classFontFace.html#a957a20be79feaa88c539e13c276afd9c">00113</a> <a class="code" href="classFontFace.html#ac6b2e9b6134e41437c6ce8b32cf19f18">STROKE</a> <a class="code" href="classFontFace.html#a957a20be79feaa88c539e13c276afd9c">_stroke</a>; <a name="l00114"></a>00114 <a name="l00115"></a>00115 <span class="comment">//</span> <a name="l00116"></a>00116 <span class="comment">// Supported Orthographies</span> <a name="l00117"></a>00117 <span class="comment">//</span> <a name="l00118"></a><a class="code" href="classFontFace.html#a0a44c13b7c84b323b9d84eebec9b0868">00118</a> std::vector< const OrthographyResults * > <a class="code" href="classFontFace.html#a0a44c13b7c84b323b9d84eebec9b0868">_supportedOrthographies</a>; <a name="l00119"></a>00119 <a name="l00120"></a>00120 <span class="comment">//</span> <a name="l00121"></a>00121 <span class="comment">// License:</span> <a name="l00122"></a>00122 <span class="comment">//</span> <a name="l00123"></a><a class="code" href="classFontFace.html#a3799ed3ef4b56cb9b13ea0cfe1473dc0">00123</a> <span class="keyword">const</span> <a class="code" href="classLicenseData.html">LicenseData</a> *<a class="code" href="classFontFace.html#a3799ed3ef4b56cb9b13ea0cfe1473dc0">_licenseData</a>; <a name="l00124"></a>00124 <a name="l00125"></a><a class="code" href="classFontFace.html#a1672ad7925151df1806826471862a755">00125</a> <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a1672ad7925151df1806826471862a755">_hasVerticalMetrics</a>; <a name="l00126"></a><a class="code" href="classFontFace.html#afad9b72bbca80852d49ba6ffb9d6b1e4">00126</a> <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#afad9b72bbca80852d49ba6ffb9d6b1e4">_isFixedWidth</a>; <a name="l00127"></a><a class="code" href="classFontFace.html#aed55b7eb045914b0a5defc10ea55e6f7">00127</a> <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#aed55b7eb045914b0a5defc10ea55e6f7">_hasFixedSizes</a>; <a name="l00128"></a>00128 <a name="l00129"></a><a class="code" href="classFontFace.html#ad59c002527868043ba9cd152ddaf3f26">00129</a> std::set<UTF32> <a class="code" href="classFontFace.html#ad59c002527868043ba9cd152ddaf3f26">_unicodeValues</a>; <a name="l00130"></a>00130 <a name="l00131"></a>00131 <a class="code" href="classUTF8String.html">UTF8String</a> <a class="code" href="classFontFace.html#a7d67dba413766a7462e5ef16accde964">_getPlatform3Encoding1String</a>( <span class="keywordtype">unsigned</span> length, <span class="keyword">const</span> FT_Byte *<span class="keywordtype">string</span>) <span class="keyword">const</span>; <a name="l00132"></a>00132 <a class="code" href="classUTF8String.html">UTF8String</a> <a class="code" href="classFontFace.html#a097b131b8346d9ec78a907f3ab32b5d1">_getPlatform1Encoding0String</a>( <span class="keywordtype">unsigned</span> length, <span class="keyword">const</span> FT_Byte *<span class="keywordtype">string</span>) <span class="keyword">const</span>; <a name="l00133"></a>00133 <a class="code" href="classUTF8String.html">UTF8String</a> <a class="code" href="classFontFace.html#a326ae1b0d8f60e8e24d937972664428c">_getStringFromTrueTypeFont</a>(FT_SfntName &fontName) <span class="keyword">const</span>; <a name="l00134"></a>00134 <a name="l00135"></a>00135 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classFontFace.html#a7321c3798e19ce4bc5cc4534d72ddf53">_getUnicodeValues</a>(<span class="keywordtype">void</span>); <a name="l00136"></a>00136 <a name="l00137"></a>00137 <span class="comment">//</span> <a name="l00138"></a>00138 <span class="comment">// Reporting option state flags:</span> <a name="l00139"></a>00139 <span class="comment">//</span> <a name="l00140"></a><a class="code" href="classFontFace.html#a8e3bce4a322b4718d60969563c3ba15f">00140</a> <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a8e3bce4a322b4718d60969563c3ba15f">_reportMissing</a>; <a name="l00141"></a><a class="code" href="classFontFace.html#a9f79164e71e753e13d10b592ca8f1e95">00141</a> <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a9f79164e71e753e13d10b592ca8f1e95">_reportFragmentary</a>; <a name="l00142"></a><a class="code" href="classFontFace.html#a21f3813eb4eca634e005c08a51c12bd0">00142</a> <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a21f3813eb4eca634e005c08a51c12bd0">_reportPartial</a>; <a name="l00143"></a><a class="code" href="classFontFace.html#a666320d569f74bbd6d3d1e25792690c0">00143</a> <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a666320d569f74bbd6d3d1e25792690c0">_reportFull</a>; <a name="l00144"></a>00144 <a name="l00145"></a>00145 <span class="keyword">public</span>: <a name="l00146"></a>00146 <a name="l00147"></a>00147 <span class="comment">//</span> <a name="l00148"></a>00148 <span class="comment">// Constructor:</span> <a name="l00149"></a>00149 <span class="comment">//</span> <a name="l00150"></a>00150 <a class="code" href="classFontFace.html#a3f3cc86d4d87a53519c9818850ad7e6b">FontFace</a>( <a class="code" href="classFontLibrary.html">FontLibrary</a> &library, <span class="keyword">const</span> std::string &fileName ); <a name="l00151"></a>00151 <a name="l00152"></a>00152 <span class="comment">//</span> <a name="l00153"></a>00153 <span class="comment">// Destructor:</span> <a name="l00154"></a>00154 <span class="comment">//</span> <a name="l00155"></a>00155 <a class="code" href="classFontFace.html#a4c3742eb2618c6c6255e184c88be7668">~FontFace</a>(); <a name="l00156"></a>00156 <a name="l00157"></a>00157 <span class="comment">//</span> <a name="l00158"></a>00158 <span class="comment">// hasUnicodeValue()</span> <a name="l00159"></a>00159 <span class="comment">//</span> <a name="l00160"></a>00160 <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#ac4de6f6a3460568ba8494a71fa1af0bb">hasUnicodeValue</a>(<a class="code" href="Utf8String_8h.html#a0ae75062ae07deca9402a1fb245818b7">UTF32</a>) <span class="keyword">const</span>; <a name="l00161"></a>00161 <a name="l00162"></a>00162 <span class="comment">//</span> <a name="l00163"></a>00163 <span class="comment">// getters for reports:</span> <a name="l00164"></a>00164 <span class="comment">//</span> <a name="l00165"></a>00165 std::string <a class="code" href="classFontFace.html#ab7b1e89d5c8e7d8c3afbcf1a9a45a5ac">getBasicReport</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00166"></a>00166 std::string <a class="code" href="classFontFace.html#a74272593908745d5282ad5dc8ef7631d">getOrthographyReport</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00167"></a>00167 <a name="l00168"></a>00168 <span class="comment">//</span> <a name="l00169"></a>00169 <span class="comment">// Reporting options:</span> <a name="l00170"></a>00170 <span class="comment">//</span> <a name="l00171"></a>00171 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#adfafcf0fba9c434078c04ce72ee87e79">setReportOnMissing</a>(<span class="keywordtype">bool</span> x); <a name="l00172"></a>00172 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#a7cb5c75d524e6b62facc9bc23990afcd">setReportOnFragmentary</a>(<span class="keywordtype">bool</span> x); <a name="l00173"></a>00173 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#aaf515fcf146fa85ccba2cab0c089f7ee">setReportOnPartial</a>(<span class="keywordtype">bool</span> x); <a name="l00174"></a>00174 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#adda17fcf8e6b2ad49c65b4958daffca0">setReportOnFull</a>(<span class="keywordtype">bool</span> x); <a name="l00175"></a>00175 <a name="l00176"></a>00176 <span class="keyword">private</span>: <a name="l00177"></a>00177 <a name="l00178"></a>00178 <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a73eb745fd2bdaccacfb8c182a20e3da9">_checkOrthography</a>( <span class="keyword">const</span> <a class="code" href="classOrthographyData.html">OrthographyData</a> *<a class="code" href="namespaceAladdinFreePublicLicense.html#a13951d9b098b78427527cd2da8d8648f">pData</a> ); <a name="l00179"></a>00179 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#acf20ef35dd5d62b53cf156d0b2b4ced0">_checkOrthographies</a>(<span class="keywordtype">void</span>); <a name="l00180"></a>00180 <a name="l00181"></a>00181 <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a67a34747aa53c24f58894a2390d0d410">_checkLicense</a>( <span class="keyword">const</span> std::string &test, <span class="keyword">const</span> <a class="code" href="classLicenseData.html">LicenseData</a> *<a class="code" href="namespaceAladdinFreePublicLicense.html#a13951d9b098b78427527cd2da8d8648f">pData</a>); <a name="l00182"></a>00182 <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a46f8e790870aff9c82a573988477c5c6">_checkAllKnownLicenses</a>( <span class="keyword">const</span> std::string &licenseString); <a name="l00183"></a>00183 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#aa97944a3e158324c3e6bf4078ddc189b">_storeCopyrightSummary</a>(<span class="keyword">const</span> std::string &copyrightString); <a name="l00184"></a>00184 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#ab621bfad871a70bc423ecc1c078517c4">_checkLicenses</a>(<span class="keywordtype">void</span>); <a name="l00185"></a>00185 <a name="l00186"></a>00186 <span class="keyword">public</span>: <a name="l00187"></a>00187 <a name="l00188"></a>00188 <span class="comment">//</span> <a name="l00189"></a>00189 <span class="comment">// getters:</span> <a name="l00190"></a>00190 <span class="comment">//</span> <a name="l00191"></a>00191 <span class="keyword">const</span> std::string & <a class="code" href="classFontFace.html#a6326dc9bd70a65a690ffc108e5f65725">getFileName</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00192"></a>00192 <span class="keyword">const</span> std::string & <a class="code" href="classFontFace.html#a7dbfa5cd3256fabae3b5af391ebf245e">getCommonName</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00193"></a>00193 <span class="keyword">const</span> std::string & <a class="code" href="classFontFace.html#a2cd543dde0d48bc57140c7f060acfa5e">getNativeName</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00194"></a>00194 <span class="keyword">const</span> std::string & <a class="code" href="classFontFace.html#a0b60353ff6b303e55f7ca4abe31064d8">getSubFamily</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00195"></a>00195 <a name="l00196"></a>00196 std::string <a class="code" href="classFontFace.html#ab8e259b301b551fbbad5bfe2d6255ba9">getLicenseReport</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00197"></a>00197 <span class="keyword">const</span> std::string & <a class="code" href="classFontFace.html#a73e413fee907786f78a4d0588e9eb229">getCopyright</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00198"></a>00198 <a name="l00199"></a>00199 <span class="keywordtype">unsigned</span> <a class="code" href="classFontFace.html#a67a1ed074377d68e4b96d754bac994b2">getGlyphCount</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00200"></a>00200 <span class="keywordtype">unsigned</span> <a class="code" href="classFontFace.html#ae07a90136d53840b73a53d90da7c9399">getCharacterCount</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00201"></a>00201 <a class="code" href="classFontFace.html#ae4a7d93e94ca45644bf2fc0e3e71269a">FAMILY</a> <a class="code" href="classFontFace.html#aea70525daabe1d867f8e25d47c16ab94">getFamily</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00202"></a>00202 <a class="code" href="classFontFace.html#a8e939353bb23504b57ae8b5653f9d4f7">STYLE</a> <a class="code" href="classFontFace.html#a54a9d9ae1c1da47a0246a2c57f4ffc38">getStyle</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00203"></a>00203 <a class="code" href="classFontFace.html#a328e8d671fa91e461f6c23116d574728">VARIANT</a> <a class="code" href="classFontFace.html#a5ccde2d2f93892149e6aad7068f93be3">getVariant</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00204"></a>00204 <a class="code" href="classFontFace.html#a54cd8848ee7ba192253610c8e6550422">WEIGHT</a> <a class="code" href="classFontFace.html#aff943d06ca1d162ba8ed8e4e6c52f202">getWeight</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00205"></a>00205 <a class="code" href="classFontFace.html#ac6b2e9b6134e41437c6ce8b32cf19f18">STROKE</a> <a class="code" href="classFontFace.html#a875735b6f9f7a499ca4d9ac56b41db60">getStroke</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00206"></a>00206 <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#ab26391da2279a33c4f9847c3d8acd7ad">hasVerticalMetrics</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00207"></a>00207 <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a12e2a462dc1f393138ed01b3ecb3557e">isFixedWidth</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00208"></a>00208 <span class="keywordtype">bool</span> <a class="code" href="classFontFace.html#a2adfef1616b149a3d8d7ba453284f248">hasFixedSizes</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>; <a name="l00209"></a>00209 <a name="l00210"></a>00210 <span class="comment">//</span> <a name="l00211"></a>00211 <span class="comment">// Pass in a report object, mlr, </span> <a name="l00212"></a>00212 <span class="comment">// and fill in the report:</span> <a name="l00213"></a>00213 <span class="comment">//</span> <a name="l00214"></a>00214 <span class="keywordtype">void</span> <a class="code" href="classFontFace.html#a24627cb0c46a3e8c20c93760adeebb5b">fillReport</a>(<a class="code" href="classMLR.html">MLR</a> *mlr); <a name="l00215"></a>00215 <a name="l00216"></a>00216 }; <a name="l00217"></a>00217 <a name="l00218"></a>00218 <span class="preprocessor">#endif</span> </pre></div></div> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Feb 8 2011 for FONTAINE by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address> </body> </html>