MSPUBParser97.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* libmspub
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) 2012 Brennan Vincent <brennanv@email.arizona.edu>
17  *
18  * All Rights Reserved.
19  *
20  * For minor contributions see the git repository.
21  *
22  * Alternatively, the contents of this file may be used under the terms of
23  * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
24  * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
25  * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
26  * instead of those above.
27  */
28 
29 #ifndef __MSPUBPARSER97_H__
30 #define __MSPUBPARSER97_H__
31 
32 #include "MSPUBParser2k.h"
33 
34 namespace libmspub
35 {
37 {
38  struct TextInfo97
39  {
40  std::vector<unsigned char> m_chars;
41  std::vector<unsigned> m_paragraphEnds;
42  std::vector<unsigned> m_shapeEnds;
43  TextInfo97(const std::vector<unsigned char> &chars,
44  const std::vector<unsigned> &paragraphEnds,
45  const std::vector<unsigned> &shapeEnds)
46  : m_chars(chars), m_paragraphEnds(paragraphEnds),
47  m_shapeEnds(shapeEnds)
48  {
49  }
50  };
51 
52  struct SpanInfo97
53  {
54  unsigned m_spanEnd;
56  SpanInfo97(unsigned spanEnd, const CharacterStyle &style)
57  : m_spanEnd(spanEnd), m_style(style)
58  {
59  }
60  };
61 
62  bool m_isBanner;
63 
64  bool parseDocument(WPXInputStream *input);
65  int translateCoordinateIfNecessary(int coordinate) const;
66  unsigned getFirstLineOffset() const;
67  unsigned getSecondLineOffset() const;
68  unsigned getShapeFillTypeOffset() const;
69  unsigned getShapeFillColorOffset() const;
70  unsigned short getTextMarker() const;
71  unsigned getTextIdOffset() const;
72  CharacterStyle readCharacterStyle(WPXInputStream *input,
73  unsigned length);
74  void parseContentsTextIfNecessary(WPXInputStream *input);
75  std::vector<SpanInfo97> getSpansInfo(WPXInputStream *input,
76  unsigned prop1Index, unsigned prop2Index, unsigned prop3Index,
77  unsigned prop3End);
78  TextInfo97 getTextInfo(WPXInputStream *input, unsigned length);
79 public:
80  MSPUBParser97(WPXInputStream *input, MSPUBCollector *collector);
81  bool parse();
82 };
83 }
84 
85 #endif // __MSPUBPARSER97_H__
86 
87 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
std::vector< unsigned char > m_chars
Definition: MSPUBParser97.h:40
void parseContentsTextIfNecessary(WPXInputStream *input)
Definition: MSPUBParser97.cpp:83
bool m_isBanner
Definition: MSPUBParser97.h:62
Definition: MSPUBParser2k.h:41
CharacterStyle readCharacterStyle(WPXInputStream *input, unsigned length)
Definition: MSPUBParser97.cpp:210
unsigned getShapeFillColorOffset() const
Definition: MSPUBParser97.cpp:303
unsigned getTextIdOffset() const
Definition: MSPUBParser97.cpp:45
TextInfo97(const std::vector< unsigned char > &chars, const std::vector< unsigned > &paragraphEnds, const std::vector< unsigned > &shapeEnds)
Definition: MSPUBParser97.h:43
unsigned getShapeFillTypeOffset() const
Definition: MSPUBParser97.cpp:298
std::vector< SpanInfo97 > getSpansInfo(WPXInputStream *input, unsigned prop1Index, unsigned prop2Index, unsigned prop3Index, unsigned prop3End)
Definition: MSPUBParser97.cpp:162
Definition: MSPUBParser97.h:36
int translateCoordinateIfNecessary(int coordinate) const
Definition: MSPUBParser97.cpp:276
unsigned short getTextMarker() const
Definition: MSPUBParser97.cpp:40
std::vector< unsigned > m_shapeEnds
Definition: MSPUBParser97.h:42
Definition: MSPUBParser97.h:38
bool parseDocument(WPXInputStream *input)
Definition: MSPUBParser97.cpp:67
Definition: MSPUBParser97.h:52
Definition: MSPUBTypes.h:108
bool parse()
Definition: MSPUBParser97.cpp:50
SpanInfo97(unsigned spanEnd, const CharacterStyle &style)
Definition: MSPUBParser97.h:56
unsigned getFirstLineOffset() const
Definition: MSPUBParser97.cpp:288
Definition: MSPUBCollector.h:66
std::vector< unsigned > m_paragraphEnds
Definition: MSPUBParser97.h:41
TextInfo97 getTextInfo(WPXInputStream *input, unsigned length)
Definition: MSPUBParser97.cpp:252
unsigned m_spanEnd
Definition: MSPUBParser97.h:54
MSPUBParser97(WPXInputStream *input, MSPUBCollector *collector)
Definition: MSPUBParser97.cpp:34
CharacterStyle m_style
Definition: MSPUBParser97.h:55
unsigned getSecondLineOffset() const
Definition: MSPUBParser97.cpp:293

Generated for libmspub by doxygen 1.8.6