WPG1Parser.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* libwpg
3  * Version: MPL 2.0 / LGPLv2.1+
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  * Major Contributor(s):
10  * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
11  * Copyright (C) 2005 Fridrich Strba (fridrich.strba@bluewin.ch)
12  * Copyright (C) 2004 Marc Oude Kotte (marc@solcon.nl)
13  *
14  * For minor contributions see the git repository.
15  *
16  * Alternatively, the contents of this file may be used under the terms
17  * of the GNU Lesser General Public License Version 2.1 or later
18  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
19  * applicable instead of those above.
20  *
21  * For further information visit http://libwpg.sourceforge.net
22  */
23 
24 /* "This product is not manufactured, approved, or supported by
25  * Corel Corporation or Corel Corporation Limited."
26  */
27 
28 #ifndef __WPG1PARSER_H__
29 #define __WPG1PARSER_H__
30 
31 #include <vector>
32 
33 #include <boost/optional.hpp>
34 
35 #include <librevenge/librevenge.h>
36 
37 #include "WPGBitmap.h"
38 #include "WPGDashArray.h"
39 #include "WPGXParser.h"
40 
41 class WPG1Parser : public WPGXParser
42 {
43 public:
44  WPG1Parser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
45  bool parse() override;
46 
47 private:
48  void handleStartWPG();
49  void handleEndWPG();
50  void handlePageFormat();
51 
52  void handleFillAttributes();
53  void handleLineAttributes();
54  void handleColormap();
55 
56  void handleLine();
57  void handlePolyline();
58  void handleRectangle();
59  void handlePolygon();
60  void handleEllipse();
61 
62  void handleCurvedPolyline();
63 
64  void handleGroup();
65  void closeGroup(bool force = false);
66 
67  bool decodeRLE(std::vector<unsigned char> &buffer, unsigned width, unsigned height, unsigned depth);
68  void fillPixels(libwpg::WPGBitmap &bitmap, const unsigned char *buffer, unsigned width, unsigned height, unsigned depth);
69  void handleBitmapTypeOne();
70  void handleBitmapTypeTwo();
73 
78 
79  void resetPalette();
80 
81  // parsing context
84  boost::optional<long> m_groupEnd;
85  bool m_success;
86  bool m_exit;
88  int m_width;
89  int m_height;
90  librevenge::RVNGPropertyList m_style;
96  librevenge::RVNGPropertyListVector m_gradient;
98  unsigned m_fontSize;
99  unsigned m_avgCharWidth;
100  unsigned char m_textAlign;
101 };
102 
103 #endif // __WPG1PARSER_H__
104 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
void handleEllipse()
Definition: WPG1Parser.cpp:644
bool parse() override
Definition: WPG1Parser.cpp:175
libwpg::WPGColor m_fontColor
Definition: WPG1Parser.h:97
void handleStartWPG()
Definition: WPG1Parser.cpp:301
unsigned char m_textAlign
Definition: WPG1Parser.h:100
librevenge::RVNGPropertyListVector m_gradient
Definition: WPG1Parser.h:96
librevenge::RVNGPropertyList m_style
Definition: WPG1Parser.h:90
bool m_exit
Definition: WPG1Parser.h:86
void handleBitmapTypeTwo()
Definition: WPG1Parser.cpp:953
unsigned m_fontSize
Definition: WPG1Parser.h:98
bool decodeRLE(std::vector< unsigned char > &buffer, unsigned width, unsigned height, unsigned depth)
Definition: WPG1Parser.cpp:756
Definition: WPGDashArray.h:36
void handlePostscriptTypeTwo()
Definition: WPG1Parser.cpp:1048
Definition: WPGColor.h:34
libwpg::WPGColor m_penForeColor
Definition: WPG1Parser.h:91
int m_width
Definition: WPG1Parser.h:88
libwpg::WPGDashArray m_dashArray
Definition: WPG1Parser.h:95
libwpg::WPGColor m_brushForeColor
Definition: WPG1Parser.h:93
libwpg::WPGColor m_brushBackColor
Definition: WPG1Parser.h:94
void closeGroup(bool force=false)
Definition: WPG1Parser.cpp:742
void handlePolyline()
Definition: WPG1Parser.cpp:554
void handleRectangle()
Definition: WPG1Parser.cpp:583
Definition: WPG1Parser.h:41
long m_recordEnd
Definition: WPG1Parser.h:83
int m_height
Definition: WPG1Parser.h:89
void handleLineAttributes()
Definition: WPG1Parser.cpp:476
boost::optional< long > m_groupEnd
Definition: WPG1Parser.h:84
void handleColormap()
Definition: WPG1Parser.cpp:391
void handleBitmapTypeOne()
Definition: WPG1Parser.cpp:902
bool m_graphicsStarted
Definition: WPG1Parser.h:87
void handleLine()
Definition: WPG1Parser.cpp:521
void handlePolygon()
Definition: WPG1Parser.cpp:612
void handleCurvedPolyline()
Definition: WPG1Parser.cpp:674
void handleGraphicsTextTypeOne()
Definition: WPG1Parser.cpp:1133
void handleFillAttributes()
Definition: WPG1Parser.cpp:412
void handlePageFormat()
Definition: WPG1Parser.cpp:335
void handleEndWPG()
Definition: WPG1Parser.cpp:322
WPG1Parser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter)
Definition: WPG1Parser.cpp:152
libwpg::WPGColor m_penBackColor
Definition: WPG1Parser.h:92
void resetPalette()
Definition: WPG1Parser.cpp:1251
unsigned m_avgCharWidth
Definition: WPG1Parser.h:99
void handleGroup()
Definition: WPG1Parser.cpp:725
Definition: WPGXParser.h:39
void fillPixels(libwpg::WPGBitmap &bitmap, const unsigned char *buffer, unsigned width, unsigned height, unsigned depth)
Definition: WPG1Parser.cpp:831
bool m_success
Definition: WPG1Parser.h:85
void handlePostscriptTypeOne()
Definition: WPG1Parser.cpp:1020
int m_recordLength
Definition: WPG1Parser.h:82
void handleGraphicsTextTypeThree()
void handleGraphicsTextAttributes()
Definition: WPG1Parser.cpp:1102
void handleGraphicsTextTypeTwo()
Definition: WPG1Parser.cpp:1200
Definition: WPGBitmap.h:39

Generated for libwpg by doxygen 1.8.14