[ooo-build-commit] .: patches/dev300

Katarina Machalkova bubli at kemper.freedesktop.org
Mon May 3 04:47:00 PDT 2010


 patches/dev300/xlsx-shared-border-types-dotted-dashed.diff      | 4334 ----------
 patches/dev300/xlsx-shared-calc-distributed-cell-text-sc.diff   | 1903 ----
 patches/dev300/xlsx-shared-calc-perf-xls-import-cellstyles.diff |  433 
 3 files changed, 6670 deletions(-)

New commits:
commit 579ee2bae3041e013ce0516fa69621d32b8ef8d1
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Mon Apr 26 11:40:35 2010 +0200

    Removed some redundant patches
    
    (identical to those without xlsx-shared- prefix)
    * patches/dev300/xlsx-shared-border-types-dotted-dashed.diff:
    * patches/dev300/xlsx-shared-calc-distributed-cell-text-sc.diff:
    * patches/dev300/xlsx-shared-calc-perf-xls-import-cellstyles.diff:

diff --git a/patches/dev300/xlsx-shared-border-types-dotted-dashed.diff b/patches/dev300/xlsx-shared-border-types-dotted-dashed.diff
deleted file mode 100644
index b489f57..0000000
--- a/patches/dev300/xlsx-shared-border-types-dotted-dashed.diff
+++ /dev/null
@@ -1,4334 +0,0 @@
-diff --git drawinglayer/inc/drawinglayer/primitive2d/borderlineprimitive2d.hxx drawinglayer/inc/drawinglayer/primitive2d/borderlineprimitive2d.hxx
-index ddab5bb..cf12676 100644
---- drawinglayer/inc/drawinglayer/primitive2d/borderlineprimitive2d.hxx
-+++ drawinglayer/inc/drawinglayer/primitive2d/borderlineprimitive2d.hxx
-@@ -59,6 +59,7 @@ namespace drawinglayer
-             double											mfExtendOuterStart;
-             double											mfExtendOuterEnd;
-             basegfx::BColor									maRGBColor;
-+            short                                           mnStyle;
- 
-             // bitfield
-             unsigned										mbCreateInside : 1;
-@@ -122,7 +123,8 @@ namespace drawinglayer
-                 double fExtendOuterEnd,
-                 bool bCreateInside,
-                 bool bCreateOutside,
--                const basegfx::BColor& rRGBColor);
-+                const basegfx::BColor& rRGBColor,
-+                const short nStyle );
- 
-             // get data
-             const basegfx::B2DPoint& getStart() const { return maStart; }
-@@ -136,7 +138,8 @@ namespace drawinglayer
-             double getExtendOuterEnd() const { return mfExtendOuterEnd; }
-             bool getCreateInside() const { return mbCreateInside; }
-             bool getCreateOutside() const { return mbCreateOutside; }
--            const basegfx::BColor& getRGBColor() const { return maRGBColor; }
-+            const basegfx::BColor& getRGBColor () const { return maRGBColor; }
-+            short getStyle () const { return mnStyle; }
- 
-             // compare operator
-             virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
-diff --git drawinglayer/source/primitive2d/borderlineprimitive2d.cxx drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
-index a2fda82..d605d68 100644
---- drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
-+++ drawinglayer/source/primitive2d/borderlineprimitive2d.cxx
-@@ -41,6 +41,7 @@
- #include <basegfx/polygon/b2dpolygon.hxx>
- #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
- #include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
-+#include <svtools/borderhelper.hxx>
- #include <numeric>
- 
- //////////////////////////////////////////////////////////////////////////////
-@@ -165,14 +166,29 @@ namespace drawinglayer
-                             // create filled polygon primitive
-                             const basegfx::B2DVector aLineWidthOffset((getCorrectedLeftWidth() * 0.5) * aPerpendicular);
-                             
--                            aPolygon.append(aTmpStart + aLineWidthOffset);
--                            aPolygon.append(aTmpEnd + aLineWidthOffset);
--                            aPolygon.append(aTmpEnd - aLineWidthOffset);
--                            aPolygon.append(aTmpStart - aLineWidthOffset);
--                            aPolygon.setClosed(true);
-+                            aPolygon.append( aTmpStart );
-+                            aPolygon.append( aTmpEnd );
- 
-+                            basegfx::B2DPolyPolygon aDashed = svtools::ApplyLineDashing( 
-+                                   aPolygon, getStyle(), MAP_100TH_MM );
-+                            for (sal_uInt32 i = 0; i < aDashed.count(); i++ )
-+                            {
-+                                basegfx::B2DPolygon aDash = aDashed.getB2DPolygon( i );
-+                                basegfx::B2DPoint aDashStart = aDash.getB2DPoint( 0 );
-+                                basegfx::B2DPoint aDashEnd = aDash.getB2DPoint( aDash.count() - 1 );
-+
-+                                basegfx::B2DPolygon aDashPolygon;
-+                                aDashPolygon.append( aDashStart + aLineWidthOffset );
-+                                aDashPolygon.append( aDashEnd + aLineWidthOffset );
-+                                aDashPolygon.append( aDashEnd - aLineWidthOffset );
-+                                aDashPolygon.append( aDashStart - aLineWidthOffset );
-+                                aDashPolygon.setClosed( true );
-+
-+                                aDashed.setB2DPolygon( i, aDashPolygon );
-+                            }
-+                                
-                             xRetval[0] = Primitive2DReference(new PolyPolygonColorPrimitive2D(
--                                basegfx::B2DPolyPolygon(aPolygon), getRGBColor()));
-+                                    basegfx::B2DPolyPolygon( aDashed ), getRGBColor()));
-                         }
-                     }
-                 }
-@@ -193,7 +209,8 @@ namespace drawinglayer
-             double fExtendOuterEnd,
-             bool bCreateInside,
-             bool bCreateOutside,
--            const basegfx::BColor& rRGBColor)
-+            const basegfx::BColor& rRGBColor,
-+            short nStyle)
-         :	BasePrimitive2D(),
-             maStart(rStart),
-             maEnd(rEnd),
-@@ -205,6 +222,7 @@ namespace drawinglayer
-             mfExtendOuterStart(fExtendOuterStart),
-             mfExtendOuterEnd(fExtendOuterEnd),
-             maRGBColor(rRGBColor),
-+            mnStyle(nStyle),
-             mbCreateInside(bCreateInside),
-             mbCreateOutside(bCreateOutside)
-         {
-@@ -227,7 +245,8 @@ namespace drawinglayer
-                     && getExtendOuterEnd() == rCompare.getExtendOuterEnd()
-                     && getCreateInside() == rCompare.getCreateInside()
-                     && getCreateOutside() == rCompare.getCreateOutside()
--                    && getRGBColor() == rCompare.getRGBColor());
-+                    && getRGBColor() == rCompare.getRGBColor()
-+                    && getStyle() == rCompare.getStyle());
-             }
- 
-             return false;
-diff --git filter/source/xslt/export/uof/odf2uof_spreadsheet.xsl filter/source/xslt/export/uof/odf2uof_spreadsheet.xsl
-index 1507305..606542c 100644
---- filter/source/xslt/export/uof/odf2uof_spreadsheet.xsl
-+++ filter/source/xslt/export/uof/odf2uof_spreadsheet.xsl
-@@ -4262,7 +4262,7 @@
- 				<xsl:element name="uof:å·¦">
- 					<xsl:attribute name="uof:locID">u0057</xsl:attribute>
- 					<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 					<xsl:if test="$border!='none'">
- 						<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
- 						<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-@@ -4274,7 +4274,7 @@
- 				<xsl:element name="uof:上">
- 					<xsl:attribute name="uof:locID">u0058</xsl:attribute>
- 					<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 					<xsl:if test="$border!='none'">
- 						<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
- 						<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-@@ -4286,7 +4286,7 @@
- 				<xsl:element name="uof:右">
- 					<xsl:attribute name="uof:locID">u0059</xsl:attribute>
- 					<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 					<xsl:if test="$border!='none'">
- 						<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
- 						<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-@@ -4298,7 +4298,7 @@
- 				<xsl:element name="uof:下">
- 					<xsl:attribute name="uof:locID">u0060</xsl:attribute>
- 					<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+					<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 					<xsl:if test="$border!='none'">
- 						<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
- 						<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-diff --git filter/source/xslt/export/uof/odf2uof_text.xsl filter/source/xslt/export/uof/odf2uof_text.xsl
-index cea93c8..08586d0 100644
---- filter/source/xslt/export/uof/odf2uof_text.xsl
-+++ filter/source/xslt/export/uof/odf2uof_text.xsl
-@@ -3248,7 +3248,7 @@
- 		<xsl:element name="uof:å·¦">
- 			<xsl:attribute name="uof:locID">u0057</xsl:attribute>
- 			<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 			<xsl:if test="$border!='none'">
- 				<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
- 				<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-@@ -3266,7 +3266,7 @@
- 		<xsl:element name="uof:上">
- 			<xsl:attribute name="uof:locID">u0058</xsl:attribute>
- 			<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 			<xsl:if test="$border!='none'">
- 				<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
- 				<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-@@ -3284,7 +3284,7 @@
- 		<xsl:element name="uof:右">
- 			<xsl:attribute name="uof:locID">u0059</xsl:attribute>
- 			<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 			<xsl:if test="$border!='none'">
- 				<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
- 				<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-@@ -3302,7 +3302,7 @@
- 		<xsl:element name="uof:下">
- 			<xsl:attribute name="uof:locID">u0060</xsl:attribute>
- 			<xsl:attribute name="uof:attrList">类型 宽度 边距 颜色 阴影</xsl:attribute>
--			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
-+			<xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
- 			<xsl:if test="$border!='none'">
- 				<xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
- 				<xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
-diff --git offapi/com/sun/star/table/BorderLine.idl offapi/com/sun/star/table/BorderLine.idl
-index 94c93c5..3484aa8 100644
---- offapi/com/sun/star/table/BorderLine.idl
-+++ offapi/com/sun/star/table/BorderLine.idl
-@@ -74,7 +74,6 @@ published struct BorderLine
-         double line (in 1/100 mm).
-      */
-     short LineDistance;
--
- };
- 
- //=============================================================================
-diff --git offapi/com/sun/star/table/BorderLine2.idl offapi/com/sun/star/table/BorderLine2.idl
-new file mode 100644
-index 0000000..d0fe233
---- /dev/null
-+++ offapi/com/sun/star/table/BorderLine2.idl
-@@ -0,0 +1,56 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: BorderLine.idl,v $
-+ * $Revision: 1.8 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+#ifndef __com_sun_star_table_BorderLine2_idl__
-+#define __com_sun_star_table_BorderLine2_idl__
-+
-+
-+#include <com/sun/star/table/BorderLine.idl>
-+#include <com/sun/star/table/BorderLineStyle.idl>
-+
-+//=============================================================================
-+
-+module com {  module sun {  module star {  module table {
-+
-+//=============================================================================
-+
-+struct BorderLine2 : BorderLine
-+{
-+    /** Style of the border. @see BorderLineStyle
-+     */
-+    short LineStyle;
-+};
-+
-+//=============================================================================
-+
-+}; }; }; };
-+
-+#endif
-+
-diff --git offapi/com/sun/star/table/BorderLineStyle.idl offapi/com/sun/star/table/BorderLineStyle.idl
-new file mode 100644
-index 0000000..17f15ad
---- /dev/null
-+++ offapi/com/sun/star/table/BorderLineStyle.idl
-@@ -0,0 +1,63 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: TableSortFieldType.idl,v $
-+ * $Revision: 1.7 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+#ifndef __com_sun_star_table_BorderLineStyle_idl__ 
-+#define __com_sun_star_table_BorderLineStyle_idl__ 
-+ 
-+ 
-+//============================================================================= 
-+ 
-+module com {  module sun {  module star {  module table {  
-+ 
-+//============================================================================= 
-+ 
-+constants BorderLineStyle
-+{ 
-+    //------------------------------------------------------------------------- 
-+    /** Solid border line.
-+     */
-+    const short SOLID = 0;
-+ 
-+    //------------------------------------------------------------------------- 
-+    /** Dotted border line.
-+     */
-+    const short DOTTED = 1;
-+ 
-+    //------------------------------------------------------------------------- 
-+    /** Dashed border line.
-+     */
-+    const short DASHED = 2;
-+ 
-+}; 
-+ 
-+//============================================================================= 
-+ 
-+}; }; }; };  
-+ 
-+#endif 
-diff --git offapi/com/sun/star/table/makefile.mk offapi/com/sun/star/table/makefile.mk
-index dbcb959..0f72fd6 100644
---- offapi/com/sun/star/table/makefile.mk
-+++ offapi/com/sun/star/table/makefile.mk
-@@ -45,6 +45,8 @@ IDLFILES=\
-     AccessibleCellView.idl      \
-     AccessibleTableView.idl	\
-     BorderLine.idl\
-+    BorderLine2.idl\
-+    BorderLineStyle.idl\
-     Cell.idl\
-     CellAddress.idl\
-     CellContentType.idl\
-diff --git oox/inc/oox/helper/helper.hxx oox/inc/oox/helper/helper.hxx
-index 2a8bd6f..6db2fe7 100644
---- oox/inc/oox/helper/helper.hxx
-+++ oox/inc/oox/helper/helper.hxx
-@@ -78,6 +78,10 @@ const sal_Int32 API_RGB_TRANSPARENT         = -1;       /// Transparent color fo
- const sal_Int32 API_RGB_BLACK               = 0x000000;  /// Black color for API calls.
- const sal_Int32 API_RGB_WHITE               = 0xFFFFFF;  /// White color for API calls.
- 
-+const sal_Int16 API_LINE_SOLID              = 0;
-+const sal_Int16 API_LINE_DOTTED             = 1;
-+const sal_Int16 API_LINE_DASHED             = 2;
-+
- const sal_Int16 API_LINE_NONE               = 0;
- const sal_Int16 API_LINE_HAIR               = 2;
- const sal_Int16 API_LINE_THIN               = 35;
-diff --git oox/inc/oox/xls/stylesbuffer.hxx oox/inc/oox/xls/stylesbuffer.hxx
-index ead9f05..9be9938 100644
---- oox/inc/oox/xls/stylesbuffer.hxx
-+++ oox/inc/oox/xls/stylesbuffer.hxx
-@@ -36,7 +36,7 @@
- #include <com/sun/star/table/CellHoriJustify.hpp>
- #include <com/sun/star/table/CellOrientation.hpp>
- #include <com/sun/star/table/CellVertJustify.hpp>
--#include <com/sun/star/table/TableBorder.hpp>
-+#include <com/sun/star/table/BorderLine2.hpp>
- #include "oox/helper/containerhelper.hxx"
- #include "oox/drawingml/color.hxx"
- #include "oox/xls/numberformatsbuffer.hxx"
-@@ -503,10 +503,12 @@ struct BorderModel
- /** Contains API attributes of a complete cell border. */
- struct ApiBorderData
- {
--    typedef ::com::sun::star::table::TableBorder    ApiTableBorder;
--    typedef ::com::sun::star::table::BorderLine     ApiBorderLine;
-+    typedef ::com::sun::star::table::BorderLine2     ApiBorderLine;
- 
--    ApiTableBorder      maBorder;           /// Left/right/top/bottom line format.
-+    ApiBorderLine       maLeft;             /// Left line format
-+    ApiBorderLine       maRight;            /// Right line format
-+    ApiBorderLine       maTop;              /// Top line format
-+    ApiBorderLine       maBottom;           /// Bottom line format
-     ApiBorderLine       maTLtoBR;           /// Diagonal top-left to bottom-right line format.
-     ApiBorderLine       maBLtoTR;           /// Diagonal bottom-left to top-right line format.
-     bool                mbBorderUsed;       /// True = left/right/top/bottom line format used.
-@@ -559,7 +561,7 @@ private:
- 
-     /** Converts border line data to an API struct, returns true, if the line is marked as used. */
-     bool                convertBorderLine(
--                            ::com::sun::star::table::BorderLine& rBorderLine,
-+                            ::com::sun::star::table::BorderLine2& rBorderLine,
-                             const BorderLineModel& rModel );
- 
- private:
-diff --git oox/source/drawingml/table/tablecell.cxx oox/source/drawingml/table/tablecell.cxx
-index 2f8dc14..aa9c7ec 100644
---- oox/source/drawingml/table/tablecell.cxx
-+++ oox/source/drawingml/table/tablecell.cxx
-@@ -40,7 +40,7 @@
- #include <com/sun/star/beans/XMultiPropertySet.hpp>
- #include <com/sun/star/table/XTable.hpp>
- #include <com/sun/star/table/XMergeableCellRange.hpp>
--#include <com/sun/star/table/BorderLine.hpp>
-+#include <com/sun/star/table/BorderLine2.hpp>
- #include <com/sun/star/drawing/LineStyle.hpp>
- #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
- #include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
-@@ -51,7 +51,7 @@ using namespace ::oox::core;
- using namespace ::com::sun::star;
- using namespace ::com::sun::star::uno;
- using namespace ::com::sun::star::beans;
--using ::com::sun::star::table::BorderLine;
-+using ::com::sun::star::table::BorderLine2;
- using ::com::sun::star::drawing::LineStyle;
- 
- namespace oox { namespace drawingml { namespace table {
-@@ -79,7 +79,7 @@ void applyLineAttributes( const ::oox::core::XmlFilterBase& rFilterBase,
-         Reference< XPropertySet >& rxPropSet, oox::drawingml::LineProperties& rLineProperties,
-         sal_Int32 nPropId )
- {
--    BorderLine aBorderLine( 0, 0, 0, 0 );
-+    BorderLine2 aBorderLine( 0, 0, 0, 0, API_LINE_SOLID );
-     if( rLineProperties.maLineFill.moFillType.differsFrom( XML_noFill ) )
-     {
-         Color aColor = rLineProperties.maLineFill.getBestSolidColor();
-diff --git oox/source/drawingml/table/tableproperties.cxx oox/source/drawingml/table/tableproperties.cxx
-index 9e1d288..4ed7ba3 100644
---- oox/source/drawingml/table/tableproperties.cxx
-+++ oox/source/drawingml/table/tableproperties.cxx
-@@ -35,7 +35,7 @@
- #include <com/sun/star/beans/XMultiPropertySet.hpp>
- #include <com/sun/star/lang/XMultiServiceFactory.hpp>
- #include <com/sun/star/table/XMergeableCellRange.hpp>
--#include <com/sun/star/table/BorderLine.hpp>
-+#include <com/sun/star/table/BorderLine2.hpp>
- #include "oox/core/namespaces.hxx"
- #include "oox/core/xmlfilterbase.hxx"
- #include "oox/helper/propertyset.hxx"
-diff --git oox/source/drawingml/table/tablerow.cxx oox/source/drawingml/table/tablerow.cxx
-index f41513d..977ddc0 100644
---- oox/source/drawingml/table/tablerow.cxx
-+++ oox/source/drawingml/table/tablerow.cxx
-@@ -37,7 +37,7 @@
- #include "oox/helper/propertyset.hxx"
- #include <com/sun/star/table/XTable.hpp>
- #include <com/sun/star/table/XMergeableCellRange.hpp>
--#include <com/sun/star/table/BorderLine.hpp>
-+#include <com/sun/star/table/BorderLine2.hpp>
- 
- using rtl::OUString;
- using namespace ::oox::core;
-diff --git oox/source/xls/stylesbuffer.cxx oox/source/xls/stylesbuffer.cxx
-index ac309b5..fd16a00 100644
---- oox/source/xls/stylesbuffer.cxx
-+++ oox/source/xls/stylesbuffer.cxx
-@@ -75,6 +75,7 @@ using ::com::sun::star::awt::FontDescriptor;
- using ::com::sun::star::awt::XDevice;
- using ::com::sun::star::awt::XFont2;
- using ::com::sun::star::table::BorderLine;
-+using ::com::sun::star::table::BorderLine2;
- using ::com::sun::star::text::XText;
- using ::com::sun::star::style::XStyle;
- using ::oox::core::FilterBase;
-@@ -1552,7 +1553,7 @@ inline sal_Int32 lclGetBorderLineWidth( const BorderLine& rBorderLine )
-     return rBorderLine.OuterLineWidth + rBorderLine.LineDistance + rBorderLine.InnerLineWidth;
- }
- 
--const BorderLine* lclGetThickerLine( const BorderLine& rBorderLine1, sal_Bool bValid1, const BorderLine& rBorderLine2, sal_Bool bValid2 )
-+const BorderLine2* lclGetThickerLine( const BorderLine2& rBorderLine1, sal_Bool bValid1, const BorderLine2& rBorderLine2, sal_Bool bValid2 )
- {
-     if( bValid1 && bValid2 )
-         return (lclGetBorderLineWidth( rBorderLine1 ) < lclGetBorderLineWidth( rBorderLine2 )) ? &rBorderLine2 : &rBorderLine1;
-@@ -1690,21 +1691,10 @@ void Border::finalizeImport()
-     maApiData.mbBorderUsed = maModel.maLeft.mbUsed || maModel.maRight.mbUsed || maModel.maTop.mbUsed || maModel.maBottom.mbUsed;
-     maApiData.mbDiagUsed   = maModel.maDiagonal.mbUsed;
- 
--    maApiData.maBorder.IsLeftLineValid   = convertBorderLine( maApiData.maBorder.LeftLine,   maModel.maLeft );
--    maApiData.maBorder.IsRightLineValid  = convertBorderLine( maApiData.maBorder.RightLine,  maModel.maRight );
--    maApiData.maBorder.IsTopLineValid    = convertBorderLine( maApiData.maBorder.TopLine,    maModel.maTop );
--    maApiData.maBorder.IsBottomLineValid = convertBorderLine( maApiData.maBorder.BottomLine, maModel.maBottom );
--
--    if( !mbDxf )
--    {
--        maApiData.maBorder.IsVerticalLineValid = maApiData.maBorder.IsLeftLineValid || maApiData.maBorder.IsRightLineValid;
--        if( const BorderLine* pVertLine = lclGetThickerLine( maApiData.maBorder.LeftLine, maApiData.maBorder.IsLeftLineValid, maApiData.maBorder.RightLine, maApiData.maBorder.IsRightLineValid ) )
--            maApiData.maBorder.VerticalLine = *pVertLine;
--
--        maApiData.maBorder.IsHorizontalLineValid = maApiData.maBorder.IsTopLineValid || maApiData.maBorder.IsBottomLineValid;
--        if( const BorderLine* pHorLine = lclGetThickerLine( maApiData.maBorder.TopLine, maApiData.maBorder.IsTopLineValid, maApiData.maBorder.BottomLine, maApiData.maBorder.IsBottomLineValid ) )
--            maApiData.maBorder.HorizontalLine = *pHorLine;
--    }
-+    convertBorderLine( maApiData.maLeft,   maModel.maLeft );
-+    convertBorderLine( maApiData.maRight,  maModel.maRight );
-+    convertBorderLine( maApiData.maTop,    maModel.maTop );
-+    convertBorderLine( maApiData.maBottom, maModel.maBottom );
- 
-     if( maModel.mbDiagTLtoBR )
-         convertBorderLine( maApiData.maTLtoBR, maModel.maDiagonal );
-@@ -1715,7 +1705,12 @@ void Border::finalizeImport()
- void Border::writeToPropertyMap( PropertyMap& rPropMap ) const
- {
-     if( maApiData.mbBorderUsed )
--        rPropMap[ PROP_TableBorder ] <<= maApiData.maBorder;
-+    {
-+        rPropMap[ PROP_LeftBorder ]   <<= maApiData.maLeft;
-+        rPropMap[ PROP_RightBorder ]  <<= maApiData.maRight;
-+        rPropMap[ PROP_TopBorder ]    <<= maApiData.maTop;
-+        rPropMap[ PROP_BottomBorder ] <<= maApiData.maBottom;
-+    }
-     if( maApiData.mbDiagUsed )
-     {
-         rPropMap[ PROP_DiagonalTLBR ] <<= maApiData.maTLtoBR;
-@@ -1734,18 +1729,16 @@ bool lcl_isBorder(const ::com::sun::star::table::BorderLine& rBorder)
- 
- bool Border::hasBorder() const
- {
--    const ApiBorderData::ApiTableBorder& rTabBorder = maApiData.maBorder;
--
--    if (rTabBorder.IsBottomLineValid && lcl_isBorder(rTabBorder.BottomLine))
-+    if (lcl_isBorder(maApiData.maBottom))
-         return true;
- 
--    if (rTabBorder.IsTopLineValid && lcl_isBorder(rTabBorder.TopLine))
-+    if (lcl_isBorder(maApiData.maTop))
-         return true;
- 
--    if (rTabBorder.IsLeftLineValid && lcl_isBorder(rTabBorder.LeftLine))
-+    if (lcl_isBorder(maApiData.maLeft))
-         return true;
- 
--    if (rTabBorder.IsRightLineValid && lcl_isBorder(rTabBorder.RightLine))
-+    if (lcl_isBorder(maApiData.maRight))
-         return true;
- 
-     return false;
-@@ -1764,15 +1757,25 @@ BorderLineModel* Border::getBorderLine( sal_Int32 nElement )
-     return 0;
- }
- 
--bool Border::convertBorderLine( BorderLine& rBorderLine, const BorderLineModel& rModel )
-+bool Border::convertBorderLine( BorderLine2& rBorderLine, const BorderLineModel& rModel )
- {
-     rBorderLine.Color = rModel.maColor.getColor( getBaseFilter(), API_RGB_BLACK );
-     switch( rModel.mnStyle )
-     {
-         case XML_dashDot:           lclSetBorderLineWidth( rBorderLine, API_LINE_THIN );    break;
-         case XML_dashDotDot:        lclSetBorderLineWidth( rBorderLine, API_LINE_THIN );    break;
--        case XML_dashed:            lclSetBorderLineWidth( rBorderLine, API_LINE_THIN );    break;
--        case XML_dotted:            lclSetBorderLineWidth( rBorderLine, API_LINE_THIN );    break;
-+        case XML_dashed:            
-+        {
-+                                    lclSetBorderLineWidth( rBorderLine, API_LINE_THIN );
-+                                    rBorderLine.LineStyle = API_LINE_DASHED;
-+                                    break;
-+        }
-+        case XML_dotted:            
-+        {
-+                                    lclSetBorderLineWidth( rBorderLine, API_LINE_THIN );
-+                                    rBorderLine.LineStyle = API_LINE_DOTTED;
-+                                    break;
-+        }
-         case XML_double:            lclSetBorderLineWidth( rBorderLine, API_LINE_THIN, API_LINE_THIN, API_LINE_THIN ); break;
-         case XML_hair:              lclSetBorderLineWidth( rBorderLine, API_LINE_HAIR );    break;
-         case XML_medium:            lclSetBorderLineWidth( rBorderLine, API_LINE_MEDIUM );  break;
-diff --git sc/source/filter/excel/xestyle.cxx sc/source/filter/excel/xestyle.cxx
-index 2a35a31..e9a87d1 100644
---- sc/source/filter/excel/xestyle.cxx
-+++ sc/source/filter/excel/xestyle.cxx
-@@ -1572,9 +1572,26 @@ void lclGetBorderLine(
-         else if( nOuterWidth > DEF_LINE_WIDTH_2 )
-             rnXclLine = EXC_LINE_THICK;
-         else if( nOuterWidth > DEF_LINE_WIDTH_1 )
-+        {
-             rnXclLine = EXC_LINE_MEDIUM;
--        else if( nOuterWidth > DEF_LINE_WIDTH_0 )
-+            if ( pLine->GetStyle( ) == DASHED )
-+                rnXclLine = EXC_LINE_MEDIUMDASHED;
-+        }
-+        else if( nOuterWidth > DEF_LINE_WIDTH_0 ) 
-+        {
-             rnXclLine = EXC_LINE_THIN;
-+            switch ( pLine->GetStyle( ) )
-+            {
-+                case DASHED:
-+                    rnXclLine = EXC_LINE_DASHED;
-+                    break;
-+                case DOTTED:
-+                    rnXclLine = EXC_LINE_DOTTED;
-+                    break;
-+                default:
-+                    break;
-+            }
-+        }
-         else if( nOuterWidth > 0 )
-             rnXclLine = EXC_LINE_HAIR;
-         else
-@@ -1740,6 +1757,9 @@ static const char* ToLineStyle( sal_uInt8 nLineStyle )
-         case EXC_LINE_THICK:    return "thick";
-         case EXC_LINE_DOUBLE:   return "double";
-         case EXC_LINE_HAIR:     return "hair";
-+        case EXC_LINE_DOTTED:     return "dotted";
-+        case EXC_LINE_DASHED:     return "dashed";
-+        case EXC_LINE_MEDIUMDASHED:     return "mediumdashed";
-     }
-     return "*unknown*";
- }
-diff --git sc/source/filter/excel/xistyle.cxx sc/source/filter/excel/xistyle.cxx
-index 6e29ba0..f66c363 100644
---- sc/source/filter/excel/xistyle.cxx
-+++ sc/source/filter/excel/xistyle.cxx
-@@ -878,23 +878,23 @@ namespace {
- /** Converts the passed line style to a SvxBorderLine, or returns false, if style is "no line". */
- bool lclConvertBorderLine( SvxBorderLine& rLine, const XclImpPalette& rPalette, sal_uInt8 nXclLine, sal_uInt16 nXclColor )
- {
--    static const sal_uInt16 ppnLineParam[][ 3 ] =
-+    static const sal_uInt16 ppnLineParam[][ 4 ] =
-     {
--        //  outer width,        inner width,        distance
--        {   0,                  0,                  0 },                // 0 = none
--        {   DEF_LINE_WIDTH_1,   0,                  0 },                // 1 = thin
--        {   DEF_LINE_WIDTH_2,   0,                  0 },                // 2 = medium
--        {   DEF_LINE_WIDTH_1,   0,                  0 },                // 3 = dashed
--        {   DEF_LINE_WIDTH_0,   0,                  0 },                // 4 = dotted
--        {   DEF_LINE_WIDTH_3,   0,                  0 },                // 5 = thick
--        {   DEF_LINE_WIDTH_1,   DEF_LINE_WIDTH_1,   DEF_LINE_WIDTH_1 }, // 6 = double
--        {   DEF_LINE_WIDTH_0,   0,                  0 },                // 7 = hair
--        {   DEF_LINE_WIDTH_2,   0,                  0 },                // 8 = med dash
--        {   DEF_LINE_WIDTH_1,   0,                  0 },                // 9 = thin dashdot
--        {   DEF_LINE_WIDTH_2,   0,                  0 },                // A = med dashdot
--        {   DEF_LINE_WIDTH_1,   0,                  0 },                // B = thin dashdotdot
--        {   DEF_LINE_WIDTH_2,   0,                  0 },                // C = med dashdotdot
--        {   DEF_LINE_WIDTH_2,   0,                  0 }                 // D = med slant dashdot
-+        //  outer width,        inner width,        distance    type
-+        {   0,                  0,                  0,          SOLID },                // 0 = none
-+        {   DEF_LINE_WIDTH_1,   0,                  0,          SOLID },                // 1 = thin
-+        {   DEF_LINE_WIDTH_2,   0,                  0,          SOLID },                // 2 = medium
-+        {   DEF_LINE_WIDTH_1,   0,                  0,          DASHED },               // 3 = dashed
-+        {   DEF_LINE_WIDTH_1,   0,                  0,          DOTTED },               // 4 = dotted
-+        {   DEF_LINE_WIDTH_3,   0,                  0,          SOLID },                // 5 = thick
-+        {   DEF_LINE_WIDTH_1,   DEF_LINE_WIDTH_1,   DEF_LINE_WIDTH_1 },                 // 6 = double
-+        {   DEF_LINE_WIDTH_0,   0,                  0,          SOLID },                // 7 = hair
-+        {   DEF_LINE_WIDTH_2,   0,                  0,          DASHED },               // 8 = med dash
-+        {   DEF_LINE_WIDTH_1,   0,                  0,          SOLID },                // 9 = thin dashdot
-+        {   DEF_LINE_WIDTH_2,   0,                  0,          SOLID },                // A = med dashdot
-+        {   DEF_LINE_WIDTH_1,   0,                  0,          SOLID },                // B = thin dashdotdot
-+        {   DEF_LINE_WIDTH_2,   0,                  0,          SOLID },                // C = med dashdotdot
-+        {   DEF_LINE_WIDTH_2,   0,                  0,          SOLID }                 // D = med slant dashdot
-     };
- 
-     if( nXclLine == EXC_LINE_NONE )
-@@ -906,6 +906,7 @@ bool lclConvertBorderLine( SvxBorderLine& rLine, const XclImpPalette& rPalette,
-     rLine.SetOutWidth( ppnLineParam[ nXclLine ][ 0 ] );
-     rLine.SetInWidth(  ppnLineParam[ nXclLine ][ 1 ] );
-     rLine.SetDistance( ppnLineParam[ nXclLine ][ 2 ] );
-+    rLine.SetStyle( (SvxBorderStyle)ppnLineParam[ nXclLine ][ 3 ] );
-     return true;
- }
- 
-diff --git sc/source/filter/html/htmlexp.cxx sc/source/filter/html/htmlexp.cxx
-index 9698b9d..70f39ba 100644
---- sc/source/filter/html/htmlexp.cxx
-+++ sc/source/filter/html/htmlexp.cxx
-@@ -558,7 +558,14 @@ void ScHTMLExport::BorderToStyle( ByteString& rOut, const char* pBorderName,
-         // thickness
-         int nWidth = pLine->GetOutWidth();
-         int nPxWidth = ( nWidth > 0 )? std::max( int( nWidth / TWIPS_PER_PIXEL ), 1 ): 0;
--        (rOut += ByteString::CreateFromInt32( nPxWidth )) += "px solid #";
-+        (rOut += ByteString::CreateFromInt32( nPxWidth )) += "px ";
-+        switch ( pLine->GetStyle() )
-+        {
-+            case DOTTED:    rOut += "dotted"; break;
-+            case DASHED:    rOut += "dashed"; break;
-+            default:        rOut += "solid";
-+        }
-+        rOut += " #";
- 
-         // color
-         char hex[7];
-diff --git sc/source/filter/inc/xlstyle.hxx sc/source/filter/inc/xlstyle.hxx
-index e18f48b..373d701 100644
---- sc/source/filter/inc/xlstyle.hxx
-+++ sc/source/filter/inc/xlstyle.hxx
-@@ -51,9 +51,12 @@ class XclRoot;
- const sal_uInt8 EXC_LINE_NONE               = 0x00;
- const sal_uInt8 EXC_LINE_THIN               = 0x01;
- const sal_uInt8 EXC_LINE_MEDIUM             = 0x02;
-+const sal_uInt8 EXC_LINE_DASHED             = 0x03;
-+const sal_uInt8 EXC_LINE_DOTTED             = 0x04;
- const sal_uInt8 EXC_LINE_THICK              = 0x05;
- const sal_uInt8 EXC_LINE_DOUBLE             = 0x06;
- const sal_uInt8 EXC_LINE_HAIR               = 0x07;
-+const sal_uInt8 EXC_LINE_MEDIUMDASHED       = 0x08;
- 
- // Background patterns --------------------------------------------------------
- 
-#diff --git sc/source/filter/xlsx/xlsx-xestyle.cxx sc/source/filter/xlsx/xlsx-xestyle.cxx
-#index d882080..f60c37f 100644
-#--- sc/source/filter/xlsx/xlsx-xestyle.cxx
-#+++ sc/source/filter/xlsx/xlsx-xestyle.cxx
-#@@ -1557,9 +1557,26 @@ void lclGetBorderLine(
-#         else if( nOuterWidth > DEF_LINE_WIDTH_2 )
-#             rnXclLine = EXC_LINE_THICK;
-#         else if( nOuterWidth > DEF_LINE_WIDTH_1 )
-#+        {
-#             rnXclLine = EXC_LINE_MEDIUM;
-#+            if ( pLine->GetStyle( ) == EXC_LINE_DASHED )
-#+                rnXclLine = EXC_LINE_MEDIUMDASHED;
-#+        }
-#         else if( nOuterWidth > DEF_LINE_WIDTH_0 )
-#+        {
-#             rnXclLine = EXC_LINE_THIN;
-#+            switch ( pLine->GetStyle( ) )
-#+            {
-#+                case DOTTED:
-#+                    rnXclLine = EXC_LINE_DOTTED;
-#+                    break;
-#+                case DASHED:
-#+                    rnXclLine = EXC_LINE_DASHED;
-#+                    break;
-#+                default:
-#+                    break;
-#+            }
-#+        }
-#         else if( nOuterWidth > 0 )
-#             rnXclLine = EXC_LINE_HAIR;
-#         else
-#@@ -1725,6 +1742,9 @@ static const char* ToLineStyle( sal_uInt8 nLineStyle )
-#         case EXC_LINE_THICK:    return "thick";
-#         case EXC_LINE_DOUBLE:   return "double";
-#         case EXC_LINE_HAIR:     return "hair";
-#+        case EXC_LINE_DOTTED:   return "dotted";
-#+        case EXC_LINE_DASHED:   return "dashed";
-#+        case EXC_LINE_MEDIUMDASHED:   return "mediumdashed";
-#     }
-#     return "*unknown*";
-# }
-diff --git sc/source/ui/unoobj/cellsuno.cxx sc/source/ui/unoobj/cellsuno.cxx
-index 11ecd43..1b1c8a0 100644
---- sc/source/ui/unoobj/cellsuno.cxx
-+++ sc/source/ui/unoobj/cellsuno.cxx
-@@ -62,6 +62,7 @@
- #include <com/sun/star/table/CellVertJustify2.hpp>
- #include <com/sun/star/table/ShadowFormat.hpp>
- #include <com/sun/star/table/TableBorder.hpp>
-+#include <com/sun/star/table/BorderLine2.hpp>
- #include <com/sun/star/sheet/CellFlags.hpp>
- #include <com/sun/star/sheet/FormulaResult.hpp>
- #include <com/sun/star/beans/PropertyAttribute.hpp>
-@@ -162,7 +163,7 @@ const SfxItemPropertySet* lcl_GetCellsPropertySet()
-     {
-         {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
-@@ -213,13 +214,13 @@ const SfxItemPropertySet* lcl_GetCellsPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS_METHOD), ATTR_HOR_JUSTIFY_METHOD, &::getCppuType((const sal_Int32*)0),   0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
-         {MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
-@@ -234,13 +235,13 @@ const SfxItemPropertySet* lcl_GetCellsPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_PLMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_L_MARGIN  | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((sal_Int32*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-@@ -263,7 +264,7 @@ const SfxItemPropertySet* lcl_GetRangePropertySet()
-     {
-         {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
-@@ -314,13 +315,13 @@ const SfxItemPropertySet* lcl_GetRangePropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0),	0, MID_HORJUST_HORJUST },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS_METHOD), ATTR_HOR_JUSTIFY_METHOD, &::getCppuType((const sal_Int32*)0),   0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
-         {MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
-@@ -336,14 +337,14 @@ const SfxItemPropertySet* lcl_GetRangePropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((sal_Int32*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-@@ -366,7 +367,7 @@ const SfxItemPropertySet* lcl_GetCellPropertySet()
-     {
-         {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
-@@ -417,15 +418,15 @@ const SfxItemPropertySet* lcl_GetCellPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_FORMLOC),	SC_WID_UNO_FORMLOC,	&getCppuType((rtl::OUString*)0),		0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_FORMRT),	SC_WID_UNO_FORMRT,	&getCppuType((table::CellContentType*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS_METHOD), ATTR_HOR_JUSTIFY_METHOD, &::getCppuType((const sal_Int32*)0),   0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
-         {MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLORI),  ATTR_STACKED,       &getCppuType((table::CellOrientation*)0), 0, 0 },
-@@ -441,14 +442,14 @@ const SfxItemPropertySet* lcl_GetCellPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((sal_Int32*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-@@ -471,7 +472,7 @@ const SfxItemPropertySet* lcl_GetColumnPropertySet()
-     {
-         {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
-@@ -522,8 +523,8 @@ const SfxItemPropertySet* lcl_GetColumnPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS_METHOD), ATTR_HOR_JUSTIFY_METHOD, &::getCppuType((const sal_Int32*)0),   0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
-@@ -532,7 +533,7 @@ const SfxItemPropertySet* lcl_GetColumnPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_NEWPAGE),	SC_WID_UNO_NEWPAGE,	&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLVIS),	SC_WID_UNO_CELLVIS,	&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_OWIDTH),	SC_WID_UNO_OWIDTH,	&getBooleanCppuType(),					0, 0 },
-@@ -549,14 +550,14 @@ const SfxItemPropertySet* lcl_GetColumnPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((sal_Int32*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-@@ -577,7 +578,7 @@ const SfxItemPropertySet* lcl_GetRowPropertySet()
-     {
-         {MAP_CHAR_LEN(SC_UNONAME_ABSNAME),	SC_WID_UNO_ABSNAME,	&getCppuType((rtl::OUString*)0),		0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
-@@ -628,8 +629,8 @@ const SfxItemPropertySet* lcl_GetRowPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_CONDFMT),	SC_WID_UNO_CONDFMT,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDLOC),	SC_WID_UNO_CONDLOC,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CONDXML),	SC_WID_UNO_CONDXML,	&getCppuType((uno::Reference<sheet::XSheetConditionalEntries>*)0), 0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHGT),	SC_WID_UNO_CELLHGT,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS_METHOD), ATTR_HOR_JUSTIFY_METHOD, &::getCppuType((const sal_Int32*)0),   0, 0 },
-@@ -639,7 +640,7 @@ const SfxItemPropertySet* lcl_GetRowPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_NEWPAGE),	SC_WID_UNO_NEWPAGE,	&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLVIS),	SC_WID_UNO_CELLVIS,	&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMRULES),	SC_WID_UNO_NUMRULES,&getCppuType((const uno::Reference<container::XIndexReplace>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_OHEIGHT),	SC_WID_UNO_OHEIGHT,	&getBooleanCppuType(),					0, 0 },
-@@ -656,14 +657,14 @@ const SfxItemPropertySet* lcl_GetRowPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_PRMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_R_MARGIN  | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_PTMARGIN),	ATTR_MARGIN,		&getCppuType((sal_Int32*)0),			0, MID_MARGIN_UP_MARGIN | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((sal_Int32*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_SHRINK_TO_FIT), ATTR_SHRINKTOFIT, &getBooleanCppuType(),			    0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-@@ -685,7 +686,7 @@ const SfxItemPropertySet* lcl_GetSheetPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_ASIANVERT),ATTR_VERTICAL_ASIAN,&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_AUTOPRINT),SC_WID_UNO_AUTOPRINT,&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_BORDCOL),  SC_WID_UNO_BORDCOL, &getCppuType((sal_Int32*)0),			0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_BOTTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, BOTTOM_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLBACK),	ATTR_BACKGROUND,	&getCppuType((sal_Int32*)0),			0, MID_BACK_COLOR },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLPRO),	ATTR_PROTECTION,	&getCppuType((util::CellProtection*)0),	0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLSTYL),	SC_WID_UNO_CELLSTYL,&getCppuType((rtl::OUString*)0),		0, 0 },
-@@ -739,15 +740,15 @@ const SfxItemPropertySet* lcl_GetSheetPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_COPYBACK),	SC_WID_UNO_COPYBACK,&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_COPYFORM),	SC_WID_UNO_COPYFORM,&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_COPYSTYL),	SC_WID_UNO_COPYSTYL,&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
--        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_BLTR), ATTR_BORDER_BLTR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_DIAGONAL_TLBR), ATTR_BORDER_TLBR, &::getCppuType((const table::BorderLine2*)0), 0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS),	ATTR_HOR_JUSTIFY,	&getCppuType((table::CellHoriJustify*)0), 0, MID_HORJUST_HORJUST },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLHJUS_METHOD), ATTR_HOR_JUSTIFY_METHOD, &::getCppuType((const sal_Int32*)0),   0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ISACTIVE),	SC_WID_UNO_ISACTIVE,&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLTRAN),	ATTR_BACKGROUND,	&getBooleanCppuType(),					0, MID_GRAPHIC_TRANSPARENT },
-         {MAP_CHAR_LEN(SC_UNONAME_WRAP),		ATTR_LINEBREAK,		&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_CELLVIS),	SC_WID_UNO_CELLVIS,	&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_LEFTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, LEFT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNO_LINKDISPBIT),	SC_WID_UNO_LINKDISPBIT,&getCppuType((uno::Reference<awt::XBitmap>*)0), 0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNO_LINKDISPNAME),	SC_WID_UNO_LINKDISPNAME,&getCppuType((rtl::OUString*)0),	0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_NUMFMT),	ATTR_VALUE_FORMAT,	&getCppuType((sal_Int32*)0),			0, 0 },
-@@ -768,7 +769,7 @@ const SfxItemPropertySet* lcl_GetSheetPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_POS),		SC_WID_UNO_POS,		&getCppuType((awt::Point*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_PRINTBORD),SC_WID_UNO_PRINTBORD,&getBooleanCppuType(),					0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_PROTECT),  SC_WID_UNO_PROTECT,	&getBooleanCppuType(),					0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_RIGHTBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, RIGHT_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTANG),	ATTR_ROTATE_VALUE,	&getCppuType((sal_Int32*)0),			0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_ROTREF),	ATTR_ROTATE_MODE,	&getCppuType((sal_Int32*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_SHADOW),	ATTR_SHADOW,		&getCppuType((table::ShadowFormat*)0),	0, 0 | CONVERT_TWIPS },
-@@ -777,7 +778,7 @@ const SfxItemPropertySet* lcl_GetSheetPropertySet()
-         {MAP_CHAR_LEN(SC_UNONAME_SIZE),		SC_WID_UNO_SIZE,	&getCppuType((awt::Size*)0),			0 | beans::PropertyAttribute::READONLY, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_TBLBORD),	SC_WID_UNO_TBLBORD,	&getCppuType((table::TableBorder*)0),	0, 0 | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_TABLAYOUT),SC_WID_UNO_TABLAYOUT,&getCppuType((sal_Int16*)0),			0, 0 },
--        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-+        {MAP_CHAR_LEN(SC_UNONAME_TOPBORDER),ATTR_BORDER,		&::getCppuType((const table::BorderLine2*)0), 0, TOP_BORDER | CONVERT_TWIPS },
-         {MAP_CHAR_LEN(SC_UNONAME_USERDEF),	ATTR_USERDEF,		&getCppuType((uno::Reference<container::XNameContainer>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALIDAT),	SC_WID_UNO_VALIDAT,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-         {MAP_CHAR_LEN(SC_UNONAME_VALILOC),	SC_WID_UNO_VALILOC,	&getCppuType((uno::Reference<beans::XPropertySet>*)0), 0, 0 },
-diff --git sc/source/ui/view/formatsh.cxx sc/source/ui/view/formatsh.cxx
-index fb9f77d..ef619e4 100644
---- sc/source/ui/view/formatsh.cxx
-+++ sc/source/ui/view/formatsh.cxx
-@@ -1536,6 +1536,7 @@ void ScFormatShell::ExecuteAttr( SfxRequest& rReq )
-                             pDefLine->SetOutWidth( pLine->GetOutWidth() );
-                             pDefLine->SetInWidth ( pLine->GetInWidth() );
-                             pDefLine->SetDistance( pLine->GetDistance() );
-+                            pDefLine->SetStyle( pLine->GetStyle( ) );
-                             pTabViewShell->SetSelectionFrameLines( pDefLine, FALSE );
-                         }
-                         else
-diff --git sc/source/ui/view/viewfun2.cxx sc/source/ui/view/viewfun2.cxx
-index e2255e0..9c0f929 100644
---- sc/source/ui/view/viewfun2.cxx
-+++ sc/source/ui/view/viewfun2.cxx
-@@ -3002,6 +3002,7 @@ void ScViewFunc::UpdateLineAttrs( SvxBorderLine&	   rLine,
-             rLine.SetOutWidth	( pDestLine->GetOutWidth() );
-             rLine.SetInWidth	( pDestLine->GetInWidth() );
-             rLine.SetDistance	( pDestLine->GetDistance() );
-+            rLine.SetStyle	    ( pDestLine->GetStyle() );
-         }
-         else
-         {
-@@ -3009,6 +3010,7 @@ void ScViewFunc::UpdateLineAttrs( SvxBorderLine&	   rLine,
-             rLine.SetOutWidth	( pSrcLine->GetOutWidth() );
-             rLine.SetInWidth	( pSrcLine->GetInWidth() );
-             rLine.SetDistance	( pSrcLine->GetDistance() );
-+            rLine.SetStyle   	( pSrcLine->GetStyle() );
-         }
-     }
- }
-diff --git svtools/inc/borderhelper.hxx svtools/inc/borderhelper.hxx
-new file mode 100644
-index 0000000..a3c5cb0
---- /dev/null
-+++ svtools/inc/borderhelper.hxx
-@@ -0,0 +1,49 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: ctrlbox.hxx,v $
-+ * $Revision: 1.15 $
-+ *
-+ * This file is part of OpenOffice.org.
-+ *
-+ * OpenOffice.org is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Lesser General Public License version 3
-+ * only, as published by the Free Software Foundation.
-+ *
-+ * OpenOffice.org is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU Lesser General Public License version 3 for more details
-+ * (a copy is included in the LICENSE file that accompanied this code).
-+ *
-+ * You should have received a copy of the GNU Lesser General Public License
-+ * version 3 along with OpenOffice.org.  If not, see
-+ * <http://www.openoffice.org/license.html>
-+ * for a copy of the LGPLv3 License.
-+ *
-+ ************************************************************************/
-+
-+#ifndef _BORDERHELPER_HXX
-+#define _BORDERHELPER_HXX
-+
-+#include "svtools/svtdllapi.h"
-+
-+#include <basegfx/polygon/b2dpolypolygon.hxx>
-+#include <basegfx/polygon/b2dpolygon.hxx>
-+#include <vcl/outdev.hxx>
-+
-+namespace svtools
-+{
-+    SVT_DLLPUBLIC basegfx::B2DPolyPolygon ApplyLineDashing( const basegfx::B2DPolygon& rPolygon, 
-+            USHORT nDashing, MapUnit eUnit );
-+
-+    SVT_DLLPUBLIC void DrawLine( OutputDevice& rDev, const Point& rBeg, 
-+            const Point& rEnd, sal_uInt32 nWidth, USHORT nDashing );
-+}
-+
-+#endif
-diff --git svtools/inc/ctrlbox.hxx svtools/inc/ctrlbox.hxx
-index 1feb2df..a4d7dc8 100644
---- svtools/inc/ctrlbox.hxx
-+++ svtools/inc/ctrlbox.hxx
-@@ -57,6 +57,10 @@ class ImpColorList;
- class ImpLineList;
- class FontList;
- 
-+#define STYLE_SOLID     ( ( USHORT ) 0 )
-+#define STYLE_DOTTED    ( ( USHORT ) 1 )
-+#define STYLE_DASHED    ( ( USHORT ) 2 )
-+
- /*************************************************************************
- 
- Beschreibung
-@@ -258,7 +262,8 @@ class SVT_DLLPUBLIC LineListBox : public ListBox
-     FieldUnit		eUnit;
-     FieldUnit		eSourceUnit;
- 
--    SVT_DLLPRIVATE void			ImpGetLine( long nLine1, long nLine2, long nDistance, Bitmap& rBmp, XubString& rStr );
-+    SVT_DLLPRIVATE void			ImpGetLine( long nLine1, long nLine2, long nDistance, 
-+                                    USHORT nStyle, Bitmap& rBmp, XubString& rStr );
-     using Window::ImplInit;
-     SVT_DLLPRIVATE void			ImplInit();
-     void			UpdateLineColors( void );
-@@ -273,24 +278,30 @@ public:
- 
-     using ListBox::InsertEntry;
-     virtual USHORT	InsertEntry( const XubString& rStr, USHORT nPos = LISTBOX_APPEND );
--    virtual USHORT	InsertEntry( long nLine1, long nLine2 = 0, long nDistance = 0, USHORT nPos = LISTBOX_APPEND );
-+    virtual USHORT	InsertEntry( long nLine1, long nLine2 = 0, long nDistance = 0, 
-+                                USHORT nStyle = STYLE_SOLID, USHORT nPos = LISTBOX_APPEND );
-     using ListBox::RemoveEntry;
-     virtual void	RemoveEntry( USHORT nPos );
-     virtual void	Clear();
- 
-     using ListBox::GetEntryPos;
--    USHORT			GetEntryPos( long nLine1, long nLine2 = 0, long nDistance = 0 ) const;
-+    USHORT			GetEntryPos( long nLine1, long nLine2 = 0, long nDistance = 0, 
-+                                 USHORT nStyle = STYLE_SOLID ) const;
-     long			GetEntryLine1( USHORT nPos ) const;
-     long			GetEntryLine2( USHORT nPos ) const;
-     long			GetEntryDistance( USHORT nPos ) const;
-+    USHORT          GetEntryStyle( USHORT nPos ) const;
- 
-     inline void		SelectEntry( const XubString& rStr, BOOL bSelect = TRUE ) { ListBox::SelectEntry( rStr, bSelect ); }
--    void			SelectEntry( long nLine1, long nLine2 = 0, long nDistance = 0, BOOL bSelect = TRUE );
-+    void			SelectEntry( long nLine1, long nLine2 = 0, long nDistance = 0, 
-+                                 USHORT nStyle = STYLE_SOLID, BOOL bSelect = TRUE );
-     long			GetSelectEntryLine1( USHORT nSelIndex = 0 ) const;
-     long			GetSelectEntryLine2( USHORT nSelIndex = 0 ) const;
-     long			GetSelectEntryDistance( USHORT nSelIndex = 0 ) const;
-+    USHORT  		GetSelectEntryStyle( USHORT nSelIndex = 0 ) const;
-     inline BOOL		IsEntrySelected( const XubString& rStr ) const { return ListBox::IsEntrySelected( rStr ); }
--    BOOL			IsEntrySelected( long nLine1, long nLine2 = 0, long nDistance = 0 ) const;
-+    BOOL			IsEntrySelected( long nLine1, long nLine2 = 0, long nDistance = 0, 
-+                                     USHORT nStyle1 = STYLE_SOLID ) const;
- 
-     inline void		SetUnit( FieldUnit eNewUnit ) { eUnit = eNewUnit; }
-     inline FieldUnit	GetUnit() const { return eUnit; }
-@@ -308,9 +319,9 @@ private:
-     void*			GetEntryData( USHORT nPos ) const;
- };
- 
--inline void LineListBox::SelectEntry( long nLine1, long nLine2, long nDistance, BOOL bSelect )
-+inline void LineListBox::SelectEntry( long nLine1, long nLine2, long nDistance, USHORT nStyle, BOOL bSelect )
- {
--    USHORT nPos = GetEntryPos( nLine1, nLine2, nDistance );
-+    USHORT nPos = GetEntryPos( nLine1, nLine2, nDistance, nStyle );
-     if ( nPos != LISTBOX_ENTRY_NOTFOUND )
-         ListBox::SelectEntryPos( nPos, bSelect );
- }
-@@ -342,9 +353,19 @@ inline long LineListBox::GetSelectEntryDistance( USHORT nSelIndex ) const
-         return 0;
- }
- 
--inline BOOL LineListBox::IsEntrySelected( long nLine1, long nLine2, long nDistance ) const
-+inline USHORT LineListBox::GetSelectEntryStyle( USHORT nSelIndex ) const
-+{
-+    USHORT nStyle = STYLE_SOLID;
-+    USHORT nPos = GetSelectEntryPos( nSelIndex );
-+    if ( nPos != LISTBOX_ENTRY_NOTFOUND )
-+        nStyle = GetEntryStyle( nPos );
-+
-+    return nStyle;
-+}
-+
-+inline BOOL LineListBox::IsEntrySelected( long nLine1, long nLine2, long nDistance, USHORT nStyle ) const
- {
--    USHORT nPos = GetEntryPos( nLine1, nLine2, nDistance );
-+    USHORT nPos = GetEntryPos( nLine1, nLine2, nDistance, nStyle );
-     if ( nPos != LISTBOX_ENTRY_NOTFOUND )
-         return IsEntryPosSelected( nPos );
-     else
-diff --git svtools/prj/d.lst svtools/prj/d.lst
-index 684c3a1..2e8b5b9 100644
---- svtools/prj/d.lst
-+++ svtools/prj/d.lst
-@@ -43,6 +43,7 @@ mkdir: %_DEST%\inc%_EXT%\svtools
- ..\inc\cntnrsrt.hxx %_DEST%\inc%_EXT%\svtools\cntnrsrt.hxx
- ..\inc\svtools\colrdlg.hxx %_DEST%\inc%_EXT%\svtools\colrdlg.hxx
- ..\inc\svtools\colctrl.hxx %_DEST%\inc%_EXT%\svtools\colctrl.hxx
-+..\inc\borderhelper.hxx %_DEST%\inc%_EXT%\svtools\borderhelper.hxx
- ..\inc\ctrlbox.hxx %_DEST%\inc%_EXT%\svtools\ctrlbox.hxx
- ..\inc\ctrltool.hxx %_DEST%\inc%_EXT%\svtools\ctrltool.hxx
- ..\inc\collatorres.hxx %_DEST%\inc%_EXT%\svtools\collatorres.hxx
-diff --git svtools/source/control/ctrlbox.cxx svtools/source/control/ctrlbox.cxx
-index 01cd788..951c296 100644
---- svtools/source/control/ctrlbox.cxx
-+++ svtools/source/control/ctrlbox.cxx
-@@ -46,8 +46,11 @@
- #include <svtools/svtools.hrc>
- #include <ctrlbox.hxx>
- #include <ctrltool.hxx>
-+#include <borderhelper.hxx>
- 
- #include <vcl/i18nhelp.hxx>
-+#include <basegfx/polygon/b2dpolygon.hxx>
-+#include <basegfx/polygon/b2dpolygontools.hxx>
- 
- #define IMGTEXTSPACE    2
- #define EXTRAFONTSIZE   5
-@@ -255,6 +258,7 @@ struct ImpLineListData
-     long    nLine1;
-     long    nLine2;
-     long    nDistance;
-+    USHORT  nStyle;
- };
- 
- DECLARE_LIST( ImpLineList, ImpLineListData* )
-@@ -268,8 +272,107 @@ inline const Color& LineListBox::GetPaintColor( void ) const
- 
- // -----------------------------------------------------------------------
- 
-+
-+inline void lclDrawPolygon( OutputDevice& rDev, const basegfx::B2DPolygon& rPolygon, long nWidth, USHORT nDashing )
-+{
-+    USHORT nOldAA = rDev.GetAntialiasing();
-+    rDev.SetAntialiasing( nOldAA & !ANTIALIASING_ENABLE_B2DDRAW );
-+
-+    Color aOldColor = rDev.GetFillColor( );
-+    rDev.SetFillColor( rDev.GetLineColor( ) );
-+
-+    basegfx::B2DPolyPolygon aPolygons = svtools::ApplyLineDashing( rPolygon, nDashing, rDev.GetMapMode().GetMapUnit() );
-+    for ( sal_uInt32 i = 0; i < aPolygons.count( ); i++ )
-+    {
-+        basegfx::B2DPolygon aDash = aPolygons.getB2DPolygon( i );
-+        basegfx::B2DPoint aStart = aDash.getB2DPoint( 0 );
-+        basegfx::B2DPoint aEnd = aDash.getB2DPoint( aDash.count() - 1 );
-+
-+        basegfx::B2DVector aVector( aEnd - aStart );
-+        aVector.normalize( );
-+        const basegfx::B2DVector aPerpendicular(basegfx::getPerpendicular(aVector));
-+
-+        const basegfx::B2DVector aWidthOffset( nWidth / 2 * aPerpendicular);
-+        basegfx::B2DPolygon aDashPolygon;
-+        aDashPolygon.append( aStart + aWidthOffset );
-+        aDashPolygon.append( aEnd + aWidthOffset );
-+        aDashPolygon.append( aEnd - aWidthOffset );
-+        aDashPolygon.append( aStart - aWidthOffset );
-+        aDashPolygon.setClosed( true );
-+
-+        rDev.DrawPolygon( aDashPolygon );
-+    }
-+        
-+    rDev.SetFillColor( aOldColor );
-+    rDev.SetAntialiasing( nOldAA );
-+}
-+
-+namespace svtools
-+{
-+    basegfx::B2DPolyPolygon ApplyLineDashing( const basegfx::B2DPolygon& rPolygon, USHORT nDashing, MapUnit eUnit )
-+    {
-+        ::std::vector < double >aPattern;
-+        switch ( nDashing )
-+        {
-+            case STYLE_DOTTED:
-+                if ( eUnit == MAP_TWIP )
-+                {
-+                    aPattern.push_back( 30.0 );
-+                    aPattern.push_back( 110.0 );
-+                }
-+                else if ( eUnit == MAP_100TH_MM )
-+                {
-+                    aPattern.push_back( 50 );
-+                    aPattern.push_back( 200 );
-+                }
-+                else if ( eUnit == MAP_PIXEL )
-+                {
-+                    aPattern.push_back( 1.0 );
-+                    aPattern.push_back( 3.0 );
-+                }
-+                break;
-+            case STYLE_DASHED:
-+                if ( eUnit == MAP_TWIP )
-+                {
-+                    aPattern.push_back( 110 );
-+                    aPattern.push_back( 110 );
-+                }
-+                else if ( eUnit == MAP_100TH_MM )
-+                {
-+                    aPattern.push_back( 200 );
-+                    aPattern.push_back( 200 );
-+                }
-+                else if ( eUnit == MAP_PIXEL )
-+                {
-+                    aPattern.push_back( 10 );
-+                    aPattern.push_back( 20 );
-+                }
-+                break;
-+            default:
-+                break;
-+        }
-+    
-+        basegfx::B2DPolyPolygon aPolygons;
-+        if ( ! aPattern.empty() )
-+            basegfx::tools::applyLineDashing( rPolygon, aPattern, &aPolygons );
-+        else
-+            aPolygons.append( rPolygon );
-+    
-+        return aPolygons;
-+    }
-+
-+    void DrawLine( OutputDevice& rDev, const Point& rP1, const Point& rP2, 
-+        sal_uInt32 nWidth, USHORT nDashing )
-+    {
-+        basegfx::B2DPolygon aPolygon;
-+        aPolygon.append( basegfx::B2DPoint( rP1.X(), rP1.Y() ) );
-+        aPolygon.append( basegfx::B2DPoint( rP2.X(), rP2.Y() ) );
-+        lclDrawPolygon( rDev, aPolygon, nWidth, nDashing );
-+    }
-+}
-+
- void LineListBox::ImpGetLine( long nLine1, long nLine2, long nDistance,
--                            Bitmap& rBmp, XubString& rStr )
-+                            USHORT nStyle, Bitmap& rBmp, XubString& rStr )
- {
-     Size aSize = GetOutputSizePixel();
-     aSize.Width() -= 20;
-@@ -296,8 +399,8 @@ void LineListBox::ImpGetLine( long nLine1, long nLine2, long nDistance,
-     // Linien malen
-     aSize = aVirDev.PixelToLogic( aSize );
-     long nPix = aVirDev.PixelToLogic( Size( 0, 1 ) ).Height();
--    long n1 = nLine1 / 100;
--    long n2 = nLine2 / 100;
-+    sal_uInt32 n1 = nLine1 / 100;
-+    sal_uInt32 n2 = nLine2 / 100;
-     long nDist  = nDistance / 100;
-     n1 += nPix-1;
-     n1 -= n1%nPix;
-@@ -320,13 +423,18 @@ void LineListBox::ImpGetLine( long nLine1, long nLine2, long nDistance,
-         aVirDev.SetFillColor( GetSettings().GetStyleSettings().GetFieldColor() );
-         aVirDev.DrawRect( Rectangle( Point(), aSize ) );
- 
--        aVirDev.SetFillColor( GetPaintColor() );
--        aVirDev.DrawRect( Rectangle( 0, 0, aSize.Width(), n1-nPix ) );
-+        Color oldColor = aVirDev.GetLineColor( );
-+        aVirDev.SetLineColor( GetPaintColor( ) );
-+
-+        double y1 = n1 / 2;
-+        svtools::DrawLine( aVirDev, Point( 0, y1 ), Point( aSize.Width( ), y1 ), n1, nStyle );
-+
-         if ( n2 )
-         {
--            aVirDev.DrawRect( Rectangle( 0, n1+nDist,
--                                         aSize.Width(), n1+nDist+n2-nPix ) );
-+            double y2 =  n1 + nDist + n2 / 2;
-+            svtools::DrawLine( aVirDev, Point( 0, y2 ), Point( aSize.Width(), y2 ), n2, STYLE_SOLID );
-         }
-+        aVirDev.SetLineColor( oldColor );
-         rBmp = aVirDev.GetBitmap( Point(), Size( aSize.Width(), n1+nDist+n2 ) );
-     }
-     // Twips nach Unit
-@@ -417,11 +525,11 @@ USHORT LineListBox::InsertEntry( const XubString& rStr, USHORT nPos )
- // -----------------------------------------------------------------------
- 
- USHORT LineListBox::InsertEntry( long nLine1, long nLine2, long nDistance,
--                                USHORT nPos )
-+                                USHORT nStyle, USHORT nPos )
- {
-     XubString   aStr;
-     Bitmap      aBmp;
--    ImpGetLine( nLine1, nLine2, nDistance, aBmp, aStr );
-+    ImpGetLine( nLine1, nLine2, nDistance, nStyle, aBmp, aStr );
-     nPos = ListBox::InsertEntry( aStr, aBmp, nPos );
-     if ( nPos != LISTBOX_ERROR )
-     {
-@@ -429,6 +537,7 @@ USHORT LineListBox::InsertEntry( long nLine1, long nLine2, long nDistance,
-         pData->nLine1    = nLine1;
-         pData->nLine2    = nLine2;
-         pData->nDistance = nDistance;
-+        pData->nStyle    = nStyle;
-         pLineList->Insert( pData, nPos );
-     }
- 
-@@ -466,7 +575,7 @@ void LineListBox::Clear()
- // -----------------------------------------------------------------------
- 
- USHORT LineListBox::GetEntryPos( long nLine1, long nLine2,
--                                long nDistance ) const
-+                                long nDistance, USHORT nStyle ) const
- {
-     ULONG n = 0;
-     ULONG nCount = pLineList->Count();
-@@ -477,7 +586,8 @@ USHORT LineListBox::GetEntryPos( long nLine1, long nLine2,
-         {
-             if ( (pData->nLine1    == nLine1) &&
-                 (pData->nLine2    == nLine2) &&
--                (pData->nDistance == nDistance) )
-+                (pData->nDistance == nDistance) &&
-+                (pData->nStyle == nStyle) )
-             return (USHORT)n;
-         }
- 
-@@ -522,6 +632,18 @@ long LineListBox::GetEntryDistance( USHORT nPos ) const
- 
- // -----------------------------------------------------------------------
- 
-+USHORT LineListBox::GetEntryStyle( USHORT nPos ) const
-+{
-+    USHORT nStyle = STYLE_SOLID;
-+    ImpLineListData* pData = pLineList->GetObject( nPos );
-+    if ( pData )
-+        nStyle = pData->nStyle;
-+    
-+    return nStyle;
-+}
-+
-+// -----------------------------------------------------------------------
-+
- void LineListBox::UpdateLineColors( void )
- {
-     if( UpdatePaintLineColor() )
-@@ -544,7 +666,8 @@ void LineListBox::UpdateLineColors( void )
-             {
-                 // exchange listbox data
-                 ListBox::RemoveEntry( USHORT( n ) );
--                ImpGetLine( pData->nLine1, pData->nLine2, pData->nDistance, aBmp, aStr );
-+                ImpGetLine( pData->nLine1, pData->nLine2, pData->nDistance, 
-+                        pData->nStyle, aBmp, aStr );
-                 ListBox::InsertEntry( aStr, aBmp, USHORT( n ) );
-             }
-         }
-diff --git svtools/source/svrtf/rtfkeywd.hxx svtools/source/svrtf/rtfkeywd.hxx
-index 87258b5..13e1f8c 100644
---- svtools/source/svrtf/rtfkeywd.hxx
-+++ svtools/source/svrtf/rtfkeywd.hxx
-@@ -72,6 +72,8 @@
- #define OOO_STRING_SVTOOLS_RTF_BRDRCF "\\brdrcf"
- #define OOO_STRING_SVTOOLS_RTF_BRDRDB "\\brdrdb"
- #define OOO_STRING_SVTOOLS_RTF_BRDRDOT "\\brdrdot"
-+#define OOO_STRING_SVTOOLS_RTF_BRDRDASH "\\brdrdash"
-+#define OOO_STRING_SVTOOLS_RTF_BRDRDASHSM "\\brdrdashsm"
- #define OOO_STRING_SVTOOLS_RTF_BRDRHAIR "\\brdrhair"
- #define OOO_STRING_SVTOOLS_RTF_BRDRL "\\brdrl"
- #define OOO_STRING_SVTOOLS_RTF_BRDRR "\\brdrr"
-diff --git svtools/util/makefile.mk svtools/util/makefile.mk
-index e95c557..15ea4de 100644
---- svtools/util/makefile.mk
-+++ svtools/util/makefile.mk
-@@ -152,7 +152,8 @@ SHL1STDLIBS+= \
-         $(VOSLIB)			\
-         $(SALLIB)			\
-         $(ICUUCLIB)		\
--        $(JVMFWKLIB)
-+        $(JVMFWKLIB) \
-+		$(BASEGFXLIB)
- 
- .IF "$(OS)"=="MACOSX"
- # static libraries go at end
-diff --git svx/inc/svx/borderline.hxx svx/inc/svx/borderline.hxx
-index 2337c66..5e4be3b 100644
---- svx/inc/svx/borderline.hxx
-+++ svx/inc/svx/borderline.hxx
-@@ -93,6 +93,13 @@
- 
- // ============================================================================
- 
-+enum SvxBorderStyle
-+{
-+    SOLID,
-+    DOTTED,
-+    DASHED
-+};
-+
- class SVX_DLLPUBLIC SvxBorderLine
- {
- protected:
-@@ -100,9 +107,11 @@ protected:
-     USHORT nOutWidth;
-     USHORT nInWidth;
-     USHORT nDistance;
-+    SvxBorderStyle   m_nStyle;
- 
- public:
--    SvxBorderLine( const Color *pCol = 0, USHORT nOut = 0, USHORT nIn = 0, USHORT nDist = 0 );
-+    SvxBorderLine( const Color *pCol = 0, USHORT nOut = 0, USHORT nIn = 0, USHORT nDist = 0, 
-+            SvxBorderStyle nStyle = SOLID );
-     SvxBorderLine( const SvxBorderLine& r );
- 
-     SvxBorderLine& operator=( const SvxBorderLine& r );
-@@ -112,10 +121,13 @@ public:
-     USHORT 			GetInWidth() const { return nInWidth; }
-     USHORT 			GetDistance() const { return nDistance; }
- 
-+    SvxBorderStyle  GetStyle() const { return m_nStyle; }
-+
-     void 			SetColor( const Color &rColor ) { aColor = rColor; }
-     void			SetOutWidth( USHORT nNew ) { nOutWidth = nNew; }
-     void			SetInWidth( USHORT nNew ) { nInWidth = nNew;  }
-     void			SetDistance( USHORT nNew ) { nDistance = nNew; }
-+    void            SetStyle( SvxBorderStyle nNew ) { m_nStyle = nNew; }
-     void			ScaleMetrics( long nMult, long nDiv );
- 
-     BOOL			operator==( const SvxBorderLine &rCmp ) const;
-diff --git svx/inc/svx/framelink.hxx svx/inc/svx/framelink.hxx
-index 2bf5138..8309326 100644
---- svx/inc/svx/framelink.hxx
-+++ svx/inc/svx/framelink.hxx
-@@ -36,9 +36,10 @@
- #include <tools/gen.hxx>
- #include <tools/color.hxx>
- #include "svx/svxdllapi.h"
-+#include "svx/borderline.hxx"
-+#include <vcl/outdev.hxx>
- 
- class OutputDevice;
--class SvxBorderLine;
- 
- namespace svx {
- namespace frame {
-@@ -115,20 +116,20 @@ class SVX_DLLPUBLIC Style
- {
- public:
-     /** Constructs an invisible frame style. */
--    inline explicit     Style() : meRefMode( REFMODE_CENTERED ), mnPrim( 0 ), mnDist( 0 ), mnSecn( 0 ), mbDotted( false ) {}
-+    inline explicit     Style() : meRefMode( REFMODE_CENTERED ), mnPrim( 0 ), mnDist( 0 ), mnSecn( 0 ), mnDashing( SOLID ) {}
-     /** Constructs a frame style with passed line widths. */
-     inline explicit     Style( sal_uInt16 nP, sal_uInt16 nD, sal_uInt16 nS ) :
--                            meRefMode( REFMODE_CENTERED ), mbDotted( false )
-+                            meRefMode( REFMODE_CENTERED ), mnDashing( SOLID )
-                             { Set( nP, nD, nS ); }
-     /** Constructs a frame style with passed color and line widths. */
--    inline explicit     Style( const Color& rColor, sal_uInt16 nP, sal_uInt16 nD, sal_uInt16 nS ) :
--                            meRefMode( REFMODE_CENTERED ), mbDotted( false )
-+    inline explicit     Style( const Color& rColor, sal_uInt16 nP, sal_uInt16 nD, sal_uInt16 nS, SvxBorderStyle nDashing = SOLID ) :
-+                            meRefMode( REFMODE_CENTERED ), mnDashing( nDashing )
-                             { Set( rColor, nP, nD, nS ); }
-     /** Constructs a frame style from the passed SvxBorderLine struct. */
--    inline explicit     Style( const SvxBorderLine& rBorder, double fScale = 1.0, sal_uInt16 nMaxWidth = SAL_MAX_UINT16, bool /*bUseDots*/ = false ) :
-+    inline explicit     Style( const SvxBorderLine& rBorder, double fScale = 1.0, sal_uInt16 nMaxWidth = SAL_MAX_UINT16 ) :
-                             meRefMode( REFMODE_CENTERED ) { Set( rBorder, fScale, nMaxWidth ); }

... etc. - the rest is truncated


More information about the ooo-build-commit mailing list