<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>libwps: WPS8.h Source File documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.7.4 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</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> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('WPS8_8h.html',''); </script> <div id="doc-content"> <div class="header"> <div class="headertitle"> <div class="title">WPS8.h</div> </div> </div> <div class="contents"> <a href="WPS8_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* libwpd</span> <a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2006, 2007 Andrew Ziem</span> <a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2003-2005 William Lachance (william.lachance@sympatico.ca)</span> <a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2003 Marc Maurer (uwog@uwog.net)</span> <a name="l00005"></a>00005 <span class="comment"> * </span> <a name="l00006"></a>00006 <span class="comment"> * This library is free software; you can redistribute it and/or</span> <a name="l00007"></a>00007 <span class="comment"> * modify it under the terms of the GNU Library General Public</span> <a name="l00008"></a>00008 <span class="comment"> * License as published by the Free Software Foundation; either</span> <a name="l00009"></a>00009 <span class="comment"> * version 2 of the License, or (at your option) any later version.</span> <a name="l00010"></a>00010 <span class="comment"> *</span> <a name="l00011"></a>00011 <span class="comment"> * This library is distributed in the hope that it will be useful,</span> <a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span> <a name="l00014"></a>00014 <span class="comment"> * Library General Public License for more details.</span> <a name="l00015"></a>00015 <span class="comment"> *</span> <a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU Library General Public</span> <a name="l00017"></a>00017 <span class="comment"> * License along with this library; if not, write to the Free Software</span> <a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</span> <a name="l00019"></a>00019 <span class="comment"> *</span> <a name="l00020"></a>00020 <span class="comment"> */</span> <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="preprocessor">#ifndef WPS8_H</span> <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define WPS8_H</span> <a name="l00024"></a>00024 <span class="preprocessor"></span> <a name="l00025"></a>00025 <span class="preprocessor">#include <vector></span> <a name="l00026"></a>00026 <span class="preprocessor">#include <list></span> <a name="l00027"></a>00027 <span class="preprocessor">#include <map></span> <a name="l00028"></a>00028 <span class="preprocessor">#include <libwpd/WPXString.h></span> <a name="l00029"></a>00029 <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="libwps__internal_8h.html">libwps_internal.h</a>"</span> <a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="WPS_8h.html">WPS.h</a>"</span> <a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="WPSContentListener_8h.html">WPSContentListener.h</a>"</span> <a name="l00033"></a>00033 <span class="preprocessor">#include <libwpd-stream/WPXStream.h></span> <a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="WPSParser_8h.html">WPSParser.h</a>"</span> <a name="l00035"></a>00035 <a name="l00041"></a><a class="code" href="classHeaderIndexEntries.html">00041</a> <span class="keyword">class </span><a class="code" href="classHeaderIndexEntries.html" title="Starting near beginning of CONTENTS stream, there is an index to various types of pages in the docume...">HeaderIndexEntries</a> <a name="l00042"></a>00042 { <a name="l00043"></a>00043 <span class="keyword">public</span>: <a name="l00044"></a><a class="code" href="classHeaderIndexEntries.html#ad8e061f3bf18fc210871c9e4aa1bad6c">00044</a> uint32_t <a class="code" href="classHeaderIndexEntries.html#ad8e061f3bf18fc210871c9e4aa1bad6c">offset</a>; <a name="l00045"></a><a class="code" href="classHeaderIndexEntries.html#a038b1184e99666f7aa0df460bd2486b5">00045</a> uint32_t <a class="code" href="classHeaderIndexEntries.html#a038b1184e99666f7aa0df460bd2486b5">length</a>; <a name="l00046"></a>00046 }; <a name="l00047"></a>00047 <a name="l00048"></a><a class="code" href="WPS8_8h.html#a8b56b91dacc3c1e6968324837ff98608">00048</a> <span class="keyword">typedef</span> std::multimap <std::string, HeaderIndexEntries> <a class="code" href="WPS8_8h.html#a8b56b91dacc3c1e6968324837ff98608">HeaderIndexMultiMap</a>; <span class="comment">/* string is name */</span> <a name="l00049"></a>00049 <a name="l00050"></a><a class="code" href="classWPS8ContentListener.html">00050</a> <span class="keyword">class </span><a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> : <span class="keyword">public</span> <a class="code" href="classWPSContentListener.html">WPSContentListener</a> <a name="l00051"></a>00051 { <a name="l00052"></a>00052 <span class="keyword">public</span>: <a name="l00053"></a>00053 <a class="code" href="classWPS8ContentListener.html#a34531d1da9d11fa292628264b9a5a38a">WPS8ContentListener</a>(std::list<WPSPageSpan> &pageList, WPXDocumentInterface *documentInterface); <a name="l00054"></a>00054 <a class="code" href="classWPS8ContentListener.html#a0683c16c80ccfb0e90879c9ad19b9438">~WPS8ContentListener</a>(); <a name="l00055"></a>00055 <a name="l00056"></a>00056 <span class="keywordtype">void</span> <a class="code" href="classWPS8ContentListener.html#abd04ccc8f98f5b9b25556a14d2f3186f">attributeChange</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> isOn, <span class="keyword">const</span> uint8_t attribute); <a name="l00057"></a>00057 <a name="l00058"></a>00058 <span class="keyword">private</span>: <a name="l00059"></a>00059 <a class="code" href="classWPS8ContentListener.html#a34531d1da9d11fa292628264b9a5a38a">WPS8ContentListener</a>(<span class="keyword">const</span> <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a>&); <a name="l00060"></a>00060 <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a>& <a class="code" href="classWPS8ContentListener.html#a3eadb01ea1893fa42fd71583fc680c7a">operator=</a>(<span class="keyword">const</span> <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a>&); <a name="l00061"></a>00061 }; <a name="l00062"></a>00062 <a name="l00063"></a><a class="code" href="structWPSRange.html">00063</a> <span class="keyword">struct </span><a class="code" href="structWPSRange.html">WPSRange</a> <a name="l00064"></a>00064 { <a name="l00065"></a><a class="code" href="structWPSRange.html#a35e05aa8241c15e343dbc74abb774784">00065</a> uint32_t <a class="code" href="structWPSRange.html#a35e05aa8241c15e343dbc74abb774784">start</a>; <a name="l00066"></a><a class="code" href="structWPSRange.html#a96b1fa8739bb4bf3bfe4b6d03581faab">00066</a> uint32_t <a class="code" href="structWPSRange.html#a96b1fa8739bb4bf3bfe4b6d03581faab">limit</a>; <a name="l00067"></a><a class="code" href="structWPSRange.html#a31bb34534605bcfdbb05cb08649d000f">00067</a> <a class="code" href="structWPSRange.html#a31bb34534605bcfdbb05cb08649d000f">WPSRange</a>() : <a class="code" href="structWPSRange.html#a35e05aa8241c15e343dbc74abb774784">start</a>(0), <a class="code" href="structWPSRange.html#a96b1fa8739bb4bf3bfe4b6d03581faab">limit</a>(0) {} <a name="l00068"></a><a class="code" href="structWPSRange.html#ab1988349c077f24eb90fa3afb4fe9c3c">00068</a> <a class="code" href="structWPSRange.html#ab1988349c077f24eb90fa3afb4fe9c3c">~WPSRange</a>() {} <a name="l00069"></a>00069 }; <a name="l00070"></a>00070 <a name="l00071"></a><a class="code" href="structWPSStream.html">00071</a> <span class="keyword">struct </span><a class="code" href="structWPSStream.html">WPSStream</a> <a name="l00072"></a>00072 { <a name="l00073"></a><a class="code" href="structWPSStream.html#af7dd5a82ba4b3c63e3e48f30d2e373b1">00073</a> uint32_t <a class="code" href="structWPSStream.html#af7dd5a82ba4b3c63e3e48f30d2e373b1">type</a>; <a name="l00074"></a><a class="code" href="structWPSStream.html#a8925b1e1bb3578019b0b4fff1dd995f5">00074</a> <a class="code" href="structWPSRange.html">WPSRange</a> <a class="code" href="structWPSStream.html#a8925b1e1bb3578019b0b4fff1dd995f5">span</a>; <a name="l00075"></a><a class="code" href="structWPSStream.html#ad7435f6940671f47ebd6a82752897f31">00075</a> <a class="code" href="structWPSStream.html#ad7435f6940671f47ebd6a82752897f31">WPSStream</a>() : <a class="code" href="structWPSStream.html#af7dd5a82ba4b3c63e3e48f30d2e373b1">type</a>(0), <a class="code" href="structWPSStream.html#a8925b1e1bb3578019b0b4fff1dd995f5">span</a>() {} <a name="l00076"></a><a class="code" href="structWPSStream.html#a26929bc5b03e29ff3efccf39fc9fb197">00076</a> <a class="code" href="structWPSStream.html#a26929bc5b03e29ff3efccf39fc9fb197">~WPSStream</a>() {} <a name="l00077"></a>00077 }; <a name="l00078"></a>00078 <a name="l00079"></a><a class="code" href="structWPSNote.html">00079</a> <span class="keyword">struct </span><a class="code" href="structWPSNote.html">WPSNote</a> <a name="l00080"></a>00080 { <a name="l00081"></a><a class="code" href="structWPSNote.html#a3a984f73f741e58785ae62913f143abe">00081</a> uint32_t <a class="code" href="structWPSNote.html#a3a984f73f741e58785ae62913f143abe">offset</a>; <a name="l00082"></a><a class="code" href="structWPSNote.html#a8bdb52038a0734a45ff82e099bac14d0">00082</a> <a class="code" href="structWPSRange.html">WPSRange</a> <a class="code" href="structWPSNote.html#a8bdb52038a0734a45ff82e099bac14d0">contents</a>; <a name="l00083"></a>00083 }; <a name="l00084"></a>00084 <a name="l00085"></a><a class="code" href="WPS8_8h.html#a1e208e98733241c26f72d0ef17354e6d">00085</a> <span class="preprocessor">#define WPS_STREAM_DUMMY 0</span> <a name="l00086"></a><a class="code" href="WPS8_8h.html#a6552e00c4eb61b87325c73803728182d">00086</a> <span class="preprocessor"></span><span class="preprocessor">#define WPS_STREAM_BODY 1</span> <a name="l00087"></a><a class="code" href="WPS8_8h.html#adfa16ac91034e3ed27791036e4e42e3c">00087</a> <span class="preprocessor"></span><span class="preprocessor">#define WPS_STREAM_FOOTNOTES 2</span> <a name="l00088"></a><a class="code" href="WPS8_8h.html#af99d55ae7eef9a9e346b6c8ec3f830f8">00088</a> <span class="preprocessor"></span><span class="preprocessor">#define WPS_STREAM_ENDNOTES 3</span> <a name="l00089"></a>00089 <span class="preprocessor"></span> <a name="l00090"></a><a class="code" href="WPS8_8h.html#ab797394b69d5a828d69f4c168e570ffa">00090</a> <span class="preprocessor">#define WPS_NUM_SEP_PAR 0x0</span> <a name="l00091"></a><a class="code" href="WPS8_8h.html#a9df8ead2e91b30c3ad0ab5e0ad34c7a4">00091</a> <span class="preprocessor"></span><span class="preprocessor">#define WPS_NUM_SEP_DOT 0x2</span> <a name="l00092"></a>00092 <span class="preprocessor"></span> <a name="l00093"></a><a class="code" href="classWPS8Parser.html">00093</a> <span class="keyword">class </span><a class="code" href="classWPS8Parser.html">WPS8Parser</a> : <span class="keyword">public</span> <a class="code" href="classWPSParser.html">WPSParser</a> <a name="l00094"></a>00094 { <a name="l00095"></a>00095 <span class="keyword">public</span>: <a name="l00096"></a>00096 <a class="code" href="classWPS8Parser.html#ad388575c68d73e47248d4d64b3ab2a6e">WPS8Parser</a>(WPXInputStream *input, <a class="code" href="classWPSHeader.html">WPSHeader</a> * header); <a name="l00097"></a>00097 <a class="code" href="classWPS8Parser.html#ae4e5795b87e30f0714616c0985f6331c">~WPS8Parser</a>(); <a name="l00098"></a>00098 <a name="l00099"></a>00099 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#ab810b33177cf9dded294fae905c05d2f">parse</a>(WPXDocumentInterface *documentInterface); <a name="l00100"></a>00100 <span class="keyword">private</span>: <a name="l00101"></a>00101 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#aee854139deb9012915da4e6042cf6bc8" title="Reads fonts table into memory.">readFontsTable</a>(WPXInputStream * input); <a name="l00102"></a>00102 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#adba01f49c695a3b4f491d5a58c259825" title="Reads streams (subdocuments) information.">readStreams</a>(WPXInputStream * input); <a name="l00103"></a>00103 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#ab3cd8707540057664575f278d7f0fdbb">readNotes</a>(std::vector<WPSNote> &dest, WPXInputStream * input, <span class="keyword">const</span> <span class="keywordtype">char</span> *key); <a name="l00104"></a>00104 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a20b09fbb1c96a89ff68b25ecb476143e">appendUTF16LE</a>(WPXInputStream *input, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener); <a name="l00105"></a>00105 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a38ed42f801ec35dc911a5e4e4fa6c213" title="Read the text of the document using previously-read formatting information.">readText</a>(WPXInputStream * input, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener); <a name="l00106"></a>00106 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a5edcb566553ae7dc699fdf8984782d85" title="Read the range of the document text using previously-read formatting information, up to but excluding...">readTextRange</a>(WPXInputStream * input, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener, uint32_t startpos, uint32_t endpos, uint16_t stream); <a name="l00107"></a>00107 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#af2d879272f08083ce0a97e468f6a0774">readNote</a>(WPXInputStream * input, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener, <span class="keywordtype">bool</span> is_endnote); <a name="l00108"></a>00108 <span class="keywordtype">bool</span> <a class="code" href="classWPS8Parser.html#a71ac3b1feee6de2614ee04ad45119667" title="Read a single page (of size page_size bytes) that contains formatting descriptors for either characte...">readFODPage</a>(WPXInputStream * input, std::vector<FOD> * FODs, uint16_t page_size); <a name="l00109"></a>00109 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#abc44905fcbd5eebac4ef0ca39414e814" title="Parse an index entry in the file format's header.">parseHeaderIndexEntry</a>(WPXInputStream * input); <a name="l00110"></a>00110 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#af21e7b32d4e81faf9c06ba020ac18e3c" title="In the header, parse the index to the different sections of the CONTENTS stream.">parseHeaderIndex</a>(WPXInputStream * input); <a name="l00111"></a>00111 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a6d08e468cb3044aacd5d50920573d416" title="Read the page format from the file.">parsePages</a>(std::list<WPSPageSpan> &pageList, WPXInputStream *input); <a name="l00112"></a>00112 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#ab810b33177cf9dded294fae905c05d2f">parse</a>(WPXInputStream *stream, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener); <a name="l00113"></a>00113 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a33237e1cbdc097ff8e9b033f3307e0b0">propertyChangeTextAttribute</a>(<span class="keyword">const</span> uint32_t newTextAttributeBits, <span class="keyword">const</span> uint8_t attribute, <span class="keyword">const</span> uint32_t bit, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener); <a name="l00114"></a>00114 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a7ae55fbe4f93bf29e57c2f55743520db">propertyChangeDelta</a>(uint32_t newTextAttributeBits, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener); <a name="l00115"></a>00115 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a1c45f127f683aeaee9a6076ea99a85bc" title="Process a character property change.">propertyChange</a>(std::string rgchProp, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener); <a name="l00116"></a>00116 <span class="keywordtype">void</span> <a class="code" href="classWPS8Parser.html#a888e6dfa31ab17eae950dd69aa19916a">propertyChangePara</a>(std::string rgchProp, <a class="code" href="classWPS8ContentListener.html">WPS8ContentListener</a> *listener); <a name="l00117"></a><a class="code" href="classWPS8Parser.html#a6e196014e6f37ef034311a8e40a0b00f">00117</a> uint32_t <a class="code" href="classWPS8Parser.html#a6e196014e6f37ef034311a8e40a0b00f">offset_eot</a>; <span class="comment">/* stream offset to end of text */</span> <a name="l00118"></a><a class="code" href="classWPS8Parser.html#a49522b43eec90db7b93aeed9208a47df">00118</a> uint32_t <a class="code" href="classWPS8Parser.html#a49522b43eec90db7b93aeed9208a47df">oldTextAttributeBits</a>; <a name="l00119"></a><a class="code" href="classWPS8Parser.html#a7162a15e5da07a6b6abc75ae1c7ae6a4">00119</a> <a class="code" href="WPS8_8h.html#a8b56b91dacc3c1e6968324837ff98608">HeaderIndexMultiMap</a> <a class="code" href="classWPS8Parser.html#a7162a15e5da07a6b6abc75ae1c7ae6a4">headerIndexTable</a>; <a name="l00120"></a><a class="code" href="classWPS8Parser.html#ab01396999dae10ef49c5acd31de10c47">00120</a> std::vector<FOD> <a class="code" href="classWPS8Parser.html#ab01396999dae10ef49c5acd31de10c47">CHFODs</a>; <span class="comment">/* CHaracter FOrmatting Descriptors */</span> <a name="l00121"></a><a class="code" href="classWPS8Parser.html#aab3cbea8833d8890590290cb85381812">00121</a> std::vector<FOD> <a class="code" href="classWPS8Parser.html#aab3cbea8833d8890590290cb85381812">PAFODs</a>; <span class="comment">/* PAragraph FOrmatting Descriptors */</span> <a name="l00122"></a><a class="code" href="classWPS8Parser.html#a8931803187ce44496dd90b7b77e4f43e">00122</a> std::vector<std::string> <a class="code" href="classWPS8Parser.html#a8931803187ce44496dd90b7b77e4f43e">fonts</a>; <a name="l00123"></a><a class="code" href="classWPS8Parser.html#a481b0fea7bf96b53be1b9fe1f9c6720f">00123</a> std::vector<WPSStream> <a class="code" href="classWPS8Parser.html#a481b0fea7bf96b53be1b9fe1f9c6720f">streams</a>; <a name="l00124"></a><a class="code" href="classWPS8Parser.html#a654e10d178871d5cfd8765ef421b3966">00124</a> std::vector<WPSNote> <a class="code" href="classWPS8Parser.html#a654e10d178871d5cfd8765ef421b3966">footnotes</a>; <a name="l00125"></a><a class="code" href="classWPS8Parser.html#a9697d6191f980d3f7f8d13d35057fd2d">00125</a> std::vector<WPSNote> <a class="code" href="classWPS8Parser.html#a9697d6191f980d3f7f8d13d35057fd2d">endnotes</a>; <a name="l00126"></a>00126 <a name="l00127"></a><a class="code" href="classWPS8Parser.html#a08b2d36081ac819db29e4fea268c9075">00127</a> std::vector<WPSNote>::iterator <a class="code" href="classWPS8Parser.html#a08b2d36081ac819db29e4fea268c9075">fn_iter</a>; <a name="l00128"></a><a class="code" href="classWPS8Parser.html#a183f761edbe85d38a0eac921180300d8">00128</a> std::vector<WPSNote>::iterator <a class="code" href="classWPS8Parser.html#a183f761edbe85d38a0eac921180300d8">en_iter</a>; <a name="l00129"></a>00129 }; <a name="l00130"></a>00130 <a name="l00131"></a>00131 <a name="l00132"></a>00132 <span class="preprocessor">#endif </span><span class="comment">/* WPS8_H */</span> </pre></div></div> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="WPS8_8h.html">WPS8.h</a> </li> <hr size="1"><address style="align: right;"><small> Generated on Wed Jul 13 2011 08:34:26 for libwps by <a href="http://www.doxygen.org/index.html"> doxygen</a> 1.7.4</small></address> </body> </html>