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
41class WPG1Parser : public WPGXParser
42{
43public:
44 WPG1Parser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
45 bool parse() override;
46
47private:
48 void handleStartWPG();
49 void handleEndWPG();
50 void handlePageFormat();
51
54 void handleColormap();
55
56 void handleLine();
57 void handlePolyline();
58 void handleRectangle();
59 void handlePolygon();
60 void handleEllipse();
61
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);
73
78
79 void resetPalette();
80
81 // parsing context
84 boost::optional<long> m_groupEnd;
86 bool m_exit;
90 librevenge::RVNGPropertyList m_style;
96 librevenge::RVNGPropertyListVector m_gradient;
98 unsigned m_fontSize;
100 unsigned char m_textAlign;
101};
102
103#endif // __WPG1PARSER_H__
104/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
void handleStartWPG()
Definition WPG1Parser.cpp:301
libwpg::WPGDashArray m_dashArray
Definition WPG1Parser.h:95
void handleEllipse()
Definition WPG1Parser.cpp:644
unsigned m_avgCharWidth
Definition WPG1Parser.h:99
void handleLine()
Definition WPG1Parser.cpp:521
WPG1Parser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter)
Definition WPG1Parser.cpp:152
void handlePostscriptTypeOne()
Definition WPG1Parser.cpp:1020
void handleEndWPG()
Definition WPG1Parser.cpp:322
void resetPalette()
Definition WPG1Parser.cpp:1251
void handleRectangle()
Definition WPG1Parser.cpp:583
int m_width
Definition WPG1Parser.h:88
libwpg::WPGColor m_penBackColor
Definition WPG1Parser.h:92
librevenge::RVNGPropertyList m_style
Definition WPG1Parser.h:90
void handleCurvedPolyline()
Definition WPG1Parser.cpp:674
void fillPixels(libwpg::WPGBitmap &bitmap, const unsigned char *buffer, unsigned width, unsigned height, unsigned depth)
Definition WPG1Parser.cpp:831
unsigned m_fontSize
Definition WPG1Parser.h:98
bool m_success
Definition WPG1Parser.h:85
librevenge::RVNGPropertyListVector m_gradient
Definition WPG1Parser.h:96
void handleGraphicsTextTypeTwo()
Definition WPG1Parser.cpp:1200
void handlePostscriptTypeTwo()
Definition WPG1Parser.cpp:1048
unsigned char m_textAlign
Definition WPG1Parser.h:100
boost::optional< long > m_groupEnd
Definition WPG1Parser.h:84
bool m_exit
Definition WPG1Parser.h:86
libwpg::WPGColor m_brushForeColor
Definition WPG1Parser.h:93
void handleGraphicsTextAttributes()
Definition WPG1Parser.cpp:1102
libwpg::WPGColor m_fontColor
Definition WPG1Parser.h:97
void handleFillAttributes()
Definition WPG1Parser.cpp:412
bool parse() override
Definition WPG1Parser.cpp:175
void handlePolygon()
Definition WPG1Parser.cpp:612
void handlePolyline()
Definition WPG1Parser.cpp:554
void handleGraphicsTextTypeOne()
Definition WPG1Parser.cpp:1133
void handleBitmapTypeTwo()
Definition WPG1Parser.cpp:953
long m_recordEnd
Definition WPG1Parser.h:83
libwpg::WPGColor m_penForeColor
Definition WPG1Parser.h:91
void handleBitmapTypeOne()
Definition WPG1Parser.cpp:902
void closeGroup(bool force=false)
Definition WPG1Parser.cpp:742
void handleLineAttributes()
Definition WPG1Parser.cpp:476
void handleColormap()
Definition WPG1Parser.cpp:391
void handleGroup()
Definition WPG1Parser.cpp:725
void handleGraphicsTextTypeThree()
void handlePageFormat()
Definition WPG1Parser.cpp:335
bool decodeRLE(std::vector< unsigned char > &buffer, unsigned width, unsigned height, unsigned depth)
Definition WPG1Parser.cpp:756
int m_recordLength
Definition WPG1Parser.h:82
libwpg::WPGColor m_brushBackColor
Definition WPG1Parser.h:94
bool m_graphicsStarted
Definition WPG1Parser.h:87
int m_height
Definition WPG1Parser.h:89
WPGXParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter)
Definition WPGXParser.cpp:30
Definition WPGBitmap.h:40
Definition WPGColor.h:35
Definition WPGDashArray.h:37

Generated for libwpg by doxygen 1.14.0