Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*************************************************************************
3 : *
4 : * The Contents of this file are made available subject to the terms of
5 : * either of the following licenses
6 : *
7 : * - GNU Lesser General Public License Version 2.1
8 : * - Sun Industry Standards Source License Version 1.1
9 : *
10 : * Sun Microsystems Inc., October, 2000
11 : *
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
16 : *
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.
20 : *
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.
25 : *
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
30 : *
31 : *
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.
38 : *
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.
45 : *
46 : * The Initial Developer of the Original Code is: IBM Corporation
47 : *
48 : * Copyright: 2008 by IBM Corporation
49 : *
50 : * All Rights Reserved.
51 : *
52 : * Contributor(s): _______________________________________
53 : *
54 : *
55 : ************************************************************************/
56 : /*************************************************************************
57 : * @file
58 : * Table cell style. Number format, string value, and so on...
59 : ************************************************************************/
60 : #ifndef INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_XFILTER_XFCELLSTYLE_HXX
61 : #define INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_XFILTER_XFCELLSTYLE_HXX
62 :
63 : #include <sal/config.h>
64 :
65 : #include <rtl/ref.hxx>
66 :
67 : #include "xfstyle.hxx"
68 : #include "xfcolor.hxx"
69 : #include "xfmargins.hxx"
70 : #include "xfpadding.hxx"
71 : #include "xfshadow.hxx"
72 :
73 : class XFBorders;
74 : class XFFont;
75 : class XFBorders;
76 : class XFMargins;
77 : class XFBGImage;
78 :
79 : /**
80 : * @descr Style object for cell.
81 : */
82 : class XFCellStyle : public XFStyle
83 : {
84 : public:
85 : XFCellStyle();
86 :
87 : virtual ~XFCellStyle();
88 :
89 : public:
90 : /**
91 : * @descr Set cell data format style name.
92 : */
93 : void SetDataStyle(const OUString& style);
94 :
95 : /**
96 : * @descr: Set the pading of the paragraph.This is the distance
97 : between the border and the top of the text.
98 : * @param: indent value of the padding.
99 : */
100 : void SetPadding(double left, double right = -1, double top = -1, double bottom = -1);
101 :
102 : /**
103 : * @descr: Set alignment property of the cell.
104 : * @param: eAlign alignment type,left,right,center or justify.
105 : */
106 : void SetAlignType(enumXFAlignType hori=enumXFAlignNone, enumXFAlignType vert = enumXFAlignBottom);
107 :
108 : /**
109 : * @descr: The borders is complex,so you have to create one before use.
110 : Very few paragraphs will readly have borders property,this way
111 : we can save much memory.
112 : * @param: pBorders borders of the paragraph,please reference the XFBorders.
113 : */
114 : void SetBorders(XFBorders *pBorders);
115 :
116 : /**
117 : * @descr: Set background color of the cell.
118 : * @param: color value of the back color.
119 : */
120 : void SetBackColor(XFColor& color);
121 :
122 : /**
123 : * descr: set cell background image.
124 : */
125 : void SetBackImage(XFBGImage *pImage);
126 :
127 : /**
128 : * @descr Set cell value to warp if it's content is too long to be placed in an single cell.
129 : */
130 : void SetWrapText(bool wrap);
131 :
132 : virtual enumXFStyle GetStyleFamily() SAL_OVERRIDE;
133 :
134 : virtual bool Equal(IXFStyle *pStyle) SAL_OVERRIDE;
135 :
136 : virtual void ToXml(IXFStream *pStrm) SAL_OVERRIDE;
137 :
138 : private:
139 : OUString m_strDataStyle;
140 : OUString m_strParentStyleName;
141 : enumXFAlignType m_eHoriAlign;
142 : enumXFAlignType m_eVertAlign;
143 :
144 : double m_fTextIndent;
145 : XFColor m_aBackColor;
146 : XFBGImage *m_pBackImage;
147 : XFMargins m_aMargin;
148 : XFPadding m_aPadding;
149 : rtl::Reference<XFFont> m_pFont;
150 : XFShadow m_aShadow;
151 : XFBorders *m_pBorders;
152 : bool m_bWrapText;
153 : };
154 :
155 72 : inline void XFCellStyle::SetAlignType(enumXFAlignType hori, enumXFAlignType vert)
156 : {
157 72 : m_eHoriAlign = hori;
158 72 : m_eVertAlign = vert;
159 72 : }
160 :
161 24 : inline void XFCellStyle::SetDataStyle(const OUString& style)
162 : {
163 24 : m_strDataStyle = style;
164 24 : }
165 :
166 : inline void XFCellStyle::SetWrapText(bool wrap)
167 : {
168 : m_bWrapText = wrap;
169 : }
170 : #endif
171 :
172 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|