Blame src/lib/MSPUBTypes.h

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