KEY6Parser.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 KEY6PARSER_H_INCLUDED
00011 #define KEY6PARSER_H_INCLUDED
00012 
00013 #include "IWAParser.h"
00014 
00015 namespace libetonyek
00016 {
00017 
00018 class KEYCollector;
00019 
00020 class KEY6Parser : public IWAParser
00021 {
00022 public:
00023   KEY6Parser(const RVNGInputStreamPtr_t &fragments, const RVNGInputStreamPtr_t &package, KEYCollector &collector);
00024 
00025 private:
00026   virtual bool parseDocument();
00027 
00028   bool dispatchShape(unsigned id);
00029 
00030   bool parsePresentation(unsigned id);
00031   bool parseSlideList(unsigned id);
00032   bool parseSlide(unsigned id, bool master);
00033   bool parsePlaceholder(unsigned id);
00034   void parseNotes(unsigned id);
00035 
00036   bool parseStickyNote(const IWAMessage &msg);
00037 
00038   const IWORKStylePtr_t querySlideStyle(unsigned id) const;
00039 
00040   void parseSlideStyle(unsigned id, IWORKStylePtr_t &style);
00041 
00042 private:
00043   KEYCollector &m_collector;
00044 
00045   mutable StyleMap_t m_slideStyles;
00046 };
00047 
00048 }
00049 
00050 #endif
00051 
00052 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */