Blame src/lib/MSPUBTypes.h

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: */