FB2TableContext.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 FB2TABLECONTEXT_H_INCLUDED
11 #define FB2TABLECONTEXT_H_INCLUDED
12 
13 #include "FB2ParserContext.h"
14 
15 namespace libebook
16 {
17 
18 class FB2TableModel;
19 
21 {
22  // disable copying
25 
26 public:
27  FB2TableContext(FB2ParserContext *parentContext, const FB2BlockFormat &format);
28  virtual ~FB2TableContext();
29 
30 private:
31  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
32  virtual void startOfElement();
33  virtual void endOfElement();
34  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
35 
36 private:
38 };
39 
41 {
42  // disable copying
45 
46 public:
47  FB2CellContext(FB2ParserContext *parentContext, FB2TableModel *model, const FB2BlockFormat &format, bool header);
48 
49 private:
50  virtual void startOfElement();
51  virtual void endOfElement();
52  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
53  virtual void endOfAttributes();
54 
55  void openCell();
56 
57 private:
59  const bool m_header;
60  bool m_opened;
62  int m_rowSpan;
64 };
65 
67 {
68  // no copying
71 
72 public:
73  FB2TrContext(FB2ParserContext *parentContext, FB2TableModel *model, const FB2BlockFormat &format);
74 
75 private:
76  virtual FB2XMLParserContext *element(const FB2TokenData &name, const FB2TokenData &ns);
77  virtual void endOfElement();
78  virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value);
79 
80  void openRow(bool header);
81 
82 private:
84  bool m_opened;
85 };
86 
87 }
88 
89 #endif // FB2TABLECONTEXT_H_INCLUDED
90 
91 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libebook::FB2Token::style
@ style
Definition: FB2Token.h:86
libebook::FB2Collector::openTable
virtual void openTable(const FB2BlockFormat &format)=0
libebook::FB2CellContext::endOfAttributes
virtual void endOfAttributes()
Signalize the end of attributes.
Definition: FB2TableContext.cpp:234
libebook::FB2TableContext::element
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2TableContext.cpp:137
libebook::FB2TableModel
Definition: FB2TableContext.cpp:22
libebook::FB2TableModel::addCell
size_t addCell(size_t rowSpan, size_t columnSpan)
Add a cell spanning rowSpan rows and colSpan columns.
Definition: FB2TableContext.cpp:81
libebook::FB2CellContext::m_opened
bool m_opened
Definition: FB2TableContext.h:60
libebook::FB2Token::id
@ id
Definition: FB2Token.h:61
libebook::FB2TableModel::FB2TableModel
FB2TableModel()
Definition: FB2TableContext.cpp:52
libebook::FB2Token::align
@ align
Definition: FB2Token.h:104
libebook::FB2TableModel::m_rows
size_t m_rows
Definition: FB2TableContext.cpp:46
libebook::FB2CellContext::m_rowSpan
int m_rowSpan
Definition: FB2TableContext.h:62
libebook::FB2TrContext
Definition: FB2TableContext.h:67
libebook::FB2TableModel::m_current_column
size_t m_current_column
Definition: FB2TableContext.cpp:49
libebook::FB2Token::tr
@ tr
Definition: FB2Token.h:97
FB2TableContext.h
libebook::FB2Collector::closeTableRow
virtual void closeTableRow()=0
libebook
Definition: CHMParser.cpp:21
libebook::FB2SkipElementContext
Context for skipping element hierarchies.
Definition: FB2ParserContext.h:114
libebook::FB2Collector::insertCoveredTableCell
virtual void insertCoveredTableCell()=0
libebook::FB2ParserContext::getCollector
FB2Collector * getCollector() const
Get the collector.
Definition: FB2ParserContext.cpp:31
libebook::FB2Token::rowspan
@ rowspan
Definition: FB2Token.h:119
libebook::FB2TrContext::operator=
FB2TrContext & operator=(const FB2TrContext &)
libebook::FB2CellContext::FB2CellContext
FB2CellContext(const FB2CellContext &other)
libebook::EBOOKHTMLToken::row
@ row
Definition: EBOOKHTMLToken.h:313
libebook::EBOOKHTMLToken::value
@ value
Definition: EBOOKHTMLToken.h:263
libebook::FB2TrContext::m_model
FB2TableModel * m_model
Definition: FB2TableContext.h:83
libebook::FB2TableContext::operator=
FB2TableContext & operator=(const FB2TableContext &other)
libebook::FB2ParserContext
Base class for all contexts.
Definition: FB2ParserContext.h:24
libebook::FB2TableContext::endOfElement
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2TableContext.cpp:158
libebook::FB2StyleContextBase
Definition: FB2ParserContext.h:133
libebook::FB2TableModel::Table_t
std::deque< Row_t > Table_t
Definition: FB2TableContext.cpp:24
libebook::FB2TokenData
Definition: FB2Token.h:136
libebook::FB2BlockFormatContextBase
Definition: FB2ParserContext.h:152
libebook::FB2CellContext::attribute
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2TableContext.cpp:207
libebook::FB2TableModel::ensureColumns
void ensureColumns(Row_t &row)
Definition: FB2TableContext.cpp:120
libebook::FB2TrContext::m_opened
bool m_opened
Definition: FB2TableContext.h:84
libebook::FB2Token::NS_FICTIONBOOK
@ NS_FICTIONBOOK
Definition: FB2Token.h:31
libebook::FB2TableContext::m_model
FB2TableModel * m_model
Definition: FB2TableContext.h:37
libebook::FB2TableContext::startOfElement
virtual void startOfElement()
Signalize the start of an element.
Definition: FB2TableContext.cpp:153
libebook::FB2CellContext::m_model
FB2TableModel *const m_model
Definition: FB2TableContext.h:58
libebook::FB2TableContext
Definition: FB2TableContext.h:21
libebook::FB2TrContext::openRow
void openRow(bool header)
Definition: FB2TableContext.cpp:292
FB2ParserContext.h
libebook::FB2BlockFormatContextBase::getBlockFormat
FB2BlockFormat & getBlockFormat()
Definition: FB2ParserContext.cpp:224
libebook::FB2CellContext::m_coveredColumns
size_t m_coveredColumns
Definition: FB2TableContext.h:63
libebook::FB2BlockFormat::headerRow
bool headerRow
Definition: FB2Style.h:42
libebook::FB2TrContext::element
virtual FB2XMLParserContext * element(const FB2TokenData &name, const FB2TokenData &ns)
Create a context for parsing a child element.
Definition: FB2TableContext.cpp:254
name
string name
Definition: CHMStream.cpp:80
libebook::FB2CellContext::m_header
const bool m_header
Definition: FB2TableContext.h:59
libebook::EBOOKHTMLToken::header
@ header
Definition: EBOOKHTMLToken.h:84
libebook::FB2XMLParserContext
Definition: FB2XMLParserContext.h:19
libebook::FB2Style
Definition: FB2Style.h:56
libebook::FB2CellContext::startOfElement
virtual void startOfElement()
Signalize the start of an element.
Definition: FB2TableContext.cpp:192
libebook::getFB2TokenID
int getFB2TokenID(const FB2TokenData &token)
Definition: FB2Token.cpp:50
libebook::FB2Token::td
@ td
Definition: FB2Token.h:92
libebook::FB2BlockFormat
Definition: FB2Style.h:36
libebook::EBOOKOPFToken::format
@ format
Definition: EBOOKOPFToken.h:56
libebook::FB2TableModel::m_columns
size_t m_columns
Definition: FB2TableContext.cpp:47
libebook::FB2CellContext::m_columnSpan
int m_columnSpan
Definition: FB2TableContext.h:61
FB2_NO_NAMESPACE
#define FB2_NO_NAMESPACE(ns)
Definition: FB2Token.h:20
libebook::FB2CellContext::openCell
void openCell()
Definition: FB2TableContext.cpp:239
libebook::FB2Collector::closeTableCell
virtual void closeTableCell()=0
libebook::FB2Collector::openTableRow
virtual void openTableRow(const FB2BlockFormat &format)=0
libebook::FB2Token::colspan
@ colspan
Definition: FB2Token.h:106
FB2Token.h
libebook::FB2TableContext::FB2TableContext
FB2TableContext(const FB2TableContext &other)
libebook::FB2Collector::defineID
virtual void defineID(const char *id)=0
libebook::FB2CellContext::endOfElement
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2TableContext.cpp:196
libebook::FB2CellContext::operator=
FB2CellContext & operator=(const FB2CellContext &other)
libebook::FB2Collector::closeTable
virtual void closeTable()=0
libebook::FB2Collector::openTableCell
virtual void openTableCell(int rowspan, int colspan)=0
libebook::FB2TrContext::attribute
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2TableContext.cpp:284
libebook::FB2Token::th
@ th
Definition: FB2Token.h:94
libebook::FB2TableModel::addRow
size_t addRow()
Add a row.
Definition: FB2TableContext.cpp:61
libebook::FB2TableContext::attribute
virtual void attribute(const FB2TokenData &name, const FB2TokenData *ns, const char *value)
Process an attribute.
Definition: FB2TableContext.cpp:163
libebook::FB2CellContext
Definition: FB2TableContext.h:41
libebook::FB2TableModel::m_table
Table_t m_table
Definition: FB2TableContext.cpp:45
m_header
int m_header
Definition: EBOOKOutputElements.cpp:476
libebook::FB2TableModel::Row_t
std::deque< bool > Row_t
Definition: FB2TableContext.cpp:23
libebook::FB2TableContext::~FB2TableContext
virtual ~FB2TableContext()
Definition: FB2TableContext.cpp:132
libebook::FB2TrContext::FB2TrContext
FB2TrContext(const FB2TrContext &)
FB2Collector.h
libebook::FB2TableModel::m_current_row
size_t m_current_row
Definition: FB2TableContext.cpp:48
libebook::FB2TrContext::endOfElement
virtual void endOfElement()
Signalize the end of an element.
Definition: FB2TableContext.cpp:276

Generated for libe-book by doxygen 1.8.18