xref: /aoo41x/main/editeng/inc/editeng/borderline.hxx (revision 4c5491ea)
1*4c5491eaSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*4c5491eaSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*4c5491eaSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*4c5491eaSAndrew Rist  * distributed with this work for additional information
6*4c5491eaSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*4c5491eaSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*4c5491eaSAndrew Rist  * "License"); you may not use this file except in compliance
9*4c5491eaSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*4c5491eaSAndrew Rist  *
11*4c5491eaSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*4c5491eaSAndrew Rist  *
13*4c5491eaSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*4c5491eaSAndrew Rist  * software distributed under the License is distributed on an
15*4c5491eaSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*4c5491eaSAndrew Rist  * KIND, either express or implied.  See the License for the
17*4c5491eaSAndrew Rist  * specific language governing permissions and limitations
18*4c5491eaSAndrew Rist  * under the License.
19*4c5491eaSAndrew Rist  *
20*4c5491eaSAndrew Rist  *************************************************************/
21*4c5491eaSAndrew Rist 
22*4c5491eaSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SVX_BORDERLINE_HXX
25cdf0e10cSrcweir #define SVX_BORDERLINE_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <tools/color.hxx>
28cdf0e10cSrcweir #include <svl/poolitem.hxx>
29cdf0e10cSrcweir #include <editeng/editengdllapi.h>
30cdf0e10cSrcweir 
31cdf0e10cSrcweir // Line defaults in twips (former Writer defaults):
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #define DEF_LINE_WIDTH_0        1
34cdf0e10cSrcweir #define DEF_LINE_WIDTH_1        20
35cdf0e10cSrcweir #define DEF_LINE_WIDTH_2        50
36cdf0e10cSrcweir #define DEF_LINE_WIDTH_3        80
37cdf0e10cSrcweir #define DEF_LINE_WIDTH_4        100
38cdf0e10cSrcweir #define DEF_LINE_WIDTH_5        10
39cdf0e10cSrcweir 
40cdf0e10cSrcweir #define DEF_MAX_LINE_WIDHT      DEF_LINE_WIDTH_4
41cdf0e10cSrcweir #define DEF_MAX_LINE_DIST       DEF_LINE_WIDTH_2
42cdf0e10cSrcweir 
43cdf0e10cSrcweir #define DEF_DOUBLE_LINE0_OUT    DEF_LINE_WIDTH_0
44cdf0e10cSrcweir #define DEF_DOUBLE_LINE0_IN     DEF_LINE_WIDTH_0
45cdf0e10cSrcweir #define DEF_DOUBLE_LINE0_DIST   DEF_LINE_WIDTH_1
46cdf0e10cSrcweir 
47cdf0e10cSrcweir #define DEF_DOUBLE_LINE1_OUT    DEF_LINE_WIDTH_1
48cdf0e10cSrcweir #define DEF_DOUBLE_LINE1_IN     DEF_LINE_WIDTH_1
49cdf0e10cSrcweir #define DEF_DOUBLE_LINE1_DIST   DEF_LINE_WIDTH_1
50cdf0e10cSrcweir 
51cdf0e10cSrcweir #define DEF_DOUBLE_LINE2_OUT    DEF_LINE_WIDTH_2
52cdf0e10cSrcweir #define DEF_DOUBLE_LINE2_IN     DEF_LINE_WIDTH_2
53cdf0e10cSrcweir #define DEF_DOUBLE_LINE2_DIST   DEF_LINE_WIDTH_2
54cdf0e10cSrcweir 
55cdf0e10cSrcweir #define DEF_DOUBLE_LINE3_OUT    DEF_LINE_WIDTH_2
56cdf0e10cSrcweir #define DEF_DOUBLE_LINE3_IN     DEF_LINE_WIDTH_1
57cdf0e10cSrcweir #define DEF_DOUBLE_LINE3_DIST   DEF_LINE_WIDTH_2
58cdf0e10cSrcweir 
59cdf0e10cSrcweir #define DEF_DOUBLE_LINE4_OUT    DEF_LINE_WIDTH_1
60cdf0e10cSrcweir #define DEF_DOUBLE_LINE4_IN     DEF_LINE_WIDTH_2
61cdf0e10cSrcweir #define DEF_DOUBLE_LINE4_DIST   DEF_LINE_WIDTH_1
62cdf0e10cSrcweir 
63cdf0e10cSrcweir #define DEF_DOUBLE_LINE5_OUT    DEF_LINE_WIDTH_3
64cdf0e10cSrcweir #define DEF_DOUBLE_LINE5_IN     DEF_LINE_WIDTH_2
65cdf0e10cSrcweir #define DEF_DOUBLE_LINE5_DIST   DEF_LINE_WIDTH_2
66cdf0e10cSrcweir 
67cdf0e10cSrcweir #define DEF_DOUBLE_LINE6_OUT    DEF_LINE_WIDTH_2
68cdf0e10cSrcweir #define DEF_DOUBLE_LINE6_IN     DEF_LINE_WIDTH_3
69cdf0e10cSrcweir #define DEF_DOUBLE_LINE6_DIST   DEF_LINE_WIDTH_2
70cdf0e10cSrcweir 
71cdf0e10cSrcweir #define DEF_DOUBLE_LINE7_OUT    DEF_LINE_WIDTH_0
72cdf0e10cSrcweir #define DEF_DOUBLE_LINE7_IN     DEF_LINE_WIDTH_0
73cdf0e10cSrcweir #define DEF_DOUBLE_LINE7_DIST   DEF_LINE_WIDTH_2
74cdf0e10cSrcweir 
75cdf0e10cSrcweir #define DEF_DOUBLE_LINE8_OUT    DEF_LINE_WIDTH_1
76cdf0e10cSrcweir #define DEF_DOUBLE_LINE8_IN     DEF_LINE_WIDTH_0
77cdf0e10cSrcweir #define DEF_DOUBLE_LINE8_DIST   DEF_LINE_WIDTH_2
78cdf0e10cSrcweir 
79cdf0e10cSrcweir #define DEF_DOUBLE_LINE9_OUT    DEF_LINE_WIDTH_2
80cdf0e10cSrcweir #define DEF_DOUBLE_LINE9_IN     DEF_LINE_WIDTH_0
81cdf0e10cSrcweir #define DEF_DOUBLE_LINE9_DIST   DEF_LINE_WIDTH_2
82cdf0e10cSrcweir 
83cdf0e10cSrcweir #define DEF_DOUBLE_LINE10_OUT	DEF_LINE_WIDTH_3
84cdf0e10cSrcweir #define DEF_DOUBLE_LINE10_IN	DEF_LINE_WIDTH_0
85cdf0e10cSrcweir #define DEF_DOUBLE_LINE10_DIST	DEF_LINE_WIDTH_2
86cdf0e10cSrcweir 
87cdf0e10cSrcweir // ============================================================================
88cdf0e10cSrcweir 
89cdf0e10cSrcweir class EDITENG_DLLPUBLIC SvxBorderLine
90cdf0e10cSrcweir {
91cdf0e10cSrcweir protected:
92cdf0e10cSrcweir 	Color  aColor;
93cdf0e10cSrcweir 	sal_uInt16 nOutWidth;
94cdf0e10cSrcweir 	sal_uInt16 nInWidth;
95cdf0e10cSrcweir 	sal_uInt16 nDistance;
96cdf0e10cSrcweir 
97cdf0e10cSrcweir public:
98cdf0e10cSrcweir 	SvxBorderLine( const Color *pCol = 0, sal_uInt16 nOut = 0, sal_uInt16 nIn = 0, sal_uInt16 nDist = 0 );
99cdf0e10cSrcweir 	SvxBorderLine( const SvxBorderLine& r );
100cdf0e10cSrcweir 
101cdf0e10cSrcweir 	SvxBorderLine& operator=( const SvxBorderLine& r );
102cdf0e10cSrcweir 
GetColor() const103cdf0e10cSrcweir 	const Color&	GetColor() const { return aColor; }
GetOutWidth() const104cdf0e10cSrcweir 	sal_uInt16 			GetOutWidth() const { return nOutWidth; }
GetInWidth() const105cdf0e10cSrcweir 	sal_uInt16 			GetInWidth() const { return nInWidth; }
GetDistance() const106cdf0e10cSrcweir 	sal_uInt16 			GetDistance() const { return nDistance; }
107cdf0e10cSrcweir 
SetColor(const Color & rColor)108cdf0e10cSrcweir 	void 			SetColor( const Color &rColor ) { aColor = rColor; }
SetOutWidth(sal_uInt16 nNew)109cdf0e10cSrcweir 	void			SetOutWidth( sal_uInt16 nNew ) { nOutWidth = nNew; }
SetInWidth(sal_uInt16 nNew)110cdf0e10cSrcweir 	void			SetInWidth( sal_uInt16 nNew ) { nInWidth = nNew;  }
SetDistance(sal_uInt16 nNew)111cdf0e10cSrcweir 	void			SetDistance( sal_uInt16 nNew ) { nDistance = nNew; }
112cdf0e10cSrcweir 	void			ScaleMetrics( long nMult, long nDiv );
113cdf0e10cSrcweir 
114cdf0e10cSrcweir 	sal_Bool			operator==( const SvxBorderLine &rCmp ) const;
115cdf0e10cSrcweir 
116cdf0e10cSrcweir     String          GetValueString( SfxMapUnit eSrcUnit, SfxMapUnit eDestUnit,
117cdf0e10cSrcweir                                     const IntlWrapper* pIntl,
118cdf0e10cSrcweir 									sal_Bool bMetricStr = sal_False ) const;
119cdf0e10cSrcweir 
120cdf0e10cSrcweir 	bool			HasPriority( const SvxBorderLine& rOtherLine ) const;
121cdf0e10cSrcweir 
isEmpty() const122cdf0e10cSrcweir 	bool isEmpty() const { return (0 == nOutWidth && 0 == nInWidth && 0 == nDistance); }
isDouble() const123cdf0e10cSrcweir 	bool isDouble() const { return (0 != nOutWidth && 0 != nInWidth); }
getWidth() const124cdf0e10cSrcweir 	sal_uInt16 getWidth() const { return nOutWidth + nInWidth + nDistance; }
125cdf0e10cSrcweir };
126cdf0e10cSrcweir 
127cdf0e10cSrcweir // ============================================================================
128cdf0e10cSrcweir 
129cdf0e10cSrcweir #endif
130cdf0e10cSrcweir 
131