[Libreoffice-commits] core.git: Branch 'feature/calc-cell-borders' - 5 commits - include/drawinglayer include/svtools include/svx sc/qa svtools/source svx/source
Kohei Yoshida
kohei.yoshida at collabora.com
Mon Jan 13 15:29:18 PST 2014
include/drawinglayer/primitive2d/borderlineprimitive2d.hxx | 5
include/drawinglayer/processor2d/baseprocessor2d.hxx | 6
include/svtools/ctrlbox.hxx | 17 --
include/svx/framelinkarray.hxx | 86 -------------
sc/qa/unit/data/xls/cell-borders.xls |binary
svtools/source/control/ctrlbox.cxx | 14 +-
svx/source/dialog/framelinkarray.cxx | 82 ++++++++++++
7 files changed, 100 insertions(+), 110 deletions(-)
New commits:
commit 4712d40803370f3686b28ccf46c691b32bd35e60
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Jan 13 17:50:11 2014 -0500
Add OOXML border names.
Change-Id: I6fd1a43487fb5033564483f2c5148125023e3ebf
diff --git a/sc/qa/unit/data/xls/cell-borders.xls b/sc/qa/unit/data/xls/cell-borders.xls
index 143bfb3..87d6cf9 100644
Binary files a/sc/qa/unit/data/xls/cell-borders.xls and b/sc/qa/unit/data/xls/cell-borders.xls differ
commit 02cfb5faa1be6c3a59c5d864ffb9168a2c27ce5b
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Jan 13 17:28:16 2014 -0500
Updated test document.
Rather than a box of borders, just use a single border.
Change-Id: I50174ec745816b9f520b72c97a218c0a1e0a3b6e
diff --git a/sc/qa/unit/data/xls/cell-borders.xls b/sc/qa/unit/data/xls/cell-borders.xls
index 2eb8dc2..143bfb3 100644
Binary files a/sc/qa/unit/data/xls/cell-borders.xls and b/sc/qa/unit/data/xls/cell-borders.xls differ
commit 3887060333df009c5a3c1d44340bdb23b664f991
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Jan 13 17:13:35 2014 -0500
Remove STYLE_* and use css::table::BorderLineStyle instead.
Change-Id: I187511dbf85ecdfe0c5d05c6f77cf4ac93363051
diff --git a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
index c0f225e..3e85b3a 100644
--- a/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/borderlineprimitive2d.hxx
@@ -26,7 +26,8 @@
#include <basegfx/color/bcolor.hxx>
#include <basegfx/matrix/b2dhommatrix.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
-#include <svtools/ctrlbox.hxx>
+
+#include <com/sun/star/table/BorderLineStyle.hpp>
//////////////////////////////////////////////////////////////////////////////
@@ -74,7 +75,7 @@ namespace drawinglayer
bool isSolidLine() const
{
- return (mnStyle==STYLE_SOLID);
+ return mnStyle == com::sun::star::table::BorderLineStyle::SOLID;
}
bool isInsideUsed() const
diff --git a/include/svtools/ctrlbox.hxx b/include/svtools/ctrlbox.hxx
index 19eea12..29fee68 100644
--- a/include/svtools/ctrlbox.hxx
+++ b/include/svtools/ctrlbox.hxx
@@ -29,6 +29,8 @@
#include <vcl/metric.hxx>
#include <vcl/field.hxx>
+#include <com/sun/star/table/BorderLineStyle.hpp>
+
class FontList;
class ImplColorListData;
class ImpLineListData;
@@ -37,15 +39,6 @@ typedef ::std::vector< ImplColorListData* > ImpColorList;
typedef ::std::vector< ImpLineListData* > ImpLineList;
typedef ::std::vector< FontInfo > ImplFontList;
-// FIXME: STYLE_* duplicate values from editeng::SvxBorderStyle,
-// which in turn duplicates values from com::sun::star::table::BorderLineStyle:
-// this needs cleaning up on master
-#define STYLE_SOLID ( ( sal_uInt16 ) 0 )
-#define STYLE_DOTTED ( ( sal_uInt16 ) 1 )
-#define STYLE_DASHED ( ( sal_uInt16 ) 2 )
-#define STYLE_FINE_DASHED ( ( sal_uInt16 ) 14 )
-#define STYLE_NONE ( ( sal_uInt16 ) -1)
-
#define CHANGE_LINE1 ( ( sal_uInt16 ) 1 )
#define CHANGE_LINE2 ( ( sal_uInt16 ) 2 )
#define CHANGE_DIST ( ( sal_uInt16 ) 4 )
@@ -339,17 +332,17 @@ public:
virtual void Clear();
using ListBox::GetEntryPos;
- virtual sal_uInt16 GetEntryPos( sal_uInt16 nStyle = STYLE_SOLID ) const;
+ virtual sal_uInt16 GetEntryPos( sal_uInt16 nStyle = com::sun::star::table::BorderLineStyle::SOLID ) const;
sal_uInt16 GetEntryStyle( sal_uInt16 nPos ) const;
void SelectEntry( const OUString& rStr, sal_Bool bSelect = sal_True ) { ListBox::SelectEntry( rStr, bSelect ); }
- void SelectEntry( sal_uInt16 nStyle = STYLE_SOLID, sal_Bool bSelect = sal_True );
+ void SelectEntry( sal_uInt16 nStyle = com::sun::star::table::BorderLineStyle::SOLID, sal_Bool bSelect = sal_True );
sal_uInt16 GetSelectEntryStyle( sal_uInt16 nSelIndex = 0 ) const;
bool IsEntrySelected(const OUString& rStr) const
{
return ListBox::IsEntrySelected(rStr);
}
- bool IsEntrySelected(sal_uInt16 nStyle = STYLE_SOLID) const
+ bool IsEntrySelected( sal_uInt16 nStyle = com::sun::star::table::BorderLineStyle::SOLID ) const
{
sal_uInt16 nPos = GetEntryPos( nStyle );
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
diff --git a/svtools/source/control/ctrlbox.cxx b/svtools/source/control/ctrlbox.cxx
index 2078cd5..1575103 100644
--- a/svtools/source/control/ctrlbox.cxx
+++ b/svtools/source/control/ctrlbox.cxx
@@ -41,6 +41,8 @@
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <com/sun/star/table/BorderLineStyle.hpp>
+
#include <rtl/bootstrap.hxx>
#if OSL_DEBUG_LEVEL > 1
@@ -527,7 +529,7 @@ Color ImpLineListData::GetColorDist( const Color& rMain, const Color& rDefault )
sal_uInt16 LineListBox::GetSelectEntryStyle( sal_uInt16 nSelIndex ) const
{
- sal_uInt16 nStyle = STYLE_SOLID;
+ sal_uInt16 nStyle = table::BorderLineStyle::SOLID;
sal_uInt16 nPos = GetSelectEntryPos( nSelIndex );
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
{
@@ -588,7 +590,7 @@ namespace svtools
::std::vector < double >aPattern;
switch ( nDashing )
{
- case STYLE_DOTTED:
+ case table::BorderLineStyle::DOTTED:
if ( eUnit == MAP_TWIP )
{
aPattern.push_back( 30.0 );
@@ -605,7 +607,7 @@ namespace svtools
aPattern.push_back( 3.0 );
}
break;
- case STYLE_DASHED:
+ case table::BorderLineStyle::DASHED:
if ( eUnit == MAP_TWIP )
{
aPattern.push_back( 110 );
@@ -622,7 +624,7 @@ namespace svtools
aPattern.push_back( 20 );
}
break;
- case STYLE_FINE_DASHED:
+ case table::BorderLineStyle::FINE_DASHED:
if ( eUnit == MAP_PIXEL )
{
aPattern.push_back( 8 );
@@ -748,7 +750,7 @@ void LineListBox::ImpGetLine( long nLine1, long nLine2, long nDistance,
{
double y2 = n1 + nDist + double( n2 ) / 2;
aVirDev.SetFillColor( aColor2 );
- svtools::DrawLine( aVirDev, basegfx::B2DPoint( 0, y2 ), basegfx::B2DPoint( aSize.Width(), y2 ), n2, STYLE_SOLID );
+ svtools::DrawLine( aVirDev, basegfx::B2DPoint( 0, y2 ), basegfx::B2DPoint( aSize.Width(), y2 ), n2, table::BorderLineStyle::SOLID );
}
rBmp = aVirDev.GetBitmap( Point(), Size( aSize.Width(), n1+nDist+n2 ) );
}
@@ -923,7 +925,7 @@ sal_uInt16 LineListBox::GetEntryPos( sal_uInt16 nStyle ) const
sal_uInt16 LineListBox::GetEntryStyle( sal_uInt16 nPos ) const
{
ImpLineListData* pData = (nPos < pLineList->size()) ? (*pLineList)[ nPos ] : NULL;
- return ( pData ) ? pData->GetStyle() : STYLE_NONE;
+ return ( pData ) ? pData->GetStyle() : table::BorderLineStyle::NONE;
}
// -----------------------------------------------------------------------
commit 6c51059ba11246dfd187932233d42fecc8bae308
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Jan 13 14:08:58 2014 -0500
Typos etc.
Change-Id: I4838514bc85636df1b3f0558ce1796431bfe19f3
diff --git a/include/drawinglayer/processor2d/baseprocessor2d.hxx b/include/drawinglayer/processor2d/baseprocessor2d.hxx
index 62a0f87..dcf5201 100644
--- a/include/drawinglayer/processor2d/baseprocessor2d.hxx
+++ b/include/drawinglayer/processor2d/baseprocessor2d.hxx
@@ -33,7 +33,7 @@ namespace drawinglayer
{
/** BaseProcessor2D class
- Baseclass for all C++ implementations of instances which process
+ Base class for all C++ implementations of instances which process
primitives.
Instances which process primitives can be renderers, but also stuff
@@ -69,7 +69,7 @@ namespace drawinglayer
Basic Primitives:
- - BitmapPrimitive2D (bitmap data, evtl. with transparence)
+ - BitmapPrimitive2D (bitmap data, eventually with transparency)
- PointArrayPrimitive2D (single points)
- PolygonHairlinePrimitive2D (hairline curves/polygons)
- PolyPolygonColorPrimitive2D (colored polygons)
@@ -83,7 +83,7 @@ namespace drawinglayer
- TransformPrimitive2D (for a transformation stack)
A processor doing so is a minimal processor. Of course a processor may
- handle any higher-level prmitive (that has a decomposition implementation)
+ handle any higher-level primitive (that has a decomposition implementation)
for more direct data access or performance reasons, too.
The main part of a processBasePrimitive2D implementation is a switch..case
commit 2a6e592f1b6a2067c810de33c301336e77f603da
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Mon Jan 13 13:18:25 2014 -0500
Hide the implementation of svx::frame::Array.
Change-Id: Iad2d494bf7dd9f1f69e4e863aeaa514bf76c7c76
diff --git a/include/svx/framelinkarray.hxx b/include/svx/framelinkarray.hxx
index b589958..f9782ea 100644
--- a/include/svx/framelinkarray.hxx
+++ b/include/svx/framelinkarray.hxx
@@ -31,91 +31,7 @@
namespace svx {
namespace frame {
-// ============================================================================
-
-
-struct Cell
-{
- Style maLeft;
- Style maRight;
- Style maTop;
- Style maBottom;
- Style maTLBR;
- Style maBLTR;
- long mnAddLeft;
- long mnAddRight;
- long mnAddTop;
- long mnAddBottom;
- bool mbMergeOrig;
- bool mbOverlapX;
- bool mbOverlapY;
-
- explicit Cell();
-
- inline bool IsMerged() const { return mbMergeOrig || mbOverlapX || mbOverlapY; }
- inline bool IsOverlapped() const { return mbOverlapX || mbOverlapY; }
-
- void MirrorSelfX( bool bMirrorStyles, bool bSwapDiag );
-};
-
-typedef std::vector< long > LongVec;
-typedef std::vector< Cell > CellVec;
-
-struct ArrayImpl
-{
- CellVec maCells;
- LongVec maWidths;
- LongVec maHeights;
- mutable LongVec maXCoords;
- mutable LongVec maYCoords;
- size_t mnWidth;
- size_t mnHeight;
- size_t mnFirstClipCol;
- size_t mnFirstClipRow;
- size_t mnLastClipCol;
- size_t mnLastClipRow;
- mutable bool mbXCoordsDirty;
- mutable bool mbYCoordsDirty;
- bool mbDiagDblClip;
-
- explicit ArrayImpl( size_t nWidth, size_t nHeight, bool bDiagDblClip );
-
- inline bool IsValidPos( size_t nCol, size_t nRow ) const
- { return (nCol < mnWidth) && (nRow < mnHeight); }
- inline size_t GetIndex( size_t nCol, size_t nRow ) const
- { return nRow * mnWidth + nCol; }
-
- const Cell& GetCell( size_t nCol, size_t nRow ) const;
- Cell& GetCellAcc( size_t nCol, size_t nRow );
-
- size_t GetMergedFirstCol( size_t nCol, size_t nRow ) const;
- size_t GetMergedFirstRow( size_t nCol, size_t nRow ) const;
- size_t GetMergedLastCol( size_t nCol, size_t nRow ) const;
- size_t GetMergedLastRow( size_t nCol, size_t nRow ) const;
-
- const Cell& GetMergedOriginCell( size_t nCol, size_t nRow ) const;
-
- bool IsMergedOverlappedLeft( size_t nCol, size_t nRow ) const;
- bool IsMergedOverlappedRight( size_t nCol, size_t nRow ) const;
- bool IsMergedOverlappedTop( size_t nCol, size_t nRow ) const;
- bool IsMergedOverlappedBottom( size_t nCol, size_t nRow ) const;
-
- bool IsInClipRange( size_t nCol, size_t nRow ) const;
- bool IsColInClipRange( size_t nCol ) const;
- bool IsRowInClipRange( size_t nRow ) const;
-
- inline size_t GetMirrorCol( size_t nCol ) const { return mnWidth - nCol - 1; }
- inline size_t GetMirrorRow( size_t nRow ) const { return mnHeight - nRow - 1; }
-
- long GetColPosition( size_t nCol ) const;
- long GetRowPosition( size_t nRow ) const;
-
- long GetColWidth( size_t nFirstCol, size_t nLastCol ) const;
- long GetRowHeight( size_t nFirstRow, size_t nLastRow ) const;
-
- double GetHorDiagAngle( size_t nCol, size_t nRow, bool bSimple = false ) const;
- double GetVerDiagAngle( size_t nCol, size_t nRow, bool bSimple = false ) const;
-};
+class ArrayImpl;
/** Stores frame styles of an array of cells, supports merged ranges.
diff --git a/svx/source/dialog/framelinkarray.cxx b/svx/source/dialog/framelinkarray.cxx
index d82b959..6b83afb 100644
--- a/svx/source/dialog/framelinkarray.cxx
+++ b/svx/source/dialog/framelinkarray.cxx
@@ -27,8 +27,32 @@
namespace svx {
namespace frame {
-// ============================================================================
+struct Cell
+{
+ Style maLeft;
+ Style maRight;
+ Style maTop;
+ Style maBottom;
+ Style maTLBR;
+ Style maBLTR;
+ long mnAddLeft;
+ long mnAddRight;
+ long mnAddTop;
+ long mnAddBottom;
+ bool mbMergeOrig;
+ bool mbOverlapX;
+ bool mbOverlapY;
+
+ explicit Cell();
+
+ inline bool IsMerged() const { return mbMergeOrig || mbOverlapX || mbOverlapY; }
+ inline bool IsOverlapped() const { return mbOverlapX || mbOverlapY; }
+
+ void MirrorSelfX( bool bMirrorStyles, bool bSwapDiag );
+};
+typedef std::vector< long > LongVec;
+typedef std::vector< Cell > CellVec;
Cell::Cell() :
mnAddLeft( 0 ),
@@ -95,7 +119,61 @@ static const Cell OBJ_CELL_NONE;
const bool DIAG_DBL_CLIP_DEFAULT = false;
-// ============================================================================
+struct ArrayImpl
+{
+ CellVec maCells;
+ LongVec maWidths;
+ LongVec maHeights;
+ mutable LongVec maXCoords;
+ mutable LongVec maYCoords;
+ size_t mnWidth;
+ size_t mnHeight;
+ size_t mnFirstClipCol;
+ size_t mnFirstClipRow;
+ size_t mnLastClipCol;
+ size_t mnLastClipRow;
+ mutable bool mbXCoordsDirty;
+ mutable bool mbYCoordsDirty;
+ bool mbDiagDblClip;
+
+ explicit ArrayImpl( size_t nWidth, size_t nHeight, bool bDiagDblClip );
+
+ inline bool IsValidPos( size_t nCol, size_t nRow ) const
+ { return (nCol < mnWidth) && (nRow < mnHeight); }
+ inline size_t GetIndex( size_t nCol, size_t nRow ) const
+ { return nRow * mnWidth + nCol; }
+
+ const Cell& GetCell( size_t nCol, size_t nRow ) const;
+ Cell& GetCellAcc( size_t nCol, size_t nRow );
+
+ size_t GetMergedFirstCol( size_t nCol, size_t nRow ) const;
+ size_t GetMergedFirstRow( size_t nCol, size_t nRow ) const;
+ size_t GetMergedLastCol( size_t nCol, size_t nRow ) const;
+ size_t GetMergedLastRow( size_t nCol, size_t nRow ) const;
+
+ const Cell& GetMergedOriginCell( size_t nCol, size_t nRow ) const;
+
+ bool IsMergedOverlappedLeft( size_t nCol, size_t nRow ) const;
+ bool IsMergedOverlappedRight( size_t nCol, size_t nRow ) const;
+ bool IsMergedOverlappedTop( size_t nCol, size_t nRow ) const;
+ bool IsMergedOverlappedBottom( size_t nCol, size_t nRow ) const;
+
+ bool IsInClipRange( size_t nCol, size_t nRow ) const;
+ bool IsColInClipRange( size_t nCol ) const;
+ bool IsRowInClipRange( size_t nRow ) const;
+
+ inline size_t GetMirrorCol( size_t nCol ) const { return mnWidth - nCol - 1; }
+ inline size_t GetMirrorRow( size_t nRow ) const { return mnHeight - nRow - 1; }
+
+ long GetColPosition( size_t nCol ) const;
+ long GetRowPosition( size_t nRow ) const;
+
+ long GetColWidth( size_t nFirstCol, size_t nLastCol ) const;
+ long GetRowHeight( size_t nFirstRow, size_t nLastRow ) const;
+
+ double GetHorDiagAngle( size_t nCol, size_t nRow, bool bSimple = false ) const;
+ double GetVerDiagAngle( size_t nCol, size_t nRow, bool bSimple = false ) const;
+};
ArrayImpl::ArrayImpl( size_t nWidth, size_t nHeight, bool bDiagDblClip ) :
mnWidth( nWidth ),
More information about the Libreoffice-commits
mailing list