/************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: GraphicImport.hxx,v $ * * $Revision: 1.6 $ * * last change: $Author: obo $ $Date: 2008-01-10 11:39:08 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 by Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, CA 94303, USA * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License version 2.1, as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * ************************************************************************/ #ifndef INCLUDED_GRAPHICIMPORT_HXX #define INCLUDED_GRAPHICIMPORT_HXX //#ifndef INCLUDED_WRITERFILTERDLLAPI_H //#include //#endif #include //#include namespace com{ namespace sun { namespace star { namespace uno{ class XComponentContext; } namespace lang { class XMultiServiceFactory; } namespace text { class XTextContent; } namespace drawing { class XShape; } }}} namespace writerfilter { namespace dmapper { using namespace std; struct GraphicImport_Impl; enum GraphicImportType { IMPORT_AS_GRAPHIC, IMPORT_AS_SHAPE, IMPORT_AS_DETECTED_INLINE, IMPORT_AS_DETECTED_ANCHOR }; class WRITERFILTER_DLLPRIVATE GraphicImport : public Properties, public Table ,public BinaryObj, public Stream { GraphicImport_Impl* m_pImpl; ::com::sun::star::uno::Reference < ::com::sun::star::uno::XComponentContext > m_xComponentContext; ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xTextFactory; ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > m_xGraphicObject; ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape> m_xShape; void ProcessShapeOptions(Value & val); public: explicit GraphicImport(::com::sun::star::uno::Reference < ::com::sun::star::uno::XComponentContext > xComponentContext, ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xTextFactory, GraphicImportType eGraphicImportType); virtual ~GraphicImport(); // Properties virtual void attribute(Id Name, Value & val); virtual void sprm(Sprm & sprm); // Table virtual void entry(int pos, writerfilter::Reference::Pointer_t ref); // BinaryObj virtual void data(const sal_uInt8* buf, size_t len, writerfilter::Reference::Pointer_t ref); // Stream virtual void startSectionGroup(); virtual void endSectionGroup(); virtual void startParagraphGroup(); virtual void endParagraphGroup(); virtual void startCharacterGroup(); virtual void endCharacterGroup(); virtual void text(const sal_uInt8 * data, size_t len); virtual void utext(const sal_uInt8 * data, size_t len); virtual void props(writerfilter::Reference::Pointer_t ref); virtual void table(Id name, writerfilter::Reference::Pointer_t ref); virtual void substream(Id name, ::writerfilter::Reference::Pointer_t ref); virtual void info(const string & info); ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextContent > GetGraphicObject(); bool IsGraphic() const; }; typedef boost::shared_ptr< GraphicImport > GraphicImportPtr; }} #endif //