KEY2Parser.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /*
00003  * This file is part of the libetonyek project.
00004  *
00005  * This Source Code Form is subject to the terms of the Mozilla Public
00006  * License, v. 2.0. If a copy of the MPL was not distributed with this
00007  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
00008  */
00009 
00010 #ifndef KEY2PARSER_H_INCLUDED
00011 #define KEY2PARSER_H_INCLUDED
00012 
00013 #include "KEY2ParserUtils.h"
00014 #include "KEYParser.h"
00015 #include "KEYTypes.h"
00016 
00017 namespace libetonyek
00018 {
00019 
00020 class KEYStyle;
00021 
00022 class KEY2Parser : public KEYParser, private KEY2ParserUtils
00023 {
00024 public:
00025   KEY2Parser(const WPXInputStreamPtr_t &input, const WPXInputStreamPtr_t &package, KEYCollector *collector, const KEYDefaults &defaults);
00026   virtual ~KEY2Parser();
00027 
00028   // NOTE: KEY2TableParser uses these to avoid code duplication
00029   void parseGeometry(const KEYXMLReader &reader);
00030   void parseTextBody(const KEYXMLReader &reader);
00031 
00032 private:
00033   virtual void processXmlNode(const KEYXMLReader &reader);
00034   virtual KEYXMLReader::TokenizerFunction_t getTokenizer() const;
00035 
00036   void parseDrawables(const KEYXMLReader &reader);
00037   void parseLayer(const KEYXMLReader &reader);
00038   void parseLayers(const KEYXMLReader &reader);
00039   void parseMasterSlide(const KEYXMLReader &reader);
00040   void parseMasterSlides(const KEYXMLReader &reader);
00041   void parseMetadata(const KEYXMLReader &reader);
00042   void parseNotes(const KEYXMLReader &reader);
00043   void parsePage(const KEYXMLReader &reader);
00044   void parseProxyMasterLayer(const KEYXMLReader &reader);
00045   void parseSlide(const KEYXMLReader &reader);
00046   void parseSlideList(const KEYXMLReader &reader);
00047   void parseStickyNotes(const KEYXMLReader &reader);
00048   void parseStyles(const KEYXMLReader &reader, bool anonymous);
00049   void parseStylesheet(const KEYXMLReader &reader);
00050   void parseTheme(const KEYXMLReader &reader);
00051   void parseThemeList(const KEYXMLReader &reader);
00052 
00053   void parseBezier(const KEYXMLReader &reader);
00054   void parseConnectionLine(const KEYXMLReader &reader);
00055   void parseGroup(const KEYXMLReader &reader);
00056   void parseImage(const KEYXMLReader &reader);
00057   void parseLine(const KEYXMLReader &reader);
00058   void parseMedia(const KEYXMLReader &reader);
00059   void parsePath(const KEYXMLReader &reader);
00060   void parseShape(const KEYXMLReader &reader);
00061   void parseStickyNote(const KEYXMLReader &reader);
00062   void parsePlaceholder(const KEYXMLReader &reader, bool title = false);
00063 
00064   void parseBezierPath(const KEYXMLReader &reader);
00065   void parseCallout2Path(const KEYXMLReader &reader);
00066   void parseConnectionPath(const KEYXMLReader &reader);
00067   void parsePointPath(const KEYXMLReader &reader);
00068   void parseScalarPath(const KEYXMLReader &reader);
00069 
00070   void parseContent(const KEYXMLReader &reader);
00071   void parseData(const KEYXMLReader &reader);
00072   void parseFiltered(const KEYXMLReader &reader);
00073   void parseFilteredImage(const KEYXMLReader &reader);
00074   void parseImageMedia(const KEYXMLReader &reader);
00075   void parseLeveled(const KEYXMLReader &reader);
00076   void parseUnfiltered(const KEYXMLReader &reader);
00077   void parseMovieMedia(const KEYXMLReader &reader);
00078   void parseSelfContainedMovie(const KEYXMLReader &reader);
00079   void parseOtherDatas(const KEYXMLReader &reader);
00080 
00081   void parseBr(const KEYXMLReader &reader);
00082   void parseLayout(const KEYXMLReader &reader);
00083   void parseLink(const KEYXMLReader &reader);
00084   void parseP(const KEYXMLReader &reader);
00085   void parseSpan(const KEYXMLReader &reader);
00086   void parseTab(const KEYXMLReader &reader);
00087   void parseText(const KEYXMLReader &reader);
00088   void parseTextStorage(const KEYXMLReader &reader);
00089 
00090   void emitLayoutStyle(const ID_t &id);
00091 
00092 private:
00093   WPXInputStreamPtr_t m_package;
00094   unsigned m_version;
00095 };
00096 
00097 }
00098 
00099 #endif //  KEY2PARSER_H_INCLUDED
00100 
00101 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */