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
/* libcdr
3
* Version: MPL 1.1 / GPLv2+ / LGPLv2+
4
*
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License or as specified alternatively below. You may obtain a copy of
8
* the License at http://www.mozilla.org/MPL/
9
*
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
13
* License.
14
*
15
* Major Contributor(s):
16
* Copyright (C) 2011 Fridrich Strba <fridrich.strba@bluewin.ch>
17
*
18
*
19
* All Rights Reserved.
20
*
21
* For minor contributions see the git repository.
22
*
23
* Alternatively, the contents of this file may be used under the terms of
24
* either the GNU General Public License Version 2 or later (the "GPLv2+"), or
25
* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
26
* in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
27
* instead of those above.
28
*/
29
30
#ifndef __CMXPARSER_H__
31
#define __CMXPARSER_H__
32
33
#include <stdio.h>
34
#include <iostream>
35
#include <vector>
36
#include <map>
37
#include <libwpd-stream/libwpd-stream.h>
38
#include "
CDRTypes.h
"
39
#include "
CommonParser.h
"
40
41
namespace
libcdr
42
{
43
44
class
CDRCollector;
45
46
class
CMXParser
:
protected
CommonParser
47
{
48
public
:
49
explicit
CMXParser
(
CDRCollector
*collector);
50
virtual
~CMXParser
();
51
bool
parseRecords
(WPXInputStream *input,
long
size = -1,
unsigned
level = 0);
52
53
private
:
54
CMXParser
();
55
CMXParser
(
const
CMXParser
&);
56
CMXParser
&
operator=
(
const
CMXParser
&);
57
bool
parseRecord
(WPXInputStream *input,
unsigned
level = 0);
58
void
readRecord
(
unsigned
fourCC,
unsigned
&length, WPXInputStream *input);
59
60
void
readCMXHeader
(WPXInputStream *input);
61
void
readDisp
(WPXInputStream *input,
unsigned
length);
62
void
readCcmm
(WPXInputStream *input,
long
&recordEnd);
63
void
readPage
(WPXInputStream *input,
unsigned
length);
64
65
// Command readers
66
void
readBeginPage
(WPXInputStream *input);
67
void
readBeginLayer
(WPXInputStream *input);
68
void
readBeginGroup
(WPXInputStream *input);
69
void
readPolyCurve
(WPXInputStream *input);
70
void
readEllipse
(WPXInputStream *input);
71
void
readRectangle
(WPXInputStream *input);
72
void
readJumpAbsolute
(WPXInputStream *input);
73
74
// Types readers
75
CDRTransform
readMatrix
(WPXInputStream *input);
76
CDRBox
readBBox
(WPXInputStream *input);
77
void
readFill
(WPXInputStream *input);
78
79
// Complex types readers
80
void
readRenderingAttributes
(WPXInputStream *input);
81
82
bool
m_bigEndian
;
83
unsigned
short
m_unit
;
84
double
m_scale
;
85
double
m_xmin
,
m_xmax
,
m_ymin
,
m_ymax
;
86
unsigned
m_indexSectionOffset
;
87
unsigned
m_infoSectionOffset
;
88
unsigned
m_thumbnailOffset
;
89
unsigned
m_fillIndex
;
90
unsigned
m_nextInstructionOffset
;
91
};
92
93
}
// namespace libcdr
94
95
#endif // __CMXPARSER_H__
96
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Generated for libcdr by
doxygen
1.8.1.2