FictionBook2TableContext.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 libe-book 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 FICTIONBOOK2TABLECONTEXT_H_INCLUDED
11#define FICTIONBOOK2TABLECONTEXT_H_INCLUDED
12
13#include <memory>
14
16
17namespace libebook
18{
19
21
23{
24 // disable copying
27
28public:
29 FictionBook2TableContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const FictionBook2BlockFormat &format);
31
32private:
33 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
34 void startOfElement() override;
35 void endOfElement() override;
36 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
37
38private:
39 std::shared_ptr<FictionBook2TableModel> m_model;
40};
41
43{
44 // disable copying
47
48public:
49 FictionBook2CellContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const std::shared_ptr<FictionBook2TableModel> &model, const FictionBook2BlockFormat &format, bool header);
50
51private:
52 void startOfElement() override;
53 void endOfElement() override;
54 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
55 void endOfAttributes() override;
56
57 void openCell();
58
59private:
60 const std::shared_ptr<FictionBook2TableModel> m_model;
61 const bool m_header;
66};
67
69{
70 // no copying
73
74public:
75 FictionBook2TrContext(std::shared_ptr<FictionBook2ParserContext> parentContext, const std::shared_ptr<FictionBook2TableModel> &model, const FictionBook2BlockFormat &format);
76
77private:
78 std::shared_ptr<FictionBook2XMLParserContext> element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override;
79 void endOfElement() override;
80 void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
81
82 void openRow(bool header);
83
84private:
85 const std::shared_ptr<FictionBook2TableModel> m_model;
87};
88
89}
90
91#endif // FICTIONBOOK2TABLECONTEXT_H_INCLUDED
92
93/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
FictionBook2BlockFormatContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2BlockFormat &format)
Definition FictionBook2ParserContext.cpp:217
bool m_opened
Definition FictionBook2TableContext.h:62
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2TableContext.cpp:211
FictionBook2CellContext(const FictionBook2CellContext &other)
FictionBook2CellContext & operator=(const FictionBook2CellContext &other)
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2TableContext.cpp:222
int m_columnSpan
Definition FictionBook2TableContext.h:63
size_t m_coveredColumns
Definition FictionBook2TableContext.h:65
const bool m_header
Definition FictionBook2TableContext.h:61
const std::shared_ptr< FictionBook2TableModel > m_model
Definition FictionBook2TableContext.h:60
void startOfElement() override
Signalize the start of an element.
Definition FictionBook2TableContext.cpp:207
void openCell()
Definition FictionBook2TableContext.cpp:254
void endOfAttributes() override
Signalize the end of attributes.
Definition FictionBook2TableContext.cpp:249
int m_rowSpan
Definition FictionBook2TableContext.h:64
FictionBook2StyleContextBase(std::shared_ptr< FictionBook2ParserContext > parentContext, const FictionBook2Style &style)
Definition FictionBook2ParserContext.cpp:148
std::shared_ptr< FictionBook2TableModel > m_model
Definition FictionBook2TableContext.h:39
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2TableContext.cpp:152
void startOfElement() override
Signalize the start of an element.
Definition FictionBook2TableContext.cpp:168
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2TableContext.cpp:178
~FictionBook2TableContext() override
Definition FictionBook2TableContext.cpp:148
FictionBook2TableContext(const FictionBook2TableContext &other)
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2TableContext.cpp:173
FictionBook2TableContext & operator=(const FictionBook2TableContext &other)
Definition FictionBook2TableContext.cpp:38
bool m_opened
Definition FictionBook2TableContext.h:86
const std::shared_ptr< FictionBook2TableModel > m_model
Definition FictionBook2TableContext.h:85
std::shared_ptr< FictionBook2XMLParserContext > element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition FictionBook2TableContext.cpp:269
FictionBook2TrContext(const FictionBook2TrContext &)
void endOfElement() override
Signalize the end of an element.
Definition FictionBook2TableContext.cpp:291
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition FictionBook2TableContext.cpp:299
FictionBook2TrContext & operator=(const FictionBook2TrContext &)
void openRow(bool header)
Definition FictionBook2TableContext.cpp:307
@ value
Definition EBOOKHTMLToken.h:261
@ header
Definition EBOOKHTMLToken.h:82
@ name
Definition EBOOKHTMLToken.h:214
@ format
Definition EBOOKOPFToken.h:54
Definition BBeBCollector.cpp:20
Definition FictionBook2Style.h:36
Definition FictionBook2Token.h:134

Generated for libe-book by doxygen 1.16.1