blob: ade8a0ae499b8cfe92a4ff01e0f3044e1fce26a5 [file] [log] [blame]
<!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>SGL: SkSVGParser.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.0 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<div class="nav">
<a class="el" href="dir_000000.html">include</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">skia</a></div>
<h1>SkSVGParser.h</h1><div class="fragment"><pre class="fragment">00001 <span class="preprocessor">#ifndef SkSVGParser_DEFINED</span>
00002 <span class="preprocessor"></span><span class="preprocessor">#define SkSVGParser_DEFINED</span>
00003 <span class="preprocessor"></span>
00004 <span class="preprocessor">#include "SkMatrix.h"</span>
00005 <span class="preprocessor">#include "SkTDict.h"</span>
00006 <span class="preprocessor">#include "SkTDStack.h"</span>
00007 <span class="preprocessor">#include "SkSVGPaintState.h"</span>
00008 <span class="preprocessor">#include "SkSVGTypes.h"</span>
00009 <span class="preprocessor">#include "SkStream.h"</span>
00010 <span class="preprocessor">#include "SkString.h"</span>
00011 <span class="preprocessor">#include "SkXMLParser.h"</span>
00012 <span class="preprocessor">#include "SkXMLWriter.h"</span>
00013
00014 <span class="keyword">class </span>SkSVGBase;
00015 <span class="keyword">class </span>SkSVGElement;
00016
00017 <span class="keyword">class </span>SkSVGParser : <span class="keyword">public</span> SkXMLParser {
00018 <span class="keyword">public</span>:
00019 SkSVGParser();
00020 <span class="keyword">virtual</span> ~SkSVGParser();
00021 <span class="keywordtype">void</span> _addAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* attrName, <span class="keyword">const</span> <span class="keywordtype">char</span>* attrValue) {
00022 fXMLWriter.addAttribute(attrName, attrValue); }
00023 <span class="keywordtype">void</span> _addAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* attrName, <a class="code" href="classSkString.html">SkString</a>&amp; attrValue) {
00024 fXMLWriter.addAttribute(attrName, attrValue.c_str()); }
00025 <span class="keywordtype">void</span> _addAttributeLen(<span class="keyword">const</span> <span class="keywordtype">char</span>* attrName, <span class="keyword">const</span> <span class="keywordtype">char</span>* attrValue, size_t len) {
00026 fXMLWriter.addAttributeLen(attrName, attrValue, len); }
00027 <span class="keywordtype">void</span> _endElement() { fXMLWriter.endElement(); }
00028 <span class="keywordtype">int</span> findAttribute(SkSVGBase* , <span class="keyword">const</span> <span class="keywordtype">char</span>* attrValue, size_t len, <span class="keywordtype">bool</span> isPaint);
00029 <span class="keyword">const</span> <span class="keywordtype">char</span>* getFinal();
00030 SkTDict&lt;SkSVGElement*&gt;&amp; getIDs() { <span class="keywordflow">return</span> fIDs; }
00031 <a class="code" href="classSkString.html">SkString</a>&amp; getPaintLast(SkSVGPaint::Field field);
00032 <span class="keywordtype">void</span> _startElement(<span class="keyword">const</span> <span class="keywordtype">char</span> name[]) { fXMLWriter.startElement(name); }
00033 <span class="keywordtype">void</span> translate(SkSVGElement*, <span class="keywordtype">bool</span> isDef);
00034 <span class="keywordtype">void</span> translateMatrix(<a class="code" href="classSkString.html">SkString</a>&amp; , <a class="code" href="classSkString.html">SkString</a>* <span class="keywordtype">id</span>);
00035 <span class="keyword">static</span> <span class="keywordtype">void</span> ConvertToArray(<a class="code" href="classSkString.html">SkString</a>&amp; vals);
00036 <span class="keyword">protected</span>:
00037 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onAddAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span> name[], <span class="keyword">const</span> <span class="keywordtype">char</span> value[]);
00038 <span class="keywordtype">bool</span> onAddAttributeLen(<span class="keyword">const</span> <span class="keywordtype">char</span> name[], <span class="keyword">const</span> <span class="keywordtype">char</span> value[], size_t len);
00039 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onEndElement(<span class="keyword">const</span> <span class="keywordtype">char</span> elem[]);
00040 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onStartElement(<span class="keyword">const</span> <span class="keywordtype">char</span> elem[]);
00041 <span class="keywordtype">bool</span> onStartElementLen(<span class="keyword">const</span> <span class="keywordtype">char</span> elem[], size_t len);
00042 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> onText(<span class="keyword">const</span> <span class="keywordtype">char</span> text[], <span class="keywordtype">int</span> len);
00043 <span class="keyword">private</span>:
00044 <span class="keywordtype">bool</span> isStrokeAndFill(SkSVGPaint** stroke, SkSVGPaint** fill);
00045 <span class="keyword">static</span> SkSVGElement* CreateElement(SkSVGTypes type, SkSVGElement* parent);
00046 <span class="keyword">static</span> <span class="keywordtype">void</span> Delete(SkTDArray&lt;SkSVGElement*&gt;&amp; fChildren);
00047 <span class="keyword">static</span> SkSVGTypes GetType(<span class="keyword">const</span> <span class="keywordtype">char</span> name[], size_t len);
00048 SkSVGPaint* fHead;
00049 SkSVGPaint fEmptyPaint;
00050 SkSVGPaint fLastFlush;
00051 <a class="code" href="classSkString.html">SkString</a> fLastColor;
00052 SkMatrix fLastTransform;
00053 SkTDArray&lt;SkSVGElement*&gt; fChildren;
00054 SkTDict&lt;SkSVGElement*&gt; fIDs;
00055 SkTDArray&lt;SkSVGElement*&gt; fParents;
00056 SkMemoryWStream fStream;
00057 SkXMLStreamWriter fXMLWriter;
00058 SkSVGElement* fCurrElement;
00059 SkBool8 fInSVG;
00060 SkBool8 fSuppressPaint;
00061 <span class="keyword">friend</span> <span class="keyword">class </span>SkSVGPaint;
00062 <span class="keyword">friend</span> <span class="keyword">class </span>SkSVGGradient;
00063 };
00064
00065 <span class="preprocessor">#endif // SkSVGParser_DEFINED</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue May 9 14:35:23 2006 for SGL by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.0 </small></address>
</body>
</html>