[Libreoffice-commits] core.git: 19 commits - include/test include/tools include/vcl sc/source sc/uiconfig test/Library_test.mk test/source tools/CppunitTest_tools_test.mk tools/qa tools/source vcl/CppunitTest_vcl_wmf_test.mk vcl/Module_vcl.mk vcl/qa vcl/source
Tomaž Vajngerl
tomaz.vajngerl at collabora.com
Thu May 15 11:16:42 PDT 2014
include/test/htmltesttools.hxx | 2
include/test/mtfxmldump.hxx | 37
include/test/xmltesttools.hxx | 6
include/test/xmlwriter.hxx | 45
include/tools/color.hxx | 4
include/vcl/font.hxx | 4
include/vcl/metaact.hxx | 492 ++++-
include/vcl/wmf.hxx | 2
sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx | 455 ++++-
sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx | 64
sc/source/ui/StatisticsDialogs/StatisticsDialogs.hrc | 134 -
sc/source/ui/StatisticsDialogs/StatisticsDialogs.src | 5
sc/source/ui/inc/AnalysisOfVarianceDialog.hxx | 25
sc/source/ui/inc/RandomNumberGeneratorDialog.hxx | 16
sc/source/ui/inc/StatisticsInputOutputDialog.hxx | 5
sc/uiconfig/scalc/ui/analysisofvariancedialog.ui | 120 +
sc/uiconfig/scalc/ui/randomnumbergenerator.ui | 65
test/Library_test.mk | 2
test/source/htmltesttools.cxx | 13
test/source/mtfxmldump.cxx | 404 ++++
test/source/xmltesttools.cxx | 17
test/source/xmlwriter.cxx | 87
tools/CppunitTest_tools_test.mk | 1
tools/qa/cppunit/test_color.cxx | 61
tools/source/generic/color.cxx | 7
vcl/CppunitTest_vcl_wmf_test.mk | 57
vcl/Module_vcl.mk | 1
vcl/qa/cppunit/wmf/data/visio_import_source.wmf |binary
vcl/qa/cppunit/wmf/wmfimporttest.cxx | 84
vcl/source/filter/wmf/winmtf.cxx | 46
vcl/source/filter/wmf/winmtf.hxx | 18
vcl/source/filter/wmf/winwmf.cxx | 147 +
vcl/source/gdi/metaact.cxx | 878 +++++-----
33 files changed, 2568 insertions(+), 736 deletions(-)
New commits:
commit 1811336b058d1a26c7f6d836a5c478413c20f287
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Thu May 15 16:28:45 2014 +0200
wmf: assume WinOrg/ViewportOrg = (0,0) if they are not provided
Change-Id: Ia8a91a565118d102ff769da8bca65f16b5dfece2
diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx
index f71c49d..4c2c95c 100644
--- a/vcl/source/filter/wmf/winwmf.cxx
+++ b/vcl/source/filter/wmf/winwmf.cxx
@@ -1361,10 +1361,10 @@ bool WMFReader::GetPlaceableBound( Rectangle& rPlaceableBound, SvStream* pStm )
pStm->Seek( nPos );
- boost::optional<Point> aWinOrg;
+ Point aWinOrg(0,0);
boost::optional<Size> aWinExt;
- boost::optional<Point> aViewportOrg;
+ Point aViewportOrg(0,0);
boost::optional<Size> aViewportExt;
if( nEnd - nPos )
@@ -1604,16 +1604,16 @@ bool WMFReader::GetPlaceableBound( Rectangle& rPlaceableBound, SvStream* pStm )
if (bRet)
{
- if (aWinOrg && aWinExt)
+ if (aWinExt)
{
- rPlaceableBound = Rectangle(*aWinOrg, *aWinExt);
+ rPlaceableBound = Rectangle(aWinOrg, *aWinExt);
SAL_INFO("vcl.wmf", "Window dimension "
<< " t: " << rPlaceableBound.Left() << " l: " << rPlaceableBound.Top()
<< " b: " << rPlaceableBound.Right() << " r: " << rPlaceableBound.Bottom());
}
- else if (aViewportOrg && aViewportExt)
+ else if (aViewportExt)
{
- rPlaceableBound = Rectangle(*aViewportOrg, *aViewportExt);
+ rPlaceableBound = Rectangle(aViewportOrg, *aViewportExt);
SAL_INFO("vcl.wmf", "Viewport dimension "
<< " t: " << rPlaceableBound.Left() << " l: " << rPlaceableBound.Top()
<< " b: " << rPlaceableBound.Right() << " r: " << rPlaceableBound.Bottom());
commit 154752865f8c7c6ef73d2b7100f25c0b0c317d4f
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Thu May 15 16:26:43 2014 +0200
wmf: add SAL_INFOs for interesting things at WMF import
Change-Id: Ic21709896fe156c7393ece54345b00bceb37587d
diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx
index ea42a07..0a7f8c4 100644
--- a/vcl/source/filter/wmf/winmtf.cxx
+++ b/vcl/source/filter/wmf/winmtf.cxx
@@ -246,7 +246,7 @@ WinMtfFontStyle::WinMtfFontStyle( LOGFONTW& rFont )
// Convert height to positive
aFontSize.Height() = std::abs(aFontSize.Height());
- aFont.SetSize( aFontSize );
+ aFont.SetSize(aFontSize);
};
WinMtf::WinMtf( WinMtfOutput* pWinMtfOutput, SvStream& rStreamWMF, FilterConfigItem* pConfigItem )
@@ -631,10 +631,7 @@ void WinMtfOutput::SetTextAlign( sal_uInt32 nAlign )
void WinMtfOutput::ImplResizeObjectArry( sal_uInt32 nNewEntrys )
{
- sal_uInt32 i = vGDIObj.size();
- vGDIObj.resize( nNewEntrys );
- for ( ; i < nNewEntrys ; i++ )
- vGDIObj[ i ] = NULL;
+ vGDIObj.resize(nNewEntrys, NULL);
}
void WinMtfOutput::ImplDrawClippedPolyPolygon( const PolyPolygon& rPolyPoly )
diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx
index 1baafa7..f71c49d 100644
--- a/vcl/source/filter/wmf/winwmf.cxx
+++ b/vcl/source/filter/wmf/winwmf.cxx
@@ -1102,8 +1102,13 @@ bool WMFReader::ReadHeader()
Rectangle aPlaceableBound;
- if (nPlaceableMetaKey == 0x9ac6cdd7L)
- { //TODO do some real error handling here
+ bool bPlaceable = nPlaceableMetaKey == 0x9ac6cdd7L;
+
+ SAL_INFO("vcl.wmf", "Placeable: \"" << (bPlaceable ? "yes" : "no") << "\"");
+
+ if (bPlaceable)
+ {
+ //TODO do some real error handling here
sal_Int16 nVal;
// Skip reserved bytes
@@ -1143,6 +1148,11 @@ bool WMFReader::ReadHeader()
(double) pExternalHeader->xExt * 567 * nUnitsPerInch / 1440000,
(double) pExternalHeader->yExt * 567 * nUnitsPerInch / 1440000);
aPlaceableBound = aExtRect;
+
+ SAL_INFO("vcl.wmf", "External header size "
+ << " t: " << aPlaceableBound.Left() << " l: " << aPlaceableBound.Top()
+ << " b: " << aPlaceableBound.Right() << " r: " << aPlaceableBound.Bottom());
+
pOut->SetMapMode( pExternalHeader->mapMode );
}
else
@@ -1163,6 +1173,10 @@ bool WMFReader::ReadHeader()
aPlaceableBound.Top() / fRatio,
aPlaceableBound.Right() / fRatio,
aPlaceableBound.Bottom() / fRatio);
+
+ SAL_INFO("vcl.wmf", "Placeable bounds "
+ << " t: " << aPlaceableBound.Left() << " l: " << aPlaceableBound.Top()
+ << " b: " << aPlaceableBound.Right() << " r: " << aPlaceableBound.Bottom());
}
}
@@ -1173,6 +1187,9 @@ bool WMFReader::ReadHeader()
Size aWMFSize( labs( aPlaceableBound.GetWidth() ), labs( aPlaceableBound.GetHeight() ) );
pOut->SetWinExt( aWMFSize );
+ SAL_INFO("vcl.wmf", "WMF size "
+ << " w: " << aWMFSize.Width() << " h: " << aWMFSize.Height());
+
Size aDevExt( 10000, 10000 );
if( ( labs( aWMFSize.Width() ) > 1 ) && ( labs( aWMFSize.Height() ) > 1 ) )
{
@@ -1183,6 +1200,9 @@ bool WMFReader::ReadHeader()
}
pOut->SetDevExt( aDevExt );
+ SAL_INFO("vcl.wmf", "Dev size "
+ << " w: " << aDevExt.Width() << " h: " << aDevExt.Height());
+
// read the METAHEADER
sal_uInt32 nMetaKey(0);
pWMF->ReadUInt32( nMetaKey ); // type and headersize
@@ -1453,7 +1473,7 @@ bool WMFReader::GetPlaceableBound( Rectangle& rPlaceableBound, SvStream* pStm )
nPoints += nP;
}
- SAL_WARN_IF(!bRecordOk, "vcl.filter", "polypolygon record has more polygons than we can handle");
+ SAL_WARN_IF(!bRecordOk, "vcl.wmf", "polypolygon record has more polygons than we can handle");
bRecordOk = bRecordOk && pStm->good();
@@ -1587,14 +1607,23 @@ bool WMFReader::GetPlaceableBound( Rectangle& rPlaceableBound, SvStream* pStm )
if (aWinOrg && aWinExt)
{
rPlaceableBound = Rectangle(*aWinOrg, *aWinExt);
+ SAL_INFO("vcl.wmf", "Window dimension "
+ << " t: " << rPlaceableBound.Left() << " l: " << rPlaceableBound.Top()
+ << " b: " << rPlaceableBound.Right() << " r: " << rPlaceableBound.Bottom());
}
else if (aViewportOrg && aViewportExt)
{
rPlaceableBound = Rectangle(*aViewportOrg, *aViewportExt);
+ SAL_INFO("vcl.wmf", "Viewport dimension "
+ << " t: " << rPlaceableBound.Left() << " l: " << rPlaceableBound.Top()
+ << " b: " << rPlaceableBound.Right() << " r: " << rPlaceableBound.Bottom());
}
else
{
rPlaceableBound = aBound;
+ SAL_INFO("vcl.wmf", "Detemined dimension "
+ << " t: " << rPlaceableBound.Left() << " l: " << rPlaceableBound.Top()
+ << " b: " << rPlaceableBound.Right() << " r: " << rPlaceableBound.Bottom());
}
}
commit f9e81786f43a91f8cb562552ea0b379ea73ba08a
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Thu May 15 16:17:54 2014 +0200
wmf: test that non-placeable WMF uses correct sizes
Change-Id: I546d654726483b40ce4d981bc66377c8a3df6194
diff --git a/vcl/CppunitTest_vcl_wmf_test.mk b/vcl/CppunitTest_vcl_wmf_test.mk
new file mode 100644
index 0000000..f7272c9
--- /dev/null
+++ b/vcl/CppunitTest_vcl_wmf_test.mk
@@ -0,0 +1,57 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_CppunitTest_CppunitTest,vcl_wmf_test))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,vcl_wmf_test, \
+ vcl/qa/cppunit/wmf/wmfimporttest \
+))
+
+$(eval $(call gb_CppunitTest_use_externals,vcl_wmf_test,\
+ boost_headers \
+ libxml2 \
+))
+
+
+$(eval $(call gb_CppunitTest_set_include,vcl_wmf_test,\
+ $$(INCLUDE) \
+ -I$(SRCDIR)/vcl/inc \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,vcl_wmf_test, \
+ comphelper \
+ cppu \
+ cppuhelper \
+ sal \
+ svt \
+ test \
+ tl \
+ unotest \
+ vcl \
+ utl \
+ $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,vcl_wmf_test,\
+ udkapi \
+ offapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,vcl_wmf_test))
+
+$(eval $(call gb_CppunitTest_use_components,vcl_wmf_test,\
+ configmgr/source/configmgr \
+ i18npool/util/i18npool \
+ ucb/source/core/ucb1 \
+ unotools/util/utl \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,vcl_wmf_test))
+
+# vim: set noet sw=4 ts=4:
diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk
index 5f302a8..254fe0d 100644
--- a/vcl/Module_vcl.mk
+++ b/vcl/Module_vcl.mk
@@ -92,6 +92,7 @@ $(eval $(call gb_Module_add_check_targets,vcl,\
CppunitTest_vcl_complextext \
CppunitTest_vcl_filters_test \
CppunitTest_vcl_app_test \
+ CppunitTest_vcl_wmf_test \
))
# vim: set noet sw=4 ts=4:
diff --git a/vcl/qa/cppunit/wmf/data/visio_import_source.wmf b/vcl/qa/cppunit/wmf/data/visio_import_source.wmf
new file mode 100644
index 0000000..88deac9
Binary files /dev/null and b/vcl/qa/cppunit/wmf/data/visio_import_source.wmf differ
diff --git a/vcl/qa/cppunit/wmf/wmfimporttest.cxx b/vcl/qa/cppunit/wmf/wmfimporttest.cxx
new file mode 100644
index 0000000..e75f5a1
--- /dev/null
+++ b/vcl/qa/cppunit/wmf/wmfimporttest.cxx
@@ -0,0 +1,84 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <test/bootstrapfixture.hxx>
+#include <test/xmltesttools.hxx>
+#include <test/mtfxmldump.hxx>
+#include <vcl/wmf.hxx>
+#include <vcl/metaact.hxx>
+
+using namespace css;
+
+class WmfTest : public test::BootstrapFixture, public XmlTestTools
+{
+public:
+ WmfTest() :
+ BootstrapFixture(true, false)
+ {}
+
+ void runTest();
+ void testNonPlaceableWmf();
+
+ CPPUNIT_TEST_SUITE(WmfTest);
+ CPPUNIT_TEST(testNonPlaceableWmf);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void WmfTest::testNonPlaceableWmf()
+{
+ OUString aUrl = getURLFromSrc("/vcl/qa/cppunit/wmf/data/");
+
+ SvFileStream aFileStream(aUrl + "visio_import_source.wmf", STREAM_READ);
+ GDIMetaFile aGDIMetaFile;
+ ReadWindowMetafile(aFileStream, aGDIMetaFile);
+
+ boost::scoped_ptr<SvMemoryStream> aStream(new SvMemoryStream);
+
+ MetafileXmlDump dumper(*aStream);
+ dumper.filterAllActionTypes();
+ dumper.filterActionType(META_POLYLINE_ACTION, false);
+ dumper.dump(aGDIMetaFile);
+
+ aStream->Seek(STREAM_SEEK_TO_BEGIN);
+
+ xmlDocPtr pDoc = parseXmlStream(aStream.get());
+
+ CPPUNIT_ASSERT (pDoc);
+
+ assertXPath(pDoc, "/metafile/polyline[1]/point[1]", "x", "16798");
+ assertXPath(pDoc, "/metafile/polyline[1]/point[1]", "y", "1003");
+
+ assertXPath(pDoc, "/metafile/polyline[1]/point[2]", "x", "16798");
+ assertXPath(pDoc, "/metafile/polyline[1]/point[2]", "y", "7507");
+
+ assertXPath(pDoc, "/metafile/polyline[1]/point[3]", "x", "26090");
+ assertXPath(pDoc, "/metafile/polyline[1]/point[3]", "y", "7507");
+
+ assertXPath(pDoc, "/metafile/polyline[1]/point[4]", "x", "26090");
+ assertXPath(pDoc, "/metafile/polyline[1]/point[4]", "y", "1003");
+
+ assertXPath(pDoc, "/metafile/polyline[1]/point[5]", "x", "16798");
+ assertXPath(pDoc, "/metafile/polyline[1]/point[5]", "y", "1003");
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(WmfTest);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit fb688d64466b56ad7804c8ecf66aecae7f1faafa
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Thu May 15 16:14:46 2014 +0200
test: dump staroffice metafile to XML & XML writer interface
Change-Id: Ie42f72e0fc281d1f51e1729be408c2b0042f4174
diff --git a/include/test/mtfxmldump.hxx b/include/test/mtfxmldump.hxx
new file mode 100644
index 0000000..e630a4c
--- /dev/null
+++ b/include/test/mtfxmldump.hxx
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef MFTXMLDUMP_HXX
+#define MFTXMLDUMP_HXX
+
+#include <sal/config.h>
+#include <test/testdllapi.hxx>
+
+#include <vcl/gdimtf.hxx>
+#include <vector>
+
+class OOO_DLLPUBLIC_TEST MetafileXmlDump
+{
+ std::vector<bool> maFilter;
+ SvStream& mrStream;
+
+public:
+ MetafileXmlDump(SvStream& rStream);
+ virtual ~MetafileXmlDump();
+
+ void filterActionType(const sal_uInt16 nActionType, bool bShouldFilter);
+ void filterAllActionTypes();
+ void filterNoneActionTypes();
+
+ void dump(GDIMetaFile& rMetaFile);
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/test/xmlwriter.hxx b/include/test/xmlwriter.hxx
new file mode 100644
index 0000000..e4df527
--- /dev/null
+++ b/include/test/xmlwriter.hxx
@@ -0,0 +1,45 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef XML_WRITER_HXX
+#define XML_WRITER_HXX
+
+#include <test/testdllapi.hxx>
+
+#include <libxml/xmlwriter.h>
+#include <rtl/ustring.hxx>
+#include <rtl/string.hxx>
+
+class OOO_DLLPUBLIC_TEST XmlWriter
+{
+private:
+ xmlTextWriterPtr mpWriter;
+
+public:
+ XmlWriter(xmlTextWriterPtr pWriter);
+ virtual ~XmlWriter();
+
+ void startDocument(const OString& sTagName);
+ void endDocument();
+
+ void element(const OString& sTagName);
+
+ void startElement(const OString& sTagName);
+ void endElement();
+
+ void attribute(const OString& sTagName, const OString& aValue);
+ void attribute(const OString& sTagName, const OUString& aValue);
+ void attribute(const OString& sTagName, sal_Int32 aNumber);
+
+ void content(const OUString& aValue);
+};
+
+#endif // XML_WRITER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/Library_test.mk b/test/Library_test.mk
index ec46f2c..a9f91c9 100644
--- a/test/Library_test.mk
+++ b/test/Library_test.mk
@@ -47,6 +47,8 @@ $(eval $(call gb_Library_add_exception_objects,test,\
test/source/diff/diff \
test/source/xmltesttools \
test/source/htmltesttools \
+ test/source/mtfxmldump \
+ test/source/xmlwriter \
))
# vim: set noet sw=4 ts=4:
diff --git a/test/source/mtfxmldump.cxx b/test/source/mtfxmldump.cxx
new file mode 100644
index 0000000..ef127e3
--- /dev/null
+++ b/test/source/mtfxmldump.cxx
@@ -0,0 +1,404 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <test/mtfxmldump.hxx>
+#include <test/xmlwriter.hxx>
+
+#include <vcl/metaact.hxx>
+#include <rtl/string.hxx>
+#include <rtl/strbuf.hxx>
+
+namespace
+{
+
+int writeCallback(void* pContext, const char* sBuffer, int nLen)
+{
+ OStringBuffer* pBuffer = static_cast<OStringBuffer*>(pContext);
+ pBuffer->append(sBuffer);
+ return nLen;
+}
+
+int closeCallback(void* )
+{
+ return 0;
+}
+
+OUString flagToString(sal_uInt16 nFlag)
+{
+ if (nFlag & PUSH_LINECOLOR)
+ return OUString("PushLineColor");
+ else if (nFlag & PUSH_FILLCOLOR)
+ return OUString("PushFillColor");
+ else if (nFlag & PUSH_FONT)
+ return OUString("PushFont");
+ else if (nFlag & PUSH_TEXTCOLOR)
+ return OUString("PushTextColor");
+ else if (nFlag & PUSH_MAPMODE)
+ return OUString("PushMapMode");
+ else if (nFlag & PUSH_CLIPREGION)
+ return OUString("PushClipRegion");
+ else if (nFlag & PUSH_RASTEROP)
+ return OUString("PushRasterOp");
+ else if (nFlag & PUSH_TEXTFILLCOLOR)
+ return OUString("PushTextFillColor");
+ else if (nFlag & PUSH_TEXTALIGN)
+ return OUString("PushTextAlign");
+ else if (nFlag & PUSH_REFPOINT)
+ return OUString("PushRefPoint");
+ else if (nFlag & PUSH_TEXTLINECOLOR)
+ return OUString("PushTextLineColor");
+ else if (nFlag & PUSH_TEXTLAYOUTMODE)
+ return OUString("PushTextLayoutMode");
+ else if (nFlag & PUSH_TEXTLANGUAGE)
+ return OUString("PushTextLanguage");
+ else if (nFlag & PUSH_OVERLINECOLOR)
+ return OUString("PushOverlineColor");
+
+ return OUString();
+}
+
+OUString collectPushFlags(sal_uInt16 nFlags)
+{
+ if ((nFlags & PUSH_ALL) == nFlags)
+ return OUString("PushAll");
+ else if ((nFlags & PUSH_ALLFONT) == nFlags)
+ return OUString("PushAllFont");
+ else if ((nFlags & PUSH_ALLTEXT) == nFlags)
+ return OUString("PushAllText");
+
+ OUString sFlags;
+
+ for (sal_uInt16 nFlag = 1; nFlag > 0; nFlag <<= 1)
+ {
+ OUString sFlag = flagToString(nFlag);
+ if (!sFlag.isEmpty())
+ {
+ if (!sFlags.isEmpty())
+ {
+ sFlags += ",";
+ }
+ sFlags += flagToString(nFlag);
+ }
+ }
+
+ return sFlags;
+}
+
+OUString convertRopToString(RasterOp eRop)
+{
+ switch (eRop)
+ {
+ case ROP_OVERPAINT: return OUString("overpaint");
+ case ROP_XOR: return OUString("xor");
+ case ROP_0: return OUString("0");
+ case ROP_1: return OUString("1");
+ case ROP_INVERT: return OUString("invert");
+ }
+ return OUString();
+}
+
+OUString convertTextAlignToString(TextAlign eAlign)
+{
+ switch (eAlign)
+ {
+ case ALIGN_BASELINE: return OUString("baseline");
+ case ALIGN_BOTTOM: return OUString("bottom");
+ case ALIGN_TOP: return OUString("top");
+ case TextAlign_FORCE_EQUAL_SIZE: return OUString("equalsize");
+ }
+ return OUString();
+}
+
+OUString convertColorToString(Color aColor)
+{
+ OUString aRGBString = aColor.AsRGBHexString();
+ return "#" + aRGBString;
+}
+
+OUString convertLineStyleToString(LineStyle eAlign)
+{
+ switch (eAlign)
+ {
+ case LINE_NONE: return OUString("none");
+ case LINE_SOLID: return OUString("solid");
+ case LINE_DASH: return OUString("dash");
+ case LineStyle_FORCE_EQUAL_SIZE: return OUString("equalsize");
+ }
+ return OUString();
+}
+
+} // anonymous namespace
+
+MetafileXmlDump::MetafileXmlDump(SvStream& rStream) :
+ maFilter(512, false),
+ mrStream(rStream)
+{}
+
+MetafileXmlDump::~MetafileXmlDump()
+{}
+
+void MetafileXmlDump::filterActionType(const sal_uInt16 nActionType, bool bShouldFilter)
+{
+ maFilter[nActionType] = bShouldFilter;
+}
+
+void MetafileXmlDump::filterAllActionTypes()
+{
+ maFilter.assign(512, true);
+}
+
+void MetafileXmlDump::filterNoneActionTypes()
+{
+ maFilter.assign(512, false);
+}
+
+void MetafileXmlDump::dump(GDIMetaFile& rMetaFile)
+{
+ std::vector<bool> usedIds(512, false);
+
+ OStringBuffer aString;
+ xmlOutputBufferPtr xmlOutBuffer = xmlOutputBufferCreateIO( writeCallback, closeCallback, &aString, NULL );
+ xmlTextWriterPtr xmlWriter = xmlNewTextWriter( xmlOutBuffer );
+ xmlTextWriterSetIndent( xmlWriter, 1 );
+
+ XmlWriter aWriter(xmlWriter);
+ aWriter.startDocument("metafile");
+
+ for(MetaAction* pAction = rMetaFile.FirstAction(); pAction != NULL; pAction = rMetaFile.NextAction())
+ {
+ const sal_uInt16 nActionType = pAction->GetType();
+ if (maFilter[nActionType])
+ continue;
+
+ usedIds[nActionType] = true;
+
+ switch (nActionType)
+ {
+ case META_LINE_ACTION:
+ {
+ MetaLineAction* pMetaLineAction = static_cast<MetaLineAction*>(pAction);
+
+ aWriter.startElement("line");
+ aWriter.attribute("startx", pMetaLineAction->GetStartPoint().X());
+ aWriter.attribute("starty", pMetaLineAction->GetStartPoint().Y());
+ aWriter.attribute("endx", pMetaLineAction->GetEndPoint().X());
+ aWriter.attribute("endy", pMetaLineAction->GetEndPoint().Y());
+
+ LineInfo aLineInfo = pMetaLineAction->GetLineInfo();
+ aWriter.attribute("style", convertLineStyleToString(aLineInfo.GetStyle()));
+ aWriter.attribute("width", aLineInfo.GetWidth());
+ aWriter.attribute("dashlen", aLineInfo.GetDashLen());
+ aWriter.attribute("dotlen", aLineInfo.GetDotLen());
+ aWriter.attribute("distance", aLineInfo.GetDistance());
+
+ aWriter.endElement();
+ }
+ break;
+
+ case META_PUSH_ACTION:
+ {
+ MetaPushAction* pMetaPushAction = static_cast<MetaPushAction*>(pAction);
+
+ aWriter.startElement("push");
+ aWriter.attribute("flags", collectPushFlags(pMetaPushAction->GetFlags()));
+ }
+ break;
+
+ case META_POP_ACTION:
+ {
+ aWriter.endElement();
+ }
+ break;
+
+ case META_RASTEROP_ACTION:
+ {
+ MetaRasterOpAction* pMetaRasterOpAction = static_cast<MetaRasterOpAction*>(pAction);
+
+ aWriter.startElement("rop");
+ if (pMetaRasterOpAction->GetRasterOp() != ROP_OVERPAINT)
+ {
+ aWriter.attribute("operation", convertRopToString(pMetaRasterOpAction->GetRasterOp()));
+ }
+ aWriter.endElement();
+ }
+ break;
+
+ case META_TEXTFILLCOLOR_ACTION:
+ {
+ MetaTextFillColorAction* pMetaTextFillColorAction = static_cast<MetaTextFillColorAction*>(pAction);
+
+ aWriter.startElement("textfillcolor");
+
+ aWriter.attribute("color", convertColorToString(pMetaTextFillColorAction->GetColor()));
+
+ if (pMetaTextFillColorAction->IsSetting())
+ aWriter.attribute("setting", OUString("true"));
+
+ aWriter.endElement();
+ }
+ break;
+
+ case META_FONT_ACTION:
+ {
+ MetaFontAction* pMetaFontAction = static_cast<MetaFontAction*>(pAction);
+ aWriter.startElement("font");
+
+ Font aFont = pMetaFontAction->GetFont();
+
+ aWriter.attribute("color", convertColorToString(aFont.GetColor()));
+ aWriter.attribute("fillcolor", convertColorToString(aFont.GetFillColor()));
+ aWriter.attribute("name", aFont.GetName());
+ aWriter.attribute("stylename", aFont.GetStyleName());
+ aWriter.attribute("width", aFont.GetSize().Width());
+ aWriter.attribute("height", aFont.GetSize().Height());
+
+ aWriter.endElement();
+ }
+ break;
+
+ case META_TEXTALIGN_ACTION:
+ {
+ MetaTextAlignAction* pMetaTextAlignAction = static_cast<MetaTextAlignAction*>(pAction);
+ aWriter.startElement("textalign");
+ OUString sAlign = convertTextAlignToString(pMetaTextAlignAction->GetTextAlign());
+ if (!sAlign.isEmpty())
+ aWriter.attribute("align", sAlign);
+ aWriter.endElement();
+ }
+ break;
+
+ case META_TEXTCOLOR_ACTION:
+ {
+ MetaTextColorAction* pMetaTextColorAction = static_cast<MetaTextColorAction*>(pAction);
+
+ aWriter.startElement("textcolor");
+ aWriter.attribute("color", convertColorToString(pMetaTextColorAction->GetColor()));
+ aWriter.endElement();
+ }
+ break;
+
+ case META_TEXTARRAY_ACTION:
+ {
+ MetaTextArrayAction* pMetaTextArrayAction = static_cast<MetaTextArrayAction*>(pAction);
+
+ aWriter.startElement("textarray");
+ sal_Int32 aIndex = pMetaTextArrayAction->GetIndex();
+ sal_Int32 aLength = pMetaTextArrayAction->GetLen();
+
+ aWriter.attribute("x", pMetaTextArrayAction->GetPoint().X());
+ aWriter.attribute("y", pMetaTextArrayAction->GetPoint().Y());
+ aWriter.attribute("index", aIndex);
+ aWriter.attribute("length", aLength);
+
+ aWriter.startElement("dxarray");
+ OUString sDxLengthString;
+ for (sal_Int32 i = 0; i < aLength; ++i)
+ {
+ sDxLengthString += OUString::number(pMetaTextArrayAction->GetDXArray()[aIndex+i]);
+ sDxLengthString += " ";
+ }
+ aWriter.content(sDxLengthString);
+ aWriter.endElement();
+
+ aWriter.startElement("text");
+ aWriter.content(pMetaTextArrayAction->GetText());
+ aWriter.endElement();
+
+ aWriter.endElement();
+ }
+ break;
+
+ case META_LINECOLOR_ACTION:
+ {
+ MetaTextLineColorAction* pMetaTextLineColorAction = static_cast<MetaTextLineColorAction*>(pAction);
+
+ aWriter.startElement("linecolor");
+ aWriter.attribute("color", convertColorToString(pMetaTextLineColorAction->GetColor()));
+ aWriter.endElement();
+ }
+ break;
+
+ case META_MAPMODE_ACTION:
+ {
+ aWriter.startElement("mapmode");
+ aWriter.endElement();
+ }
+ break;
+
+ case META_ISECTRECTCLIPREGION_ACTION:
+ {
+ MetaISectRectClipRegionAction* pMetaISectRectClipRegionAction = static_cast<MetaISectRectClipRegionAction*>(pAction);
+
+ aWriter.startElement("sectrectclipregion");
+ Rectangle aRectangle = pMetaISectRectClipRegionAction->GetRect();
+ aWriter.attribute("top", aRectangle.Top());
+ aWriter.attribute("left", aRectangle.Left());
+ aWriter.attribute("bottom", aRectangle.Bottom());
+ aWriter.attribute("right", aRectangle.Right());
+
+ aWriter.endElement();
+ }
+ break;
+
+ case META_POLYLINE_ACTION:
+ {
+ MetaPolyLineAction* pMetaPolyLineAction = static_cast<MetaPolyLineAction*>(pAction);
+ aWriter.startElement("polyline");
+
+ Polygon aPolygon = pMetaPolyLineAction->GetPolygon();
+ for (sal_uInt16 i = 0; i < aPolygon.GetSize(); i++)
+ {
+ aWriter.startElement("point");
+ aWriter.attribute("x", aPolygon[i].X());
+ aWriter.attribute("y", aPolygon[i].Y());
+ aWriter.endElement();
+ }
+
+ LineInfo aLineInfo = pMetaPolyLineAction->GetLineInfo();
+ aWriter.attribute("style", convertLineStyleToString(aLineInfo.GetStyle()));
+ aWriter.attribute("width", aLineInfo.GetWidth());
+ aWriter.attribute("dashlen", aLineInfo.GetDashLen());
+ aWriter.attribute("dotlen", aLineInfo.GetDotLen());
+ aWriter.attribute("distance", aLineInfo.GetDistance());
+
+ aWriter.endElement();
+ }
+ break;
+
+ case META_POLYGON_ACTION:
+ {
+ MetaPolygonAction* pMetaPolygonAction = static_cast<MetaPolygonAction*>(pAction);
+ aWriter.startElement("polygon");
+
+ Polygon aPolygon = pMetaPolygonAction->GetPolygon();
+ for (sal_uInt16 i = 0; i < aPolygon.GetSize(); i++)
+ {
+ aWriter.startElement("point");
+ aWriter.attribute("x", aPolygon[i].X());
+ aWriter.attribute("y", aPolygon[i].Y());
+ aWriter.endElement();
+ }
+
+ aWriter.endElement();
+ }
+ break;
+
+ }
+ }
+ aWriter.endDocument();
+
+ for(size_t i=0; i<usedIds.size(); ++i)
+ if(usedIds[i])
+ printf("%ld ", i);
+ printf("\n");
+
+ mrStream.WriteOString(aString.makeStringAndClear());
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/xmlwriter.cxx b/test/source/xmlwriter.cxx
new file mode 100644
index 0000000..3485f10
--- /dev/null
+++ b/test/source/xmlwriter.cxx
@@ -0,0 +1,87 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <libxml/xmlstring.h>
+#include <test/xmlwriter.hxx>
+
+XmlWriter::XmlWriter(xmlTextWriterPtr pWriter) :
+ mpWriter(pWriter)
+{}
+
+XmlWriter::~XmlWriter()
+{}
+
+void XmlWriter::startDocument(const OString& name)
+{
+ xmlTextWriterStartDocument(mpWriter, NULL, NULL, NULL);
+ startElement(name);
+}
+
+void XmlWriter::endDocument()
+{
+ xmlTextWriterEndDocument(mpWriter);
+ xmlFreeTextWriter(mpWriter);
+ mpWriter = NULL;
+}
+
+void XmlWriter::element(const OString& name)
+{
+ startElement(name);
+ endElement();
+}
+
+void XmlWriter::startElement(const OString& name)
+{
+ xmlChar* xmlName = xmlCharStrdup(name.getStr());
+ xmlTextWriterStartElement(mpWriter, xmlName);
+ xmlFree(xmlName);
+}
+
+void XmlWriter::attribute(const OString& name, const OString & value)
+{
+ xmlChar* xmlName = xmlCharStrdup(name.getStr());
+ xmlChar* xmlValue = xmlCharStrdup(value.getStr());
+ xmlTextWriterWriteAttribute(mpWriter, xmlName, xmlValue);
+ xmlFree(xmlValue);
+ xmlFree(xmlName);
+}
+
+void XmlWriter::attribute(const OString& name, const OUString& value)
+{
+ attribute(name, OUStringToOString(value, RTL_TEXTENCODING_UTF8).getStr());
+}
+
+void XmlWriter::attribute(const OString& name, const sal_Int32 aNumber)
+{
+ attribute(name, OUString::number(aNumber));
+}
+
+void XmlWriter::content(const OUString& aValue)
+{
+ xmlChar* xmlValue = xmlCharStrdup(OUStringToOString(aValue, RTL_TEXTENCODING_UTF8).getStr());
+ xmlTextWriterWriteString(mpWriter, xmlValue);
+ xmlFree(xmlValue);
+}
+
+void XmlWriter::endElement()
+{
+ xmlTextWriterEndElement(mpWriter);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 780cedb2cf63f6ffa3290d053172a117384b7383
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Thu May 15 16:04:47 2014 +0200
test: parseXmlStream & parseHtmlStream added to test tools
Change-Id: Iff8af5e9ffefb4c3cecf387b16473d45e8b4a65a
diff --git a/include/test/htmltesttools.hxx b/include/test/htmltesttools.hxx
index 1cc4932..8889a6e 100644
--- a/include/test/htmltesttools.hxx
+++ b/include/test/htmltesttools.hxx
@@ -17,12 +17,12 @@
#include <libxml/HTMLtree.h>
#include <unotools/tempfile.hxx>
-#include <boost/scoped_array.hpp>
class OOO_DLLPUBLIC_TEST HtmlTestTools
{
protected:
htmlDocPtr parseHtml(utl::TempFile& aTempFile);
+ htmlDocPtr parseHtmlStream(SvStream* pStream);
};
#endif
diff --git a/include/test/xmltesttools.hxx b/include/test/xmltesttools.hxx
index 3473f97..8937211 100644
--- a/include/test/xmltesttools.hxx
+++ b/include/test/xmltesttools.hxx
@@ -14,12 +14,15 @@
#include <test/testdllapi.hxx>
#include <libxml/xmlwriter.h>
+#include <libxml/tree.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>
#include <libxml/parserInternals.h>
#include <rtl/string.hxx>
#include <rtl/ustring.hxx>
+#include <unotools/tempfile.hxx>
+
#include <cppunit/TestAssert.h>
class OOO_DLLPUBLIC_TEST XmlTestTools
@@ -28,6 +31,9 @@ protected:
XmlTestTools();
virtual ~XmlTestTools();
+ htmlDocPtr parseXml(utl::TempFile& aTempFile);
+ htmlDocPtr parseXmlStream(SvStream* pStream);
+
virtual void registerNamespaces(xmlXPathContextPtr& pXmlXpathCtx);
xmlNodeSetPtr getXPathNode(xmlDocPtr pXmlDoc, const OString& rXPath);
diff --git a/test/source/htmltesttools.cxx b/test/source/htmltesttools.cxx
index 9b264bb..ba48aae 100644
--- a/test/source/htmltesttools.cxx
+++ b/test/source/htmltesttools.cxx
@@ -9,17 +9,20 @@
#include <test/htmltesttools.hxx>
+#include <boost/scoped_array.hpp>
+
htmlDocPtr HtmlTestTools::parseHtml(utl::TempFile& aTempFile)
{
SvFileStream aFileStream(aTempFile.GetURL(), STREAM_READ);
- sal_Size nSize = aFileStream.remainingSize();
+ return parseHtmlStream(&aFileStream);
+}
+htmlDocPtr HtmlTestTools::parseHtmlStream(SvStream* pStream)
+{
+ sal_Size nSize = pStream->remainingSize();
boost::scoped_array<sal_uInt8> pBuffer(new sal_uInt8[nSize + 1]);
-
- aFileStream.Read(pBuffer.get(), nSize);
-
+ pStream->Read(pBuffer.get(), nSize);
pBuffer[nSize] = 0;
-
return htmlParseDoc(reinterpret_cast<xmlChar*>(pBuffer.get()), NULL);
}
diff --git a/test/source/xmltesttools.cxx b/test/source/xmltesttools.cxx
index e80674d..1cb231c 100644
--- a/test/source/xmltesttools.cxx
+++ b/test/source/xmltesttools.cxx
@@ -9,12 +9,29 @@
#include <test/xmltesttools.hxx>
+#include <boost/scoped_array.hpp>
+
XmlTestTools::XmlTestTools()
{}
XmlTestTools::~XmlTestTools()
{}
+htmlDocPtr XmlTestTools::parseXml(utl::TempFile& aTempFile)
+{
+ SvFileStream aFileStream(aTempFile.GetURL(), STREAM_READ);
+ return parseXmlStream(&aFileStream);
+}
+
+xmlDocPtr XmlTestTools::parseXmlStream(SvStream* pStream)
+{
+ sal_Size nSize = pStream->remainingSize();
+ boost::scoped_array<sal_uInt8> pBuffer(new sal_uInt8[nSize + 1]);
+ pStream->Read(pBuffer.get(), nSize);
+ pBuffer[nSize] = 0;
+ return xmlParseDoc(reinterpret_cast<xmlChar*>(pBuffer.get()));
+}
+
xmlNodeSetPtr XmlTestTools::getXPathNode(xmlDocPtr pXmlDoc, const OString& rXPath)
{
xmlXPathContextPtr pXmlXpathCtx = xmlXPathNewContext(pXmlDoc);
commit 7da0a6e562de26222a8c56ae9a5a51611264c59a
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Thu May 15 13:52:21 2014 +0200
fdo#78603 mixup (Left->Top) in Rectangle construction
Change-Id: I7fa566e036508d43b153c7983dc89fc6660718e7
diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx
index d98e024..1baafa7 100644
--- a/vcl/source/filter/wmf/winwmf.cxx
+++ b/vcl/source/filter/wmf/winwmf.cxx
@@ -1157,11 +1157,12 @@ bool WMFReader::ReadHeader()
if (aPlaceableBound.GetWidth() > aMaxWidth)
{
double fRatio = aPlaceableBound.GetWidth() / fMaxWidth;
+
aPlaceableBound = Rectangle(
- aPlaceableBound.Top() / fRatio,
- aPlaceableBound.Left() / fRatio,
- aPlaceableBound.Bottom() / fRatio,
- aPlaceableBound.Right() / fRatio);
+ aPlaceableBound.Left() / fRatio,
+ aPlaceableBound.Top() / fRatio,
+ aPlaceableBound.Right() / fRatio,
+ aPlaceableBound.Bottom() / fRatio);
}
}
commit 29ef23b3074b0eee2cc769ec1a06280cff5b6f99
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Tue May 13 14:31:13 2014 +0200
vcl: ReadWindowMetafile - make pConfigItem default to NULL
Change-Id: Ib061b5e05df5215bea210a750d5dfd5314eeadec
diff --git a/include/vcl/wmf.hxx b/include/vcl/wmf.hxx
index 750dcc3..bd8e9af 100644
--- a/include/vcl/wmf.hxx
+++ b/include/vcl/wmf.hxx
@@ -57,7 +57,7 @@ struct WMF_EXTERNALHEADER
bool ConvertWMFToGDIMetaFile( SvStream & rStreamWMF, GDIMetaFile & rGDIMetaFile, FilterConfigItem* pConfigItem = NULL, WMF_EXTERNALHEADER *pExtHeader = NULL );
-VCL_DLLPUBLIC bool ReadWindowMetafile( SvStream& rStream, GDIMetaFile& rMTF, FilterConfigItem* pConfigItem );
+VCL_DLLPUBLIC bool ReadWindowMetafile( SvStream& rStream, GDIMetaFile& rMTF, FilterConfigItem* pConfigItem = NULL );
VCL_DLLPUBLIC bool ConvertGDIMetaFileToWMF( const GDIMetaFile & rMTF, SvStream & rTargetStream, FilterConfigItem* pConfigItem = NULL, bool bPlaceable = true );
commit 06e6aa68ceb53873daccf7cf914234a04b15675a
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Tue May 13 14:26:25 2014 +0200
vcl: remove uselees comment from font.hxx
Change-Id: Ifc933e9b4ca2f604f3aaf1ba74b34b414f96dd64
diff --git a/include/vcl/font.hxx b/include/vcl/font.hxx
index e7973a1..d9649ba 100644
--- a/include/vcl/font.hxx
+++ b/include/vcl/font.hxx
@@ -35,10 +35,6 @@ class Impl_Font;
class ImplFontAttributes;
class Size;
-
-// - Font -
-
-
class VCL_DLLPUBLIC Font
{
private:
commit 6a94e8fbcbb43512b657c5b5a5d3d6ff5bd0fe7a
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Tue May 13 14:25:00 2014 +0200
wmf: put WMFReader constructor out of the header file
Change-Id: I8bf15c9990745759dd1414296257558adf5a42c0
diff --git a/vcl/source/filter/wmf/winmtf.hxx b/vcl/source/filter/wmf/winmtf.hxx
index bfa7a90..ede4141 100644
--- a/vcl/source/filter/wmf/winmtf.hxx
+++ b/vcl/source/filter/wmf/winmtf.hxx
@@ -842,22 +842,8 @@ private:
public:
WMFReader(SvStream& rStreamWMF, GDIMetaFile& rGDIMetaFile,
- FilterConfigItem* pConfigItem = NULL,
- WMF_EXTERNALHEADER* pExtHeader = NULL)
- : WinMtf(new WinMtfOutput(rGDIMetaFile) , rStreamWMF, pConfigItem)
- , nUnitsPerInch(96)
- , nRecSize(0)
- , pEMFStream(NULL)
- , nEMFRecCount(0)
- , nEMFRec(0)
- , nEMFSize(0)
- , nSkipActions(0)
- , nCurrentAction(0)
- , nUnicodeEscapeAction(0)
- , pExternalHeader(pExtHeader)
- {
- }
-
+ FilterConfigItem* pConfigItem = NULL,
+ WMF_EXTERNALHEADER* pExtHeader = NULL);
~WMFReader();
// read WMF file from stream and fill the GDIMetaFile
diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx
index 2f5d3aa..d98e024 100644
--- a/vcl/source/filter/wmf/winwmf.cxx
+++ b/vcl/source/filter/wmf/winwmf.cxx
@@ -1600,10 +1600,24 @@ bool WMFReader::GetPlaceableBound( Rectangle& rPlaceableBound, SvStream* pStm )
return bRet;
}
+WMFReader::WMFReader(SvStream& rStreamWMF, GDIMetaFile& rGDIMetaFile,
+ FilterConfigItem* pConfigItem, WMF_EXTERNALHEADER* pExtHeader)
+ : WinMtf(new WinMtfOutput(rGDIMetaFile) , rStreamWMF, pConfigItem)
+ , nUnitsPerInch(96)
+ , nRecSize(0)
+ , pEMFStream(NULL)
+ , nEMFRecCount(0)
+ , nEMFRec(0)
+ , nEMFSize(0)
+ , nSkipActions(0)
+ , nCurrentAction(0)
+ , nUnicodeEscapeAction(0)
+ , pExternalHeader(pExtHeader)
+{}
+
WMFReader::~WMFReader()
{
- if( pEMFStream )
- delete pEMFStream;
+ delete pEMFStream;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 599328b0a9f50f65d8ad1efea8b72ac604153c56
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Mon May 12 12:29:20 2014 +0200
tools: add AsRGBHexString to Color + unit test
AsRGBHexString returns the Color as a RGB hex string. For example
"00ff00" for green color.
Change-Id: Ia95c7f9eb6d9aefc3ca989046fa8d76b7b7f9e8f
diff --git a/include/tools/color.hxx b/include/tools/color.hxx
index 0a55132..3515e59 100644
--- a/include/tools/color.hxx
+++ b/include/tools/color.hxx
@@ -162,6 +162,10 @@ public:
TOOLS_DLLPUBLIC friend SvStream& ReadColor( SvStream& rIStream, Color& rColor );
TOOLS_DLLPUBLIC friend SvStream& WriteColor( SvStream& rOStream, const Color& rColor );
+ // Return color as RGB hex string
+ // for example "00ff00" for green color
+ OUString AsRGBHexString();
+
// get ::basegfx::BColor from this color
::basegfx::BColor getBColor() const { return ::basegfx::BColor(GetRed() / 255.0, GetGreen() / 255.0, GetBlue() / 255.0); }
};
diff --git a/tools/CppunitTest_tools_test.mk b/tools/CppunitTest_tools_test.mk
index 959df07..48324de5 100644
--- a/tools/CppunitTest_tools_test.mk
+++ b/tools/CppunitTest_tools_test.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,tools_test, \
tools/qa/cppunit/test_reversemap \
tools/qa/cppunit/test_stream \
tools/qa/cppunit/test_urlobj \
+ tools/qa/cppunit/test_color \
))
$(eval $(call gb_CppunitTest_use_api,tools_test, \
diff --git a/tools/qa/cppunit/test_color.cxx b/tools/qa/cppunit/test_color.cxx
new file mode 100644
index 0000000..6846fad
--- /dev/null
+++ b/tools/qa/cppunit/test_color.cxx
@@ -0,0 +1,61 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/types.h>
+#include "cppunit/TestAssert.h"
+#include "cppunit/TestFixture.h"
+#include "cppunit/extensions/HelperMacros.h"
+#include "cppunit/plugin/TestPlugIn.h"
+#include <tools/color.hxx>
+
+namespace
+{
+
+class Test: public CppUnit::TestFixture
+{
+public:
+ void test_asRGBColor();
+
+ CPPUNIT_TEST_SUITE(Test);
+ CPPUNIT_TEST(test_asRGBColor);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void Test::test_asRGBColor()
+{
+ Color aColor;
+ aColor = COL_BLACK;
+ CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("000000"));
+
+ aColor = COL_WHITE;
+ CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("ffffff"));
+
+ aColor = COL_RED;
+ CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("800000"));
+
+ aColor = COL_TRANSPARENT;
+ CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("ffffff"));
+
+ aColor = COL_BLUE;
+ CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("000080"));
+
+ aColor.SetRed(0x12);
+ aColor.SetGreen(0x34);
+ aColor.SetBlue(0x56);
+ CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("123456"));
+
+ aColor = COL_AUTO;
+ CPPUNIT_ASSERT_EQUAL(aColor.AsRGBHexString(), OUString("ffffff"));
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(Test);
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/tools/source/generic/color.cxx b/tools/source/generic/color.cxx
index 909a4e8..64cc6c4 100644
--- a/tools/source/generic/color.cxx
+++ b/tools/source/generic/color.cxx
@@ -232,6 +232,13 @@ SvStream& Color::Write( SvStream& rOStm, bool bNewFormat )
return rOStm;
}
+OUString Color::AsRGBHexString()
+{
+ std::stringstream ss;
+ ss << std::hex << std::setfill ('0') << std::setw(6) << GetRGBColor();
+ return OUString::createFromAscii(ss.str().c_str());
+}
+
#define COL_NAME_USER ((sal_uInt16)0x8000)
SvStream& ReadColor( SvStream& rIStream, Color& rColor )
commit 1c77fcacbd07b077412048a0647271fad16ff461
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Sun May 11 13:02:55 2014 +0200
vcl: problems with WriteWithVersion so remove for now
A sw test fails when WriteWithVersion is used istead of direct
replacement. Remove it for now.
Change-Id: I0425c85d6492061a5d7565e709d5913b79b28a46
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index f137d2e..50820fb 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -120,7 +120,6 @@ private:
virtual bool Compare( const MetaAction& ) const;
protected:
- void WriteWithVersion(SvStream& rStream, ImplMetaWriteData* pWriteData, sal_uInt16 nVersion);
virtual ~MetaAction();
public:
diff --git a/vcl/source/gdi/metaact.cxx b/vcl/source/gdi/metaact.cxx
index 87bd528..eb9217e 100644
--- a/vcl/source/gdi/metaact.cxx
+++ b/vcl/source/gdi/metaact.cxx
@@ -110,12 +110,6 @@ bool MetaAction::Compare( const MetaAction& ) const
return true;
}
-void MetaAction::WriteWithVersion( SvStream& rStream, ImplMetaWriteData* pWriteData, sal_uInt16 nVersion)
-{
- MetaAction::Write(rStream, pWriteData);
- VersionCompat aCompat(rStream, STREAM_WRITE, nVersion);
-}
-
void MetaAction::Write( SvStream& rOStm, ImplMetaWriteData* )
{
rOStm.WriteUInt16( mnType );
@@ -248,7 +242,8 @@ bool MetaPixelAction::Compare( const MetaAction& rMetaAction ) const
void MetaPixelAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WritePair( rOStm, maPt );
maColor.Write( rOStm, true );
}
@@ -301,7 +296,8 @@ bool MetaPointAction::Compare( const MetaAction& rMetaAction ) const
void MetaPointAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WritePair( rOStm, maPt );
}
@@ -369,7 +365,8 @@ bool MetaLineAction::Compare( const MetaAction& rMetaAction ) const
void MetaLineAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
WritePair( rOStm, maStartPt );
WritePair( rOStm, maEndPt ); // Version 1
@@ -432,7 +429,8 @@ bool MetaRectAction::Compare( const MetaAction& rMetaAction ) const
void MetaRectAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
}
@@ -492,7 +490,8 @@ bool MetaRoundRectAction::Compare( const MetaAction& rMetaAction ) const
void MetaRoundRectAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
rOStm.WriteUInt32( mnHorzRound ).WriteUInt32( mnVertRound );
}
@@ -544,7 +543,8 @@ bool MetaEllipseAction::Compare( const MetaAction& rMetaAction ) const
void MetaEllipseAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
}
@@ -604,7 +604,8 @@ bool MetaArcAction::Compare( const MetaAction& rMetaAction ) const
void MetaArcAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
WritePair( rOStm, maStartPt );
WritePair( rOStm, maEndPt );
@@ -668,7 +669,8 @@ bool MetaPieAction::Compare( const MetaAction& rMetaAction ) const
void MetaPieAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
WritePair( rOStm, maStartPt );
WritePair( rOStm, maEndPt );
@@ -732,7 +734,8 @@ bool MetaChordAction::Compare( const MetaAction& rMetaAction ) const
void MetaChordAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
WritePair( rOStm, maStartPt );
WritePair( rOStm, maEndPt );
@@ -803,7 +806,8 @@ bool MetaPolyLineAction::Compare( const MetaAction& rMetaAction ) const
void MetaPolyLineAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 3);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 3);
Polygon aSimplePoly;
maPoly.AdaptiveSubdivide( aSimplePoly );
@@ -877,7 +881,8 @@ bool MetaPolygonAction::Compare( const MetaAction& rMetaAction ) const
void MetaPolygonAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
Polygon aSimplePoly; // Version 1
maPoly.AdaptiveSubdivide( aSimplePoly );
@@ -946,7 +951,8 @@ bool MetaPolyPolygonAction::Compare( const MetaAction& rMetaAction ) const
void MetaPolyPolygonAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
sal_uInt16 nNumberOfComplexPolygons = 0;
sal_uInt16 i, nPolyCount = maPolyPoly.Count();
@@ -1046,7 +1052,8 @@ bool MetaTextAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
WritePair( rOStm, maPt );
rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
rOStm.WriteUInt16(mnIndex);
@@ -1164,7 +1171,8 @@ void MetaTextArrayAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
const sal_Int32 nAryLen = mpDXAry ? mnLen : 0;
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
WritePair( rOStm, maStartPt );
rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
rOStm.WriteUInt16(mnIndex);
@@ -1296,7 +1304,8 @@ bool MetaStretchTextAction::Compare( const MetaAction& rMetaAction ) const
void MetaStretchTextAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
WritePair( rOStm, maPt );
rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
rOStm.WriteUInt32( mnWidth );
@@ -1370,7 +1379,8 @@ bool MetaTextRectAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextRectAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
WriteRectangle( rOStm, maRect );
rOStm.WriteUniOrByteString( maStr, pData->meActualCharSet );
rOStm.WriteUInt16( mnStyle );
@@ -1446,7 +1456,8 @@ bool MetaTextLineAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextLineAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 2);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 2);
//#fdo39428 SvStream no longer supports operator<<(long)
WritePair( rOStm, maPos );
@@ -1524,7 +1535,8 @@ void MetaBmpAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmp )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIB(maBmp, rOStm, false, true);
WritePair( rOStm, maPt );
}
@@ -1588,7 +1600,8 @@ void MetaBmpScaleAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmp )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIB(maBmp, rOStm, false, true);
WritePair( rOStm, maPt );
WritePair( rOStm, maSz );
@@ -1659,7 +1672,8 @@ void MetaBmpScalePartAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmp )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIB(maBmp, rOStm, false, true);
WritePair( rOStm, maDstPt );
WritePair( rOStm, maDstSz );
@@ -1723,7 +1737,8 @@ void MetaBmpExAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmpEx.GetBitmap() )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIBBitmapEx(maBmpEx, rOStm);
WritePair( rOStm, maPt );
}
@@ -1787,7 +1802,8 @@ void MetaBmpExScaleAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmpEx.GetBitmap() )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIBBitmapEx(maBmpEx, rOStm);
WritePair( rOStm, maPt );
WritePair( rOStm, maSz );
@@ -1858,7 +1874,8 @@ void MetaBmpExScalePartAction::Write( SvStream& rOStm, ImplMetaWriteData* pData
{
if( !!maBmpEx.GetBitmap() )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIBBitmapEx(maBmpEx, rOStm);
WritePair( rOStm, maDstPt );
WritePair( rOStm, maDstSz );
@@ -1926,7 +1943,8 @@ void MetaMaskAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmp )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIB(maBmp, rOStm, false, true);
WritePair( rOStm, maPt );
}
@@ -1993,7 +2011,8 @@ void MetaMaskScaleAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmp )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIB(maBmp, rOStm, false, true);
WritePair( rOStm, maPt );
WritePair( rOStm, maSz );
@@ -2067,7 +2086,8 @@ void MetaMaskScalePartAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
if( !!maBmp )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteDIB(maBmp, rOStm, false, true);
maColor.Write( rOStm, true );
WritePair( rOStm, maDstPt );
@@ -2131,7 +2151,8 @@ bool MetaGradientAction::Compare( const MetaAction& rMetaAction ) const
void MetaGradientAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
WriteGradient( rOStm, maGradient );
}
@@ -2191,7 +2212,8 @@ bool MetaGradientExAction::Compare( const MetaAction& rMetaAction ) const
void MetaGradientExAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
// #i105373# see comment at MetaTransparentAction::Write
PolyPolygon aNoCurvePolyPolygon;
@@ -2252,7 +2274,8 @@ bool MetaHatchAction::Compare( const MetaAction& rMetaAction ) const
void MetaHatchAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
// #i105373# see comment at MetaTransparentAction::Write
PolyPolygon aNoCurvePolyPolygon;
@@ -2313,7 +2336,9 @@ bool MetaWallpaperAction::Compare( const MetaAction& rMetaAction ) const
void MetaWallpaperAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
+
WriteWallpaper( rOStm, maWallpaper );
}
@@ -2370,7 +2395,9 @@ bool MetaClipRegionAction::Compare( const MetaAction& rMetaAction ) const
void MetaClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
+
WriteRegion( rOStm, maRegion );
rOStm.WriteUChar( mbClip );
}
@@ -2423,7 +2450,8 @@ bool MetaISectRectClipRegionAction::Compare( const MetaAction& rMetaAction ) con
void MetaISectRectClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRectangle( rOStm, maRect );
}
@@ -2475,7 +2503,8 @@ bool MetaISectRegionClipRegionAction::Compare( const MetaAction& rMetaAction ) c
void MetaISectRegionClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteRegion( rOStm, maRegion );
}
@@ -2526,7 +2555,8 @@ bool MetaMoveClipRegionAction::Compare( const MetaAction& rMetaAction ) const
void MetaMoveClipRegionAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
//#fdo39428 SvStream no longer supports operator<<(long)
rOStm.WriteInt32( sal::static_int_cast<sal_Int32>(mnHorzMove) ).WriteInt32( sal::static_int_cast<sal_Int32>(mnVertMove) );
}
@@ -2578,7 +2608,8 @@ bool MetaLineColorAction::Compare( const MetaAction& rMetaAction ) const
void MetaLineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
maColor.Write( rOStm, true );
rOStm.WriteUChar( mbSet );
}
@@ -2627,7 +2658,8 @@ bool MetaFillColorAction::Compare( const MetaAction& rMetaAction ) const
void MetaFillColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
maColor.Write( rOStm, true );
rOStm.WriteUChar( mbSet );
}
@@ -2670,7 +2702,8 @@ bool MetaTextColorAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
maColor.Write( rOStm, true );
}
@@ -2717,7 +2750,8 @@ bool MetaTextFillColorAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextFillColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
maColor.Write( rOStm, true );
rOStm.WriteUChar( mbSet );
}
@@ -2766,7 +2800,8 @@ bool MetaTextLineColorAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextLineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
maColor.Write( rOStm, true );
rOStm.WriteUChar( mbSet );
}
@@ -2815,7 +2850,8 @@ bool MetaOverlineColorAction::Compare( const MetaAction& rMetaAction ) const
void MetaOverlineColorAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
maColor.Write( rOStm, true );
rOStm.WriteUChar( mbSet );
}
@@ -2859,7 +2895,8 @@ bool MetaTextAlignAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextAlignAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
rOStm.WriteUInt16( (sal_uInt16) maAlign );
}
@@ -2910,7 +2947,8 @@ bool MetaMapModeAction::Compare( const MetaAction& rMetaAction ) const
void MetaMapModeAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteMapMode( rOStm, maMapMode );
}
@@ -2969,7 +3007,8 @@ bool MetaFontAction::Compare( const MetaAction& rMetaAction ) const
void MetaFontAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
WriteFont( rOStm, maFont );
pData->meActualCharSet = maFont.GetCharSet();
if ( pData->meActualCharSet == RTL_TEXTENCODING_DONTKNOW )
@@ -3017,7 +3056,8 @@ bool MetaPushAction::Compare( const MetaAction& rMetaAction ) const
void MetaPushAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
rOStm.WriteUInt16( mnFlags );
}
@@ -3048,7 +3088,8 @@ MetaAction* MetaPopAction::Clone()
void MetaPopAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
}
void MetaPopAction::Read( SvStream& rIStm, ImplMetaReadData* )
@@ -3089,7 +3130,8 @@ bool MetaRasterOpAction::Compare( const MetaAction& rMetaAction ) const
void MetaRasterOpAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
rOStm.WriteUInt16( (sal_uInt16) meRasterOp );
}
@@ -3146,7 +3188,8 @@ bool MetaTransparentAction::Compare( const MetaAction& rMetaAction ) const
void MetaTransparentAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
// #i105373# The PolyPolygon in this action may be a curve; this
// was ignored until now what is an error. To make older office
@@ -3222,7 +3265,8 @@ bool MetaFloatTransparentAction::Compare( const MetaAction& rMetaAction ) const
void MetaFloatTransparentAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
maMtf.Write( rOStm );
WritePair( rOStm, maPoint );
@@ -3290,7 +3334,9 @@ bool MetaEPSAction::Compare( const MetaAction& rMetaAction ) const
void MetaEPSAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
+
WriteGfxLink( rOStm, maGfxLink );
WritePair( rOStm, maPoint );
WritePair( rOStm, maSize );
@@ -3343,7 +3389,9 @@ bool MetaRefPointAction::Compare( const MetaAction& rMetaAction ) const
void MetaRefPointAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
+
WritePair( rOStm, maRefPoint );
rOStm.WriteUChar( mbSet );
}
@@ -3540,7 +3588,8 @@ bool MetaCommentAction::Compare( const MetaAction& rMetaAction ) const
void MetaCommentAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
write_uInt16_lenPrefixed_uInt8s_FromOString(rOStm, maComment);
rOStm.WriteInt32( mnValue ).WriteUInt32( mnDataSize );
@@ -3599,7 +3648,8 @@ bool MetaLayoutModeAction::Compare( const MetaAction& rMetaAction ) const
void MetaLayoutModeAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
rOStm.WriteUInt32( mnLayoutMode );
}
@@ -3641,7 +3691,8 @@ bool MetaTextLanguageAction::Compare( const MetaAction& rMetaAction ) const
void MetaTextLanguageAction::Write( SvStream& rOStm, ImplMetaWriteData* pData )
{
- WriteWithVersion(rOStm, pData, 1);
+ MetaAction::Write(rOStm, pData);
+ VersionCompat aCompat(rOStm, STREAM_WRITE, 1);
rOStm.WriteUInt16( meTextLanguage );
}
commit ccb96f34399b1a5a0e2082f84ba8e4fba92b763a
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date: Fri May 9 10:48:03 2014 +0200
vcl: remove macros in metaact.cxx{hxx}
Macros to reduce code duplication in metaact.cxx are discuraged
as it is not possible to find those classes using "git grep".
Lets find a better way to reduce code duplication for those
classes (some have already been replaced in this commit).
Change-Id: I35c7cd74d6345f37e937754e2d0177b816e0e0fa
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index 183aca9..f137d2e 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -95,39 +95,22 @@ class SvStream;
struct ImplMetaReadData
{
- rtl_TextEncoding meActualCharSet;
+ rtl_TextEncoding meActualCharSet;
- ImplMetaReadData() :
- meActualCharSet( RTL_TEXTENCODING_ASCII_US )
- {
- }
+ ImplMetaReadData() :
+ meActualCharSet( RTL_TEXTENCODING_ASCII_US )
+ {}
};
struct ImplMetaWriteData
{
- rtl_TextEncoding meActualCharSet;
+ rtl_TextEncoding meActualCharSet;
- ImplMetaWriteData() :
- meActualCharSet( RTL_TEXTENCODING_ASCII_US )
- {
- }
+ ImplMetaWriteData() :
+ meActualCharSet( RTL_TEXTENCODING_ASCII_US )
+ {}
};
-#define DECL_META_ACTION( Name, nType ) \
- Meta##Name##Action(); \
-protected: \
- virtual ~Meta##Name##Action(); \
-public: \
- virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE; \
- virtual MetaAction* Clone() SAL_OVERRIDE; \
- virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE; \
- virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
-
-#define IMPL_META_ACTION( Name, nType ) \
-Meta##Name##Action::Meta##Name##Action() : \
- MetaAction( nType ) {} \
-Meta##Name##Action::~Meta##Name##Action() {}
-
class VCL_DLLPUBLIC MetaAction
{
private:
@@ -137,6 +120,7 @@ private:
virtual bool Compare( const MetaAction& ) const;
protected:
+ void WriteWithVersion(SvStream& rStream, ImplMetaWriteData* pWriteData, sal_uInt16 nVersion);
virtual ~MetaAction();
public:
@@ -172,7 +156,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Pixel, META_PIXEL_ACTION )
+ MetaPixelAction();
+protected:
+ virtual ~MetaPixelAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaPixelAction( const Point& rPt, const Color& rColor );
@@ -191,7 +182,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Point, META_POINT_ACTION )
+ MetaPointAction();
+protected:
+ virtual ~MetaPointAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaPointAction( const Point& );
@@ -212,7 +210,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Line, META_LINE_ACTION )
+ MetaLineAction();
+protected:
+ virtual ~MetaLineAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaLineAction( const Point& rStart, const Point& rEnd );
MetaLineAction( const Point& rStart, const Point& rEnd,
@@ -234,7 +239,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Rect, META_RECT_ACTION )
+ MetaRectAction();
+protected:
+ virtual ~MetaRectAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaRectAction( const Rectangle& );
@@ -255,7 +267,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( RoundRect, META_ROUNDRECT_ACTION )
+ MetaRoundRectAction();
+protected:
+ virtual ~MetaRoundRectAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaRoundRectAction( const Rectangle& rRect,
sal_uInt32 nHorzRound, sal_uInt32 nVertRound );
@@ -277,7 +296,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Ellipse, META_ELLIPSE_ACTION )
+ MetaEllipseAction();
+protected:
+ virtual ~MetaEllipseAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaEllipseAction( const Rectangle& );
@@ -298,7 +324,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Arc, META_ARC_ACTION )
+ MetaArcAction();
+protected:
+ virtual ~MetaArcAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaArcAction( const Rectangle& rRect,
const Point& rStart, const Point& rEnd );
@@ -322,7 +355,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Pie, META_PIE_ACTION )
+ MetaPieAction();
+protected:
+ virtual ~MetaPieAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaPieAction( const Rectangle& rRect,
const Point& rStart, const Point& rEnd );
@@ -346,7 +386,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Chord, META_CHORD_ACTION )
+ MetaChordAction();
+protected:
+ virtual ~MetaChordAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaChordAction( const Rectangle& rRect,
const Point& rStart, const Point& rEnd );
@@ -369,7 +416,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( PolyLine, META_POLYLINE_ACTION )
+ MetaPolyLineAction();
+protected:
+ virtual ~MetaPolyLineAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaPolyLineAction( const Polygon& );
explicit MetaPolyLineAction( const Polygon&, const LineInfo& );
@@ -390,7 +444,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Polygon, META_POLYGON_ACTION )
+ MetaPolygonAction();
+protected:
+ virtual ~MetaPolygonAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaPolygonAction( const Polygon& );
@@ -409,7 +470,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( PolyPolygon, META_POLYPOLYGON_ACTION )
+ MetaPolyPolygonAction();
+protected:
+ virtual ~MetaPolyPolygonAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaPolyPolygonAction( const PolyPolygon& );
@@ -431,7 +499,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Text, META_TEXT_ACTION )
+ MetaTextAction();
+protected:
+ virtual ~MetaTextAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaTextAction( const Point& rPt, const OUString& rStr,
sal_Int32 nIndex, sal_Int32 nLen );
@@ -497,7 +572,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( StretchText, META_STRETCHTEXT_ACTION )
+ MetaStretchTextAction();
+protected:
+ virtual ~MetaStretchTextAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaStretchTextAction( const Point& rPt, sal_uInt32 nWidth,
const OUString& rStr,
@@ -524,7 +606,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( TextRect, META_TEXTRECT_ACTION )
+ MetaTextRectAction();
+protected:
+ virtual ~MetaTextRectAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaTextRectAction( const Rectangle& rRect,
const OUString& rStr, sal_uInt16 nStyle );
@@ -550,7 +639,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( TextLine, META_TEXTLINE_ACTION )
+ MetaTextLineAction();
+protected:
+ virtual ~MetaTextLineAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaTextLineAction( const Point& rPos, long nWidth,
FontStrikeout eStrikeout,
@@ -576,7 +672,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Bmp, META_BMP_ACTION )
+ MetaBmpAction();
+protected:
+ virtual ~MetaBmpAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaBmpAction( const Point& rPt, const Bitmap& rBmp );
@@ -598,7 +701,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( BmpScale, META_BMPSCALE_ACTION )
+ MetaBmpScaleAction();
+protected:
+ virtual ~MetaBmpScaleAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaBmpScaleAction( const Point& rPt, const Size& rSz,
const Bitmap& rBmp );
@@ -624,7 +734,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( BmpScalePart, META_BMPSCALEPART_ACTION )
+ MetaBmpScalePartAction();
+protected:
+ virtual ~MetaBmpScalePartAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaBmpScalePartAction( const Point& rDstPt, const Size& rDstSz,
const Point& rSrcPt, const Size& rSrcSz,
@@ -650,7 +767,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( BmpEx, META_BMPEX_ACTION )
+ MetaBmpExAction();
+protected:
+ virtual ~MetaBmpExAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaBmpExAction( const Point& rPt, const BitmapEx& rBmpEx );
@@ -672,7 +796,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( BmpExScale, META_BMPEXSCALE_ACTION )
+ MetaBmpExScaleAction();
+protected:
+ virtual ~MetaBmpExScaleAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaBmpExScaleAction( const Point& rPt, const Size& rSz,
const BitmapEx& rBmpEx ) ;
@@ -698,7 +829,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( BmpExScalePart, META_BMPEXSCALEPART_ACTION )
+ MetaBmpExScalePartAction();
+protected:
+ virtual ~MetaBmpExScalePartAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaBmpExScalePartAction( const Point& rDstPt, const Size& rDstSz,
const Point& rSrcPt, const Size& rSrcSz,
@@ -725,7 +863,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Mask, META_MASK_ACTION )
+ MetaMaskAction();
+protected:
+ virtual ~MetaMaskAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaMaskAction( const Point& rPt,
const Bitmap& rBmp,
@@ -751,7 +896,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( MaskScale, META_MASKSCALE_ACTION )
+ MetaMaskScaleAction();
+protected:
+ virtual ~MetaMaskScaleAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaMaskScaleAction( const Point& rPt, const Size& rSz,
const Bitmap& rBmp,
@@ -780,7 +932,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( MaskScalePart, META_MASKSCALEPART_ACTION )
+ MetaMaskScalePartAction();
+protected:
+ virtual ~MetaMaskScalePartAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaMaskScalePartAction( const Point& rDstPt, const Size& rDstSz,
const Point& rSrcPt, const Size& rSrcSz,
@@ -808,7 +967,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Gradient, META_GRADIENT_ACTION )
+ MetaGradientAction();
+protected:
+ virtual ~MetaGradientAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaGradientAction( const Rectangle& rRect, const Gradient& rGradient );
@@ -829,7 +995,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( GradientEx, META_GRADIENTEX_ACTION )
+ MetaGradientExAction();
+protected:
+ virtual ~MetaGradientExAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaGradientExAction( const PolyPolygon& rPolyPoly, const Gradient& rGradient );
@@ -850,7 +1023,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Hatch, META_HATCH_ACTION )
+ MetaHatchAction();
+protected:
+ virtual ~MetaHatchAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaHatchAction( const PolyPolygon& rPolyPoly, const Hatch& rHatch );
@@ -871,7 +1051,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Wallpaper, META_WALLPAPER_ACTION )
+ MetaWallpaperAction();
+protected:
+ virtual ~MetaWallpaperAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaWallpaperAction( const Rectangle& rRect,
const Wallpaper& rPaper );
@@ -893,7 +1080,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( ClipRegion, META_CLIPREGION_ACTION )
+ MetaClipRegionAction();
+protected:
+ virtual ~MetaClipRegionAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaClipRegionAction( const Region& rRegion, bool bClip );
@@ -913,7 +1107,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( ISectRectClipRegion, META_ISECTRECTCLIPREGION_ACTION )
+ MetaISectRectClipRegionAction();
+protected:
+ virtual ~MetaISectRectClipRegionAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaISectRectClipRegionAction( const Rectangle& );
@@ -932,7 +1133,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( ISectRegionClipRegion, META_ISECTREGIONCLIPREGION_ACTION )
+ MetaISectRegionClipRegionAction();
+protected:
+ virtual ~MetaISectRegionClipRegionAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaISectRegionClipRegionAction( const Region& );
@@ -952,7 +1160,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( MoveClipRegion, META_MOVECLIPREGION_ACTION )
+ MetaMoveClipRegionAction();
+protected:
+ virtual ~MetaMoveClipRegionAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaMoveClipRegionAction( long nHorzMove, long nVertMove );
@@ -972,7 +1187,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( LineColor, META_LINECOLOR_ACTION )
+ MetaLineColorAction();
+protected:
+ virtual ~MetaLineColorAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaLineColorAction( const Color& rColor, bool bSet );
@@ -990,7 +1212,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( FillColor, META_FILLCOLOR_ACTION )
+ MetaFillColorAction();
+protected:
+ virtual ~MetaFillColorAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaFillColorAction( const Color& rColor, bool bSet );
@@ -1007,7 +1236,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( TextColor, META_TEXTCOLOR_ACTION )
+ MetaTextColorAction();
+protected:
+ virtual ~MetaTextColorAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaTextColorAction( const Color& );
@@ -1024,7 +1260,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( TextFillColor, META_TEXTFILLCOLOR_ACTION )
+ MetaTextFillColorAction();
+protected:
+ virtual ~MetaTextFillColorAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaTextFillColorAction( const Color& rColor, bool bSet );
@@ -1042,7 +1285,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( TextLineColor, META_TEXTLINECOLOR_ACTION )
+ MetaTextLineColorAction();
+protected:
+ virtual ~MetaTextLineColorAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaTextLineColorAction( const Color& rColor, bool bSet );
@@ -1060,7 +1310,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( OverlineColor, META_OVERLINECOLOR_ACTION )
+ MetaOverlineColorAction();
+protected:
+ virtual ~MetaOverlineColorAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
MetaOverlineColorAction( const Color& rColor, bool bSet );
@@ -1077,7 +1334,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( TextAlign, META_TEXTALIGN_ACTION )
+ MetaTextAlignAction();
+protected:
+ virtual ~MetaTextAlignAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaTextAlignAction( TextAlign eAlign );
@@ -1093,7 +1357,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( MapMode, META_MAPMODE_ACTION )
+ MetaMapModeAction();
+protected:
+ virtual ~MetaMapModeAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
+ virtual void Read( SvStream& rIStm, ImplMetaReadData* pData ) SAL_OVERRIDE;
explicit MetaMapModeAction( const MapMode& );
@@ -1111,7 +1382,14 @@ private:
virtual bool Compare( const MetaAction& ) const SAL_OVERRIDE;
public:
- DECL_META_ACTION( Font, META_FONT_ACTION )
+ MetaFontAction();
+protected:
+ virtual ~MetaFontAction();
+public:
+ virtual void Execute( OutputDevice* pOut ) SAL_OVERRIDE;
+ virtual MetaAction* Clone() SAL_OVERRIDE;
+ virtual void Write( SvStream& rOStm, ImplMetaWriteData* pData ) SAL_OVERRIDE;
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list