libwps_internal.h File Reference documentation

Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
libwps_internal.h File Reference
`#include <assert.h>`
`#include <algorithm>`
`#include <cmath>`
`#include <iostream>`
`#include <map>`
`#include <memory>`
`#include <string>`
`#include <vector>`
`#include <librevenge-stream/librevenge-stream.h>`
`#include <librevenge/librevenge.h>`
`#include <inttypes.h>`

Go to the source code of this file.

## Classes
struct | WPS_shared_ptr_noop_deleter< T >
| a noop deleter used to transform a librevenge pointer in a false std::shared_ptr More...
class | libwps::VersionException
class | libwps::FileException
class | libwps::ParseException
class | libwps::PasswordException
class | libwps::GenericException
struct | WPSColumnDefinition
struct | WPSColumnProperties
struct | WPSColor
| the class to store a color More...
struct | WPSBorder
| a border list More...
struct | WPSField
| a field More...
class | Vec2< T >
| small class which defines a vector with 2 elements More...
struct | Vec2< T >::PosSizeLtX
| internal struct used to create sorted map, sorted by X More...
struct | Vec2< T >::PosSizeLtY
| internal struct used to create sorted map, sorted by Y More...
class | WPSBox2< T >
| small class which defines a 2D WPSBox More...
struct | WPSBox2< T >::PosSizeLt
| internal struct used to create sorted map, sorted first min then max More...
class | WPSVec3< T >
| small class which defines a vector with 3 elements More...
struct | WPSVec3< T >::PosSizeLt
| internal struct used to create sorted map, sorted by X, Y, Z More...
struct | WPSEmbeddedObject
| small class use to define a embedded object More...
class | WPSTransformation
| a transformation which stored the first row of a 3x3 perspective matrix More...

## Namespaces
namespace | libwps

## Macros
#define | M_PI 3.14159265358979323846
#define | WPS_FALLTHROUGH ((void) 0)
| fall through attributes
#define | WPS_ATTRIBUTE_PRINTF(fmt, arg)
#define | WPS_N_ELEMENTS(m) sizeof(m)/sizeof(m[0])
#define | WPS_DEBUG_MSG(M)
#define | WPS_LE_GET_GUINT16(p)
#define | WPS_LE_GET_GUINT32(p)
#define | WPS_LE_PUT_GUINT16(p, v)
#define | WPS_LE_PUT_GUINT32(p, v)
#define | WPS_EXTRA_LARGE_BIT 1
#define | WPS_VERY_LARGE_BIT 2
#define | WPS_LARGE_BIT 4
#define | WPS_SMALL_PRINT_BIT 8
#define | WPS_FINE_PRINT_BIT 0x10
#define | WPS_SUPERSCRIPT_BIT 0x20
#define | WPS_SUBSCRIPT_BIT 0x40
#define | WPS_OUTLINE_BIT 0x80
#define | WPS_ITALICS_BIT 0x100
#define | WPS_SHADOW_BIT 0x200
#define | WPS_REDLINE_BIT 0x400
#define | WPS_DOUBLE_UNDERLINE_BIT 0x800
#define | WPS_BOLD_BIT 0x1000
#define | WPS_STRIKEOUT_BIT 0x2000
#define | WPS_UNDERLINE_BIT 0x4000
#define | WPS_SMALL_CAPS_BIT 0x8000
#define | WPS_BLINK_BIT 0x10000L
#define | WPS_REVERSEVIDEO_BIT 0x20000L
#define | WPS_ALL_CAPS_BIT 0x40000L
#define | WPS_EMBOSS_BIT 0x80000L
#define | WPS_ENGRAVE_BIT 0x100000L
#define | WPS_OVERLINE_BIT 0x400000L
#define | WPS_HIDDEN_BIT 0x800000L
#define | WPS_PAGE_BREAK 0x00
#define | WPS_SOFT_PAGE_BREAK 0x01
#define | WPS_COLUMN_BREAK 0x02
#define | WPS_LEFT 0x00
#define | WPS_RIGHT 0x01
#define | WPS_CENTER 0x02
#define | WPS_TOP 0x03
#define | WPS_BOTTOM 0x04

## Typedefs
typedef std::shared_ptr< librevenge::RVNGInputStream > | RVNGInputStreamPtr
| shared pointer to librevenge::RVNGInputStream
typedef std::shared_ptr< WPSCell > | WPSCellPtr
| shared pointer to WPSCell
typedef std::shared_ptr< WPSListener > | WPSListenerPtr
| shared pointer to WPSListener
typedef std::shared_ptr< WPSContentListener > | WPSContentListenerPtr
| shared pointer to WPSContentListener
typedef std::shared_ptr< WPSHeader > | WPSHeaderPtr
| shared pointer to WPSHeader
typedef std::shared_ptr< WPSSubDocument > | WPSSubDocumentPtr
| shared pointer to WPSSubDocument
typedef std::shared_ptr< WKSContentListener > | WKSContentListenerPtr
| shared pointer to WKSContentListener
typedef std::shared_ptr< WKSSubDocument > | WKSSubDocumentPtr
| shared pointer to WKSSubDocument
typedef Vec2< bool > | Vec2b
| Vec2 of bool.
typedef Vec2< int > | Vec2i
| Vec2 of int.
typedef Vec2< float > | Vec2f
| Vec2 of float.
typedef WPSBox2< int > | WPSBox2i
| WPSBox2 of int.
typedef WPSBox2< float > | WPSBox2f
| WPSBox2 of float.
typedef WPSVec3< unsigned char > | WPSVec3uc
| WPSVec3 of unsigned char.
typedef WPSVec3< int > | WPSVec3i
| WPSVec3 of int.
typedef WPSVec3< float > | WPSVec3f
| WPSVec3 of float.

## Enumerations
enum | libwps::NumberingType { libwps::NONE , libwps::BULLET , libwps::ARABIC , libwps::LOWERCASE , libwps::UPPERCASE , libwps::LOWERCASE_ROMAN , libwps::UPPERCASE_ROMAN }
enum | libwps::SubDocumentType { libwps::DOC_NONE , libwps::DOC_HEADER_FOOTER , libwps::DOC_NOTE , libwps::DOC_TABLE , libwps::DOC_TEXT_BOX , libwps::DOC_COMMENT_ANNOTATION , libwps::DOC_CHART_ZONE }
enum | libwps::Justification { libwps::JustificationLeft , libwps::JustificationFull , libwps::JustificationCenter , libwps::JustificationRight , libwps::JustificationFullAllLines }
enum | { libwps::NoBreakBit = 0x1 , libwps::NoBreakWithNextBit =0x2 }

## Functions
uint8_t | libwps::readU8 (librevenge::RVNGInputStream *input)
uint16_t | libwps::readU16 (librevenge::RVNGInputStream *input)
uint32_t | libwps::readU32 (librevenge::RVNGInputStream *input)
int8_t | libwps::read8 (librevenge::RVNGInputStream *input)
int16_t | libwps::read16 (librevenge::RVNGInputStream *input)
int32_t | libwps::read32 (librevenge::RVNGInputStream *input)
uint8_t | libwps::readU8 (RVNGInputStreamPtr const &input)
uint16_t | libwps::readU16 (RVNGInputStreamPtr const &input)
uint32_t | libwps::readU32 (RVNGInputStreamPtr const &input)
int8_t | libwps::read8 (RVNGInputStreamPtr const &input)
int16_t | libwps::read16 (RVNGInputStreamPtr const &input)
int32_t | libwps::read32 (RVNGInputStreamPtr const &input)
bool | libwps::readDouble4 (RVNGInputStreamPtr &input, double &res, bool &isNaN)
| read a double store with 4 bytes: mantisse 2.5 bytes, exponent 1.5 bytes
bool | libwps::readDouble8 (RVNGInputStreamPtr &input, double &res, bool &isNaN)
| read a double store with 8 bytes: mantisse 6.5 bytes, exponent 1.5 bytes
bool | libwps::readDouble10 (RVNGInputStreamPtr &input, double &res, bool &isNaN)
| read a double store with 10 bytes: mantisse 8 bytes, exponent 2 bytes
bool | libwps::readDouble2Inv (RVNGInputStreamPtr &input, double &res, bool &isNaN)
| read a double store with 2 bytes: exponent 1.5 bytes, kind of mantisse 0.5 bytes
bool | libwps::readDouble4Inv (RVNGInputStreamPtr &input, double &res, bool &isNaN)
| read a double store with 4 bytes: exponent 3.5 bytes, mantisse 0.5 bytes
bool | libwps::readData (RVNGInputStreamPtr &input, unsigned long sz, librevenge::RVNGBinaryData &data)
| try to read sz bytes from input and store them in a librevenge::RVNGBinaryData
bool | libwps::readDataToEnd (RVNGInputStreamPtr &input, librevenge::RVNGBinaryData &data)
| try to read the last bytes from input and store them in a librevenge::RVNGBinaryData
void | libwps::appendUnicode (uint32_t val, librevenge::RVNGString &buffer)
| adds an unicode character to a string ( with correct encoding ).
std::string | libwps::numberingTypeToString (NumberingType type)
std::string | libwps::getCellName (Vec2i const &cellPos, Vec2b const &relative=Vec2b(true, true))
| returns the cell name corresponding to a cell's position
bool | libwps::encodeLotusPassword (char const *password, uint16_t &key, std::vector< uint8_t > &keys, uint8_t const (&defValues)[16])
| returns the checksum and the keys (to encode a lotus file) given a password file

## Macro Definition Documentation

## ◆ M_PI

#define M_PI 3.14159265358979323846

## ◆ WPS_ALL_CAPS_BIT

#define WPS_ALL_CAPS_BIT 0x40000L

## ◆ WPS_ATTRIBUTE_PRINTF

#define WPS_ATTRIBUTE_PRINTF | ( |  | fmt,
|  |  | arg
| ) |  |

## ◆ WPS_BLINK_BIT

#define WPS_BLINK_BIT 0x10000L

## ◆ WPS_BOLD_BIT

#define WPS_BOLD_BIT 0x1000

## ◆ WPS_BOTTOM

#define WPS_BOTTOM 0x04

## ◆ WPS_CENTER

#define WPS_CENTER 0x02

## ◆ WPS_COLUMN_BREAK

#define WPS_COLUMN_BREAK 0x02

## ◆ WPS_DEBUG_MSG

#define WPS_DEBUG_MSG | ( |  | M | ) |

## ◆ WPS_DOUBLE_UNDERLINE_BIT

#define WPS_DOUBLE_UNDERLINE_BIT 0x800

## ◆ WPS_EMBOSS_BIT

#define WPS_EMBOSS_BIT 0x80000L

## ◆ WPS_ENGRAVE_BIT

#define WPS_ENGRAVE_BIT 0x100000L

## ◆ WPS_EXTRA_LARGE_BIT

#define WPS_EXTRA_LARGE_BIT 1

## ◆ WPS_FALLTHROUGH

#define WPS_FALLTHROUGH ((void) 0)

fall through attributes

## ◆ WPS_FINE_PRINT_BIT

#define WPS_FINE_PRINT_BIT 0x10

## ◆ WPS_HIDDEN_BIT

#define WPS_HIDDEN_BIT 0x800000L

## ◆ WPS_ITALICS_BIT

#define WPS_ITALICS_BIT 0x100

## ◆ WPS_LARGE_BIT

#define WPS_LARGE_BIT 4

## ◆ WPS_LE_GET_GUINT16

#define WPS_LE_GET_GUINT16 | ( |  | p | ) |

Value:
uint16_t(((reinterpret_cast<uint8_t const *>(p))[0] << 0) | \
((reinterpret_cast<uint8_t const *>(p))[1] << 8))

## ◆ WPS_LE_GET_GUINT32

#define WPS_LE_GET_GUINT32 | ( |  | p | ) |

Value:
uint32_t(((reinterpret_cast<uint8_t const *>(p))[0] << 0) | \
((reinterpret_cast<uint8_t const *>(p))[1] << 8) | \
((reinterpret_cast<uint8_t const *>(p))[2] << 16) | \
((reinterpret_cast<uint8_t const *>(p))[3] << 24))

## ◆ WPS_LE_PUT_GUINT16

#define WPS_LE_PUT_GUINT16 | ( |  | p,
|  |  | v
| ) |  |

Value:
*(reinterpret_cast<uint8_t*>(p)) = uint8_t(v); \
*((reinterpret_cast<uint8_t*>(p)) + 1) = uint8_t((v) >> 8)

## ◆ WPS_LE_PUT_GUINT32

#define WPS_LE_PUT_GUINT32 | ( |  | p,
|  |  | v
| ) |  |

Value:
*(reinterpret_cast<uint8_t*>(p)) = uint8_t(v); \
*((reinterpret_cast<uint8_t*>(p)) + 1) = uint8_t((v) >> 8); \
*((reinterpret_cast<uint8_t*>(p)) + 2) = uint8_t((v) >> 16); \
*((reinterpret_cast<uint8_t*>(p)) + 3) = uint8_t((v) >> 24)

## ◆ WPS_LEFT

#define WPS_LEFT 0x00

## ◆ WPS_N_ELEMENTS

#define WPS_N_ELEMENTS | ( |  | m | ) | sizeof(m)/sizeof(m[0])

## ◆ WPS_OUTLINE_BIT

#define WPS_OUTLINE_BIT 0x80

## ◆ WPS_OVERLINE_BIT

#define WPS_OVERLINE_BIT 0x400000L

## ◆ WPS_PAGE_BREAK

#define WPS_PAGE_BREAK 0x00

## ◆ WPS_REDLINE_BIT

#define WPS_REDLINE_BIT 0x400

## ◆ WPS_REVERSEVIDEO_BIT

#define WPS_REVERSEVIDEO_BIT 0x20000L

## ◆ WPS_RIGHT

#define WPS_RIGHT 0x01

## ◆ WPS_SHADOW_BIT

#define WPS_SHADOW_BIT 0x200

## ◆ WPS_SMALL_CAPS_BIT

#define WPS_SMALL_CAPS_BIT 0x8000

## ◆ WPS_SMALL_PRINT_BIT

#define WPS_SMALL_PRINT_BIT 8

## ◆ WPS_SOFT_PAGE_BREAK

#define WPS_SOFT_PAGE_BREAK 0x01

## ◆ WPS_STRIKEOUT_BIT

#define WPS_STRIKEOUT_BIT 0x2000

## ◆ WPS_SUBSCRIPT_BIT

#define WPS_SUBSCRIPT_BIT 0x40

## ◆ WPS_SUPERSCRIPT_BIT

#define WPS_SUPERSCRIPT_BIT 0x20

## ◆ WPS_TOP

#define WPS_TOP 0x03

## ◆ WPS_UNDERLINE_BIT

#define WPS_UNDERLINE_BIT 0x4000

## ◆ WPS_VERY_LARGE_BIT

#define WPS_VERY_LARGE_BIT 2

## Typedef Documentation

## ◆ RVNGInputStreamPtr

typedef std::shared_ptr<librevenge::RVNGInputStream> RVNGInputStreamPtr

shared pointer to librevenge::RVNGInputStream

## ◆ Vec2b

typedef Vec2<bool> Vec2b

Vec2 of bool.

## ◆ Vec2f

typedef Vec2<float> Vec2f

Vec2 of float.

## ◆ Vec2i

typedef Vec2<int> Vec2i

Vec2 of int.

## ◆ WKSContentListenerPtr

typedef std::shared_ptr<WKSContentListener> WKSContentListenerPtr

shared pointer to WKSContentListener

## ◆ WKSSubDocumentPtr

typedef std::shared_ptr<WKSSubDocument> WKSSubDocumentPtr

shared pointer to WKSSubDocument

## ◆ WPSBox2f

typedef WPSBox2<float> WPSBox2f

WPSBox2 of float.

## ◆ WPSBox2i

typedef WPSBox2<int> WPSBox2i

WPSBox2 of int.

## ◆ WPSCellPtr

typedef std::shared_ptr<WPSCell> WPSCellPtr

shared pointer to WPSCell

## ◆ WPSContentListenerPtr

typedef std::shared_ptr<WPSContentListener> WPSContentListenerPtr

shared pointer to WPSContentListener

## ◆ WPSHeaderPtr

typedef std::shared_ptr<WPSHeader> WPSHeaderPtr

shared pointer to WPSHeader

## ◆ WPSListenerPtr

typedef std::shared_ptr<WPSListener> WPSListenerPtr

shared pointer to WPSListener

## ◆ WPSSubDocumentPtr

typedef std::shared_ptr<WPSSubDocument> WPSSubDocumentPtr

shared pointer to WPSSubDocument

## ◆ WPSVec3f

typedef WPSVec3<float> WPSVec3f

WPSVec3 of float.

## ◆ WPSVec3i

typedef WPSVec3<int> WPSVec3i

WPSVec3 of int.

## ◆ WPSVec3uc

typedef WPSVec3<unsigned char> WPSVec3uc

WPSVec3 of unsigned char.