|
rpm-build |
9243a4 |
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
rpm-build |
9243a4 |
/*
|
|
rpm-build |
9243a4 |
* This file is part of the libmspub project.
|
|
rpm-build |
9243a4 |
*
|
|
rpm-build |
9243a4 |
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
rpm-build |
9243a4 |
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
rpm-build |
9243a4 |
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
rpm-build |
9243a4 |
*/
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
#ifndef INCLUDED_MSPUBTYPES_H
|
|
rpm-build |
9243a4 |
#define INCLUDED_MSPUBTYPES_H
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
#include <string>
|
|
rpm-build |
9243a4 |
#include <vector>
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
#include <boost/optional.hpp>
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
#include "ListInfo.h"
|
|
rpm-build |
9243a4 |
#include "MSPUBBlockID.h"
|
|
rpm-build |
9243a4 |
#include "MSPUBBlockType.h"
|
|
rpm-build |
9243a4 |
#include "MSPUBConstants.h"
|
|
rpm-build |
9243a4 |
#include "MSPUBContentChunkType.h"
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
namespace libmspub
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
enum BorderPosition
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
INSIDE_SHAPE,
|
|
rpm-build |
9243a4 |
HALF_INSIDE_SHAPE,
|
|
rpm-build |
9243a4 |
OUTSIDE_SHAPE
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
enum SuperSubType
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
NO_SUPER_SUB,
|
|
rpm-build |
9243a4 |
SUPERSCRIPT,
|
|
rpm-build |
9243a4 |
SUBSCRIPT
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
enum class Underline
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
None,
|
|
rpm-build |
9243a4 |
Single,
|
|
rpm-build |
9243a4 |
WordsOnly,
|
|
rpm-build |
9243a4 |
Double,
|
|
rpm-build |
9243a4 |
Dotted,
|
|
rpm-build |
9243a4 |
Thick,
|
|
rpm-build |
9243a4 |
Dash,
|
|
rpm-build |
9243a4 |
DotDash,
|
|
rpm-build |
9243a4 |
DotDotDash,
|
|
rpm-build |
9243a4 |
Wave,
|
|
rpm-build |
9243a4 |
ThickWave,
|
|
rpm-build |
9243a4 |
ThickDot,
|
|
rpm-build |
9243a4 |
ThickDash,
|
|
rpm-build |
9243a4 |
ThickDotDash,
|
|
rpm-build |
9243a4 |
ThickDotDotDash,
|
|
rpm-build |
9243a4 |
LongDash,
|
|
rpm-build |
9243a4 |
ThickLongDash,
|
|
rpm-build |
9243a4 |
DoubleWave,
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
enum Alignment
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
LEFT = 0,
|
|
rpm-build |
9243a4 |
CENTER = 2,
|
|
rpm-build |
9243a4 |
RIGHT = 1,
|
|
rpm-build |
9243a4 |
JUSTIFY = 6
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct EscherContainerInfo
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
unsigned short initial;
|
|
rpm-build |
9243a4 |
unsigned short type;
|
|
rpm-build |
9243a4 |
unsigned long contentsLength;
|
|
rpm-build |
9243a4 |
unsigned long contentsOffset;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct MSPUBBlockInfo
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
MSPUBBlockInfo() : id(0), type(0), startPosition(0), dataOffset(0), dataLength(0), data(0), stringData() { }
|
|
rpm-build |
9243a4 |
unsigned id;
|
|
rpm-build |
9243a4 |
unsigned type;
|
|
rpm-build |
9243a4 |
unsigned long startPosition;
|
|
rpm-build |
9243a4 |
unsigned long dataOffset;
|
|
rpm-build |
9243a4 |
unsigned long dataLength;
|
|
rpm-build |
9243a4 |
unsigned data;
|
|
rpm-build |
9243a4 |
std::vector<unsigned char> stringData;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct ContentChunkReference
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
ContentChunkReference() : type(0), offset(0), end(0), seqNum(0), parentSeqNum(0) { }
|
|
rpm-build |
9243a4 |
ContentChunkReference(unsigned t, unsigned long o, unsigned long e, unsigned sn, unsigned psn) :
|
|
rpm-build |
9243a4 |
type(t), offset(o), end(e), seqNum(sn), parentSeqNum(psn) {}
|
|
rpm-build |
9243a4 |
unsigned type;
|
|
rpm-build |
9243a4 |
unsigned long offset;
|
|
rpm-build |
9243a4 |
unsigned long end; //offset of the last element plus one.
|
|
rpm-build |
9243a4 |
unsigned seqNum;
|
|
rpm-build |
9243a4 |
unsigned parentSeqNum;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct QuillChunkReference
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
QuillChunkReference() : length(0), offset(0), id(0), name(), name2() { }
|
|
rpm-build |
9243a4 |
unsigned long length;
|
|
rpm-build |
9243a4 |
unsigned long offset;
|
|
rpm-build |
9243a4 |
unsigned short id;
|
|
rpm-build |
9243a4 |
std::string name;
|
|
rpm-build |
9243a4 |
std::string name2;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct CharacterStyle
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
CharacterStyle() :
|
|
rpm-build |
9243a4 |
underline(), italic(), bold(),
|
|
rpm-build |
9243a4 |
textSizeInPt(), colorIndex(-1), fontIndex(), superSubType(NO_SUPER_SUB)
|
|
rpm-build |
9243a4 |
, outline(false)
|
|
rpm-build |
9243a4 |
, shadow(false)
|
|
rpm-build |
9243a4 |
, smallCaps(false)
|
|
rpm-build |
9243a4 |
, allCaps(false)
|
|
rpm-build |
9243a4 |
, emboss(false)
|
|
rpm-build |
9243a4 |
, engrave(false)
|
|
rpm-build |
9243a4 |
, textScale()
|
|
rpm-build |
9243a4 |
, lcid()
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
}
|
|
rpm-build |
9243a4 |
boost::optional<Underline> underline;
|
|
rpm-build |
9243a4 |
bool italic;
|
|
rpm-build |
9243a4 |
bool bold;
|
|
rpm-build |
9243a4 |
boost::optional<double> textSizeInPt;
|
|
rpm-build |
9243a4 |
int colorIndex;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> fontIndex;
|
|
rpm-build |
9243a4 |
SuperSubType superSubType;
|
|
rpm-build |
9243a4 |
bool outline;
|
|
rpm-build |
9243a4 |
bool shadow;
|
|
rpm-build |
9243a4 |
bool smallCaps;
|
|
rpm-build |
9243a4 |
bool allCaps;
|
|
rpm-build |
9243a4 |
bool emboss;
|
|
rpm-build |
9243a4 |
bool engrave;
|
|
rpm-build |
9243a4 |
boost::optional<double> textScale;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> lcid;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
enum LineSpacingType
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
LINE_SPACING_SP,
|
|
rpm-build |
9243a4 |
LINE_SPACING_PT
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct LineSpacingInfo
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
LineSpacingType m_type;
|
|
rpm-build |
9243a4 |
double m_amount;
|
|
rpm-build |
9243a4 |
LineSpacingInfo() : m_type(LINE_SPACING_SP), m_amount(1)
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
}
|
|
rpm-build |
9243a4 |
LineSpacingInfo(LineSpacingType type, double amount) :
|
|
rpm-build |
9243a4 |
m_type(type), m_amount(amount)
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
}
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct ParagraphStyle
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
boost::optional<Alignment> m_align;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> m_defaultCharStyleIndex;
|
|
rpm-build |
9243a4 |
boost::optional<LineSpacingInfo> m_lineSpacing;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> m_spaceBeforeEmu;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> m_spaceAfterEmu;
|
|
rpm-build |
9243a4 |
boost::optional<int> m_firstLineIndentEmu;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> m_leftIndentEmu;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> m_rightIndentEmu;
|
|
rpm-build |
9243a4 |
boost::optional<ListInfo> m_listInfo;
|
|
rpm-build |
9243a4 |
std::vector<unsigned> m_tabStopsInEmu;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> m_dropCapLines;
|
|
rpm-build |
9243a4 |
boost::optional<unsigned> m_dropCapLetters;
|
|
rpm-build |
9243a4 |
ParagraphStyle() :
|
|
rpm-build |
9243a4 |
m_align(), m_defaultCharStyleIndex(), m_lineSpacing(), m_spaceBeforeEmu(),
|
|
rpm-build |
9243a4 |
m_spaceAfterEmu(), m_firstLineIndentEmu(), m_leftIndentEmu(),
|
|
rpm-build |
9243a4 |
m_rightIndentEmu(), m_listInfo(), m_tabStopsInEmu(), m_dropCapLines(), m_dropCapLetters()
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
}
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct TextSpan
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
TextSpan(const std::vector<unsigned char> &c, const CharacterStyle &s) : chars(c), style(s) { }
|
|
rpm-build |
9243a4 |
std::vector<unsigned char> chars;
|
|
rpm-build |
9243a4 |
CharacterStyle style;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct TextParagraph
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
TextParagraph(const std::vector<TextSpan> &sp, const ParagraphStyle &st) : spans(sp), style(st) { }
|
|
rpm-build |
9243a4 |
std::vector<TextSpan> spans;
|
|
rpm-build |
9243a4 |
ParagraphStyle style;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
struct Color
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
Color() : r(0), g(0), b(0) { }
|
|
rpm-build |
9243a4 |
Color(unsigned char red, unsigned char green, unsigned char blue) : r(red), g(green), b(blue) { }
|
|
rpm-build |
9243a4 |
unsigned char r, g, b;
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
enum PageType
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
MASTER,
|
|
rpm-build |
9243a4 |
NORMAL,
|
|
rpm-build |
9243a4 |
DUMMY_PAGE
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
enum ImgType
|
|
rpm-build |
9243a4 |
{
|
|
rpm-build |
9243a4 |
UNKNOWN,
|
|
rpm-build |
9243a4 |
PNG,
|
|
rpm-build |
9243a4 |
JPEG,
|
|
rpm-build |
9243a4 |
WMF,
|
|
rpm-build |
9243a4 |
EMF,
|
|
rpm-build |
9243a4 |
TIFF,
|
|
rpm-build |
9243a4 |
DIB,
|
|
rpm-build |
9243a4 |
PICT,
|
|
rpm-build |
9243a4 |
JPEGCMYK
|
|
rpm-build |
9243a4 |
};
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
} // namespace libmspub
|
|
rpm-build |
9243a4 |
|
|
rpm-build |
9243a4 |
#endif /* INCLUDED_MSPUBTYPES_H */
|
|
rpm-build |
9243a4 |
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
|