summaryrefslogtreecommitdiff
path: root/oox/source/shape/ShapeContextHandler.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/shape/ShapeContextHandler.hxx')
-rw-r--r--oox/source/shape/ShapeContextHandler.hxx191
1 files changed, 191 insertions, 0 deletions
diff --git a/oox/source/shape/ShapeContextHandler.hxx b/oox/source/shape/ShapeContextHandler.hxx
new file mode 100644
index 000000000000..c9cf67283c37
--- /dev/null
+++ b/oox/source/shape/ShapeContextHandler.hxx
@@ -0,0 +1,191 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef OOX_SHAPE_SHAPE_CONTEXT_HANDLER_HXX
+#define OOX_SHAPE_SHAPE_CONTEXT_HANDLER_HXX
+
+#include <boost/shared_ptr.hpp>
+#include "sal/config.h"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "cppuhelper/implbase1.hxx"
+#include "com/sun/star/xml/sax/XFastShapeContextHandler.hpp"
+#include "oox/drawingml/graphicshapecontext.hxx"
+#include "oox/drawingml/shape.hxx"
+#include "oox/drawingml/theme.hxx"
+#include "oox/core/fragmenthandler.hxx"
+#include "oox/core/xmlfilterbase.hxx"
+#include "ShapeFilterBase.hxx"
+
+namespace css = ::com::sun::star;
+
+namespace oox { namespace shape {
+
+// component and service helper functions:
+::rtl::OUString SAL_CALL ShapeContextHandler_getImplementationName();
+
+css::uno::Sequence< ::rtl::OUString > SAL_CALL
+ShapeContextHandler_getSupportedServiceNames();
+
+css::uno::Reference< css::uno::XInterface > SAL_CALL
+ShapeContextHandler_create
+( css::uno::Reference< css::uno::XComponentContext > const & context );
+
+css::uno::Reference< css::uno::XInterface > SAL_CALL
+ShapeContextHandler_createInstance
+( const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr)
+throw( css::uno::Exception );
+
+class ShapeFragmentHandler : public core::FragmentHandler
+{
+public:
+ typedef boost::shared_ptr<ShapeFragmentHandler> Pointer_t;
+
+ explicit ShapeFragmentHandler(core::XmlFilterBase& rFilter,
+ const ::rtl::OUString& rFragmentPath )
+ : FragmentHandler(rFilter, rFragmentPath)
+ {
+ }
+};
+
+class ShapeContextHandler:
+ public ::cppu::WeakImplHelper1<
+ css::xml::sax::XFastShapeContextHandler>
+{
+public:
+ explicit ShapeContextHandler
+ (css::uno::Reference< css::uno::XComponentContext > const & context);
+
+ virtual ~ShapeContextHandler();
+
+ // ::com::sun::star::lang::XServiceInfo:
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL supportsService
+ (const ::rtl::OUString & ServiceName) throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException);
+
+ // ::com::sun::star::xml::sax::XFastContextHandler:
+ virtual void SAL_CALL startFastElement
+ (::sal_Int32 Element,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList > & Attribs)
+ throw (css::uno::RuntimeException, css::xml::sax::SAXException);
+
+ virtual void SAL_CALL startUnknownElement
+ (const ::rtl::OUString & Namespace,
+ const ::rtl::OUString & Name,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList > & Attribs)
+ throw (css::uno::RuntimeException, css::xml::sax::SAXException);
+
+ virtual void SAL_CALL endFastElement(::sal_Int32 Element)
+ throw (css::uno::RuntimeException, css::xml::sax::SAXException);
+
+ virtual void SAL_CALL endUnknownElement
+ (const ::rtl::OUString & Namespace,
+ const ::rtl::OUString & Name)
+ throw (css::uno::RuntimeException, css::xml::sax::SAXException);
+
+ virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL
+ createFastChildContext
+ (::sal_Int32 Element,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList > & Attribs)
+ throw (css::uno::RuntimeException, css::xml::sax::SAXException);
+
+ virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL
+ createUnknownChildContext
+ (const ::rtl::OUString & Namespace,
+ const ::rtl::OUString & Name,
+ const css::uno::Reference< css::xml::sax::XFastAttributeList > & Attribs)
+ throw (css::uno::RuntimeException, css::xml::sax::SAXException);
+
+ virtual void SAL_CALL characters(const ::rtl::OUString & aChars)
+ throw (css::uno::RuntimeException, css::xml::sax::SAXException);
+
+ // ::com::sun::star::xml::sax::XFastShapeContextHandler:
+ virtual css::uno::Reference< css::drawing::XShape > SAL_CALL getShape()
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::drawing::XDrawPage > SAL_CALL getDrawPage()
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL setDrawPage
+ (const css::uno::Reference< css::drawing::XDrawPage > & the_value)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::frame::XModel > SAL_CALL getModel()
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL setModel
+ (const css::uno::Reference< css::frame::XModel > & the_value)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::io::XInputStream > SAL_CALL
+ getInputStream() throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL setInputStream
+ (const css::uno::Reference< css::io::XInputStream > & the_value)
+ throw (css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL getRelationFragmentPath()
+ throw (css::uno::RuntimeException);
+ virtual void SAL_CALL setRelationFragmentPath
+ (const ::rtl::OUString & the_value)
+ throw (css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getStartToken() throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setStartToken( ::sal_Int32 _starttoken ) throw (::com::sun::star::uno::RuntimeException);
+
+private:
+ ShapeContextHandler(ShapeContextHandler &); // not defined
+ void operator =(ShapeContextHandler &); // not defined
+
+ ::sal_uInt32 mnStartToken;
+
+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
+ drawingml::ShapePtr mpShape;
+ ::boost::shared_ptr< vml::Drawing > mpDrawing;
+
+ typedef boost::shared_ptr<drawingml::GraphicShapeContext>
+ GraphicShapeContextPtr;
+ css::uno::Reference<XFastContextHandler> mxDrawingFragmentHandler;
+ css::uno::Reference<XFastContextHandler> mxGraphicShapeContext;
+
+ core::XmlFilterRef mxFilterBase;
+ drawingml::ThemePtr mpThemePtr;
+ css::uno::Reference<css::drawing::XDrawPage> mxDrawPage;
+ css::uno::Reference<css::io::XInputStream> mxInputStream;
+ ::rtl::OUString msRelationFragmentPath;
+
+ css::uno::Reference<XFastContextHandler> getGraphicShapeContext(::sal_Int32 Element);
+ css::uno::Reference<XFastContextHandler> getDrawingShapeContext();
+ css::uno::Reference<XFastContextHandler> getContextHandler();
+};
+
+}}
+
+#endif // OOX_SHAPE_SHAPE_CONTEXT_HANDLER_HXX