update dev300-m57
[ooovba.git] / lotuswordpro / source / filter / lwpcelllayout.hxx
blob1d0caf1305bd58868410fc5777eb985a924ed0f0
1 /*************************************************************************
3 * The Contents of this file are made available subject to the terms of
4 * either of the following licenses
6 * - GNU Lesser General Public License Version 2.1
7 * - Sun Industry Standards Source License Version 1.1
9 * Sun Microsystems Inc., October, 2000
11 * GNU Lesser General Public License Version 2.1
12 * =============================================
13 * Copyright 2000 by Sun Microsystems, Inc.
14 * 901 San Antonio Road, Palo Alto, CA 94303, USA
16 * This library is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public
18 * License version 2.1, as published by the Free Software Foundation.
20 * This library is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * Lesser General Public License for more details.
25 * You should have received a copy of the GNU Lesser General Public
26 * License along with this library; if not, write to the Free Software
27 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
28 * MA 02111-1307 USA
31 * Sun Industry Standards Source License Version 1.1
32 * =================================================
33 * The contents of this file are subject to the Sun Industry Standards
34 * Source License Version 1.1 (the "License"); You may not use this file
35 * except in compliance with the License. You may obtain a copy of the
36 * License at http://www.openoffice.org/license.html.
38 * Software provided under this License is provided on an "AS IS" basis,
39 * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
40 * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
41 * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
42 * See the License for the specific provisions governing your rights and
43 * obligations concerning the Software.
45 * The Initial Developer of the Original Code is: IBM Corporation
47 * Copyright: 2008 by IBM Corporation
49 * All Rights Reserved.
51 * Contributor(s): _______________________________________
54 ************************************************************************/
55 /**
56 * @file
57 * For LWP filter architecture prototype - cell layouts
59 /*************************************************************************
60 * Change History
61 Mar 2005 Created
62 ************************************************************************/
63 #ifndef _LWPCELLLAYOUT_HXX
64 #define _LWPCELLLAYOUT_HXX
65 #include <vector>
66 #include <map>
67 #include "lwplayout.hxx"
68 #include "lwptablelayout.hxx"
70 typedef enum
72 enumWholeBorder = 0,
73 enumNoLeftBorder,
74 enumNoBottomBorder,
75 enumNoLeftNoBottomBorder,
76 enumCellBorderTopLimit = 4,
77 } LwpCellBorderType;
80 class XFCell;
81 class XFCellStyle;
82 class LwpCellList;
83 class LwpTable;
84 class LwpTableLayout;
85 /**
86 * @brief
87 * VO_CELLLAYOUT object
89 class LwpCellLayout : public LwpMiddleLayout
91 public:
92 LwpCellLayout(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
93 virtual ~LwpCellLayout();
94 virtual LWP_LAYOUT_TYPE GetLayoutType () { return LWP_CELL_LAYOUT;}
95 virtual XFCell* ConvertCell(LwpObjectID aTableID, sal_uInt16 nRow, sal_uInt16 nCol);
96 sal_uInt16 GetRowID(){return crowid;};
97 sal_uInt8 GetColID(){return ccolid;};
98 void RegisterStyle();
99 LwpObjectID * GetNumericsObject() {return &cLayNumerics;};
100 LwpObjectID * GetPreviousCellStory();
101 virtual LwpPara* GetLastParaOfPreviousStory();
102 LwpTableLayout * GetTableLayout();
103 virtual void SetCellMap(void);
104 double GetActualWidth();
105 sal_uInt8 GetLeaderChar();
106 OUString GetNumfmtName(){return m_NumfmtName;}
107 protected:
108 void Read();
109 // LwpTableLayout * GetTableLayout();
110 LwpTable * GetTable();
111 void ApplyPadding(XFCellStyle* pCellStyle);
112 void ApplyBorders(XFCellStyle* pCellStyle);
113 // add by , 06/03/2005
114 void ApplyPatternFill(XFCellStyle* pCellStyle);
115 void ApplyBackGround(XFCellStyle* pCellStyle);
116 // end add
117 void ApplyBackColor(XFCellStyle* pCellStyle);
118 void ApplyWatermark(XFCellStyle* pCellStyle);
119 void ApplyProtect(XFCell * pCell, LwpObjectID aTableID);
120 void ApplyFmtStyle(XFCellStyle *pCellStyle);
121 OUString GetCellStyleName(sal_uInt16 nRow, sal_uInt16 nCol, LwpTableLayout * pTableLayout);
122 void RegisterDefaultCell();
123 virtual LwpCellBorderType GetCellBorderType(sal_uInt16 nRow, sal_uInt16 nCol, LwpTableLayout * pTableLayout);
124 LwpCellLayout * GetCellByRowCol(sal_uInt16 nRow, sal_uInt16 nCol, LwpTableLayout * pTableLayout);
125 virtual sal_uInt16 GetLeftColID(sal_uInt16 nCol){return nCol - 1; };
126 virtual sal_uInt16 GetBelowRowID(sal_uInt16 nRow){return nRow + 1; };
128 sal_uInt16 crowid;
129 sal_uInt8 ccolid;
130 LwpObjectID cLayNumerics;
131 LwpObjectID cLayDiagonalLine;
133 enum LeaderDotType
135 LDT_NONE = 0,
136 LDT_DOTS = 1,
137 LDT_DASHES = 2,
138 LDT_UNDERSCORES = 3
140 LeaderDotType cType;
141 OUString m_CellStyleNames[enumCellBorderTopLimit];
143 OUString m_NumfmtName;//Add by , to support number color,2005/11/30
144 private:
145 LwpCellList* GetCellList(LwpFoundry* pFoundry, LwpObjectID aTableID, sal_uInt16 nRow, sal_uInt8 nCol);
149 * @brief
150 * VO_HIDDENCELLLAYOUT object
152 class LwpHiddenCellLayout : public LwpCellLayout
154 public:
155 LwpHiddenCellLayout(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
156 virtual ~LwpHiddenCellLayout();
157 virtual LWP_LAYOUT_TYPE GetLayoutType () { return LWP_HIDDEN_CELL_LAYOUT;}
158 virtual void Parse(IXFStream* pOutputStream);
159 virtual XFCell* ConvertCell(LwpObjectID aTableID, sal_uInt16 nRow, sal_uInt16 nCol);
160 void RegisterStyle(){};
161 virtual void SetCellMap(void);
162 protected:
163 void Read();
164 LwpObjectID cconnectedlayout;
168 * @brief
169 * VO_CONNECTEDCELLLAYOUT object
171 class LwpConnectedCellLayout : public LwpCellLayout
173 public:
174 LwpConnectedCellLayout(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
175 virtual ~LwpConnectedCellLayout();
176 virtual LWP_LAYOUT_TYPE GetLayoutType () { return LWP_CONNECTED_CELL_LAYOUT;}
177 virtual void Parse(IXFStream* pOutputStream);
178 virtual XFCell* ConvertCell(LwpObjectID aTableID, sal_uInt16 nRow, sal_uInt16 nCol);
179 sal_uInt16 GetNumrows(){return m_nRealrowspan;}
180 sal_uInt8 GetNumcols(){return m_nRealcolspan;}
181 virtual void SetCellMap(void);
182 void SetNumrows(sal_uInt16 nVal){m_nRealrowspan = nVal;}
183 void SetNumcols(sal_uInt8 nVal){m_nRealcolspan = nVal;}
184 protected:
185 void Read();
186 virtual sal_uInt16 GetBelowRowID(sal_uInt16 nRow){return nRow + m_nRealrowspan; };
187 virtual LwpCellBorderType GetCellBorderType(sal_uInt16 nRow, sal_uInt16 nCol, LwpTableLayout * pTableLayout);
188 sal_uInt16 cnumrows;
189 sal_uInt8 cnumcols;
190 // sal_Bool m_bSplitFlag;
191 sal_uInt16 m_nRealrowspan;
192 sal_uInt8 m_nRealcolspan;
195 * @brief
196 * VO_PCOLBLOCK object
199 class LwpParallelColumnsBlock : public LwpCellLayout
201 public:
202 LwpParallelColumnsBlock(LwpObjectHeader &objHdr, LwpSvStream* pStrm);
203 virtual ~LwpParallelColumnsBlock();
204 protected:
205 void Read();
209 #endif