EPUBSpanStyleManager.h Source File documentation

EPUBSpanStyleManager.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/*
3 * This file is part of the libepubgen project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#ifndef INCLUDED_EPUBSPANSTYLEMANAGER_H
11#define INCLUDED_EPUBSPANSTYLEMANAGER_H
12
13#include <map>
14#include <string>
15#include <unordered_map>
16
17#include <boost/functional/hash.hpp>
18
19#include <librevenge/librevenge.h>
20
21#include "EPUBCSSProperties.h"
22#include "EPUBCounter.h"
23
24namespace libepubgen
25{
26
27class EPUBCSSContent;
28
30 class EPUBSpanStyleManager
31{
32 typedef std::unordered_map<EPUBCSSProperties, std::string, boost::hash<EPUBCSSProperties>> ContentNameMap_t;
33
34public:
36 EPUBSpanStyleManager(std::string classNamePrefix) : m_contentNameMap(), m_idNameMap(), m_classNamePrefix(classNamePrefix)
37 {
38 }
39
40 virtual ~EPUBSpanStyleManager()
41 {
42 }
43
44 void defineSpan(librevenge::RVNGPropertyList const &pList);
46 std::string getClass(librevenge::RVNGPropertyList const &pList);
48 std::string getStyle(librevenge::RVNGPropertyList const &pList);
50 void send(EPUBCSSContent &out);
51protected:
53 virtual void extractProperties(librevenge::RVNGPropertyList const &pList, EPUBCSSProperties &cssProps) const;
54
55private:
57 void extractTextPosition(char const *value, EPUBCSSProperties &cssProps) const;
59 void extractDecorations(librevenge::RVNGPropertyList const &pList, EPUBCSSProperties &cssProps) const;
60protected:
62 ContentNameMap_t m_contentNameMap;
64 std::map<int, std::string> m_idNameMap;
65
66 std::string m_classNamePrefix;
67
68private:
69 EPUBSpanStyleManager(EPUBSpanStyleManager const &orig);
70 EPUBSpanStyleManager operator=(EPUBSpanStyleManager const &orig);
71};
72
73}
74
75#endif
76
77/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
EPUBCSSProperties.h
EPUBCounter.h
libepubgen::EPUBCSSContent
Definition EPUBCSSContent.h:24
libepubgen::EPUBSpanStyleManager::defineSpan
void defineSpan(librevenge::RVNGPropertyList const &pList)
define a span style
Definition EPUBSpanStyleManager.cpp:60
libepubgen::EPUBSpanStyleManager::operator=
EPUBSpanStyleManager operator=(EPUBSpanStyleManager const &orig)
libepubgen::EPUBSpanStyleManager::~EPUBSpanStyleManager
virtual ~EPUBSpanStyleManager()
destructor
Definition EPUBSpanStyleManager.h:40
libepubgen::EPUBSpanStyleManager::extractProperties
virtual void extractProperties(librevenge::RVNGPropertyList const &pList, EPUBCSSProperties &cssProps) const
convert a property list into a CSS property map
Definition EPUBSpanStyleManager.cpp:85
libepubgen::EPUBSpanStyleManager::m_classNamePrefix
std::string m_classNamePrefix
Definition EPUBSpanStyleManager.h:66
libepubgen::EPUBSpanStyleManager::m_idNameMap
std::map< int, std::string > m_idNameMap
a map id -> name
Definition EPUBSpanStyleManager.h:64
libepubgen::EPUBSpanStyleManager::EPUBSpanStyleManager
EPUBSpanStyleManager(std::string classNamePrefix)
constructor
Definition EPUBSpanStyleManager.h:36
libepubgen::EPUBSpanStyleManager::extractDecorations
void extractDecorations(librevenge::RVNGPropertyList const &pList, EPUBCSSProperties &cssProps) const
add data corresponding to the line decoration into the map
Definition EPUBSpanStyleManager.cpp:153
libepubgen::EPUBSpanStyleManager::getStyle
std::string getStyle(librevenge::RVNGPropertyList const &pList)
returns the style string corresponding to a propertylist
Definition EPUBSpanStyleManager.cpp:49
libepubgen::EPUBSpanStyleManager::getClass
std::string getClass(librevenge::RVNGPropertyList const &pList)
returns the class name corresponding to a propertylist
Definition EPUBSpanStyleManager.cpp:25
libepubgen::EPUBSpanStyleManager::ContentNameMap_t
std::unordered_map< EPUBCSSProperties, std::string, boost::hash< EPUBCSSProperties > > ContentNameMap_t
Definition EPUBSpanStyleManager.h:32
libepubgen::EPUBSpanStyleManager::EPUBSpanStyleManager
EPUBSpanStyleManager(EPUBSpanStyleManager const &orig)
libepubgen::EPUBSpanStyleManager::extractTextPosition
void extractTextPosition(char const *value, EPUBCSSProperties &cssProps) const
add data corresponding to a text position into the map
Definition EPUBSpanStyleManager.cpp:184
libepubgen::EPUBSpanStyleManager::send
void send(EPUBCSSContent &out)
send the data to the sink
Definition EPUBSpanStyleManager.cpp:75
libepubgen::EPUBSpanStyleManager::m_contentNameMap
ContentNameMap_t m_contentNameMap
a map content -> name
Definition EPUBSpanStyleManager.h:62
libepubgen
Definition EPUBBinaryContent.cpp:15
libepubgen::EPUBCSSProperties
std::map< std::string, std::string > EPUBCSSProperties
Definition EPUBCSSProperties.h:21