xref: /aoo41x/main/filter/source/svg/svgfilter.hxx (revision 33f678dd)
122e87013SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
322e87013SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
422e87013SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
522e87013SAndrew Rist  * distributed with this work for additional information
622e87013SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
722e87013SAndrew Rist  * to you under the Apache License, Version 2.0 (the
822e87013SAndrew Rist  * "License"); you may not use this file except in compliance
922e87013SAndrew Rist  * with the License.  You may obtain a copy of the License at
1022e87013SAndrew Rist  *
1122e87013SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
1222e87013SAndrew Rist  *
1322e87013SAndrew Rist  * Unless required by applicable law or agreed to in writing,
1422e87013SAndrew Rist  * software distributed under the License is distributed on an
1522e87013SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1622e87013SAndrew Rist  * KIND, either express or implied.  See the License for the
1722e87013SAndrew Rist  * specific language governing permissions and limitations
1822e87013SAndrew Rist  * under the License.
1922e87013SAndrew Rist  *
2022e87013SAndrew Rist  *************************************************************/
2122e87013SAndrew Rist 
2222e87013SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SVGFILTER_HXX
25cdf0e10cSrcweir #define SVGFILTER_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <com/sun/star/drawing/XMasterPageTarget.hpp>
28cdf0e10cSrcweir #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
29cdf0e10cSrcweir #include <com/sun/star/container/XNamed.hpp>
30cdf0e10cSrcweir #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
31cdf0e10cSrcweir #include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
32cdf0e10cSrcweir #include <com/sun/star/presentation/XPresentationSupplier.hpp>
33cdf0e10cSrcweir #include <com/sun/star/document/XFilter.hpp>
34cdf0e10cSrcweir #ifdef SOLAR_JAVA
35cdf0e10cSrcweir #include <com/sun/star/document/XImporter.hpp>
36cdf0e10cSrcweir #endif // SOLAR_JAVA
37cdf0e10cSrcweir #include <com/sun/star/document/XExporter.hpp>
38cdf0e10cSrcweir #include <com/sun/star/lang/XInitialization.hpp>
39cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp>
40cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
41cdf0e10cSrcweir #include <com/sun/star/lang/XComponent.hpp>
42cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx>
43cdf0e10cSrcweir #ifdef SOLAR_JAVA
44cdf0e10cSrcweir #include <cppuhelper/implbase5.hxx>
45cdf0e10cSrcweir #else // !SOLAR_JAVA
46cdf0e10cSrcweir #include <cppuhelper/implbase4.hxx>
47cdf0e10cSrcweir #endif
48cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
49cdf0e10cSrcweir #include <com/sun/star/io/XActiveDataSource.hpp>
50cdf0e10cSrcweir #include <com/sun/star/presentation/AnimationEffect.hpp>
51cdf0e10cSrcweir #include <com/sun/star/presentation/AnimationSpeed.hpp>
52cdf0e10cSrcweir #include <com/sun/star/presentation/ClickAction.hpp>
53cdf0e10cSrcweir #include <com/sun/star/presentation/FadeEffect.hpp>
54cdf0e10cSrcweir #include <com/sun/star/text/XText.hpp>
55cdf0e10cSrcweir #include <com/sun/star/frame/XDesktop.hpp>
56cdf0e10cSrcweir #include <com/sun/star/java/XJavaVM.hpp>
57cdf0e10cSrcweir #include <com/sun/star/java/XJavaThreadRegister_11.hpp>
58cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp>
59cdf0e10cSrcweir 
60cdf0e10cSrcweir #include <hash_map>
61cdf0e10cSrcweir #include <osl/diagnose.h>
62cdf0e10cSrcweir #include <rtl/process.h>
63cdf0e10cSrcweir #include <basegfx/polygon/b2dpolypolygon.hxx>
64cdf0e10cSrcweir #include <basegfx/polygon/b2dpolygonclipper.hxx>
65cdf0e10cSrcweir #include <basegfx/polygon/b2dpolypolygontools.hxx>
66cdf0e10cSrcweir #include <tools/debug.hxx>
67cdf0e10cSrcweir #include <comphelper/processfactory.hxx>
68cdf0e10cSrcweir #include <unotools/tempfile.hxx>
69cdf0e10cSrcweir #include <unotools/localfilehelper.hxx>
70cdf0e10cSrcweir #include <unotools/ucbstreamhelper.hxx>
71cdf0e10cSrcweir #include <unotools/streamwrap.hxx>
72cdf0e10cSrcweir #include <vcl/cvtgrf.hxx>
73cdf0e10cSrcweir #include <vcl/svapp.hxx>
74cdf0e10cSrcweir #include <vcl/outdev.hxx>
75cdf0e10cSrcweir #include <vcl/metaact.hxx>
76cdf0e10cSrcweir #include <svtools/grfmgr.hxx>
77cdf0e10cSrcweir #include <svx/unomodel.hxx>
78cdf0e10cSrcweir #include <svx/unoapi.hxx>
79cdf0e10cSrcweir #include <svx/svdxcgv.hxx>
80cdf0e10cSrcweir #include <svx/svdobj.hxx>
81cdf0e10cSrcweir #include <xmloff/xmlexp.hxx>
82cdf0e10cSrcweir #include "svgfilter.hxx"
83cdf0e10cSrcweir #include "svgscript.hxx"
84cdf0e10cSrcweir 
85cdf0e10cSrcweir #include <cstdio>
86cdf0e10cSrcweir 
87cdf0e10cSrcweir using namespace ::com::sun::star::uno;
88cdf0e10cSrcweir using namespace ::com::sun::star::container;
89cdf0e10cSrcweir using namespace ::com::sun::star::lang;
90cdf0e10cSrcweir using namespace ::com::sun::star::beans;
91cdf0e10cSrcweir using namespace ::com::sun::star::java;
92cdf0e10cSrcweir using namespace ::com::sun::star::drawing;
93cdf0e10cSrcweir using namespace ::com::sun::star::presentation;
94cdf0e10cSrcweir using namespace ::com::sun::star::document;
95cdf0e10cSrcweir using namespace ::com::sun::star::text;
96cdf0e10cSrcweir using namespace ::com::sun::star::io;
97cdf0e10cSrcweir using namespace ::com::sun::star::xml::sax;
98cdf0e10cSrcweir using namespace ::std;
99cdf0e10cSrcweir 
100cdf0e10cSrcweir // -----------
101cdf0e10cSrcweir // - Defines -
102cdf0e10cSrcweir // -----------
103cdf0e10cSrcweir 
104cdf0e10cSrcweir #define SVG_EXPORT_ALLPAGES ((sal_Int32)-1)
105cdf0e10cSrcweir 
106cdf0e10cSrcweir // -------------
107cdf0e10cSrcweir // - SVGExport -
108cdf0e10cSrcweir // -------------
109cdf0e10cSrcweir 
110cdf0e10cSrcweir // #110680#
111cdf0e10cSrcweir class SVGExport : public SvXMLExport
112cdf0e10cSrcweir {
113cdf0e10cSrcweir     typedef ::std::list< ::basegfx::B2DPolyPolygon > B2DPolyPolygonList;
114cdf0e10cSrcweir 
115bac862b1SArmin Le Grand 	rtl::OUString	maGlyphPlacement;
116bac862b1SArmin Le Grand 
117bac862b1SArmin Le Grand 	sal_Bool	mbTinyProfile;
118bac862b1SArmin Le Grand 	sal_Bool	mbTSpans;
119bac862b1SArmin Le Grand 	sal_Bool	mbEmbedFonts;
120bac862b1SArmin Le Grand 	sal_Bool	mbNativeTextDecoration;
121bac862b1SArmin Le Grand 	sal_Bool	mbOpacity;
122bac862b1SArmin Le Grand 	sal_Bool	mbGradient;
123bac862b1SArmin Le Grand 
124bac862b1SArmin Le Grand 	Rectangle	maViewBox;
125bac862b1SArmin Le Grand 
126cdf0e10cSrcweir public:
127cdf0e10cSrcweir 
128cdf0e10cSrcweir     SVGExport( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
129cdf0e10cSrcweir 	            const Reference< XDocumentHandler >& rxHandler,
130cdf0e10cSrcweir                 const Sequence< PropertyValue >& rFilterData );
131cdf0e10cSrcweir 
132cdf0e10cSrcweir     virtual ~SVGExport();
133cdf0e10cSrcweir 
IsUseTinyProfile() const134bac862b1SArmin Le Grand 	sal_Bool IsUseTinyProfile() const { return mbTinyProfile; };
IsUseTSpans() const135bac862b1SArmin Le Grand 	sal_Bool IsUseTSpans() const { return mbTSpans; };
IsEmbedFonts() const136bac862b1SArmin Le Grand 	sal_Bool IsEmbedFonts() const { return mbEmbedFonts; };
IsUseNativeTextDecoration() const137bac862b1SArmin Le Grand 	sal_Bool IsUseNativeTextDecoration() const { return mbNativeTextDecoration; };
GetGlyphPlacement() const138bac862b1SArmin Le Grand 	::rtl::OUString GetGlyphPlacement() const { return maGlyphPlacement; };
IsUseOpacity() const139bac862b1SArmin Le Grand 	sal_Bool IsUseOpacity() const { return mbOpacity; };
IsUseGradient() const140bac862b1SArmin Le Grand 	sal_Bool IsUseGradient() const { return mbGradient; };
141cdf0e10cSrcweir 
GetViewBox() const142bac862b1SArmin Le Grand 	const Rectangle& GetViewBox() const { return maViewBox; };
SetViewBox(const Rectangle & rViewBox)143bac862b1SArmin Le Grand 	void SetViewBox( const Rectangle& rViewBox ) { maViewBox = rViewBox; };
IsVisible(const Rectangle & rRect) const144bac862b1SArmin Le Grand 	sal_Bool IsVisible( const Rectangle& rRect ) const { return GetViewBox().IsOver( rRect ); };
145bac862b1SArmin Le Grand 
146cdf0e10cSrcweir     void  pushClip( const ::basegfx::B2DPolyPolygon& rPolyPoly );
147cdf0e10cSrcweir     void  popClip();
148cdf0e10cSrcweir     sal_Bool  hasClip() const;
149cdf0e10cSrcweir     const ::basegfx::B2DPolyPolygon* getCurClip() const;
150cb0a2370SArmin Le Grand 
151cb0a2370SArmin Le Grand 	void writeMtf( const GDIMetaFile& rMtf );
152cb0a2370SArmin Le Grand 
153cdf0e10cSrcweir protected:
154cdf0e10cSrcweir 
_ExportStyles(sal_Bool)155cdf0e10cSrcweir virtual void			_ExportStyles( sal_Bool /* bUsed */ ) {}
_ExportAutoStyles()156cdf0e10cSrcweir virtual void            _ExportAutoStyles() {}
_ExportContent()157cdf0e10cSrcweir virtual void            _ExportContent() {}
_ExportMasterStyles()158cdf0e10cSrcweir virtual void            _ExportMasterStyles() {}
exportDoc(enum::xmloff::token::XMLTokenEnum)159cdf0e10cSrcweir virtual sal_uInt32		exportDoc( enum ::xmloff::token::XMLTokenEnum /* eClass */ ) { return 0; }
160cdf0e10cSrcweir 
161cdf0e10cSrcweir private:
162cdf0e10cSrcweir 
163bac862b1SArmin Le Grand     B2DPolyPolygonList		maClipList;
164cdf0e10cSrcweir 
165cdf0e10cSrcweir     SVGExport();
166cdf0e10cSrcweir };
167cdf0e10cSrcweir 
168cdf0e10cSrcweir // ------------------------
169cdf0e10cSrcweir // - ObjectRepresentation -
170cdf0e10cSrcweir // ------------------------
171cdf0e10cSrcweir 
172cdf0e10cSrcweir class ObjectRepresentation
173cdf0e10cSrcweir {
174cdf0e10cSrcweir private:
175cdf0e10cSrcweir 
176cdf0e10cSrcweir 	Reference< XInterface >			mxObject;
177cdf0e10cSrcweir 	GDIMetaFile*					mpMtf;
178cdf0e10cSrcweir 
179cdf0e10cSrcweir public:
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 									ObjectRepresentation();
182cdf0e10cSrcweir 									ObjectRepresentation( const Reference< XInterface >& rxIf,
183cdf0e10cSrcweir 														  const GDIMetaFile& rMtf );
184cdf0e10cSrcweir 									ObjectRepresentation( const ObjectRepresentation& rPresentation );
185cdf0e10cSrcweir 									~ObjectRepresentation();
186cdf0e10cSrcweir 
187cdf0e10cSrcweir 	ObjectRepresentation&			operator=( const ObjectRepresentation& rPresentation );
188cdf0e10cSrcweir 	sal_Bool							operator==( const ObjectRepresentation& rPresentation ) const;
189cdf0e10cSrcweir 
GetObject() const190cdf0e10cSrcweir 	const Reference< XInterface >&	GetObject() const { return mxObject; }
HasRepresentation() const191cdf0e10cSrcweir 	sal_Bool						HasRepresentation() const { return mpMtf != NULL; }
GetRepresentation() const192cdf0e10cSrcweir 	const GDIMetaFile&				GetRepresentation() const { return *mpMtf; }
193cdf0e10cSrcweir };
194cdf0e10cSrcweir 
195cdf0e10cSrcweir // ---------------------------
196cdf0e10cSrcweir // - HashReferenceXInterface -
197cdf0e10cSrcweir // ---------------------------
198cdf0e10cSrcweir 
199cdf0e10cSrcweir struct HashReferenceXInterface
200cdf0e10cSrcweir {
operator ()HashReferenceXInterface201cdf0e10cSrcweir     size_t operator()( const Reference< XInterface >& rxIf ) const
202cdf0e10cSrcweir     {
203cdf0e10cSrcweir         return reinterpret_cast< size_t >( rxIf.get() );
204cdf0e10cSrcweir     }
205cdf0e10cSrcweir };
206cdf0e10cSrcweir 
207cdf0e10cSrcweir // -------------
208cdf0e10cSrcweir // - SVGFilter -
209cdf0e10cSrcweir // -------------
210cdf0e10cSrcweir 
211cdf0e10cSrcweir class SVGFontExport;
212cdf0e10cSrcweir class SVGActionWriter;
213cdf0e10cSrcweir class EditFieldInfo;
214cdf0e10cSrcweir 
215cdf0e10cSrcweir #ifdef SOLAR_JAVA
216cdf0e10cSrcweir class SVGFilter : public cppu::WeakImplHelper5 < XFilter,
217cdf0e10cSrcweir 											     XImporter,
218cdf0e10cSrcweir                                                  XExporter,
219cdf0e10cSrcweir 												 XInitialization,
220cdf0e10cSrcweir 												 XServiceInfo >
221cdf0e10cSrcweir #else // !SOLAR_JAVA
222cdf0e10cSrcweir class SVGFilter : public cppu::WeakImplHelper4 < XFilter,
223cdf0e10cSrcweir                                                  XExporter,
224cdf0e10cSrcweir                                                  XInitialization,
225cdf0e10cSrcweir                                                  XServiceInfo >
226cdf0e10cSrcweir #endif
227cdf0e10cSrcweir {
228cdf0e10cSrcweir 	typedef ::std::hash_map< Reference< XInterface >, ObjectRepresentation, HashReferenceXInterface > ObjectMap;
229cdf0e10cSrcweir     typedef ::std::vector< ::rtl::OUString > UniqueIdVector;
230cdf0e10cSrcweir 
231cdf0e10cSrcweir private:
232cdf0e10cSrcweir 
233cdf0e10cSrcweir 	Reference< XMultiServiceFactory >	mxMSF;
234cdf0e10cSrcweir     SvXMLElementExport*					mpSVGDoc;
235cdf0e10cSrcweir     SVGExport*							mpSVGExport;
236cdf0e10cSrcweir 	SVGFontExport*						mpSVGFontExport;
237cdf0e10cSrcweir     SVGActionWriter*					mpSVGWriter;
238cdf0e10cSrcweir 	SdrPage*							mpDefaultSdrPage;
239cdf0e10cSrcweir 	SdrModel*							mpSdrModel;
240cdf0e10cSrcweir     sal_Bool							mbPresentation;
241cdf0e10cSrcweir 
242cdf0e10cSrcweir 	ObjectMap*							mpObjects;
243cdf0e10cSrcweir 	Reference< XComponent >				mxSrcDoc;
244cdf0e10cSrcweir #ifdef SOLAR_JAVA
245cdf0e10cSrcweir 	Reference< XComponent >				mxDstDoc;
246cdf0e10cSrcweir #endif
247cdf0e10cSrcweir 	Reference< XDrawPage > 				mxDefaultPage;
248cdf0e10cSrcweir     Sequence< PropertyValue >           maFilterData;
249*33f678ddSArmin Le Grand 
250*33f678ddSArmin Le Grand     // #124608# explicit ShapeSelection for export when export of the selection is wanted
251*33f678ddSArmin Le Grand     Reference< XShapes >                maShapeSelection;
252*33f678ddSArmin Le Grand     bool                                mbExportSelection;
253*33f678ddSArmin Le Grand 
254cdf0e10cSrcweir     UniqueIdVector                      maUniqueIdVector;
255cdf0e10cSrcweir     sal_Int32                           mnMasterSlideId;
256cdf0e10cSrcweir     sal_Int32                           mnSlideId;
257cdf0e10cSrcweir     sal_Int32                           mnDrawingGroupId;
258cdf0e10cSrcweir     sal_Int32                           mnDrawingId;
259cdf0e10cSrcweir 	Link								maOldFieldHdl;
260cdf0e10cSrcweir 
261cdf0e10cSrcweir #ifdef SOLAR_JAVA
262cdf0e10cSrcweir     sal_Bool                            implImport( const Sequence< PropertyValue >& rDescriptor ) throw (RuntimeException);
263cdf0e10cSrcweir #endif
264cdf0e10cSrcweir 
265cdf0e10cSrcweir     sal_Bool                            implExport( const Sequence< PropertyValue >& rDescriptor ) throw (RuntimeException);
266cdf0e10cSrcweir     Reference< XDocumentHandler >       implCreateExportDocumentHandler( const Reference< XOutputStream >& rxOStm );
267cdf0e10cSrcweir 
268cdf0e10cSrcweir 	sal_Bool							implGenerateMetaData( const Reference< XDrawPages >& rxMasterPages,
269cdf0e10cSrcweir 															  const Reference< XDrawPages >& rxDrawPages );
270cdf0e10cSrcweir     sal_Bool                            implGenerateScript( const Reference< XDrawPages >& rxMasterPages,
271cdf0e10cSrcweir                                                             const Reference< XDrawPages >& rxDrawPages );
272cdf0e10cSrcweir 
273cdf0e10cSrcweir 	sal_Bool							implExportDocument( const Reference< XDrawPages >& rxMasterPages,
274cdf0e10cSrcweir 															const Reference< XDrawPages >& rxDrawPages,
275cdf0e10cSrcweir                                                             sal_Int32 nPageToExport );
276cdf0e10cSrcweir 
277cdf0e10cSrcweir 	sal_Bool							implExportPages( const Reference< XDrawPages >& rxPages,
278cdf0e10cSrcweir                                                          sal_Int32 nFirstPage, sal_Int32 nLastPage,
279cdf0e10cSrcweir 									                     sal_Int32 nVisiblePage, sal_Bool bMaster );
280cdf0e10cSrcweir 
281cdf0e10cSrcweir 	sal_Bool							implExportShapes( const Reference< XShapes >& rxShapes );
282cdf0e10cSrcweir     sal_Bool                            implExportShape( const Reference< XShape >& rxShape );
283cdf0e10cSrcweir 
284cdf0e10cSrcweir 	sal_Bool							implCreateObjects( const Reference< XDrawPages >& rxMasterPages,
285cdf0e10cSrcweir 														   const Reference< XDrawPages >& rxDrawPages,
286cdf0e10cSrcweir                                                            sal_Int32 nPageToExport );
287cdf0e10cSrcweir 	sal_Bool							implCreateObjectsFromShapes( const Reference< XShapes >& rxShapes );
288cdf0e10cSrcweir     sal_Bool                            implCreateObjectsFromShape( const Reference< XShape >& rxShape );
289cdf0e10cSrcweir 	sal_Bool							implCreateObjectsFromBackground( const Reference< XDrawPage >& rxMasterPage );
290cdf0e10cSrcweir 
291cdf0e10cSrcweir 	::rtl::OUString						implGetDescriptionFromShape( const Reference< XShape >& rxShape );
292cdf0e10cSrcweir 	::rtl::OUString						implGetValidIDFromInterface( const Reference< XInterface >& rxIf, sal_Bool bUnique = sal_False );
293cdf0e10cSrcweir 
294cdf0e10cSrcweir     sal_Bool                                implHasText( const GDIMetaFile& rMtf ) const;
295cdf0e10cSrcweir 
296cdf0e10cSrcweir 										DECL_LINK( CalcFieldHdl, EditFieldInfo* );
297cdf0e10cSrcweir 
298cdf0e10cSrcweir protected:
299cdf0e10cSrcweir 
300cdf0e10cSrcweir 	// XFilter
301cdf0e10cSrcweir     virtual sal_Bool SAL_CALL filter( const Sequence< PropertyValue >& rDescriptor ) throw(RuntimeException);
302cdf0e10cSrcweir     virtual void SAL_CALL cancel( ) throw (RuntimeException);
303cdf0e10cSrcweir 
304cdf0e10cSrcweir #ifdef SOLAR_JAVA
305cdf0e10cSrcweir 	// XImporter
306cdf0e10cSrcweir     virtual void SAL_CALL setTargetDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
307cdf0e10cSrcweir #endif
308cdf0e10cSrcweir 
309cdf0e10cSrcweir 	// XExporter
310cdf0e10cSrcweir     virtual void SAL_CALL setSourceDocument( const Reference< XComponent >& xDoc ) throw(IllegalArgumentException, RuntimeException);
311cdf0e10cSrcweir 
312cdf0e10cSrcweir 	// XInitialization
313cdf0e10cSrcweir     virtual void SAL_CALL initialize( const Sequence< Any >& aArguments ) throw(Exception, RuntimeException);
314cdf0e10cSrcweir 
315cdf0e10cSrcweir 	// XServiceInfo
316cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getImplementationName() throw(RuntimeException);
317cdf0e10cSrcweir     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(RuntimeException);
318cdf0e10cSrcweir     virtual Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()  throw(RuntimeException);
319cdf0e10cSrcweir 
320cdf0e10cSrcweir public:
321cdf0e10cSrcweir 
322cdf0e10cSrcweir 				SVGFilter( const Reference< XMultiServiceFactory > &rxMSF );
323cdf0e10cSrcweir 	virtual		~SVGFilter();
324cdf0e10cSrcweir };
325cdf0e10cSrcweir 
326cdf0e10cSrcweir // -----------------------------------------------------------------------------
327cdf0e10cSrcweir 
328cdf0e10cSrcweir ::rtl::OUString SVGFilter_getImplementationName ()
329cdf0e10cSrcweir 	throw ( ::com::sun::star::uno::RuntimeException );
330cdf0e10cSrcweir 
331cdf0e10cSrcweir // -----------------------------------------------------------------------------
332cdf0e10cSrcweir 
333cdf0e10cSrcweir sal_Bool SAL_CALL SVGFilter_supportsService( const ::rtl::OUString& ServiceName )
334cdf0e10cSrcweir 	throw ( ::com::sun::star::uno::RuntimeException );
335cdf0e10cSrcweir 
336cdf0e10cSrcweir // -----------------------------------------------------------------------------
337cdf0e10cSrcweir 
338cdf0e10cSrcweir ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL SVGFilter_getSupportedServiceNames(  )
339cdf0e10cSrcweir 	throw ( ::com::sun::star::uno::RuntimeException );
340cdf0e10cSrcweir 
341cdf0e10cSrcweir // -----------------------------------------------------------------------------
342cdf0e10cSrcweir 
343cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
344cdf0e10cSrcweir SAL_CALL SVGFilter_createInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & rSMgr)
345cdf0e10cSrcweir 	throw ( ::com::sun::star::uno::Exception );
346cdf0e10cSrcweir 
347cdf0e10cSrcweir #endif // SVGFILTER_HXX
348