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 : * Border object,now only used by paragraph object.
59 : ************************************************************************/
60 : #ifndef INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_XFILTER_XFBORDERS_HXX
61 : #define INCLUDED_LOTUSWORDPRO_SOURCE_FILTER_XFILTER_XFBORDERS_HXX
62 :
63 : #include "xfglobal.hxx"
64 : #include "xfcolor.hxx"
65 :
66 : /**
67 : * @brief
68 : * Single border object for all objects with borders.
69 : */
70 : class XFBorder
71 : {
72 : public:
73 : XFBorder();
74 :
75 : public:
76 : /**
77 : * @descr Set border color.
78 : */
79 : void SetColor(XFColor& color);
80 :
81 : /**
82 : * @descr Set border width in cm.
83 : */
84 : void SetWidth(double width);
85 :
86 : /**
87 : * @descr Set whether the border has double line.
88 : */
89 : void SetDoubleLine(bool dual,bool bSameWidth);
90 :
91 : /**
92 : * @descr Set inner line width for border with double line.
93 : */
94 : void SetWidthInner(double inner);
95 :
96 : /**
97 : * @descr Set space between double lines fo border.
98 : */
99 : void SetWidthSpace(double space);
100 :
101 : /**
102 : * @descr Set outer line width for border with double line.
103 : */
104 : void SetWidthOuter(double outer);
105 :
106 : private:
107 : /**
108 : * @descr Forst line width to OOo border width format.
109 : */
110 : OUString GetLineWidth();
111 :
112 : OUString ToString();
113 :
114 : friend bool operator==(XFBorder& b1, XFBorder& b2);
115 : friend bool operator!=(XFBorder& b1, XFBorder& b2);
116 : friend class XFBorders;
117 :
118 : private:
119 : double m_fOffset;
120 : XFColor m_aColor;
121 : bool m_bDouble;
122 : bool m_bSameWidth;
123 : double m_fWidthInner;
124 : double m_fWidthSpace;
125 : double m_fWidthOuter;
126 : };
127 :
128 : /**
129 : * @brief
130 : * Borders for object with borders.
131 : * Borders may include (right,left,top,bottom) borders.
132 : */
133 : class XFBorders
134 : {
135 : public:
136 85 : XFBorders(){}
137 :
138 : public:
139 : /**
140 : * @descr Set color of border side.
141 : */
142 : void SetColor(enumXFBorder side, XFColor& color);
143 :
144 : /**
145 : * @descr Set width or border side.
146 : */
147 : void SetWidth(enumXFBorder side, double width);
148 :
149 : /**
150 : * @descr Set border side as doubel line.
151 : * @param bSameWidth whether two borders are same width.
152 : */
153 : void SetDoubleLine(enumXFBorder side, bool dual,bool bSameWidth);
154 :
155 : /**
156 : * @descr Set inner border with of border side.
157 : */
158 : void SetWidthInner(enumXFBorder side, double inner);
159 :
160 : /**
161 : * @descr Set space between two borders fo border side.
162 : */
163 : void SetWidthSpace(enumXFBorder side, double space);
164 :
165 : /**
166 : * @descr Set outer border width of border side.
167 : */
168 : void SetWidthOuter(enumXFBorder side, double outer);
169 :
170 20 : XFBorder& GetLeft() {return m_aBorderLeft;}
171 :
172 15 : XFBorder& GetRight() {return m_aBorderRight;}
173 :
174 16 : XFBorder& GetTop() {return m_aBorderTop;}
175 :
176 20 : XFBorder& GetBottom() {return m_aBorderBottom;}
177 :
178 : void ToXml(IXFStream *pStrm);
179 :
180 : friend bool operator==(XFBorders& b1, XFBorders& b2);
181 : friend bool operator!=(XFBorders& b1, XFBorders& b2);
182 :
183 : private:
184 : XFBorder m_aBorderLeft;
185 : XFBorder m_aBorderRight;
186 : XFBorder m_aBorderTop;
187 : XFBorder m_aBorderBottom;
188 : };
189 :
190 : #endif
191 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|