diff options
Diffstat (limited to 'lotuswordpro/source/filter/lwplaypiece.hxx')
-rw-r--r-- | lotuswordpro/source/filter/lwplaypiece.hxx | 395 |
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: */ |