23 #ifndef LIBWPS_INTERNAL_H 24 #define LIBWPS_INTERNAL_H 38 #include <librevenge-stream/librevenge-stream.h> 39 #include <librevenge/librevenge.h> 42 #define M_PI 3.14159265358979323846 45 #if defined(_MSC_VER) || defined(__DJGPP__) 46 typedef signed char int8_t;
47 typedef unsigned char uint8_t;
48 typedef signed short int16_t;
49 typedef unsigned short uint16_t;
50 typedef signed int int32_t;
51 typedef unsigned int uint32_t;
53 # include <inttypes.h> 64 # define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0) 65 # define localtime_r(tp,tmp) (localtime(tp)?(*(tmp)=*localtime(tp),(tmp)):0) 68 #if defined(SHAREDPTR_TR1) 70 using std::tr1::shared_ptr;
71 #elif defined(SHAREDPTR_STD) 73 using std::shared_ptr;
75 #include <boost/shared_ptr.hpp> 76 using boost::shared_ptr;
119 #if defined(__clang__) || defined(__GNUC__) 120 # define WPS_ATTRIBUTE_PRINTF(fmt, arg) __attribute__((__format__(__printf__, fmt, arg))) 122 # define WPS_ATTRIBUTE_PRINTF(fmt, arg) 130 #define WPS_DEBUG_MSG(M) libwps::printDebugMsg M 132 #define WPS_DEBUG_MSG(M) 168 uint8_t
readU8(librevenge::RVNGInputStream *input);
169 uint16_t
readU16(librevenge::RVNGInputStream *input);
170 uint32_t
readU32(librevenge::RVNGInputStream *input);
172 int8_t
read8(librevenge::RVNGInputStream *input);
173 int16_t
read16(librevenge::RVNGInputStream *input);
174 int32_t
read32(librevenge::RVNGInputStream *input);
178 return readU8(input.get());
191 return read8(input.get());
195 return read16(input.get());
199 return read32(input.get());
218 void appendUnicode(uint32_t val, librevenge::RVNGString &buffer);
221 #define WPS_LE_GET_GUINT16(p) \ 222 (uint16_t)((((uint8_t const *)(p))[0] << 0) | \ 223 (((uint8_t const *)(p))[1] << 8)) 224 #define WPS_LE_GET_GUINT32(p) \ 225 (uint32_t)((((uint8_t const *)(p))[0] << 0) | \ 226 (((uint8_t const *)(p))[1] << 8) | \ 227 (((uint8_t const *)(p))[2] << 16) | \ 228 (((uint8_t const *)(p))[3] << 24)) 230 #define WPS_LE_PUT_GUINT16(p, v) \ 231 *((uint8_t*)(p)) = uint8_t(v); \ 232 *(((uint8_t*)(p)) + 1) = uint8_t((v) >> 8) 234 #define WPS_LE_PUT_GUINT32(p, v) \ 235 *((uint8_t*)(p)) = uint8_t(v); \ 236 *(((uint8_t*)(p)) + 1) = uint8_t((v) >> 8); \ 237 *(((uint8_t*)(p)) + 2) = uint8_t((v) >> 16); \ 238 *(((uint8_t*)(p)) + 3) = uint8_t((v) >> 24) 280 WPSColor(
unsigned char r,
unsigned char g,
unsigned char b,
unsigned char a=255) :
281 m_value(uint32_t((a<<24)+(r<<16)+(g<<8)+b))
312 return (
unsigned char)((m_value>>24)&0xFF);
317 return (
unsigned char)(m_value&0xFF);
322 return (
unsigned char)((m_value>>16)&0xFF);
327 return (
unsigned char)((m_value>>8)&0xFF);
332 return (m_value&0xFFFFFF)==0;
337 return (m_value&0xFFFFFF)==0xFFFFFF;
342 return (c.
m_value&0xFFFFFF)==(m_value&0xFFFFFF);
347 return !operator==(c);
352 return (c.
m_value&0xFFFFFF)<(m_value&0xFFFFFF);
357 return (c.
m_value&0xFFFFFF)<=(m_value&0xFFFFFF);
362 return !operator<=(c);
367 return !operator<(c);
372 std::string str()
const;
382 enum Style { None, Simple, Dot, LargeDot, Dash };
384 enum Type { Single, Double, Triple };
385 enum Pos { Left = 0, Right = 1, Top = 2, Bottom = 3 };
386 enum { LeftBit = 0x01, RightBit = 0x02, TopBit=0x4, BottomBit = 0x08 };
389 WPSBorder() : m_style(Simple), m_type(Single), m_width(1), m_widthsList(), m_color(
WPSColor::black()), m_extra(
"") { }
393 bool addTo(librevenge::RVNGPropertyList &propList, std::string which=
"")
const;
397 return m_style==None || m_width <= 0;
409 return !operator==(orig);
412 int compare(
WPSBorder const &orig)
const;
446 std::string type=
"image/pict") : m_dataList(), m_typeList()
448 add(binaryData, type);
457 for (
size_t i=0; i<m_dataList.size(); ++i)
459 if (!m_dataList[i].empty())
465 void add(librevenge::RVNGBinaryData
const &binaryData, std::string type=
"image/pict")
467 size_t pos=m_dataList.size();
468 if (pos<m_typeList.size()) pos=m_typeList.size();
469 m_dataList.resize(pos+1);
470 m_dataList[pos]=binaryData;
471 m_typeList.resize(pos+1);
472 m_typeList[pos]=type;
475 bool addTo(librevenge::RVNGPropertyList &propList)
const;
489 enum Type { None, Database, Date, Link, PageCount, PageNumber, PageNumberNext, Time, Title };
496 bool addTo(librevenge::RVNGPropertyList &propList)
const;
498 librevenge::RVNGString getString()
const;
510 #define WPS_EXTRA_LARGE_BIT 1 511 #define WPS_VERY_LARGE_BIT 2 512 #define WPS_LARGE_BIT 4 513 #define WPS_SMALL_PRINT_BIT 8 514 #define WPS_FINE_PRINT_BIT 0x10 515 #define WPS_SUPERSCRIPT_BIT 0x20 516 #define WPS_SUBSCRIPT_BIT 0x40 517 #define WPS_OUTLINE_BIT 0x80 518 #define WPS_ITALICS_BIT 0x100 519 #define WPS_SHADOW_BIT 0x200 520 #define WPS_REDLINE_BIT 0x400 521 #define WPS_DOUBLE_UNDERLINE_BIT 0x800 522 #define WPS_BOLD_BIT 0x1000 523 #define WPS_STRIKEOUT_BIT 0x2000 524 #define WPS_UNDERLINE_BIT 0x4000 525 #define WPS_SMALL_CAPS_BIT 0x8000 526 #define WPS_BLINK_BIT 0x10000L 527 #define WPS_REVERSEVIDEO_BIT 0x20000L 528 #define WPS_ALL_CAPS_BIT 0x40000L 529 #define WPS_EMBOSS_BIT 0x80000L 530 #define WPS_ENGRAVE_BIT 0x100000L 531 #define WPS_OVERLINE_BIT 0x400000L 532 #define WPS_HIDDEN_BIT 0x800000L 535 #define WPS_PAGE_BREAK 0x00 536 #define WPS_SOFT_PAGE_BREAK 0x01 537 #define WPS_COLUMN_BREAK 0x02 540 #define WPS_LEFT 0x00 541 #define WPS_RIGHT 0x01 542 #define WPS_CENTER 0x02 544 #define WPS_BOTTOM 0x04 554 Vec2(T xx=0,T yy=0) : m_x(xx), m_y(yy) { }
556 template <
class U>
Vec2(
Vec2<U> const &p) : m_x(T(p.x())), m_y(T(p.y())) {}
572 return (c==0) ? m_x : m_y;
578 return (c==0) ? m_x : m_y;
659 bool operator<(Vec2<T>
const &p)
const 666 if (m_x<p.
m_x)
return -1;
667 if (m_x>p.
m_x)
return 1;
668 if (m_y<p.
m_y)
return -1;
669 if (m_y>p.
m_y)
return 1;
675 if (m_y<p.
m_y)
return -1;
676 if (m_y>p.
m_y)
return 1;
677 if (m_x<p.
m_x)
return -1;
678 if (m_x>p.
m_x)
return 1;
683 friend std::ostream &operator<< (std::ostream &o, Vec2<T>
const &f)
685 o << f.m_x <<
"x" << f.m_y;
697 return s1.
cmp(s2) < 0;
709 return s1.
cmpY(s2) < 0;
738 for (
int c=0; c < 2; c++) m_pt[c] = p[c];
773 return m_pt[1]-m_pt[0];
778 return 0.5*(m_pt[0]+m_pt[1]);
801 m_pt[1] = m_pt[0]+sz;
806 m_pt[0] = m_pt[1]-sz;
811 Vec2<T> ctr = 0.5*(m_pt[0]+m_pt[1]);
812 m_pt[0] = ctr - 0.5*sz;
813 m_pt[1] = ctr + (sz - 0.5*sz);
817 template <
class U>
void scale(U factor)
826 m_pt[0] -=
Vec2<T>(val/2,val/2);
827 m_pt[1] +=
Vec2<T>(val-(val/2),val-(val/2));
834 m_pt[0][1]<box.
m_pt[0][1]?m_pt[0][1] : box.
m_pt[0][1]);
836 m_pt[1][1]>box.
m_pt[1][1]?m_pt[1][1] : box.
m_pt[1][1]);
844 m_pt[0][1]>box.
m_pt[0][1]?m_pt[0][1] : box.
m_pt[0][1]);
846 m_pt[1][1]<box.
m_pt[1][1]?m_pt[1][1] : box.
m_pt[1][1]);
861 bool operator<(WPSBox2<T>
const &p)
const 869 int diff = m_pt[0].cmpY(p.
m_pt[0]);
870 if (diff)
return diff;
871 diff = m_pt[1].cmpY(p.
m_pt[1]);
872 if (diff)
return diff;
877 friend std::ostream &operator<< (std::ostream &o, WPSBox2<T>
const &f)
879 o <<
"(" << f.m_pt[0] <<
"<->" << f.m_pt[1] <<
")";
891 return s1.
cmp(s2) < 0;
897 typedef std::map<WPSBox2<T>, T,
struct PosSizeLt>
Map;
925 for (
int c = 0; c < 3; c++) m_val[c] = T(p[c]);
957 void set(T xx, T yy, T zz)
980 void add(T dx, T dy, T dz)
990 for (
int c = 0; c < 3; c++) m_val[c] = T(m_val[c]+p.
m_val[c]);
996 for (
int c = 0; c < 3; c++) m_val[c] = T(m_val[c]-p.
m_val[c]);
1003 for (
int c = 0; c < 3; c++) m_val[c] = T(m_val[c]*scale);
1038 bool operator<(WPSVec3<T>
const &p)
const 1045 for (
int c = 0; c < 3; c++)
1047 if (m_val[c]<p.
m_val[c])
return -1;
1048 if (m_val[c]>p.
m_val[c])
return 1;
1054 friend std::ostream &operator<< (std::ostream &o, WPSVec3<T>
const &f)
1056 o << f.m_val[0] <<
"x" << f.m_val[1] <<
"x" << f.m_val[2];
1068 return s1.
cmp(s2) < 0;
1100 return m_isIdentity;
1105 m_isIdentity= m_data.first==
WPSVec3f(1,0,0) && m_data.second==
WPSVec3f(0,1,0);
1113 return c==0 ? m_data.first : m_data.second;
1118 if (m_isIdentity)
return pt;
1119 return multiplyDirection(pt)+
Vec2f(m_data.first[2],m_data.second[2]);
1124 if (m_isIdentity)
return dir;
1126 for (
int coord=0; coord<2; ++coord)
1128 WPSVec3f
const &row=coord==0 ? m_data.first : m_data.second;
1130 for (
int i=0; i<2; ++i)
1131 value+=row[i]*dir[i];
1139 if (m_isIdentity)
return box;
1147 for (
int row=0; row<2; ++row)
1149 WPSVec3f &resRow=row==0 ? res.
m_data.first : res.
m_data.second;
1150 for (
int col=0; col<3; ++col)
1153 for (
int i=0; i<3; ++i)
1154 value+=(*
this)[row][i]*(i==2 ? (col==2 ? 1.f : 0.f) : mat[i][col]);
1171 return m_data==mat.
m_data;
1176 return m_data!=mat.
m_data;
1181 return m_data<mat.
m_data;
1186 return m_data<=mat.
m_data;
1191 return m_data>mat.
m_data;
1196 return m_data>=mat.
m_data;
1238 bool encodeLotusPassword(
char const *password, uint16_t &key, std::vector<uint8_t> &keys, uint8_t
const(&defValues)[16]);
bool operator!=(Vec2< T > const &p) const
comparison!=
Definition: libwps_internal.h:654
std::string m_data
the database/link field ( if defined )
Definition: libwps_internal.h:506
int cmpY(Vec2< T > const &p) const
a comparison function: which first compares y then x
Definition: libwps_internal.h:673
bool isEmpty() const
return true if the picture contains no data
Definition: libwps_internal.h:455
Definition: libwps_internal.h:244
void resizeFromCenter(Vec2< T > const &sz)
resize the box keeping the center
Definition: libwps_internal.h:809
void scale(U factor)
scales all points of the box by factor
Definition: libwps_internal.h:817
shared_ptr< WPSContentListener > WPSContentListenerPtr
shared pointer to WPSContentListener
Definition: libwps_internal.h:108
Vec2< float > Vec2f
Vec2 of float.
Definition: libwps_internal.h:721
int16_t read16(RVNGInputStreamPtr &input)
Definition: libwps_internal.h:193
WPSColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a=255)
constructor from color
Definition: libwps_internal.h:280
void setY(T yy)
resets the second element
Definition: libwps_internal.h:593
a border list
Definition: libwps_internal.h:379
T m_val[3]
the values
Definition: libwps_internal.h:1078
Definition: libwps_internal.h:263
Definition: libwps_internal.h:159
T m_x
first element
Definition: libwps_internal.h:713
libwps::NumberingType m_numberingType
the number type ( for number field )
Definition: libwps_internal.h:504
Definition: libwps_internal.cpp:38
WPSVec3< T > & operator*=(U scale)
generic operator*=
Definition: libwps_internal.h:1001
Vec2< T > size() const
the box size
Definition: libwps_internal.h:771
uint8_t readU8(RVNGInputStreamPtr &input)
Definition: libwps_internal.h:176
shared_ptr< WPSSubDocument > WPSSubDocumentPtr
shared pointer to WPSSubDocument
Definition: libwps_internal.h:112
WPSBox2< T > getIntersection(WPSBox2< T > const &box) const
returns the intersection between this and box
Definition: libwps_internal.h:840
int8_t read8(RVNGInputStreamPtr &input)
Definition: libwps_internal.h:189
bool operator()(Vec2< T > const &s1, Vec2< T > const &s2) const
comparaison function
Definition: libwps_internal.h:707
unsigned char getGreen() const
returns the green value
Definition: libwps_internal.h:325
friend Vec2< T > operator-(Vec2< T > const &p1, Vec2< T > const &p2)
operator-
Definition: libwps_internal.h:635
WPSBox2(Vec2< T > minPt=Vec2< T >(), Vec2< T > maxPt=Vec2< T >())
constructor
Definition: libwps_internal.h:730
int cmp(WPSBox2< T > const &p) const
comparison function : fist sorts min by Y,X values then max extremity
Definition: libwps_internal.h:867
uint32_t value() const
return the rgba value
Definition: libwps_internal.h:305
bool operator==(WPSBorder const &orig) const
operator==
Definition: libwps_internal.h:401
WPSEmbeddedObject(librevenge::RVNGBinaryData const &binaryData, std::string type="image/pict")
constructor
Definition: libwps_internal.h:445
T & operator[](int c)
operator[]
Definition: libwps_internal.h:575
bool operator()(Vec2< T > const &s1, Vec2< T > const &s2) const
comparaison function
Definition: libwps_internal.h:695
uint16_t readU16(RVNGInputStreamPtr &input)
Definition: libwps_internal.h:180
define the font properties
Definition: WPSFont.h:36
std::vector< std::string > m_typeList
the picture type: one type by representation
Definition: libwps_internal.h:482
WPSVec3< T > & operator+=(WPSVec3< T > const &p)
operator+=
Definition: libwps_internal.h:988
WPSBox2< int > WPSBox2i
WPSBox2 of int.
Definition: libwps_internal.h:905
double m_leftGutter
Definition: libwps_internal.h:259
a field
Definition: libwps_internal.h:486
#define WPS_ATTRIBUTE_PRINTF(fmt, arg)
Definition: libwps_internal.h:122
T x() const
first element
Definition: libwps_internal.h:929
virtual class for content listener
Definition: WPSListener.h:36
internal struct used to create sorted map, sorted by X
Definition: libwps_internal.h:692
Type m_type
the type
Definition: libwps_internal.h:500
static WPSColor black()
return the back color
Definition: libwps_internal.h:291
int m_width
the border width
Definition: libwps_internal.h:423
Vec2< T > const & max() const
the maximum 2D point (in x and in y)
Definition: libwps_internal.h:747
static WPSColor white()
return the white color
Definition: libwps_internal.h:296
Definition: libwps_internal.h:246
WPSEmbeddedObject()
empty constructor
Definition: libwps_internal.h:441
void setX(T xx)
resets the first element
Definition: libwps_internal.h:964
Vec2< T > & operator+=(Vec2< T > const &p)
operator+=
Definition: libwps_internal.h:606
Definition: libwps_internal.h:244
Definition: libwps_internal.h:244
Definition: libwps_internal.h:246
Definition: WPSContentListener.h:44
WPSColor & operator=(uint32_t argb)
operator=
Definition: libwps_internal.h:285
bool readDouble4(RVNGInputStreamPtr &input, double &res, bool &isNaN)
read a double store with 4 bytes: mantisse 2.5 bytes, exponent 1.5 bytes
Definition: libwps_internal.cpp:90
T operator[](int c) const
operator[]
Definition: libwps_internal.h:944
bool isWhite() const
return true if the color is white
Definition: libwps_internal.h:335
uint32_t m_attributes
Definition: libwps_internal.h:268
Definition: libwps_internal.h:246
WPSBox2< float > WPSBox2f
WPSBox2 of float.
Definition: libwps_internal.h:907
void add(librevenge::RVNGBinaryData const &binaryData, std::string type="image/pict")
add a picture
Definition: libwps_internal.h:465
Type
Defines some basic type for field.
Definition: libwps_internal.h:489
a structure used to defined the cell position, and a format
Definition: WPSCell.h:277
internal struct used to create sorted map, sorted first min then max
Definition: libwps_internal.h:886
double m_width
Definition: libwps_internal.h:258
Justification
Definition: libwps_internal.h:247
T operator[](int c) const
operator[]
Definition: libwps_internal.h:569
bool operator!=(WPSBox2< T > const &p) const
comparison operator!=
Definition: libwps_internal.h:856
double m_rightGutter
Definition: libwps_internal.h:260
internal struct used to create sorted map, sorted by X, Y, Z
Definition: libwps_internal.h:1063
std::map< WPSBox2< int >, int, struct PosSizeLt > Map
map of WPSBox2
Definition: libwps_internal.h:897
virtual class to define a sub document
Definition: WPSSubDocument.h:33
bool operator!=(WPSBorder const &orig) const
operator!=
Definition: libwps_internal.h:407
WPSField(Type type)
basic constructor
Definition: libwps_internal.h:492
Definition: libwps_internal.h:244
bool readDouble10(RVNGInputStreamPtr &input, double &res, bool &isNaN)
read a double store with 10 bytes: mantisse 8 bytes, exponent 2 bytes
Definition: libwps_internal.cpp:224
bool isEmpty() const
returns true if the border is empty
Definition: libwps_internal.h:395
T y() const
second element
Definition: libwps_internal.h:564
bool operator==(WPSColor const &c) const
operator==
Definition: libwps_internal.h:340
shared_ptr< WPSHeader > WPSHeaderPtr
shared pointer to WPSHeader
Definition: libwps_internal.h:110
Definition: libwps_internal.h:246
void setMax(Vec2< T > const &y)
resets the maximum point
Definition: libwps_internal.h:793
Vec2(T xx=0, T yy=0)
constructor
Definition: libwps_internal.h:554
Definition: libwps_internal.h:250
uint32_t readU32(RVNGInputStreamPtr &input)
Definition: libwps_internal.h:184
shared_ptr< WPSListener > WPSListenerPtr
shared pointer to WPSListener
Definition: libwps_internal.h:106
void setX(T xx)
resets the first element
Definition: libwps_internal.h:588
WPSBorder()
constructor
Definition: libwps_internal.h:389
bool operator<(WPSColor const &c) const
operator<
Definition: libwps_internal.h:350
Definition: libwps_internal.h:250
bool isBlack() const
return true if the color is black
Definition: libwps_internal.h:330
SubDocumentType
Definition: libwps_internal.h:246
Definition: libwps_internal.h:244
unsigned char getAlpha() const
returns the alpha value
Definition: libwps_internal.h:310
Definition: libwps_internal.h:247
Definition: libwps_internal.h:246
Definition: libwps_internal.h:149
Vec2< T > center() const
the box center
Definition: libwps_internal.h:776
WPSBox2(WPSBox2< U > const &p)
generic constructor
Definition: libwps_internal.h:736
bool operator==(Vec2< T > const &p) const
comparison==
Definition: libwps_internal.h:649
std::vector< double > m_widthsList
the different length used for each line/sep (if defined)
Definition: libwps_internal.h:427
Basic class used to store a spreadsheet sub document.
Definition: WKSSubDocument.h:35
void setZ(T zz)
resets the third element
Definition: libwps_internal.h:974
Definition: libwps_internal.h:248
void appendUnicode(uint32_t val, librevenge::RVNGString &buffer)
adds an unicode character to a string ( with correct encoding ).
Definition: libwps_internal.cpp:718
Vec2< T > & min()
the minimum 2D point (in x and in y)
Definition: libwps_internal.h:752
shared_ptr< WKSContentListener > WKSContentListenerPtr
shared pointer to WKSContentListener
Definition: libwps_internal.h:115
small class which defines a 2D WPSBox
Definition: libwps_internal.h:726
Definition: libwps_internal.h:246
void add(T dx, T dy, T dz)
increases the actuals values by dx, dy, dz
Definition: libwps_internal.h:980
Definition: libwps_internal.h:139
friend WPSVec3< T > operator*(U scale, WPSVec3< T > const &p1)
generic operator*
Definition: libwps_internal.h:1021
uint32_t m_value
the argb color
Definition: libwps_internal.h:375
internal struct used to create sorted map, sorted by Y
Definition: libwps_internal.h:704
WPSVec3< T > & operator-=(WPSVec3< T > const &p)
operator-=
Definition: libwps_internal.h:994
int cmp(Vec2< T > const &p) const
a comparison function: which first compares x then y
Definition: libwps_internal.h:664
void operator()(T *)
Definition: libwps_internal.h:83
bool operator!=(WPSVec3< T > const &p) const
comparison!=
Definition: libwps_internal.h:1033
WPSVec3< unsigned char > WPSVec3uc
WPSVec3 of unsigned char.
Definition: libwps_internal.h:1082
Type
the line repetition
Definition: libwps_internal.h:384
void extend(T val)
extends the bdbox by (val, val) keeping the center
Definition: libwps_internal.h:824
Definition: libwps_internal.h:154
void add(T dx, T dy)
increases the actuals values by dx and dy
Definition: libwps_internal.h:599
std::vector< librevenge::RVNGBinaryData > m_dataList
the picture content: one data by representation
Definition: libwps_internal.h:480
uint8_t m_alignment
Definition: libwps_internal.h:269
Definition: libwps_internal.h:253
bool operator>(WPSColor const &c) const
operator>
Definition: libwps_internal.h:360
WPSColumnProperties()
Definition: libwps_internal.h:265
Vec2< T > & operator-=(Vec2< T > const &p)
operator-=
Definition: libwps_internal.h:613
void setMin(Vec2< T > const &x)
resets the minimum point
Definition: libwps_internal.h:788
WPSColor m_color
the border color
Definition: libwps_internal.h:429
Vec2< T > & operator*=(U scale)
generic operator*=
Definition: libwps_internal.h:621
bool operator!=(WPSColor const &c) const
operator!=
Definition: libwps_internal.h:345
NumberingType
Definition: libwps_internal.h:244
int32_t read32(RVNGInputStreamPtr &input)
Definition: libwps_internal.h:197
T y() const
second element
Definition: libwps_internal.h:934
unsigned char getBlue() const
returns the green value
Definition: libwps_internal.h:315
void resizeFromMin(Vec2< T > const &sz)
resize the box keeping the minimum
Definition: libwps_internal.h:799
shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
shared pointer to librevenge::RVNGInputStream
Definition: libwps_internal.h:88
bool operator<=(WPSColor const &c) const
operator<=
Definition: libwps_internal.h:355
bool readDouble4Inv(RVNGInputStreamPtr &input, double &res, bool &isNaN)
read a double store with 4 bytes: exponent 3.5 bytes, mantisse 0.5 bytes
Definition: libwps_internal.cpp:303
Vec2< int > Vec2i
Vec2 of int.
Definition: libwps_internal.h:719
the class to store a color
Definition: libwps_internal.h:273
virtual ~WPSEmbeddedObject()
destructor
Definition: libwps_internal.h:451
bool operator==(WPSVec3< T > const &p) const
comparison==
Definition: libwps_internal.h:1028
Pos
Definition: libwps_internal.h:385
T z() const
third element
Definition: libwps_internal.h:939
Definition: libwps_internal.h:248
Vec2(Vec2< U > const &p)
generic copy constructor
Definition: libwps_internal.h:556
bool readData(RVNGInputStreamPtr &input, unsigned long size, librevenge::RVNGBinaryData &data)
try to read sz bytes from input and store them in a librevenge::RVNGBinaryData
Definition: libwps_internal.cpp:332
bool readDataToEnd(RVNGInputStreamPtr &input, librevenge::RVNGBinaryData &data)
try to read the last bytes from input and store them in a librevenge::RVNGBinaryData ...
Definition: libwps_internal.cpp:346
WPSVec3< int > WPSVec3i
WPSVec3 of int.
Definition: libwps_internal.h:1084
std::string numberingTypeToString(NumberingType type)
Definition: libwps_internal.cpp:357
bool operator()(WPSVec3< T > const &s1, WPSVec3< T > const &s2) const
comparaison function
Definition: libwps_internal.h:1066
WPSVec3(T xx=0, T yy=0, T zz=0)
constructor
Definition: libwps_internal.h:916
Style
the line style
Definition: libwps_internal.h:382
WPSBox2< T > getUnion(WPSBox2< T > const &box) const
returns the union between this and box
Definition: libwps_internal.h:830
small class use to define a embedded object
Definition: libwps_internal.h:438
unsigned char getRed() const
returns the red value
Definition: libwps_internal.h:320
std::map< WPSVec3< T >, T, struct PosSizeLt > Map
map of WPSVec3
Definition: libwps_internal.h:1074
bool encodeLotusPassword(char const *password, uint16_t &key, std::vector< uint8_t > &keys, uint8_t const(&defValues)[16])
try to encode a lotus file
Definition: libwps_internal.cpp:836
void setY(T yy)
resets the second element
Definition: libwps_internal.h:969
Definition: libwps_internal.h:144
WPSVec3(WPSVec3< U > const &p)
generic copy constructor
Definition: libwps_internal.h:923
friend WPSVec3< T > operator+(WPSVec3< T > const &p1, WPSVec3< T > const &p2)
operator+
Definition: libwps_internal.h:1008
WPSColumnDefinition()
Definition: libwps_internal.h:255
Style m_style
the border style
Definition: libwps_internal.h:419
Definition: libwps_internal.h:247
int cmp(WPSVec3< T > const &p) const
a comparison function: which first compares x values, then y values then z values.
Definition: libwps_internal.h:1043
Definition: libwps_internal.h:244
shared_ptr< WKSSubDocument > WKSSubDocumentPtr
shared pointer to WKSSubDocument
Definition: libwps_internal.h:117
bool readDouble8(RVNGInputStreamPtr &input, double &res, bool &isNaN)
read a double store with 8 bytes: mantisse 6.5 bytes, exponent 1.5 bytes
Definition: libwps_internal.cpp:173
Definition: libwps_internal.h:247
bool operator==(WPSBox2< T > const &p) const
comparison operator==
Definition: libwps_internal.h:851
void resizeFromMax(Vec2< T > const &sz)
resize the box keeping the maximum
Definition: libwps_internal.h:804
basic class to store an entry in a file This contained :
Definition: WPSEntry.h:38
small class which defines a vector with 2 elements
Definition: libwps_internal.h:550
Definition: libwps_internal.h:244
friend Vec2< T > operator*(U scale, Vec2< T > const &p1)
generic operator*
Definition: libwps_internal.h:642
Class to define the position of an object (textbox, picture, ..) in the document. ...
Definition: WPSPosition.h:39
bool operator>=(WPSColor const &c) const
operator>=
Definition: libwps_internal.h:365
std::string m_extra
extra data ( if needed)
Definition: libwps_internal.h:431
shared_ptr< WPSCell > WPSCellPtr
shared pointer to WPSCell
Definition: libwps_internal.h:101
bool readDouble2Inv(RVNGInputStreamPtr &input, double &res, bool &isNaN)
read a double store with 2 bytes: exponent 1.5 bytes, kind of mantisse 0.5 bytes
Definition: libwps_internal.cpp:273
small structure use to store a stream and it debug file
Definition: WPSStream.h:29
std::ostream & operator<<(std::ostream &o, WPSColor const &c)
Definition: libwps_internal.cpp:401
WPSColor(uint32_t argb=0)
constructor
Definition: libwps_internal.h:276
WPSVec3< float > WPSVec3f
WPSVec3 of float.
Definition: libwps_internal.h:1086
bool operator()(WPSBox2< T > const &s1, WPSBox2< T > const &s2) const
comparaison function
Definition: libwps_internal.h:889
T m_y
second element
Definition: libwps_internal.h:713
a noop deleter used to transform a librevenge pointer in a false shared_ptr
Definition: libwps_internal.h:81
T & operator[](int c)
operator[]
Definition: libwps_internal.h:950
Vec2< T > m_pt[2]
the two extremities
Definition: libwps_internal.h:901
T x() const
first element
Definition: libwps_internal.h:559
Type m_type
the border repetition
Definition: libwps_internal.h:421
std::string m_DTFormat
the date/time format using strftime format if defined (see strftime)
Definition: libwps_internal.h:502
Vec2< T > & max()
the maximum 2D point (in x and in y)
Definition: libwps_internal.h:757
Definition: WKSContentListener.h:52
small class which defines a vector with 3 elements
Definition: libwps_internal.h:912
Vec2< T > const & operator[](int c) const
the two extremum points which defined the box
Definition: libwps_internal.h:765
Vec2< T > const & min() const
the minimum 2D point (in x and in y)
Definition: libwps_internal.h:742
Vec2< bool > Vec2b
Vec2 of bool.
Definition: libwps_internal.h:717
friend WPSVec3< T > operator-(WPSVec3< T > const &p1, WPSVec3< T > const &p2)
operator-
Definition: libwps_internal.h:1014
friend Vec2< T > operator+(Vec2< T > const &p1, Vec2< T > const &p2)
operator+
Definition: libwps_internal.h:629