Main Page
Namespaces
Classes
Files
File List
File Members
CMXParser.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 libcdr 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 __CMXPARSER_H__
11
#define __CMXPARSER_H__
12
13
#include <stdio.h>
14
#include <iostream>
15
#include <vector>
16
#include <map>
17
#include <libwpd-stream/libwpd-stream.h>
18
#include "
CDRTypes.h
"
19
#include "
CommonParser.h
"
20
21
namespace
libcdr
22
{
23
24
class
CDRCollector;
25
26
class
CMXParser
:
protected
CommonParser
27
{
28
public
:
29
explicit
CMXParser
(
CDRCollector
*collector);
30
virtual
~CMXParser
();
31
bool
parseRecords
(WPXInputStream *input,
long
size = -1,
unsigned
level = 0);
32
33
private
:
34
CMXParser
();
35
CMXParser
(
const
CMXParser
&);
36
CMXParser
&
operator=
(
const
CMXParser
&);
37
bool
parseRecord
(WPXInputStream *input,
unsigned
level = 0);
38
void
readRecord
(
unsigned
fourCC,
unsigned
&length, WPXInputStream *input);
39
40
void
readCMXHeader
(WPXInputStream *input);
41
void
readDisp
(WPXInputStream *input,
unsigned
length);
42
void
readCcmm
(WPXInputStream *input,
long
&recordEnd);
43
void
readPage
(WPXInputStream *input,
unsigned
length);
44
45
// Command readers
46
void
readBeginPage
(WPXInputStream *input);
47
void
readBeginLayer
(WPXInputStream *input);
48
void
readBeginGroup
(WPXInputStream *input);
49
void
readPolyCurve
(WPXInputStream *input);
50
void
readEllipse
(WPXInputStream *input);
51
void
readRectangle
(WPXInputStream *input);
52
void
readJumpAbsolute
(WPXInputStream *input);
53
54
// Types readers
55
CDRTransform
readMatrix
(WPXInputStream *input);
56
CDRBox
readBBox
(WPXInputStream *input);
57
void
readFill
(WPXInputStream *input);
58
59
// Complex types readers
60
void
readRenderingAttributes
(WPXInputStream *input);
61
62
bool
m_bigEndian
;
63
unsigned
short
m_unit
;
64
double
m_scale
;
65
double
m_xmin
,
m_xmax
,
m_ymin
,
m_ymax
;
66
unsigned
m_indexSectionOffset
;
67
unsigned
m_infoSectionOffset
;
68
unsigned
m_thumbnailOffset
;
69
unsigned
m_fillIndex
;
70
unsigned
m_nextInstructionOffset
;
71
};
72
73
}
// namespace libcdr
74
75
#endif // __CMXPARSER_H__
76
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Generated for libcdr by
doxygen
1.8.3.1