diff options
Diffstat (limited to 'emfio')
-rw-r--r-- | emfio/CppunitTest_emfio.mk | 67 | ||||
-rw-r--r-- | emfio/Library_emfio.mk | 51 | ||||
-rw-r--r-- | emfio/Makefile | 14 | ||||
-rw-r--r-- | emfio/Module_emfio.mk | 29 | ||||
-rw-r--r-- | emfio/README | 1 | ||||
-rw-r--r-- | emfio/emfio.component | 25 | ||||
-rw-r--r-- | emfio/inc/pch/precompiled_emfio.cxx | 12 | ||||
-rw-r--r-- | emfio/inc/pch/precompiled_emfio.hxx | 29 | ||||
-rw-r--r-- | emfio/qa/cppunit/EmfImportTest.cxx | 102 | ||||
-rw-r--r-- | emfio/qa/cppunit/data/fdo79679-2.emf | bin | 0 -> 34236 bytes | |||
-rw-r--r-- | emfio/source/emfuno/emfuno.cxx | 46 | ||||
-rw-r--r-- | emfio/source/emfuno/xemfparser.cxx | 210 | ||||
-rw-r--r-- | emfio/source/emfuno/xemfparser.hxx | 50 |
13 files changed, 636 insertions, 0 deletions
diff --git a/emfio/CppunitTest_emfio.mk b/emfio/CppunitTest_emfio.mk new file mode 100644 index 000000000000..8214bc87e794 --- /dev/null +++ b/emfio/CppunitTest_emfio.mk @@ -0,0 +1,67 @@ +# -*- 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,emfio)) + +$(eval $(call gb_CppunitTest_set_componentfile,emfio,emfio/emfio)) + +$(eval $(call gb_CppunitTest_set_include,emfio,\ + $$(INCLUDE) \ + -I$(SRCDIR)/emfio/inc \ +)) + +$(eval $(call gb_CppunitTest_use_externals,emfio,\ + boost_headers \ + libxml2 \ +)) + +$(eval $(call gb_CppunitTest_use_sdk_api,emfio)) + +$(eval $(call gb_CppunitTest_use_library_objects,emfio,\ + emfio \ +)) + +$(eval $(call gb_CppunitTest_use_libraries,emfio,\ + basegfx \ + drawinglayer \ + cppu \ + cppuhelper \ + comphelper \ + sal \ + svt \ + test \ + unotest \ + tl \ + vcl \ +)) + +$(eval $(call gb_CppunitTest_add_exception_objects,emfio,\ + emfio/qa/cppunit/EmfImportTest \ +)) + +$(eval $(call gb_CppunitTest_use_ure,emfio)) +$(eval $(call gb_CppunitTest_use_vcl,emfio)) + +$(eval $(call gb_CppunitTest_use_components,emfio,\ + configmgr/source/configmgr \ + dtrans/util/mcnttype \ + framework/util/fwk \ + i18npool/util/i18npool \ + package/source/xstor/xstor \ + package/util/package2 \ + toolkit/util/tk \ + sfx2/util/sfx \ + ucb/source/core/ucb1 \ + ucb/source/ucp/file/ucpfile1 \ + unotools/util/utl \ +)) + +$(eval $(call gb_CppunitTest_use_configuration,emfio)) + +# vim: set noet sw=4 ts=4: diff --git a/emfio/Library_emfio.mk b/emfio/Library_emfio.mk new file mode 100644 index 000000000000..c0a2dc2d42ff --- /dev/null +++ b/emfio/Library_emfio.mk @@ -0,0 +1,51 @@ +# +# 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 . +# + +$(eval $(call gb_Library_Library,emfio)) + +$(eval $(call gb_Library_set_componentfile,emfio,emfio/emfio)) + +$(eval $(call gb_Library_set_include,emfio,\ + $$(INCLUDE) \ + -I$(SRCDIR)/emfio/inc \ +)) + +$(eval $(call gb_Library_use_external,emfio,boost_headers)) + +$(eval $(call gb_Library_set_precompiled_header,emfio,$(SRCDIR)/emfio/inc/pch/precompiled_emfio)) + +$(eval $(call gb_Library_use_sdk_api,emfio)) + +$(eval $(call gb_Library_use_libraries,emfio,\ + basegfx \ + drawinglayer \ + cppu \ + cppuhelper \ + sal \ + tl \ + sax \ + vcl \ + svt \ +)) + +$(eval $(call gb_Library_add_exception_objects,emfio,\ + emfio/source/emfuno/emfuno \ + emfio/source/emfuno/xemfparser \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/emfio/Makefile b/emfio/Makefile new file mode 100644 index 000000000000..0997e628485b --- /dev/null +++ b/emfio/Makefile @@ -0,0 +1,14 @@ +# -*- 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/. +# + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/emfio/Module_emfio.mk b/emfio/Module_emfio.mk new file mode 100644 index 000000000000..719bd0180628 --- /dev/null +++ b/emfio/Module_emfio.mk @@ -0,0 +1,29 @@ +# +# 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 . +# + +$(eval $(call gb_Module_Module,emfio)) + +$(eval $(call gb_Module_add_targets,emfio,\ + Library_emfio \ +)) + +$(eval $(call gb_Module_add_check_targets,emfio,\ + CppunitTest_emfio \ +)) + +# vim: set noet ts=4 sw=4: diff --git a/emfio/README b/emfio/README new file mode 100644 index 000000000000..c68aa72ec90b --- /dev/null +++ b/emfio/README @@ -0,0 +1 @@ +It contains emfio/source/emfeader which is used for "Insert->Picture->From File". diff --git a/emfio/emfio.component b/emfio/emfio.component new file mode 100644 index 000000000000..a0ea552950cd --- /dev/null +++ b/emfio/emfio.component @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 . + --> + +<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" + prefix="emfio" xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="emfio::emfreader::XEmfParser"> + <service name="com.sun.star.graphic.EmfTools"/> + </implementation> +</component> diff --git a/emfio/inc/pch/precompiled_emfio.cxx b/emfio/inc/pch/precompiled_emfio.cxx new file mode 100644 index 000000000000..d87142820e5d --- /dev/null +++ b/emfio/inc/pch/precompiled_emfio.cxx @@ -0,0 +1,12 @@ +/* -*- 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 "precompiled_emfio.hxx" + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/emfio/inc/pch/precompiled_emfio.hxx b/emfio/inc/pch/precompiled_emfio.hxx new file mode 100644 index 000000000000..fac038537e53 --- /dev/null +++ b/emfio/inc/pch/precompiled_emfio.hxx @@ -0,0 +1,29 @@ +/* -*- 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 has been autogenerated by update_pch.sh. It is possible to edit it + manually (such as when an include file has been moved/renamed/removed). All such + manual changes will be rewritten by the next run of update_pch.sh (which presumably + also fixes all possible problems, so it's usually better to use it). + + Generated on 2017-06-09 17:33:30 using: + bin/update_pch emfio emfio --cutoff=8 --exclude:system --exclude:module --include:local + + If after updating build fails, use the following command to locate conflicting headers: + ./bin/update_pch_bisect ./emfio/inc/pch/precompiled_emfio.hxx "make emfio.build" --find-conflicts +*/ + +#include <osl/diagnose.h> +#include <rtl/instance.hxx> +#include <rtl/unload.h> +#include <rtl/ustring.hxx> +#include <sal/types.h> + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/emfio/qa/cppunit/EmfImportTest.cxx b/emfio/qa/cppunit/EmfImportTest.cxx new file mode 100644 index 000000000000..f315fc8937d0 --- /dev/null +++ b/emfio/qa/cppunit/EmfImportTest.cxx @@ -0,0 +1,102 @@ +/* -*- 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/config.h> + +#include <test/bootstrapfixture.hxx> +#include <test/primitive2dxmldump.hxx> +#include <test/xmltesttools.hxx> + +#include <comphelper/processfactory.hxx> +#include <comphelper/seqstream.hxx> +#include <comphelper/sequence.hxx> + +#include <com/sun/star/graphic/EmfTools.hpp> +#include <com/sun/star/graphic/Primitive2DTools.hpp> +#include <com/sun/star/graphic/XPrimitive2D.hpp> + +#include <drawinglayer/primitive2d/baseprimitive2d.hxx> + +#include <memory> + +namespace +{ + +using namespace css::uno; +using namespace css::io; +using namespace css::graphic; +using drawinglayer::primitive2d::Primitive2DSequence; +using drawinglayer::primitive2d::Primitive2DContainer; + +class Test : public test::BootstrapFixture, public XmlTestTools +{ + void checkRectPrimitive(Primitive2DSequence& rPrimitive); + + void testWorking(); + + Primitive2DSequence parseEmf(const char* aSource); + +public: + CPPUNIT_TEST_SUITE(Test); + CPPUNIT_TEST(testWorking); + CPPUNIT_TEST_SUITE_END(); +}; + +Primitive2DSequence Test::parseEmf(const char* aSource) +{ + const Reference<XEmfParser> xEmfParser = EmfTools::create(m_xContext); + + OUString aUrl = m_directories.getURLFromSrc(aSource); + OUString aPath = m_directories.getPathFromSrc(aSource); + + SvFileStream aFileStream(aUrl, StreamMode::READ); + std::size_t nSize = aFileStream.remainingSize(); + std::unique_ptr<sal_Int8[]> pBuffer(new sal_Int8[nSize + 1]); + aFileStream.ReadBytes(pBuffer.get(), nSize); + pBuffer[nSize] = 0; + + Sequence<sal_Int8> aData(pBuffer.get(), nSize + 1); + Reference<XInputStream> aInputStream(new comphelper::SequenceInputStream(aData)); + + return xEmfParser->getDecomposition(aInputStream, aPath); +} + +void Test::checkRectPrimitive(Primitive2DSequence& rPrimitive) +{ + Primitive2dXmlDump dumper; + xmlDocPtr pDocument = dumper.dumpAndParse(comphelper::sequenceToContainer<Primitive2DContainer>(rPrimitive)); + + CPPUNIT_ASSERT (pDocument); + + // emfio: add examples + // assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "color", "#00cc00"); // rect background color + // assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "height", "100"); // rect background height + // assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "width", "100"); // rect background width + // assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "minx", "10"); + // assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "miny", "10"); + // assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "maxx", "110"); + // assertXPath(pDocument, "/primitive2D/transform/polypolygoncolor", "maxy", "110"); + // assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", "color", "#ff0000"); // rect stroke color + // assertXPath(pDocument, "/primitive2D/transform/polypolygonstroke/line", "width", "3"); // rect stroke width +} + +void Test::testWorking() +{ + Primitive2DSequence aSequenceRect = parseEmf("/emfio/qa/cppunit/data/fdo79679-2.emf"); + CPPUNIT_ASSERT_EQUAL(1, (int) aSequenceRect.getLength()); + checkRectPrimitive(aSequenceRect); +} + +CPPUNIT_TEST_SUITE_REGISTRATION(Test); + +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/emfio/qa/cppunit/data/fdo79679-2.emf b/emfio/qa/cppunit/data/fdo79679-2.emf Binary files differnew file mode 100644 index 000000000000..0962dc122152 --- /dev/null +++ b/emfio/qa/cppunit/data/fdo79679-2.emf diff --git a/emfio/source/emfuno/emfuno.cxx b/emfio/source/emfuno/emfuno.cxx new file mode 100644 index 000000000000..b027c5fe3cc2 --- /dev/null +++ b/emfio/source/emfuno/emfuno.cxx @@ -0,0 +1,46 @@ +/* -*- 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 <sal/config.h> + +#include <cppuhelper/factory.hxx> +#include <cppuhelper/implementationentry.hxx> +#include <sal/types.h> + +#include "xemfparser.hxx" + +namespace { + +static cppu::ImplementationEntry const services[] = { + { &emfio::emfreader::XEmfParser_createInstance, + &emfio::emfreader::XEmfParser_getImplementationName, + &emfio::emfreader::XEmfParser_getSupportedServiceNames, + &cppu::createSingleComponentFactory, nullptr, 0 }, + { nullptr, nullptr, nullptr, nullptr, nullptr, 0 } }; + +} + +extern "C" SAL_DLLPUBLIC_EXPORT void * SAL_CALL emfio_component_getFactory( + char const * pImplName, void * pServiceManager, void * pRegistryKey) +{ + return cppu::component_getFactoryHelper( + pImplName, pServiceManager, pRegistryKey, services); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/emfio/source/emfuno/xemfparser.cxx b/emfio/source/emfuno/xemfparser.cxx new file mode 100644 index 000000000000..ce18d4be3a3a --- /dev/null +++ b/emfio/source/emfuno/xemfparser.cxx @@ -0,0 +1,210 @@ +/* -*- 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 <sal/config.h> + +#include <com/sun/star/graphic/XEmfParser.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/lang/XInitialization.hpp> +#include <cppuhelper/implbase2.hxx> +#include <cppuhelper/supportsservice.hxx> +#include <comphelper/sequence.hxx> +#include <drawinglayer/primitive2d/baseprimitive2d.hxx> +#include <basegfx/color/bcolor.hxx> +#include <basegfx/polygon/b2dpolygon.hxx> +#include <basegfx/polygon/b2dpolygontools.hxx> +#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx> + +//#include <com/sun/star/xml/sax/XParser.hpp> +//#include <com/sun/star/xml/sax/Parser.hpp> +//#include <com/sun/star/xml/sax/InputSource.hpp> +//#include <drawinglayer/geometry/viewinformation2d.hxx> +//#include <svgdocumenthandler.hxx> + +#include "xemfparser.hxx" + +using namespace ::com::sun::star; + +namespace emfio +{ + namespace emfreader + { + class XEmfParser : public ::cppu::WeakAggImplHelper2< graphic::XEmfParser, lang::XServiceInfo > + { + private: + uno::Reference< uno::XComponentContext > context_; + + protected: + public: + explicit XEmfParser( + uno::Reference< uno::XComponentContext > const & context); + XEmfParser(const XEmfParser&) = delete; + XEmfParser& operator=(const XEmfParser&) = delete; + + // XEmfParser + virtual uno::Sequence< uno::Reference< ::graphic::XPrimitive2D > > SAL_CALL getDecomposition( + const uno::Reference< ::io::XInputStream >& xEmfStream, + const OUString& aAbsolutePath) override; + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() override; + virtual sal_Bool SAL_CALL supportsService(const OUString&) override; + virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; + }; + } // end of namespace emfreader +} // end of namespace emfio + +// uno functions +namespace emfio +{ + namespace emfreader + { + uno::Sequence< OUString > XEmfParser_getSupportedServiceNames() + { + return uno::Sequence< OUString > { "com.sun.star.graphic.EmfTools" }; + } + + OUString XEmfParser_getImplementationName() + { + return OUString( "emfio::emfreader::XEmfParser" ); + } + + uno::Reference< uno::XInterface > SAL_CALL XEmfParser_createInstance(const uno::Reference< uno::XComponentContext >& context) + { + return static_cast< ::cppu::OWeakObject* >(new XEmfParser(context)); + } + } // end of namespace emfreader +} // end of namespace emfio + +namespace emfio +{ + namespace emfreader + { + XEmfParser::XEmfParser( + uno::Reference< uno::XComponentContext > const & context): + context_(context) + { + } + + uno::Sequence< uno::Reference< ::graphic::XPrimitive2D > > XEmfParser::getDecomposition( + const uno::Reference< ::io::XInputStream >& xEmfStream, + const OUString& aAbsolutePath ) + { + drawinglayer::primitive2d::Primitive2DContainer aRetval; + + if (xEmfStream.is()) + { + static bool bTestCode(true); + + if (bTestCode) + { + // for test, just create some graphic data + const basegfx::B2DRange aRange(1000, 1000, 5000, 5000); + const basegfx::BColor aColor(1.0, 0.0, 0.0); + const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(aRange)); + + aRetval.push_back(new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(basegfx::B2DPolyPolygon(aOutline), aColor)); + } + else + { + // new parser here + bool bBla = true; + + + + + // // local document handler + // SvgDocHdl* pSvgDocHdl = new SvgDocHdl(aAbsolutePath); + // uno::Reference< xml::sax::XDocumentHandler > xSvgDocHdl(pSvgDocHdl); + // + // try + // { + // // prepare ParserInputSrouce + // xml::sax::InputSource myInputSource; + // myInputSource.aInputStream = xEmfStream; + // + // // get parser + // uno::Reference< xml::sax::XParser > xParser( + // xml::sax::Parser::create(context_)); + // // fdo#60471 need to enable internal entities because + // // certain ... popular proprietary products write SVG files + // // that use entities to define XML namespaces. + // uno::Reference<lang::XInitialization> const xInit(xParser, + // uno::UNO_QUERY_THROW); + // uno::Sequence<uno::Any> args(1); + // args[0] <<= OUString("DoSmeplease"); + // xInit->initialize(args); + // + // // connect parser and filter + // xParser->setDocumentHandler(xSvgDocHdl); + // + // // finally, parse the stream to a hierarchy of + // // SVGGraphicPrimitive2D which will be embedded to the + // // primitive sequence. Their decompositions will in the + // // end create local low-level primitives, thus SVG will + // // be processable from all our processors + // xParser->parseStream(myInputSource); + // } + // catch(const uno::Exception& e) + // { + // SAL_WARN( "svg", "Parse error! : " << e.Message); + // } + // + // // decompose to primitives + // const SvgNodeVector& rResults = pSvgDocHdl->getSvgDocument().getSvgNodeVector(); + // const sal_uInt32 nCount(rResults.size()); + // + // for(sal_uInt32 a(0); a < nCount; a++) + // { + // SvgNode* pCandidate = rResults[a]; + // + // if(Display_none != pCandidate->getDisplay()) + // { + // pCandidate->decomposeSvgNode(aRetval, false); + // } + // } + } + } + else + { + OSL_ENSURE(false, "Invalid stream (!)"); + } + + return comphelper::containerToSequence(aRetval); + } + + OUString SAL_CALL XEmfParser::getImplementationName() + { + return(XEmfParser_getImplementationName()); + } + + sal_Bool SAL_CALL XEmfParser::supportsService(const OUString& rServiceName) + { + return cppu::supportsService(this, rServiceName); + } + + uno::Sequence< OUString > SAL_CALL XEmfParser::getSupportedServiceNames() + { + return XEmfParser_getSupportedServiceNames(); + } + + } // end of namespace emfreader +} // end of namespace emfio + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/emfio/source/emfuno/xemfparser.hxx b/emfio/source/emfuno/xemfparser.hxx new file mode 100644 index 000000000000..da78322028dc --- /dev/null +++ b/emfio/source/emfuno/xemfparser.hxx @@ -0,0 +1,50 @@ +/* -*- 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 . + */ + +#ifndef INCLUDED_EMFIO_SOURCE_EMFUNO_XEMFARSER_HXX +#define INCLUDED_EMFIO_SOURCE_EMFUNO_XEMFARSER_HXX + +#include <sal/config.h> + +#include <com/sun/star/uno/Reference.hxx> +#include <com/sun/star/uno/Sequence.hxx> +#include <sal/types.h> + +namespace com { namespace sun { namespace star { + namespace uno { + class XComponentContext; + class XInterface; + } +} } } + +namespace emfio { namespace emfreader { + +css::uno::Reference< css::uno::XInterface > SAL_CALL +XEmfParser_createInstance( css::uno::Reference< css::uno::XComponentContext > const &); + +OUString SAL_CALL XEmfParser_getImplementationName(); + +css::uno::Sequence< OUString > SAL_CALL +XEmfParser_getSupportedServiceNames(); + +} } + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |