summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/lwplaypiece.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'lotuswordpro/source/filter/lwplaypiece.hxx')
-rw-r--r--lotuswordpro/source/filter/lwplaypiece.hxx395
1 files changed, 395 insertions, 0 deletions
diff --git a/lotuswordpro/source/filter/lwplaypiece.hxx b/lotuswordpro/source/filter/lwplaypiece.hxx
new file mode 100644
index 000000000000..ea1e386cd541
--- /dev/null
+++ b/lotuswordpro/source/filter/lwplaypiece.hxx
@@ -0,0 +1,395 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: IBM Corporation
+ *
+ * Copyright: 2008 by IBM Corporation
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+/*************************************************************************
+ * @file
+ * For LWP filter architecture prototype
+ ************************************************************************/
+/*************************************************************************
+ * Change History
+ Jan 28 2005 Created
+ ************************************************************************/
+#ifndef _LWPLAYOUTPIECE_HXX
+#define _LWPLAYOUTPIECE_HXX
+
+#include "lwppiece.hxx"
+#include "lwpbasetype.hxx"
+
+class LwpRotor
+{
+public:
+ LwpRotor();
+ ~LwpRotor();
+ void Read(LwpObjectStream *pStrm);
+private:
+ sal_Int16 m_nRotation; //angle
+ sal_uInt16 m_nSin;
+ sal_uInt16 m_nCos;
+};
+
+class LwpLayoutGeometry : public LwpVirtualPiece
+{
+public:
+ LwpLayoutGeometry(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutGeometry();
+ virtual void Parse(IXFStream* pOutputStream);
+ sal_Int32 GetWidth() { return m_nWidth; }
+ sal_Int32 GetHeight() { return m_nHeight; }
+ LwpPoint GetOrigin() { return m_Origin; }
+ LwpPoint GetAbsoluteOrigin() { return m_AbsoluteOrigin; }
+ sal_uInt8 GetContentOrientation(){ return m_ContentOrientation;}
+
+protected:
+ virtual void Read();
+protected:
+ sal_Int32 m_nWidth;
+ sal_Int32 m_nHeight;
+ LwpPoint m_Origin;
+ LwpPoint m_AbsoluteOrigin;
+ LwpRotor m_ContainerRotor;
+ sal_uInt8 m_ContentOrientation;
+};
+
+class LwpLayoutScale : public LwpVirtualPiece
+{
+public:
+ enum {ORIGINAL_SIZE = 1, FIT_IN_FRAME = 2, PERCENTAGE = 4,
+ CUSTOM = 8, MAINTAIN_ASPECT_RATIO = 16};
+
+ enum {CENTERED = 1, TILED = 2};
+ LwpLayoutScale(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutScale();
+ virtual void Parse(IXFStream* pOutputStream);
+ sal_uInt16 GetScaleMode(){return m_nScaleMode;}
+ void SetScaleMode(sal_uInt16 nVal){m_nScaleMode = nVal;}
+ sal_uInt32 GetScalePercentage(){return m_nScalePercentage;}
+ void SetScalePercentage(sal_uInt32 nVal){m_nScalePercentage = nVal;}
+ sal_Int32 GetScaleWidth(){return m_nScaleWidth;}
+ void SetScaleWidth(sal_Int32 nVal){m_nScaleWidth = nVal;}
+ sal_Int32 GetScaleHeight(){return m_nScaleHeight;}
+ void SetScaleHeight(sal_Int32 nVal){m_nScaleHeight = nVal;}
+ sal_uInt16 GetContentRotation(){return m_nContentRotation;}
+ void SetContentRotation(sal_uInt16 nVal){m_nContentRotation = nVal;}
+ sal_uInt16 GetPlacement(){return m_nPlacement;}
+ void SetPlacement(sal_uInt16 nVal){m_nPlacement = nVal;}
+ // add by , 04/05/2005
+ inline LwpPoint* GetOffset() {return &m_Offset;}
+ // end add
+protected:
+ virtual void Read();
+protected:
+ sal_uInt16 m_nScaleMode;
+ sal_uInt32 m_nScalePercentage;
+ sal_Int32 m_nScaleWidth;
+ sal_Int32 m_nScaleHeight;
+ sal_uInt16 m_nContentRotation;
+ LwpPoint m_Offset;
+ sal_uInt16 m_nPlacement;
+};
+
+#include "lwpmargins.hxx"
+
+class LwpLayoutMargins : public LwpVirtualPiece
+{
+public:
+ LwpLayoutMargins(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutMargins();
+ virtual void Parse(IXFStream* pOutputStream);
+ LwpMargins* GetMargins() { return &m_Margins; }
+ LwpMargins* GetExtMargins(){ return &m_ExtMargins;}
+protected:
+ virtual void Read();
+protected:
+ LwpMargins m_Margins;
+ LwpMargins m_ExtMargins;
+ LwpMargins m_ExtraMargins;
+};
+
+#include "lwpborderstuff.hxx"
+class LwpLayoutBorder : public LwpVirtualPiece
+{
+public:
+ LwpLayoutBorder(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutBorder();
+ virtual void Parse(IXFStream* pOutputStream);
+ LwpBorderStuff* GetBorderStuff(){ return &m_BorderStuff;}
+protected:
+ virtual void Read();
+protected:
+ LwpBorderStuff m_BorderStuff;
+};
+
+class LwpLayoutBackground : public LwpVirtualPiece
+{
+public:
+ LwpLayoutBackground(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutBackground();
+ virtual void Parse(IXFStream* pOutputStream);
+ LwpBackgroundStuff* GetBackgoudStuff(){return &m_BackgroundStuff;}
+protected:
+ virtual void Read();
+protected:
+ LwpBackgroundStuff m_BackgroundStuff;
+};
+
+class LwpExternalBorder
+{
+public:
+ LwpExternalBorder();
+ ~LwpExternalBorder();
+ void Read(LwpObjectStream *pStrm);
+private:
+ LwpAtomHolder m_LeftName;
+ LwpAtomHolder m_TopName;
+ LwpAtomHolder m_RightName;
+ LwpAtomHolder m_BottomName;
+};
+
+//It seems that this class is used for designer border. Only read now.
+class LwpLayoutExternalBorder : public LwpVirtualPiece
+{
+public:
+ LwpLayoutExternalBorder(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutExternalBorder();
+ virtual void Parse(IXFStream* pOutputStream);
+protected:
+ virtual void Read();
+protected:
+ LwpExternalBorder m_ExtranalBorder;
+};
+
+class LwpColumnInfo
+{
+public:
+ LwpColumnInfo();
+ ~LwpColumnInfo();
+ void Read(LwpObjectStream *pStrm);
+ inline double GetWidth(){return LwpTools::ConvertFromUnitsToMetric(m_nWidth);}
+ inline void SetWidth(sal_Int32 w){m_nWidth = w;}
+ inline double GetGap(){return LwpTools::ConvertFromUnitsToMetric(m_nGap);}
+ inline void SetGap(sal_Int32 g){m_nGap = g;}
+private:
+ sal_Int32 m_nWidth;
+ sal_Int32 m_nGap;
+};
+
+class LwpLayoutColumns : public LwpVirtualPiece
+{
+public:
+ LwpLayoutColumns(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutColumns();
+ virtual void Parse(IXFStream* pOutputStream);
+ inline sal_uInt16 GetNumCols(){return m_nNumCols;}
+ double GetColWidth(sal_uInt16 nIndex);
+ double GetColGap(sal_uInt16 nIndex);
+protected:
+ virtual void Read();
+protected:
+ sal_uInt16 m_nNumCols;
+ LwpColumnInfo* m_pColumns;
+};
+
+class LwpLayoutGutters : public LwpVirtualPiece
+{
+public:
+ LwpLayoutGutters(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutGutters();
+ virtual void Parse(IXFStream* pOutputStream);
+ inline virtual LwpBorderStuff* GetBorderStuff(){return &m_BorderBuffer;}
+protected:
+ virtual void Read();
+protected:
+ LwpBorderStuff m_BorderBuffer;
+};
+
+class LwpJoinStuff
+{
+public:
+ LwpJoinStuff();
+ ~LwpJoinStuff();
+ void Read(LwpObjectStream *pStrm);
+private:
+ sal_uInt16 m_nPercentage;
+ sal_uInt16 m_nCorners;
+ sal_Int32 m_nWidth;
+ sal_Int32 m_nHeight;
+
+ enum JoinType
+ {
+ MITRE = 1,
+ NEGATE = 2,
+ ROUNDED = 3,
+ RECTANGLE = 4,
+ SPECIAL = 5,
+ DIAGONAL = 6,
+ NEGATE_NO_CROSS = 7,
+ DOG_EAR_PAGE = 8,
+ DESKTOP = 9,
+ BOX_HIGHLIGHT = 10,
+//#ifdef BORDER_BMP
+ STAR = 11,
+ ROPE = 12,
+ DECO1 = 13,
+ DECO2 = 14,
+ RAIN = 15,
+ PIN = 16,
+ ROSE = 17,
+ SUNF = 18,
+ DECO3 = 19,
+//#endif //BORDER_BMP
+ WARNING = 20,
+ BUBBLE = 21,
+ GIRDER = 22,
+ SMILE = 23,
+ ARROW = 24,
+ MAXJOIN = 24
+ };
+
+ sal_uInt16 m_nID;//JoinType
+ sal_uInt16 m_nScaling;
+ LwpColor m_Color;
+};
+
+class LwpLayoutJoins : public LwpVirtualPiece
+{
+public:
+ LwpLayoutJoins(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutJoins();
+ virtual void Parse(IXFStream* pOutputStream);
+protected:
+ virtual void Read();
+protected:
+ LwpJoinStuff m_JoinStuff;
+};
+
+#include "lwpshadow.hxx"
+
+class LwpLayoutShadow : public LwpVirtualPiece
+{
+public:
+ LwpLayoutShadow(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutShadow();
+ virtual void Parse(IXFStream* pOutputStream);
+ LwpShadow* GetShadow(){return &m_Shadow;}
+protected:
+ virtual void Read();
+protected:
+ LwpShadow m_Shadow;
+};
+
+/*class LwpLayoutRelativityGuts*/
+class LwpLayoutRelativityGuts
+{
+public:
+ LwpLayoutRelativityGuts();
+ void Read(LwpObjectStream *pStrm);
+ sal_uInt8 GetRelativeType(){ return m_nRelType;}
+ sal_uInt8 GetRelativeFromWhere(){ return m_nRelFromWhere;}
+ LwpPoint GetRelativeDistance(){ return m_RelDistance;}
+ sal_uInt8 GetTetherType(){ return m_nTether;}
+ sal_uInt8 GetTetherWhere(){ return m_nTetherWhere;}
+public:
+ enum RelativeType
+ {
+ LAY_PARENT_RELATIVE = 1,
+ LAY_PARA_RELATIVE,
+ LAY_INLINE,
+ LAY_INLINE_NEWLINE,
+ LAY_CONTENT_RELATIVE,
+ LAY_INLINE_VERTICAL
+ };
+ enum WhereType
+ {
+ LAY_UPPERLEFT = 1,
+ LAY_MIDDLETOP,
+ LAY_UPPERRIGHT,
+ LAY_MIDDLELEFT,
+ LAY_MIDDLERIGHT,
+ LAY_LOWERLEFT,
+ LAY_MIDDLEBOTTOM,
+ LAY_LOWERRIGHT,
+ LAY_MIDDLE
+ };
+ enum TetherWhereType
+ {
+ LAY_INTERNAL = 1,
+ LAY_EXTERNAL,
+ LAY_BORDER
+ };
+private:
+ sal_uInt8 m_nRelType;
+ sal_uInt8 m_nRelFromWhere;
+ LwpPoint m_RelDistance;
+ sal_uInt8 m_nTether;
+ sal_uInt8 m_nTetherWhere;
+ sal_uInt8 m_nFlags;
+};
+
+class LwpLayoutRelativity: public LwpVirtualPiece
+{
+public:
+ LwpLayoutRelativity(LwpObjectHeader& objHdr, LwpSvStream* pStrm);
+ virtual ~LwpLayoutRelativity();
+ virtual void Parse(IXFStream* pOutputStream);
+ LwpLayoutRelativityGuts* GetRelGuts(){return &m_RelGuts;}
+protected:
+ virtual void Read();
+protected:
+ LwpLayoutRelativityGuts m_RelGuts;
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */