Bump version to 4.3-4
[LibreOffice.git] / lotuswordpro / source / filter / lwplaypiece.hxx
blob8f53dd80c15792c4195c3369d3eab235115a2b71
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * The Contents of this file are made available subject to the terms of
5 * either of the following licenses
7 * - GNU Lesser General Public License Version 2.1
8 * - Sun Industry Standards Source License Version 1.1
10 * Sun Microsystems Inc., October, 2000
12 * GNU Lesser General Public License Version 2.1
13 * =============================================
14 * Copyright 2000 by Sun Microsystems, Inc.
15 * 901 San Antonio Road, Palo Alto, CA 94303, USA
17 * This library is free software; you can redistribute it and/or
18 * modify it under the terms of the GNU Lesser General Public
19 * License version 2.1, as published by the Free Software Foundation.
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * Lesser General Public License for more details.
26 * You should have received a copy of the GNU Lesser General Public
27 * License along with this library; if not, write to the Free Software
28 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
29 * MA 02111-1307 USA
32 * Sun Industry Standards Source License Version 1.1
33 * =================================================
34 * The contents of this file are subject to the Sun Industry Standards
35 * Source License Version 1.1 (the "License"); You may not use this file
36 * except in compliance with the License. You may obtain a copy of the
37 * License at http://www.openoffice.org/license.html.
39 * Software provided under this License is provided on an "AS IS" basis,
40 * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
41 * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
42 * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
43 * See the License for the specific provisions governing your rights and
44 * obligations concerning the Software.
46 * The Initial Developer of the Original Code is: IBM Corporation
48 * Copyright: 2008 by IBM Corporation
50 * All Rights Reserved.
52 * Contributor(s): _______________________________________
55 ************************************************************************/
56 /*************************************************************************
57 * @file
58 * For LWP filter architecture prototype
59 ************************************************************************/
60 /*************************************************************************
61 * Change History
62 Jan 28 2005 Created
63 ************************************************************************/
64 #ifndef INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_LWPLAYPIECE_HXX
65 #define INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_LWPLAYPIECE_HXX
67 #include "lwppiece.hxx"
68 #include "lwpbasetype.hxx"
70 class LwpRotor
72 public:
73 LwpRotor();
74 ~LwpRotor();
75 void Read(LwpObjectStream *pStrm);
76 private:
77 sal_Int16 m_nRotation; //angle
80 class LwpLayoutGeometry : public LwpVirtualPiece
82 public:
83 LwpLayoutGeometry(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
84 virtual ~LwpLayoutGeometry();
85 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
86 sal_Int32 GetWidth() { return m_nWidth; }
87 sal_Int32 GetHeight() { return m_nHeight; }
88 LwpPoint GetOrigin() { return m_Origin; }
89 LwpPoint GetAbsoluteOrigin() { return m_AbsoluteOrigin; }
90 sal_uInt8 GetContentOrientation(){ return m_ContentOrientation;}
92 protected:
93 virtual void Read() SAL_OVERRIDE;
94 protected:
95 sal_Int32 m_nWidth;
96 sal_Int32 m_nHeight;
97 LwpPoint m_Origin;
98 LwpPoint m_AbsoluteOrigin;
99 LwpRotor m_ContainerRotor;
100 sal_uInt8 m_ContentOrientation;
103 class LwpLayoutScale : public LwpVirtualPiece
105 public:
106 enum {ORIGINAL_SIZE = 1, FIT_IN_FRAME = 2, PERCENTAGE = 4,
107 CUSTOM = 8, MAINTAIN_ASPECT_RATIO = 16};
109 enum {CENTERED = 1, TILED = 2};
110 LwpLayoutScale(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
111 virtual ~LwpLayoutScale();
112 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
113 sal_uInt16 GetScaleMode(){return m_nScaleMode;}
114 sal_uInt32 GetScalePercentage(){return m_nScalePercentage;}
115 void SetScalePercentage(sal_uInt32 nVal){m_nScalePercentage = nVal;}
116 sal_Int32 GetScaleWidth(){return m_nScaleWidth;}
117 void SetScaleWidth(sal_Int32 nVal){m_nScaleWidth = nVal;}
118 sal_Int32 GetScaleHeight(){return m_nScaleHeight;}
119 void SetScaleHeight(sal_Int32 nVal){m_nScaleHeight = nVal;}
120 sal_uInt16 GetContentRotation(){return m_nContentRotation;}
121 void SetContentRotation(sal_uInt16 nVal){m_nContentRotation = nVal;}
122 sal_uInt16 GetPlacement(){return m_nPlacement;}
123 void SetPlacement(sal_uInt16 nVal){m_nPlacement = nVal;}
124 inline LwpPoint* GetOffset() {return &m_Offset;}
125 protected:
126 virtual void Read() SAL_OVERRIDE;
127 protected:
128 sal_uInt16 m_nScaleMode;
129 sal_uInt32 m_nScalePercentage;
130 sal_Int32 m_nScaleWidth;
131 sal_Int32 m_nScaleHeight;
132 sal_uInt16 m_nContentRotation;
133 LwpPoint m_Offset;
134 sal_uInt16 m_nPlacement;
137 #include "lwpmargins.hxx"
139 class LwpLayoutMargins : public LwpVirtualPiece
141 public:
142 LwpLayoutMargins(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
143 virtual ~LwpLayoutMargins();
144 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
145 LwpMargins* GetMargins() { return &m_Margins; }
146 LwpMargins* GetExtMargins(){ return &m_ExtMargins;}
147 protected:
148 virtual void Read() SAL_OVERRIDE;
149 protected:
150 LwpMargins m_Margins;
151 LwpMargins m_ExtMargins;
152 LwpMargins m_ExtraMargins;
155 #include "lwpborderstuff.hxx"
156 class LwpLayoutBorder : public LwpVirtualPiece
158 public:
159 LwpLayoutBorder(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
160 virtual ~LwpLayoutBorder();
161 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
162 LwpBorderStuff* GetBorderStuff(){ return &m_BorderStuff;}
163 protected:
164 virtual void Read() SAL_OVERRIDE;
165 protected:
166 LwpBorderStuff m_BorderStuff;
169 class LwpLayoutBackground : public LwpVirtualPiece
171 public:
172 LwpLayoutBackground(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
173 virtual ~LwpLayoutBackground();
174 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
175 LwpBackgroundStuff* GetBackgoudStuff(){return &m_BackgroundStuff;}
176 protected:
177 virtual void Read() SAL_OVERRIDE;
178 protected:
179 LwpBackgroundStuff m_BackgroundStuff;
182 class LwpExternalBorder
184 public:
185 LwpExternalBorder();
186 ~LwpExternalBorder();
187 void Read(LwpObjectStream *pStrm);
188 private:
189 LwpAtomHolder m_LeftName;
190 LwpAtomHolder m_TopName;
191 LwpAtomHolder m_RightName;
192 LwpAtomHolder m_BottomName;
195 //It seems that this class is used for designer border. Only read now.
196 class LwpLayoutExternalBorder : public LwpVirtualPiece
198 public:
199 LwpLayoutExternalBorder(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
200 virtual ~LwpLayoutExternalBorder();
201 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
202 protected:
203 virtual void Read() SAL_OVERRIDE;
204 protected:
205 LwpExternalBorder m_ExtranalBorder;
208 class LwpColumnInfo
210 public:
211 LwpColumnInfo();
212 ~LwpColumnInfo();
213 void Read(LwpObjectStream *pStrm);
214 inline double GetWidth(){return LwpTools::ConvertFromUnitsToMetric(m_nWidth);}
215 inline void SetWidth(sal_Int32 w){m_nWidth = w;}
216 inline double GetGap(){return LwpTools::ConvertFromUnitsToMetric(m_nGap);}
217 inline void SetGap(sal_Int32 g){m_nGap = g;}
218 private:
219 sal_Int32 m_nWidth;
220 sal_Int32 m_nGap;
223 class LwpLayoutColumns : public LwpVirtualPiece
225 public:
226 LwpLayoutColumns(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
227 virtual ~LwpLayoutColumns();
228 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
229 inline sal_uInt16 GetNumCols(){return m_nNumCols;}
230 double GetColWidth(sal_uInt16 nIndex);
231 double GetColGap(sal_uInt16 nIndex);
232 protected:
233 virtual void Read() SAL_OVERRIDE;
234 protected:
235 sal_uInt16 m_nNumCols;
236 LwpColumnInfo* m_pColumns;
239 class LwpLayoutGutters : public LwpVirtualPiece
241 public:
242 LwpLayoutGutters(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
243 virtual ~LwpLayoutGutters();
244 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
245 inline virtual LwpBorderStuff* GetBorderStuff(){return &m_BorderBuffer;}
246 protected:
247 virtual void Read() SAL_OVERRIDE;
248 protected:
249 LwpBorderStuff m_BorderBuffer;
252 class LwpJoinStuff
254 public:
255 LwpJoinStuff();
256 ~LwpJoinStuff();
257 void Read(LwpObjectStream *pStrm);
258 private:
259 sal_uInt16 m_nPercentage;
260 sal_uInt16 m_nCorners;
261 sal_Int32 m_nWidth;
262 sal_Int32 m_nHeight;
264 enum JoinType
266 MITRE = 1,
267 NEGATE = 2,
268 ROUNDED = 3,
269 RECTANGLE = 4,
270 SPECIAL = 5,
271 DIAGONAL = 6,
272 NEGATE_NO_CROSS = 7,
273 DOG_EAR_PAGE = 8,
274 DESKTOP = 9,
275 BOX_HIGHLIGHT = 10,
276 STAR = 11,
277 ROPE = 12,
278 DECO1 = 13,
279 DECO2 = 14,
280 RAIN = 15,
281 PIN = 16,
282 ROSE = 17,
283 SUNF = 18,
284 DECO3 = 19,
285 WARNING = 20,
286 BUBBLE = 21,
287 GIRDER = 22,
288 SMILE = 23,
289 ARROW = 24,
290 MAXJOIN = 24
293 sal_uInt16 m_nID;//JoinType
294 sal_uInt16 m_nScaling;
295 LwpColor m_Color;
298 class LwpLayoutJoins : public LwpVirtualPiece
300 public:
301 LwpLayoutJoins(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
302 virtual ~LwpLayoutJoins();
303 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
304 protected:
305 virtual void Read() SAL_OVERRIDE;
306 protected:
307 LwpJoinStuff m_JoinStuff;
310 #include "lwpshadow.hxx"
312 class LwpLayoutShadow : public LwpVirtualPiece
314 public:
315 LwpLayoutShadow(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
316 virtual ~LwpLayoutShadow();
317 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
318 LwpShadow* GetShadow(){return &m_Shadow;}
319 protected:
320 virtual void Read() SAL_OVERRIDE;
321 protected:
322 LwpShadow m_Shadow;
325 class LwpLayoutRelativityGuts
327 public:
328 LwpLayoutRelativityGuts();
329 void Read(LwpObjectStream *pStrm);
330 sal_uInt8 GetRelativeType(){ return m_nRelType;}
331 sal_uInt8 GetRelativeFromWhere(){ return m_nRelFromWhere;}
332 LwpPoint GetRelativeDistance(){ return m_RelDistance;}
333 sal_uInt8 GetTetherType(){ return m_nTether;}
334 sal_uInt8 GetTetherWhere(){ return m_nTetherWhere;}
335 public:
336 enum RelativeType
338 LAY_PARENT_RELATIVE = 1,
339 LAY_PARA_RELATIVE,
340 LAY_INLINE,
341 LAY_INLINE_NEWLINE,
342 LAY_CONTENT_RELATIVE,
343 LAY_INLINE_VERTICAL
345 enum WhereType
347 LAY_UPPERLEFT = 1,
348 LAY_MIDDLETOP,
349 LAY_UPPERRIGHT,
350 LAY_MIDDLELEFT,
351 LAY_MIDDLERIGHT,
352 LAY_LOWERLEFT,
353 LAY_MIDDLEBOTTOM,
354 LAY_LOWERRIGHT,
355 LAY_MIDDLE
357 enum TetherWhereType
359 LAY_INTERNAL = 1,
360 LAY_EXTERNAL,
361 LAY_BORDER
363 private:
364 sal_uInt8 m_nRelType;
365 sal_uInt8 m_nRelFromWhere;
366 LwpPoint m_RelDistance;
367 sal_uInt8 m_nTether;
368 sal_uInt8 m_nTetherWhere;
369 sal_uInt8 m_nFlags;
372 class LwpLayoutRelativity: public LwpVirtualPiece
374 public:
375 LwpLayoutRelativity(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
376 virtual ~LwpLayoutRelativity();
377 virtual void Parse(IXFStream* pOutputStream) SAL_OVERRIDE;
378 LwpLayoutRelativityGuts* GetRelGuts(){return &m_RelGuts;}
379 protected:
380 virtual void Read() SAL_OVERRIDE;
381 protected:
382 LwpLayoutRelativityGuts m_RelGuts;
385 #endif
387 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */