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 KEYTHEMECOLLECTOR_H_INCLUDED 00011 #define KEYTHEMECOLLECTOR_H_INCLUDED 00012 00013 #include "KEYCollectorBase.h" 00014 00015 namespace libetonyek 00016 { 00017 00018 struct KEYDictionary; 00019 00020 class KEYThemeCollector : public KEYCollectorBase 00021 { 00022 public: 00023 KEYThemeCollector(KEYDictionary &dict, KEYLayerMap_t &masterPages, KEYSize &size, const KEYDefaults &defaults); 00024 virtual ~KEYThemeCollector(); 00025 00026 // collector functions 00027 00028 virtual void collectPresentation(const boost::optional<KEYSize> &size); 00029 00030 virtual void collectLayer(const boost::optional<ID_t> &id, bool ref); 00031 virtual void collectPage(const boost::optional<ID_t> &id); 00032 00033 virtual void startSlides(); 00034 virtual void endSlides(); 00035 virtual void startThemes(); 00036 virtual void endThemes(); 00037 00038 virtual void startPage(); 00039 virtual void endPage(); 00040 virtual void startLayer(); 00041 virtual void endLayer(); 00042 00043 private: 00044 KEYLayerMap_t &m_masterPages; 00045 KEYSize &m_size; 00046 }; 00047 00048 } // namespace libetonyek 00049 00050 #endif // KEYTHEMECOLLECTOR_H_INCLUDED 00051 00052 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */