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,
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 ************************************************************************/
57 * For LWP filter architecture prototype - cell layouts
59 /*************************************************************************
62 ************************************************************************/
63 #ifndef _LWPCELLLAYOUT_HXX
64 #define _LWPCELLLAYOUT_HXX
67 #include "lwplayout.hxx"
68 #include "lwptablelayout.hxx"
75 enumNoLeftNoBottomBorder
,
76 enumCellBorderTopLimit
= 4,
87 * VO_CELLLAYOUT object
89 class LwpCellLayout
: public LwpMiddleLayout
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
;};
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
;}
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
);
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; };
130 LwpObjectID cLayNumerics
;
131 LwpObjectID cLayDiagonalLine
;
141 OUString m_CellStyleNames
[enumCellBorderTopLimit
];
143 OUString m_NumfmtName
;//Add by , to support number color,2005/11/30
145 LwpCellList
* GetCellList(LwpFoundry
* pFoundry
, LwpObjectID aTableID
, sal_uInt16 nRow
, sal_uInt8 nCol
);
150 * VO_HIDDENCELLLAYOUT object
152 class LwpHiddenCellLayout
: public LwpCellLayout
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);
164 LwpObjectID cconnectedlayout
;
169 * VO_CONNECTEDCELLLAYOUT object
171 class LwpConnectedCellLayout
: public LwpCellLayout
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
;}
186 virtual sal_uInt16
GetBelowRowID(sal_uInt16 nRow
){return nRow
+ m_nRealrowspan
; };
187 virtual LwpCellBorderType
GetCellBorderType(sal_uInt16 nRow
, sal_uInt16 nCol
, LwpTableLayout
* pTableLayout
);
190 // sal_Bool m_bSplitFlag;
191 sal_uInt16 m_nRealrowspan
;
192 sal_uInt8 m_nRealcolspan
;
196 * VO_PCOLBLOCK object
199 class LwpParallelColumnsBlock
: public LwpCellLayout
202 LwpParallelColumnsBlock(LwpObjectHeader
&objHdr
, LwpSvStream
* pStrm
);
203 virtual ~LwpParallelColumnsBlock();