KEYTable.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 libetonyek 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 KEYTABLE_H_INCLUDED
11 #define KEYTABLE_H_INCLUDED
12 
13 #include <deque>
14 
15 #include "KEYObject.h"
16 
17 namespace libetonyek
18 {
19 
20 class KEYTable
21 {
22  struct Cell
23  {
25  unsigned columnSpan;
26  unsigned rowSpan;
27  bool covered;
28 
29  Cell();
30  };
31 
32  typedef std::deque<Cell> Row_t;
33  typedef std::deque<Row_t> Table_t;
34 
35 public:
36  typedef std::deque<double> ColumnSizes_t;
37  typedef std::deque<double> RowSizes_t;
38 
39 public:
40  KEYTable();
41 
42  void setSizes(const ColumnSizes_t &columnSizes, const RowSizes_t &rowSizes);
43  void insertCell(unsigned column, unsigned row, const KEYObjectPtr_t &content = KEYObjectPtr_t(), unsigned columnSpan = 1, unsigned rowSpan = 1);
44  void insertCoveredCell(unsigned column, unsigned row);
45 
47 
48  void draw(const KEYOutput &output) const;
49 
50 private:
55 };
56 
57 KEYObjectPtr_t makeObject(const KEYTable &table);
58 
59 }
60 
61 #endif // KEYTABLE_H_INCLUDED
62 
63 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
KEYTable()
Definition: KEYTable.cpp:34
void insertCoveredCell(unsigned column, unsigned row)
Definition: KEYTable.cpp:63
Definition: KEY1Token.h:39
std::deque< Row_t > Table_t
Definition: KEYTable.h:33
RowSizes_t m_rowSizes
Definition: KEYTable.h:53
Definition: KEYTable.h:20
Definition: KEYTable.h:22
void draw(const KEYOutput &output) const
Definition: KEYTable.cpp:78
void setSizes(const ColumnSizes_t &columnSizes, const RowSizes_t &rowSizes)
Definition: KEYTable.cpp:42
Definition: KEY2Token.h:140
boost::shared_ptr< KEYObject > KEYObjectPtr_t
Definition: KEYObject.h:44
KEYObjectPtr_t content
Definition: KEYTable.h:24
unsigned columnSpan
Definition: KEYTable.h:25
bool covered
Definition: KEYTable.h:27
Definition: KEY2Token.h:213
std::deque< double > RowSizes_t
Definition: KEYTable.h:37
ColumnSizes_t m_columnSizes
Definition: KEYTable.h:52
A context for drawing instances of KEYObject.
Definition: KEYOutput.h:24
KEYObjectPtr_t makeObject(const KEYShapePtr_t &shape)
Object creator function for shape.
Definition: KEYShape.cpp:87
Cell()
Definition: KEYTable.cpp:26
unsigned rowSpan
Definition: KEYTable.h:26
void setGeometry(const KEYGeometryPtr_t &geometry)
Definition: KEYTable.cpp:73
void insertCell(unsigned column, unsigned row, const KEYObjectPtr_t &content=KEYObjectPtr_t(), unsigned columnSpan=1, unsigned rowSpan=1)
Definition: KEYTable.cpp:51
boost::shared_ptr< KEYGeometry > KEYGeometryPtr_t
Definition: KEYTypes_fwd.h:25
Table_t m_table
Definition: KEYTable.h:51
std::deque< double > ColumnSizes_t
Definition: KEYTable.h:36
Definition: KEY2Token.h:1069
KEYGeometryPtr_t m_geometry
Definition: KEYTable.h:54
std::deque< Cell > Row_t
Definition: KEYTable.h:32

Generated for libetonyek by doxygen 1.8.5