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 
17 namespace libebook
18 {
19 
20 class FictionBook2TableModel;
21 
23 {
24  // disable copying
27 
28 public:
30  ~FictionBook2TableContext() override;
31 
32 private:
34  void startOfElement() override;
35  void endOfElement() override;
36  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
37 
38 private:
39  std::shared_ptr<FictionBook2TableModel> m_model;
40 };
41 
43 {
44  // disable copying
47 
48 public:
49  FictionBook2CellContext(FictionBook2ParserContext *parentContext, const std::shared_ptr<FictionBook2TableModel> &model, const FictionBook2BlockFormat &format, bool header);
50 
51 private:
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 
59 private:
60  const std::shared_ptr<FictionBook2TableModel> m_model;
61  const bool m_header;
62  bool m_opened;
64  int m_rowSpan;
66 };
67 
69 {
70  // no copying
73 
74 public:
75  FictionBook2TrContext(FictionBook2ParserContext *parentContext, const std::shared_ptr<FictionBook2TableModel> &model, const FictionBook2BlockFormat &format);
76 
77 private:
79  void endOfElement() override;
80  void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override;
81 
82  void openRow(bool header);
83 
84 private:
85  const std::shared_ptr<FictionBook2TableModel> m_model;
86  bool m_opened;
87 };
88 
89 }
90 
91 #endif // FICTIONBOOK2TABLECONTEXT_H_INCLUDED
92 
93 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
void endOfAttributes() override
Signalize the end of attributes.
Definition: FictionBook2TableContext.cpp:233
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2TableContext.cpp:275
Definition: FictionBook2TableContext.h:22
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TableContext.cpp:191
const bool m_header
Definition: FictionBook2TableContext.h:61
Definition: FictionBook2ParserContext.h:132
int m_columnSpan
Definition: FictionBook2TableContext.h:63
Definition: FictionBook2TableContext.h:42
Definition: FictionBook2XMLParserContext.h:18
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2TableContext.cpp:157
Definition: FictionBook2ParserContext.h:151
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2TableContext.cpp:206
Definition: FictionBook2Style.h:35
FictionBook2TrContext(const FictionBook2TrContext &)
const std::shared_ptr< FictionBook2TableModel > m_model
Definition: FictionBook2TableContext.h:60
FictionBook2TableContext(const FictionBook2TableContext &other)
FictionBook2TrContext & operator=(const FictionBook2TrContext &)
Definition: FictionBook2Token.h:133
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2TableContext.cpp:162
void attribute(const FictionBook2TokenData &name, const FictionBook2TokenData *ns, const char *value) override
Process an attribute.
Definition: FictionBook2TableContext.cpp:283
void openRow(bool header)
Definition: FictionBook2TableContext.cpp:291
const char * name
Definition: EBOOKHTMLToken.cpp:44
std::shared_ptr< FictionBook2TableModel > m_model
Definition: FictionBook2TableContext.h:39
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2TableContext.cpp:136
const std::shared_ptr< FictionBook2TableModel > m_model
Definition: FictionBook2TableContext.h:85
Definition: EBOOKHTMLToken.h:82
FictionBook2XMLParserContext * element(const FictionBook2TokenData &name, const FictionBook2TokenData &ns) override
Create a context for parsing a child element.
Definition: FictionBook2TableContext.cpp:253
void startOfElement() override
Signalize the start of an element.
Definition: FictionBook2TableContext.cpp:152
bool m_opened
Definition: FictionBook2TableContext.h:86
Base class for all contexts.
Definition: FictionBook2ParserContext.h:23
Definition: EBOOKOPFToken.h:54
FictionBook2CellContext(const FictionBook2CellContext &other)
size_t m_coveredColumns
Definition: FictionBook2TableContext.h:65
Definition: FictionBook2TableContext.h:68
Definition: BBeBCollector.cpp:18
qi::rule< Iterator, AttrValue_t, qi::space_type > value
Definition: TealDocParser.cpp:231
void endOfElement() override
Signalize the end of an element.
Definition: FictionBook2TableContext.cpp:195
FictionBook2TableContext & operator=(const FictionBook2TableContext &other)
~FictionBook2TableContext() override
Definition: FictionBook2TableContext.cpp:132
void openCell()
Definition: FictionBook2TableContext.cpp:238
bool m_opened
Definition: FictionBook2TableContext.h:62
FictionBook2CellContext & operator=(const FictionBook2CellContext &other)
int m_rowSpan
Definition: FictionBook2TableContext.h:64

Generated for libe-book by doxygen 1.8.14