IWORKText.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 IWORKTEXT_H_INCLUDED
11 #define IWORKTEXT_H_INCLUDED
12 
13 #include "IWORKText_fwd.h"
14 
15 #include <deque>
16 
17 #include <glm/glm.hpp>
18 
19 #include "IWORKStyle_fwd.h"
20 #include "IWORKStyleStack.h"
21 #include "IWORKOutputElements.h"
22 
23 namespace libetonyek
24 {
25 
26 class IWORKText
27 {
28 
29 public:
30  IWORKText();
31 
32  void openParagraph(const IWORKStylePtr_t &style);
33  void closeParagraph();
34 
35  void openSpan(const IWORKStylePtr_t &style);
36  void closeSpan();
37 
38  void openLink(const std::string &url);
39  void closeLink();
40 
41  void insertText(const std::string &text);
42  void insertTab();
43  void insertLineBreak();
44 
45  void insertInlineContent(const IWORKOutputElements &elements);
46  void insertBlockContent(const IWORKOutputElements &elements);
47 
48  bool empty() const;
49 
50  void draw(IWORKOutputElements &elements);
51  void draw(const glm::dmat3 &trafo, const IWORKGeometryPtr_t &boundingBox, IWORKOutputElements &elements);
52 
53 private:
54  void doOpenPara();
55  void doClosePara();
56 
57  void doOpenSpan();
58  void doCloseSpan();
59 
60  void flushSpan();
61 
62 private:
64 
66 
70 
74  bool m_inSpan;
75 };
76 
77 }
78 
79 #endif // IWORKTEXT_H_INCLUDED
80 
81 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
void closeLink()
Definition: IWORKText.cpp:353
Definition: IWORKColorElement.cpp:19
bool m_pendingSpanClose
Definition: IWORKText.h:73
bool m_paraOpened
Definition: IWORKText.h:68
Definition: IWORKOutputElements.h:25
void closeParagraph()
Definition: IWORKText.cpp:318
IWORKStyleStack m_styleStack
Definition: IWORKText.h:63
void closeSpan()
Definition: IWORKText.cpp:334
void doCloseSpan()
Definition: IWORKText.cpp:438
void doOpenSpan()
Definition: IWORKText.cpp:425
boost::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
Definition: IWORKText.h:26
Representation of a dynamic inheritance of styles.
Definition: IWORKStyleStack.h:34
void openSpan(const IWORKStylePtr_t &style)
Definition: IWORKText.cpp:327
Definition: IWORKToken.h:171
boost::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:29
Definition: IWORKToken.h:172
bool m_ignoreEmptyPara
Definition: IWORKText.h:69
Definition: IWORKToken.h:184
bool empty() const
Definition: IWORKText.cpp:397
void insertText(const std::string &text)
Definition: IWORKText.cpp:361
void insertTab()
Definition: IWORKText.cpp:368
void flushSpan()
Definition: IWORKText.cpp:451
bool m_spanOpened
Definition: IWORKText.h:72
void doClosePara()
Definition: IWORKText.cpp:413
void insertInlineContent(const IWORKOutputElements &elements)
Definition: IWORKText.cpp:382
void openLink(const std::string &url)
Definition: IWORKText.cpp:340
IWORKStylePtr_t m_currentSpanStyle
Definition: IWORKText.h:71
void openParagraph(const IWORKStylePtr_t &style)
Definition: IWORKText.cpp:309
void insertBlockContent(const IWORKOutputElements &elements)
Definition: IWORKText.cpp:389
IWORKStylePtr_t m_currentParaStyle
Definition: IWORKText.h:67
void insertLineBreak()
Definition: IWORKText.cpp:375
bool m_inSpan
Definition: IWORKText.h:74
IWORKOutputElements m_elements
Definition: IWORKText.h:65
void doOpenPara()
Definition: IWORKText.cpp:402
IWORKText()
Definition: IWORKText.cpp:296
void draw(IWORKOutputElements &elements)
Definition: IWORKText.cpp:256

Generated for libetonyek by doxygen 1.8.8