[Libreoffice-commits] .: 6 commits - patches/dev300

Thorsten Behrens thorsten at kemper.freedesktop.org
Tue Nov 22 03:23:08 PST 2011


 patches/dev300/apply                                    |   21 
 patches/dev300/dlopen-global-symbols.diff               |  110 
 patches/dev300/framework-extra-job-config.diff          |  334 
 patches/dev300/oox-smartart-import.diff                 | 6340 ----------------
 patches/dev300/optional-outplace-ole.diff               | 2452 ------
 patches/dev300/sd-toolbar-advanced-shapes.diff          |   38 
 patches/dev300/svx-honour-customshape-capabilities.diff |   23 
 patches/dev300/svx-shapes-default-word-wrap-enable.diff |   20 
 patches/dev300/vcl-permit-global-shortcuts.diff         |   23 
 9 files changed, 9361 deletions(-)

New commits:
commit b373963d0fc030f7d31a7c6788af24f299fdf3a2
Author: Thorsten Behrens <tbehrens at novell.com>
Date:   Tue Nov 22 12:21:19 2011 +0100

    oox-smartart-import got committed to master, removing.

diff --git a/patches/dev300/apply b/patches/dev300/apply
index 1914688..3a154e7 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -1064,7 +1064,6 @@ oox-xlsx-import-fix-connector-shape.diff, n#549331, Fong
 # oox-import-zoom-setting-with-tab-color.diff, n#494603, janneke
 
 oox-drawingml-fix-apply-shape-reference-crash.diff, n#593611, rodo
-oox-smartart-import.diff, thorsten
 
 [ PostgreSQL ]
 sdbc-postgresql.diff
diff --git a/patches/dev300/oox-smartart-import.diff b/patches/dev300/oox-smartart-import.diff
deleted file mode 100644
index a47144d..0000000
--- a/patches/dev300/oox-smartart-import.diff
+++ /dev/null
@@ -1,6340 +0,0 @@
-OOXML smartart import (somewhat)
-
-From: Thorsten Behrens <thb at openoffice.org>
-
-
----
-
- oox/inc/oox/core/filterbase.hxx                    |    5 
- oox/inc/oox/core/xmlfilterbase.hxx                 |   29 +
- oox/inc/oox/drawingml/chart/converterbase.hxx      |    2 
- oox/inc/oox/drawingml/customshapeproperties.hxx    |    2 
- oox/inc/oox/drawingml/diagram/datamodelcontext.hxx |   54 --
- oox/inc/oox/drawingml/diagram/diagram.hxx          |  242 +------
- .../drawingml/diagram/diagramfragmenthandler.hxx   |  100 ---
- .../oox/drawingml/diagram/diagramlayoutatoms.hxx   |  209 ------
- oox/inc/oox/drawingml/drawingmltypes.hxx           |    3 
- oox/inc/oox/drawingml/graphicshapecontext.hxx      |    5 
- oox/inc/oox/drawingml/scene3dcontext.hxx           |   56 ++
- oox/inc/oox/drawingml/shape.hxx                    |   34 +
- oox/inc/oox/drawingml/shape3dproperties.hxx        |  135 ++++
- oox/inc/oox/drawingml/theme.hxx                    |    8 
- oox/inc/oox/ppt/dgmimport.hxx                      |   71 ++
- oox/inc/oox/ppt/dgmlayout.hxx                      |   72 ++
- oox/inc/oox/ppt/pptimport.hxx                      |    2 
- oox/inc/oox/xls/excelfilter.hxx                    |    2 
- oox/inc/oox/xls/workbookhelper.hxx                 |    2 
- oox/source/core/facreg.cxx                         |    6 
- oox/source/core/filterbase.cxx                     |    9 
- oox/source/core/xmlfilterbase.cxx                  |  164 ++++-
- oox/source/drawingml/chart/chartspaceconverter.cxx |    5 
- oox/source/drawingml/chart/converterbase.cxx       |    4 
- oox/source/drawingml/chart/datasourceconverter.cxx |   13 
- oox/source/drawingml/clrscheme.cxx                 |    2 
- oox/source/drawingml/color.cxx                     |    1 
- oox/source/drawingml/customshapegeometry.cxx       |    6 
- .../drawingml/diagram/constraintlistcontext.cxx    |  102 +++
- .../drawingml/diagram/constraintlistcontext.hxx    |   54 ++
- oox/source/drawingml/diagram/datamodelcontext.cxx  |  232 +++++--
- oox/source/drawingml/diagram/datamodelcontext.hxx  |   57 ++
- oox/source/drawingml/diagram/diagram.cxx           |  498 ++++++++++++--
- oox/source/drawingml/diagram/diagram.hxx           |  320 +++++++++
- .../drawingml/diagram/diagramdefinitioncontext.cxx |   13 
- .../drawingml/diagram/diagramdefinitioncontext.hxx |    2 
- .../drawingml/diagram/diagramfragmenthandler.cxx   |  183 +++--
- .../drawingml/diagram/diagramfragmenthandler.hxx   |  117 +++
- .../drawingml/diagram/diagramlayoutatoms.cxx       |  689 +++++++++++++++++++-
- .../drawingml/diagram/diagramlayoutatoms.hxx       |  318 +++++++++
- oox/source/drawingml/diagram/layoutnodecontext.cxx |  146 +++-
- oox/source/drawingml/diagram/layoutnodecontext.hxx |    3 
- oox/source/drawingml/diagram/makefile.mk           |    1 
- oox/source/drawingml/drawingmltypes.cxx            |    4 
- oox/source/drawingml/fillproperties.cxx            |    3 
- oox/source/drawingml/graphicshapecontext.cxx       |   58 --
- oox/source/drawingml/lineproperties.cxx            |    5 
- oox/source/drawingml/makefile.mk                   |    1 
- oox/source/drawingml/scene3dcontext.cxx            |  189 +++++
- oox/source/drawingml/shape.cxx                     |   42 +
- oox/source/drawingml/shape3dproperties.cxx         |   67 ++
- oox/source/drawingml/shapepropertiescontext.cxx    |    6 
- oox/source/drawingml/textparagraph.cxx             |    9 
- oox/source/drawingml/textparagraphproperties.cxx   |    1 
- oox/source/helper/storagebase.cxx                  |   20 -
- oox/source/ppt/dgmimport.cxx                       |  135 ++++
- oox/source/ppt/dgmlayout.cxx                       |  193 ++++++
- oox/source/ppt/makefile.mk                         |    2 
- oox/source/ppt/pptimport.cxx                       |    4 
- oox/source/ppt/presentationfragmenthandler.cxx     |   13 
- oox/source/ppt/slidepersist.cxx                    |   11 
- oox/source/shape/ShapeFilterBase.cxx               |    4 
- oox/source/shape/ShapeFilterBase.hxx               |    2 
- oox/source/xls/excelfilter.cxx                     |    2 
- oox/source/xls/workbookhelper.cxx                  |    4 
- sc/source/filter/excel/xestream.cxx                |    5 
- sc/source/filter/inc/xestream.hxx                  |    2 
- sw/source/filter/ww8/docxexportfilter.hxx          |    2 
- 77 files changed, 5401 insertions(+), 992 deletions(-)
- delete mode 100644 oox/inc/oox/drawingml/diagram/datamodelcontext.hxx
- delete mode 100644 oox/inc/oox/drawingml/diagram/diagramfragmenthandler.hxx
- delete mode 100644 oox/inc/oox/drawingml/diagram/diagramlayoutatoms.hxx
- create mode 100644 oox/inc/oox/drawingml/scene3dcontext.hxx
- create mode 100644 oox/inc/oox/drawingml/shape3dproperties.hxx
- create mode 100644 oox/inc/oox/ppt/dgmimport.hxx
- create mode 100644 oox/inc/oox/ppt/dgmlayout.hxx
- create mode 100644 oox/source/drawingml/diagram/constraintlistcontext.cxx
- create mode 100644 oox/source/drawingml/diagram/constraintlistcontext.hxx
- create mode 100644 oox/source/drawingml/diagram/datamodelcontext.hxx
- create mode 100644 oox/source/drawingml/diagram/diagram.hxx
- create mode 100644 oox/source/drawingml/diagram/diagramfragmenthandler.hxx
- create mode 100644 oox/source/drawingml/diagram/diagramlayoutatoms.hxx
- create mode 100644 oox/source/drawingml/scene3dcontext.cxx
- create mode 100644 oox/source/drawingml/shape3dproperties.cxx
- create mode 100644 oox/source/ppt/dgmimport.cxx
- create mode 100644 oox/source/ppt/dgmlayout.cxx
-
-
-diff --git oox/inc/oox/core/filterbase.hxx oox/inc/oox/core/filterbase.hxx
-index d54c534..3dc372a 100644
---- oox/inc/oox/core/filterbase.hxx
-+++ oox/inc/oox/core/filterbase.hxx
-@@ -50,6 +50,7 @@ namespace com { namespace sun { namespace star {
-     namespace task { class XStatusIndicator; }
-     namespace task { class XInteractionHandler; }
-     namespace frame { class XFrame; }
-+    namespace drawing { class XShape; }
-     namespace io { class XInputStream; }
-     namespace io { class XOutputStream; }
-     namespace io { class XStream; }
-@@ -133,6 +134,10 @@ public:
-     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >&
-                         getTargetFrame() const;
- 
-+    /// Returns the parent shape to load into (if any)
-+    const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >&
-+                        getParentShape() const;
-+
-     /** Returns the status indicator (may be null). */
-     const ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator >&
-                         getStatusIndicator() const;
-diff --git oox/inc/oox/core/xmlfilterbase.hxx oox/inc/oox/core/xmlfilterbase.hxx
-index 0d747ef..8659ec1 100644
---- oox/inc/oox/core/xmlfilterbase.hxx
-+++ oox/inc/oox/core/xmlfilterbase.hxx
-@@ -42,8 +42,10 @@
- namespace com { namespace sun { namespace star {
-     namespace container { class XNameContainer; }
-     namespace document { class XDocumentProperties; }
-+    namespace xml { namespace dom { class XDocument; } }
-     namespace xml { namespace sax { class XLocator; } }
-     namespace xml { namespace sax { class XFastDocumentHandler; } }
-+    namespace xml { namespace sax { class XFastSAXSerializable; } }
- } } }
- 
- namespace oox { namespace drawingml { class Theme; } }
-@@ -89,7 +91,7 @@ public:
- 
-     /** Has to be implemented by each filter, returns a filter-specific chart
-         converter object, that should be global per imported document. */
--    virtual ::oox::drawingml::chart::ChartConverter& getChartConverter() = 0;
-+    virtual ::oox::drawingml::chart::ChartConverter* getChartConverter() = 0;
- 
-     /** Has to be implemented by each filter to return the table style list. */
-     virtual const ::oox::drawingml::table::TableStyleListPtr getTableStyles() = 0;
-@@ -107,6 +109,31 @@ public:
-      */
-     bool                importFragment( const ::rtl::Reference< FragmentHandler >& rxHandler );
- 
-+    /** Imports a fragment into an xml::dom::XDocument.
-+
-+        @param rFragmentPath path to fragment
-+
-+        @return a non-empty reference to the XDocument, if the
-+        fragment could be imported.
-+     */
-+    ::com::sun::star::uno::Reference<
-+       ::com::sun::star::xml::dom::XDocument> importFragment( const ::rtl::OUString& rFragmentPath );
-+
-+    /** Imports a fragment from an xml::dom::XDocument using the
-+        passed fragment handler
-+
-+        @param rxHandler fragment handler; path to fragment is
-+        ignored, input source is the rxSerializer
-+
-+        @param rxSerializer usually retrieved from a
-+        xml::dom::XDocument, will get serialized into rxHandler
-+
-+        @return true, if the fragment could be imported.
-+     */
-+    bool importFragment( const ::rtl::Reference< FragmentHandler >& rxHandler,
-+                         const ::com::sun::star::uno::Reference< 
-+                               ::com::sun::star::xml::sax::XFastSAXSerializable >& rxSerializer );
-+
-     /** Imports the relations fragment associated with the specified fragment.
- 
-         @return  The relations collection of the specified fragment.
-diff --git oox/inc/oox/drawingml/chart/converterbase.hxx oox/inc/oox/drawingml/chart/converterbase.hxx
-index 5c26d73..c1c8986 100644
---- oox/inc/oox/drawingml/chart/converterbase.hxx
-+++ oox/inc/oox/drawingml/chart/converterbase.hxx
-@@ -82,7 +82,7 @@ protected:
-     /** Returns the filter object of the imported/exported document. */
-     ::oox::core::XmlFilterBase& getFilter() const;
-     /** Returns the chart converter. */
--    ChartConverter&     getChartConverter() const;
-+    ChartConverter*     getChartConverter() const;
-     /** Returns the API chart document model. */
-     ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XChartDocument >
-                         getChartDocument() const;
-diff --git oox/inc/oox/drawingml/customshapeproperties.hxx oox/inc/oox/drawingml/customshapeproperties.hxx
-index 66c4c38..6b63352 100644
---- oox/inc/oox/drawingml/customshapeproperties.hxx
-+++ oox/inc/oox/drawingml/customshapeproperties.hxx
-@@ -124,6 +124,7 @@ public:
-             const ::com::sun::star::uno::Reference < ::com::sun::star::beans::XPropertySet > & xPropSet,
-                         const ::com::sun::star::uno::Reference < ::com::sun::star::drawing::XShape > & xShape) const;
- 
-+    const rtl::OUString& getShapePresetType() const { return maShapePresetType; }
-     void setShapePresetType( const rtl::OUString& rShapePresetType ){ maShapePresetType = rShapePresetType; };
- 
-     std::vector< CustomShapeGuide >&	getAdjustmentGuideList(){ return maAdjustmentGuideList; };
-diff --git oox/inc/oox/drawingml/diagram/datamodelcontext.hxx oox/inc/oox/drawingml/diagram/datamodelcontext.hxx
-deleted file mode 100644
-index 6437482..0000000
---- oox/inc/oox/drawingml/diagram/datamodelcontext.hxx
-+++ /dev/null
-@@ -1,57 +0,0 @@
--/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
--/*************************************************************************
-- *
-- * 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_DRAWINGML_SHAPECONTEXT_HXX
--#define OOX_DRAWINGML_SHAPECONTEXT_HXX
--
--#include <com/sun/star/drawing/XShapes.hpp>
--
--#include "oox/core/contexthandler.hxx"
--#include "oox/drawingml/diagram/diagram.hxx"
--
--namespace oox { namespace drawingml {
--
--// CT_DataModel
--class DataModelContext : public ::oox::core::ContextHandler
--{
--public:
--    DataModelContext( ::oox::core::ContextHandler& rParent, const DiagramDataPtr & pDataModelPtr );
--    virtual ~DataModelContext();
--
--    virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--
--protected:
--    DiagramDataPtr mpDataModel;
--};
--
--} }
--
--#endif  //  OOX_DRAWINGML_SHAPEGROUPCONTEXT_HXX
--
--/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git oox/inc/oox/drawingml/diagram/diagram.hxx oox/inc/oox/drawingml/diagram/diagram.hxx
-index ef60545..e81a216 100644
---- oox/inc/oox/drawingml/diagram/diagram.hxx
-+++ oox/inc/oox/drawingml/diagram/diagram.hxx
-@@ -25,232 +25,40 @@
-  *
-  ************************************************************************/
- 
--
--
- #ifndef OOX_DRAWINGML_DIAGRAM_HXX
- #define OOX_DRAWINGML_DIAGRAM_HXX
- 
--#include <vector>
--#include <boost/shared_ptr.hpp>
--#include <boost/enable_shared_from_this.hpp>
-+#include <rtl/ustring.hxx>
- #include "oox/drawingml/shape.hxx"
--#include "oox/drawingml/diagram/diagramlayoutatoms.hxx"
--
--namespace oox { namespace drawingml {
--
--namespace dgm {
-+#include "oox/core/xmlfilterbase.hxx"
- 
--/** A Connection
-- */
--class Connection
--{
--public:
--    Connection()
--        : mnType( 0 )
--        , mnSourceOrder( 0 )
--        , mnDestOrder( 0 )
--        {
--        }
-+#include <com/sun/star/xml/dom/XDocument.hpp>
- 
--    void dump();
--
--    sal_Int32 mnType;
--    ::rtl::OUString msModelId;
--    ::rtl::OUString msSourceId;
--    ::rtl::OUString msDestId;
--    ::rtl::OUString msParTransId;
--    ::rtl::OUString msPresId;
--    ::rtl::OUString msSibTransId;
--    sal_Int32 mnSourceOrder;
--    sal_Int32 mnDestOrder;
--
--};
--
--typedef boost::shared_ptr< Connection > ConnectionPtr;
--typedef std::vector< ConnectionPtr > Connections;
-+namespace oox { namespace drawingml {
- 
--class Point;
-+/** load diagram data, and put resulting graphic into shape
- 
--typedef boost::shared_ptr< Point > PointPtr;
--typedef std::vector< PointPtr >      Points;
--/** A point
-+    This method loads the diagram data fragments from the given paths,
-+    generate and layout the shapes, and push it as children into the
-+    referenced shape.
-  */
--class Point
--{
--public:
--    Point();
--    ShapePtr & getShape( )
--        { return mpShape; }
--
--    void setCnxId( const ::rtl::OUString & sCnxId )
--        { msCnxId = sCnxId; }
--    void setModelId( const ::rtl::OUString & sModelId );
--    const ::rtl::OUString & getModelId() const
--        { return msModelId; }
--    void setType( const sal_Int32 nType )
--        { mnType = nType; }
--    sal_Int32 getType() const
--        { return mnType; }
--
--    void dump();
--private:
--    ShapePtr        mpShape;
--    ::rtl::OUString msCnxId;
--    ::rtl::OUString msModelId;
--    sal_Int32       mnType;
--};
--
--
--class PointsTree;
--typedef boost::shared_ptr< PointsTree > PointsTreePtr;
--
--/** a points tree node */
--class PointsTree
--    : public boost::enable_shared_from_this< PointsTree >
--{
--public:
--    typedef std::vector< PointsTreePtr > Childrens;
--    PointsTree()
--        {};
--    PointsTree( const PointPtr & pPoint )
--        : mpNode( pPoint )
--        { }
--    bool addChild( const PointsTreePtr & pChild );
--    const PointPtr & getPoint() const
--        { return mpNode; }
--    PointsTreePtr getParent() const;
--    Childrens::const_iterator beginChild() const
--        { return maChildrens.begin(); }
--    Childrens::const_iterator endChild() const
--        { return maChildrens.end(); }
--private:
--    PointPtr                           mpNode;
--    boost::weak_ptr< PointsTree >      mpParent;
--    Childrens       maChildrens;
--};
--
--}
--
--////////////////////
--
--class DiagramData
--{
--public:
--
--    DiagramData();
--    FillPropertiesPtr & getFillProperties()
--        { return mpFillProperties; }
--    dgm::Connections & getConnections()
--        { return maConnections; }
--    dgm::Points & getPoints()
--        { return maPoints; }
--    void dump();
--private:
--    FillPropertiesPtr   mpFillProperties;
--    dgm::Connections    maConnections;
--    dgm::Points         maPoints;
--};
--
--typedef boost::shared_ptr< DiagramData > DiagramDataPtr;
--
--
--
--////////////////////
--
--class DiagramLayout
--{
--public:
--    void setDefStyle( const ::rtl::OUString & sDefStyle )
--        { msDefStyle = sDefStyle; }
--    void setMinVer( const ::rtl::OUString & sMinVer )
--        { msMinVer = sMinVer; }
--    void setUniqueId( const ::rtl::OUString & sUniqueId )
--        { msUniqueId = sUniqueId; }
--    const ::rtl::OUString & getUniqueId()
--        { return msUniqueId; }
--    void setTitle( const ::rtl::OUString & sTitle )
--        { msTitle = sTitle; }
--    void setDesc( const ::rtl::OUString & sDesc )
--        { msDesc = sDesc; }
--
--    LayoutNodePtr & getNode()
--        { return mpNode; }
--    const LayoutNodePtr & getNode() const
--        { return mpNode; }
--    DiagramDataPtr & getSampData()
--        { return mpSampData; }
--    const DiagramDataPtr & getSampData() const
--        { return mpSampData; }
--    DiagramDataPtr & getStyleData()
--        { return mpStyleData; }
--    const DiagramDataPtr & getStyleData() const
--        { return mpStyleData; }
--
--    void layout( const dgm::PointsTreePtr & pTree, const com::sun::star::awt::Point & pt );
--private:
--    ::rtl::OUString msDefStyle;
--    ::rtl::OUString msMinVer;
--    ::rtl::OUString msUniqueId;
--
--    ::rtl::OUString msTitle;
--    ::rtl::OUString msDesc;
--    LayoutNodePtr  mpNode;
--    DiagramDataPtr mpSampData;
--    DiagramDataPtr mpStyleData;
--    // TODO
--    // catLst
--    // clrData
--};
--
--typedef boost::shared_ptr< DiagramLayout > DiagramLayoutPtr;
--
--///////////////////////
--
--class DiagramQStyles
--{
--
--};
--
--typedef boost::shared_ptr< DiagramQStyles > DiagramQStylesPtr;
--
--///////////////////////
--
--class DiagramColors
--{
--
--};
--
--typedef boost::shared_ptr< DiagramColors > DiagramColorsPtr;
--
--///////////////////////
--
--class Diagram
--{
--public:
--    void setData( const DiagramDataPtr & );
--    void setLayout( const DiagramLayoutPtr & );
--    DiagramLayoutPtr getLayout() const
--        {
--            return mpLayout;
--        }
--    void setQStyles( const DiagramQStylesPtr & );
--    void setColors( const DiagramColorsPtr & );
--
--    void addTo( const ShapePtr & pShape );
--    ::rtl::OUString getLayoutId() const;
--private:
--    void build( );
--    DiagramDataPtr    mpData;
--    DiagramLayoutPtr  mpLayout;
--    DiagramQStylesPtr mpQStyles;
--    DiagramColorsPtr  mpColors;
--    std::map< ::rtl::OUString, ShapePtr > maShapeMap;
--    dgm::PointsTreePtr  mpRoot;
--};
--
--
--typedef boost::shared_ptr< Diagram > DiagramPtr;
--
-+void loadDiagram( const ShapePtr& pShape,
-+                  core::XmlFilterBase& rFilter,
-+                  const ::rtl::OUString& rDataModelPath,
-+                  const ::rtl::OUString& rLayoutPath,
-+                  const ::rtl::OUString& rQStylePath,
-+                  const ::rtl::OUString& rColorStylePath );
-+
-+void loadDiagram( const ShapePtr& pShape,
-+                  core::XmlFilterBase& rFilter,
-+                  const ::com::sun::star::uno::Reference<
-+                     ::com::sun::star::xml::dom::XDocument>& rXDataModelDom,
-+                  const ::com::sun::star::uno::Reference<
-+                     ::com::sun::star::xml::dom::XDocument>& rXLayoutDom,
-+                  const ::com::sun::star::uno::Reference<
-+                     ::com::sun::star::xml::dom::XDocument>& rXQStyleDom,
-+                  const ::com::sun::star::uno::Reference<
-+                     ::com::sun::star::xml::dom::XDocument>& rXColorStyleDom );
- } }
- 
- #endif
-diff --git oox/inc/oox/drawingml/diagram/diagramfragmenthandler.hxx oox/inc/oox/drawingml/diagram/diagramfragmenthandler.hxx
-deleted file mode 100644
-index 5a42a46..0000000
---- oox/inc/oox/drawingml/diagram/diagramfragmenthandler.hxx
-+++ /dev/null
-@@ -1,103 +0,0 @@
--/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
--/*************************************************************************
-- *
-- * 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_DRAWINGML_DIAGRAMFRAGMENTHANDLER
--#define OOX_DRAWINGML_DIAGRAMFRAGMENTHANDLER
--
--#include "oox/core/fragmenthandler.hxx"
--#include "oox/drawingml/diagram/diagram.hxx"
--
--namespace oox { namespace drawingml {
--
--
--class DiagramDataFragmentHandler : public ::oox::core::FragmentHandler
--{
--public:
--    DiagramDataFragmentHandler( oox::core::XmlFilterBase& rFilter, const ::rtl::OUString& rFragmentPath, const DiagramDataPtr pDataPtr ) throw();
--    virtual ~DiagramDataFragmentHandler() throw();
--
--    virtual void SAL_CALL endDocument() throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--    virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--
--private:
--
--    DiagramDataPtr	mpDataPtr;
--};
--
--
--
--class DiagramLayoutFragmentHandler : public ::oox::core::FragmentHandler
--{
--public:
--    DiagramLayoutFragmentHandler( oox::core::XmlFilterBase& rFilter, const ::rtl::OUString& rFragmentPath, const DiagramLayoutPtr pDataPtr ) throw();
--    virtual ~DiagramLayoutFragmentHandler() throw();
--
--    virtual void SAL_CALL endDocument() throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--    virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--
--private:
--
--    DiagramLayoutPtr	mpDataPtr;
--};
--
--class DiagramQStylesFragmentHandler : public ::oox::core::FragmentHandler
--{
--public:
--    DiagramQStylesFragmentHandler( oox::core::XmlFilterBase& rFilter, const ::rtl::OUString& rFragmentPath, const DiagramQStylesPtr pDataPtr ) throw();
--    virtual ~DiagramQStylesFragmentHandler() throw();
--
--    virtual void SAL_CALL endDocument() throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--    virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--
--private:
--
--    DiagramQStylesPtr	mpDataPtr;
--};
--
--
--class DiagramColorsFragmentHandler : public ::oox::core::FragmentHandler
--{
--public:
--    DiagramColorsFragmentHandler( ::oox::core::XmlFilterBase& rFilter, const ::rtl::OUString& rFragmentPath, const DiagramColorsPtr pDataPtr ) throw();
--    virtual ~DiagramColorsFragmentHandler() throw();
--
--    virtual void SAL_CALL endDocument() throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--    virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
--
--private:
--
--    DiagramColorsPtr	mpDataPtr;
--};
--
--} }
--
--
--#endif
--
--/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git oox/inc/oox/drawingml/diagram/diagramlayoutatoms.hxx oox/inc/oox/drawingml/diagram/diagramlayoutatoms.hxx
-deleted file mode 100644
-index ae25085..0000000
---- oox/inc/oox/drawingml/diagram/diagramlayoutatoms.hxx
-+++ /dev/null
-@@ -1,212 +0,0 @@
--/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
--/*************************************************************************
-- *
-- * 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_DRAWINGML_DIAGRAMLAYOUTATOMS_HXX
--#define OOX_DRAWINGML_DIAGRAMLAYOUTATOMS_HXX
--
--#include <map>
--#include <string>
--
--#include <boost/shared_ptr.hpp>
--#include <boost/array.hpp>
--
--#include <com/sun/star/uno/Any.hxx>
--#include <com/sun/star/xml/sax/XFastAttributeList.hpp>
--
--#include "oox/drawingml/shape.hxx"
--
--
--namespace oox { namespace drawingml {
--
--
--// AG_IteratorAttributes
--class IteratorAttr
--{
--public:
--    IteratorAttr();
--
--    // not sure this belong here, but wth
--    void loadFromXAttr( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttributes );
--
--private:
--    sal_Int32 mnAxis;
--    sal_Int32 mnCnt;
--    sal_Bool  mbHideLastTrans;
--    sal_Int32 mnPtType;
--    sal_Int32 mnSt;
--    sal_Int32 mnStep;
--};
--
--class ConditionAttr
--{
--public:
--    ConditionAttr();
--
--    // not sure this belong here, but wth
--    void loadFromXAttr( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttributes );
--
--private:
--    sal_Int32 mnFunc;
--    sal_Int32 mnArg;
--    sal_Int32 mnOp;
--    ::rtl::OUString msVal;
--};
--
--class LayoutAtom;
--
--typedef boost::shared_ptr< LayoutAtom > LayoutAtomPtr;
--
--/** abstract Atom for the layout */
--class LayoutAtom
--{
--public:
--    virtual ~LayoutAtom()
--        {}
--    // TODO change signature to the proper one
--    virtual void processAtom() = 0;
--    void setName( const ::rtl::OUString & sName )
--        { msName = sName; }
--    void addChild( const LayoutAtomPtr & pNode )
--        { mpChildNodes.push_back( pNode ); }
--
--    // dump for debug
--    virtual void dump(int level = 0);
--protected:
--    std::vector< LayoutAtomPtr > mpChildNodes;
--    ::rtl::OUString msName;
--};
--
--class AlgAtom
--    : public LayoutAtom
--{
--public:
--    virtual ~AlgAtom()
--        {}
--    typedef std::map< std::string, ::com::sun::star::uno::Any > ParamMap;
--
--    virtual void processAtom()
--        {}
--private:
--    ParamMap mParams;
--};
--
--
--class ForEachAtom
--    : public LayoutAtom
--{
--public:
--    virtual ~ForEachAtom()
--        {}
--    
--    IteratorAttr & iterator()
--        { return maIter; }
--    virtual void processAtom();
--private:
--    IteratorAttr maIter;
--};
--
--typedef boost::shared_ptr< ForEachAtom > ForEachAtomPtr;
--
--
--class ConditionAtom
--    : public LayoutAtom
--{
--public:
--    ConditionAtom( bool bElse = false )
--        : LayoutAtom( )
--        , mbElse( bElse )
--        {}
--    virtual ~ConditionAtom()
--        {}
--    bool test();
--    virtual void processAtom()
--        {}
--    IteratorAttr & iterator()
--        { return maIter; }
--    ConditionAttr & cond()
--        { return maCond; }
--private:
--    bool          mbElse;
--    IteratorAttr  maIter;
--    ConditionAttr maCond;
--};
--
--typedef boost::shared_ptr< ConditionAtom > ConditionAtomPtr;
--
--
--/** "choose" statements. Atoms will be tested in order. */
--class ChooseAtom
--    : public LayoutAtom
--{
--public:
--    virtual ~ChooseAtom()
--        {}
--    virtual void processAtom();
--};
--
--class LayoutNode
--    : public LayoutAtom
--{
--public:
--    enum {
--        VAR_animLvl = 0,
--        VAR_animOne,
--        VAR_bulletEnabled,
--        VAR_chMax,
--        VAR_chPref,
--        VAR_dir,
--        VAR_hierBranch,
--        VAR_orgChart,
--        VAR_resizeHandles
--    };
--    // we know that the array is of fixed size
--    // the use of Any allow having empty values
--    typedef boost::array< ::com::sun::star::uno::Any, 9 > VarMap;
--
--    virtual ~LayoutNode()
--        {}
--    virtual void processAtom()
--        {}
--    VarMap & variables()
--        { return mVariables; }
--private:
--    VarMap                       mVariables;
--    std::vector< ShapePtr >      mpShapes;
--};
--
--typedef boost::shared_ptr< LayoutNode > LayoutNodePtr;
--
--} }
--
--#endif
--
--/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git oox/inc/oox/drawingml/drawingmltypes.hxx oox/inc/oox/drawingml/drawingmltypes.hxx
-index c513446..b18414f 100644
---- oox/inc/oox/drawingml/drawingmltypes.hxx
-+++ oox/inc/oox/drawingml/drawingmltypes.hxx
-@@ -58,6 +58,9 @@ typedef ::boost::shared_ptr< FillProperties > FillPropertiesPtr;
- struct GraphicProperties;
- typedef ::boost::shared_ptr< GraphicProperties > GraphicPropertiesPtr;
- 
-+struct Shape3DProperties;
-+typedef ::boost::shared_ptr< Shape3DProperties > Shape3DPropertiesPtr;
-+
- struct TextCharacterProperties;
- typedef ::boost::shared_ptr< TextCharacterProperties > TextCharacterPropertiesPtr;
- 
-diff --git oox/inc/oox/drawingml/graphicshapecontext.hxx oox/inc/oox/drawingml/graphicshapecontext.hxx
-index c7239fc..ea49d47 100644
---- oox/inc/oox/drawingml/graphicshapecontext.hxx
-+++ oox/inc/oox/drawingml/graphicshapecontext.hxx
-@@ -30,7 +30,6 @@
- 
- #include "oox/drawingml/shape.hxx"
- #include "oox/drawingml/shapecontext.hxx"
--#include "oox/drawingml/diagram/diagram.hxx"
- 
- namespace oox { namespace vml { struct OleObjectInfo; } }
- 
-@@ -73,6 +72,8 @@ private:
- 
- // ====================================================================
- 
-+class Diagram;
-+
- class DiagramGraphicDataContext
-     : public ShapeContext
- {
-@@ -82,8 +83,6 @@ public:
-     virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
- 
- private:
--    DiagramPtr loadDiagram();
--
-     ::rtl::OUString msDm;
-     ::rtl::OUString msLo;
-     ::rtl::OUString msQs;
-diff --git oox/inc/oox/drawingml/scene3dcontext.hxx oox/inc/oox/drawingml/scene3dcontext.hxx
-new file mode 100644
-index 0000000..c64bbf3
---- /dev/null
-+++ oox/inc/oox/drawingml/scene3dcontext.hxx
-@@ -0,0 +1,56 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: fillpropertiesgroupcontext.hxx,v $
-+ * $Revision: 1.6 $
-+ *
-+ * 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_DRAWINGML_SCENE3DPROPERTIESCONTEXT_HPP
-+#define OOX_DRAWINGML_SCENE3DPROPERTIESCONTEXT_HPP
-+
-+#include "oox/core/contexthandler.hxx"
-+
-+namespace oox { namespace drawingml {
-+
-+struct Shape3DProperties;
-+
-+// ---------------------------------------------------------------------
-+
-+class Scene3DPropertiesContext : public ::oox::core::ContextHandler
-+{
-+public:
-+    Scene3DPropertiesContext( ::oox::core::ContextHandler& rParent, Shape3DProperties& r3DProperties ) throw();
-+
-+    ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs )
-+            throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
-+
-+private:
-+    Shape3DProperties& mr3DProperties;
-+};
-+
-+} }
-+
-+#endif // OOX_DRAWINGML_SCENE3DPROPERTIESCONTEXT_HPP
-diff --git oox/inc/oox/drawingml/shape.hxx oox/inc/oox/drawingml/shape.hxx
-index 2780fcd..65380c2 100644
---- oox/inc/oox/drawingml/shape.hxx
-+++ oox/inc/oox/drawingml/shape.hxx
-@@ -32,6 +32,7 @@
- #include "oox/drawingml/drawingmltypes.hxx"
- #include "oox/drawingml/customshapeproperties.hxx"
- #include "oox/drawingml/textliststyle.hxx"
-+#include "oox/drawingml/shape3dproperties.hxx"
- 
- #include <com/sun/star/frame/XModel.hpp>
- #include <com/sun/star/drawing/XDrawPage.hpp>
-@@ -95,7 +96,8 @@ class Shape
- {
- public:
- 
--    Shape( const sal_Char* pServiceType = NULL );
-+    explicit Shape( const sal_Char* pServiceType = NULL );
-+    explicit Shape( const ShapePtr& pSourceShape );
-     virtual ~Shape();
- 
-     rtl::OUString&                  getServiceName(){ return msServiceName; }
-@@ -114,13 +116,20 @@ public:
- 
-     CustomShapePropertiesPtr        getCustomShapeProperties(){ return mpCustomShapePropertiesPtr; }
- 
-+    Shape3DProperties&              get3DProperties() { return *mp3DPropertiesPtr; }
-+    const Shape3DProperties&        get3DProperties() const { return *mp3DPropertiesPtr; }
-+
-     table::TablePropertiesPtr		getTableProperties();
- 
-     void                              setChildPosition( com::sun::star::awt::Point nPosition ){ maChPosition = nPosition; }
-     void                              setChildSize( com::sun::star::awt::Size aSize ){ maChSize = aSize; }
- 
--    void                            setPosition( com::sun::star::awt::Point nPosition ){ maPosition = nPosition; }
--    void                            setSize( com::sun::star::awt::Size aSize ){ maSize = aSize; }
-+    void                              setPosition( com::sun::star::awt::Point nPosition ){ maPosition = nPosition; }
-+    const com::sun::star::awt::Point& getPosition() const { return maPosition; }
-+
-+    void                              setSize( com::sun::star::awt::Size aSize ){ maSize = aSize; }
-+    const com::sun::star::awt::Size&  getSize() const { return maSize; }
-+
-     void                            setRotation( sal_Int32 nRotation ) { mnRotation = nRotation; }
-     void                            setFlip( sal_Bool bFlipH, sal_Bool bFlipV ) { mbFlipH = bFlipH; mbFlipV = bFlipV; }
-     void                            addChild( const ShapePtr pChildPtr ) { maChildren.push_back( pChildPtr ); }
-@@ -155,6 +164,13 @@ public:
-                             const ::com::sun::star::awt::Rectangle* pShapeRect = 0,
-                             ShapeIdMap* pShapeMap = 0 );
- 
-+    void                addChildren(
-+                            const ::oox::core::XmlFilterBase& rFilterBase,
-+                            const Theme* pTheme,
-+                            const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShapes >& rxShapes,
-+                            const ::com::sun::star::awt::Rectangle* pShapeRect = 0,
-+                            ShapeIdMap* pShapeMap = 0 );
-+
-     void				setXShape( const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& rXShape )
-                             { mxShape = rXShape; };
-     const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > &
-@@ -193,6 +204,7 @@ protected:
-     GraphicPropertiesPtr        mpGraphicPropertiesPtr;
-     CustomShapePropertiesPtr    mpCustomShapePropertiesPtr;
-     table::TablePropertiesPtr	mpTablePropertiesPtr;
-+    Shape3DPropertiesPtr        mp3DPropertiesPtr;
-     PropertyMap                 maShapeProperties;
-     PropertyMap                 maDefaultShapeProperties;
-     TextListStylePtr            mpMasterTextListStyle;
-@@ -216,7 +228,11 @@ private:
-     sal_Bool						mbHidden;
- };
- 
--::rtl::OUString GetShapeType( sal_Int32 nType );
-+// ---------------------------------------------------------------------
-+
-+/** Get custom shape preset string from xml token id
-+ */
-+::rtl::OUString GetShapePresetType( sal_Int32 nType );
- 
- } }
- 
-diff --git oox/inc/oox/drawingml/shape3dproperties.hxx oox/inc/oox/drawingml/shape3dproperties.hxx
-new file mode 100644
-index 0000000..2fe82aa
---- /dev/null
-+++ oox/inc/oox/drawingml/shape3dproperties.hxx
-@@ -0,0 +1,135 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: fillproperties.hxx,v $
-+ * $Revision: 1.7 $
-+ *
-+ * 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_DRAWINGML_SHAPE3DPROPERTIES_HXX
-+#define OOX_DRAWINGML_SHAPE3DPROPERTIES_HXX
-+
-+#include <map>
-+#include <com/sun/star/graphic/XGraphic.hpp>
-+#include <com/sun/star/geometry/IntegerRectangle2D.hpp>
-+#include "oox/core/xmlfilterbase.hxx"
-+#include "oox/drawingml/color.hxx"
-+#include "oox/helper/helper.hxx"
-+
-+namespace oox { class PropertyMap; }
-+namespace oox { class PropertySet; }
-+namespace oox { namespace core { class ModelObjectContainer; } }
-+
-+namespace oox {
-+namespace drawingml {
-+
-+// ============================================================================
-+
-+struct Shape3DPropertyNames
-+{
-+    ::rtl::OUString     maFillStyle;
-+    ::rtl::OUString     maFillColor;
-+    ::rtl::OUString     maFillTransparence;
-+    ::rtl::OUString     maFillGradient;
-+    ::rtl::OUString     maFillBitmap;
-+    ::rtl::OUString     maFillBitmapMode;
-+    ::rtl::OUString     maFillBitmapTile;
-+    ::rtl::OUString     maFillBitmapStretch;
-+    ::rtl::OUString     maFillBitmapLogicalSize;
-+    ::rtl::OUString     maFillBitmapSizeX;
-+    ::rtl::OUString     maFillBitmapSizeY;
-+    ::rtl::OUString     maFillBitmapOffsetX;
-+    ::rtl::OUString     maFillBitmapOffsetY;
-+    ::rtl::OUString     maFillBitmapRectanglePoint;
-+    bool                mbNamedFillGradient;
-+    bool                mbNamedFillBitmap;
-+    bool                mbTransformGraphic;
-+
-+    Shape3DPropertyNames();
-+};
-+
-+// ============================================================================
-+
-+struct Shape3DProperties
-+{
-+    typedef ::std::map< double, Color > GradientStopMap;
-+
-+    OptValue< sal_Int32 > moFillType;           /// Fill type (OOXML token).
-+    OptValue< bool >    moRotateWithShape;      /// True = rotate gradient/bitmap with shape.
-+    Color               maFillColor;            /// Solid fill color and transparence.
-+    GradientStopMap     maGradientStops;        /// Gradient stops (colors/transparence).
-+    OptValue< sal_Int32 > moGradientPath;       /// If set, gradient follows rectangle, circle, or shape.
-+    OptValue< sal_Int32 > moShadeAngle;         /// Rotation angle of linear gradients.
-+    OptValue< bool >    moShadeScaled;
-+    OptValue< sal_Int32 > moFlipModeToken;
-+    OptValue< com::sun::star::geometry::IntegerRectangle2D > moFillToRect;
-+    OptValue< com::sun::star::geometry::IntegerRectangle2D > moTileRect;
-+    OptValue< sal_Int32 > moPattPreset;         /// Preset pattern type.
-+    Color               maPattFgColor;          /// Pattern foreground color.
-+    Color               maPattBgColor;          /// Pattern background color.
-+    ::com::sun::star::uno::Reference< ::com::sun::star::graphic::XGraphic > mxGraphic;
-+    Color               maColorChangeFrom;      /// Start color of color transformation.
-+    Color               maColorChangeTo;        /// Destination color of color transformation.
-+    OptValue< sal_Int32 > moBitmapMode;         /// Bitmap tile or stretch.
-+    OptValue< sal_Int32 > moTileX;              /// Width of bitmap tiles.
-+    OptValue< sal_Int32 > moTileY;              /// Height of bitmap tiles.
-+    OptValue< sal_Int32 > moTileSX;
-+    OptValue< sal_Int32 > moTileSY;
-+    OptValue< sal_Int32 > moTileAlign;          /// Anchor point inside bitmap.
-+
-+    static Shape3DPropertyNames DEFAULTNAMES;      /// Default fill property names for shape fill.
-+    static Shape3DPropertyNames DEFAULTPICNAMES;   /// Default fill property names for pictures.
-+
-+    /** Overwrites all members that are explicitly set in rSourceProps. */
-+    void                assignUsed( const Shape3DProperties& rSourceProps );
-+
-+    /** Tries to resolve current settings to a solid color, e.g. returns the
-+        start color of a gradient. */
-+    Color               getBestSolidColor() const;
-+
-+    /** Writes the properties to the passed property map. */
-+    void                pushToPropMap(
-+                            PropertyMap& rPropMap,
-+                            const Shape3DPropertyNames& rPropNames,
-+                            const ::oox::core::XmlFilterBase& rFilter,
-+                            ::oox::core::ModelObjectContainer& rObjContainer,
-+                            sal_Int32 nShapeRotation, sal_Int32 nPhClr ) const;
-+
-+    /** Writes the properties to the passed property set. */
-+    void                pushToPropSet(
-+                            PropertySet& rPropSet,
-+                            const Shape3DPropertyNames& rPropNames,
-+                            const ::oox::core::XmlFilterBase& rFilter,
-+                            ::oox::core::ModelObjectContainer& rObjContainer,
-+                            sal_Int32 nShapeRotation, sal_Int32 nPhClr ) const;
-+};
-+
-+// ============================================================================
-+
-+} // namespace drawingml
-+} // namespace oox
-+
-+#endif
-+
-diff --git oox/inc/oox/drawingml/theme.hxx oox/inc/oox/drawingml/theme.hxx
-index 30a6aa1..903ff1d 100644
---- oox/inc/oox/drawingml/theme.hxx
-+++ oox/inc/oox/drawingml/theme.hxx
-@@ -32,6 +32,7 @@
- #include "oox/drawingml/clrscheme.hxx"
- #include "oox/drawingml/shape.hxx"
- #include "oox/drawingml/textfont.hxx"
-+#include <com/sun/star/xml/dom/XDocument.hpp>
- 
- namespace oox {
- namespace drawingml {
-@@ -94,6 +95,11 @@ public:
-     inline Shape&                   getTxDef() { return maTxDef; }
-     inline const Shape&             getTxDef() const { return maTxDef; }
- 
-+    void                            setFragment( const ::com::sun::star::uno::Reference<
-+                                                    ::com::sun::star::xml::dom::XDocument>& xRef ) { mxFragment=xRef; }
-+    const ::com::sun::star::uno::Reference<
-+        ::com::sun::star::xml::dom::XDocument>& getFragment() const { return mxFragment; }
-+
- private:
-     ::rtl::OUString     maStyleName;
-     ClrScheme           maClrScheme;
-@@ -105,6 +111,8 @@ private:
-     Shape               maSpDef;
-     Shape               maLnDef;
-     Shape               maTxDef;
-+    ::com::sun::star::uno::Reference<
-+        ::com::sun::star::xml::dom::XDocument> mxFragment;
- };
- 
- // ============================================================================
-diff --git oox/inc/oox/ppt/dgmimport.hxx oox/inc/oox/ppt/dgmimport.hxx
-new file mode 100644
-index 0000000..955b1fa
---- /dev/null
-+++ oox/inc/oox/ppt/dgmimport.hxx
-@@ -0,0 +1,71 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: pptimport.hxx,v $
-+ * $Revision: 1.6 $
-+ *
-+ * 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_POWERPOINT_QUICKDIAGRAMMINGIMPORT_HXX
-+#define OOX_POWERPOINT_QUICKDIAGRAMMINGIMPORT_HXX
-+
-+#include "oox/core/xmlfilterbase.hxx"
-+
-+#include <com/sun/star/animations/XAnimationNode.hpp>
-+#include <oox/drawingml/theme.hxx>
-+#include "oox/ppt/presentationfragmenthandler.hxx"
-+#include "oox/ppt/slidepersist.hxx"
-+#include "tokens.hxx"
-+#include <vector>
-+#include <map>
-+
-+namespace oox { namespace ppt {
-+
-+// ---------------------------------------------------------------------
-+
-+class QuickDiagrammingImport : public oox::core::XmlFilterBase
-+{
-+public:
-+
-+    QuickDiagrammingImport( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > & rSMgr  );
-+
-+    // from FilterBase
-+    virtual bool importDocument() throw();
-+    virtual bool exportDocument() throw();
-+
-+    virtual const ::oox::drawingml::Theme* getCurrentTheme() const;
-+    virtual sal_Int32 getSchemeClr( sal_Int32 nColorSchemeToken ) const;
-+    virtual const oox::drawingml::table::TableStyleListPtr getTableStyles();
-+
-+    virtual oox::vml::Drawing* getVmlDrawing();
-+    virtual oox::drawingml::chart::ChartConverter* getChartConverter();
-+
-+private:
-+    virtual ::rtl::OUString implGetImplementationName() const;
-+};
-+
-+} }
-+
-+#endif // OOX_POWERPOINT_QUICKDIAGRAMMINGIMPORT_HXX
-diff --git oox/inc/oox/ppt/dgmlayout.hxx oox/inc/oox/ppt/dgmlayout.hxx
-new file mode 100644
-index 0000000..8e3847b
---- /dev/null
-+++ oox/inc/oox/ppt/dgmlayout.hxx
-@@ -0,0 +1,72 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: pptimport.hxx,v $
-+ * $Revision: 1.6 $
-+ *
-+ * 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_POWERPOINT_QUICKDIAGRAMMINGLAYOUT_HXX
-+#define OOX_POWERPOINT_QUICKDIAGRAMMINGLAYOUT_HXX
-+
-+#include "oox/core/xmlfilterbase.hxx"
-+
-+#include <com/sun/star/animations/XAnimationNode.hpp>
-+#include <oox/drawingml/theme.hxx>
-+#include "oox/ppt/presentationfragmenthandler.hxx"
-+#include "oox/ppt/slidepersist.hxx"
-+#include "tokens.hxx"
-+#include <vector>
-+#include <map>
-+
-+namespace oox { namespace ppt {
-+
-+// ---------------------------------------------------------------------
-+
-+class QuickDiagrammingLayout : public oox::core::XmlFilterBase
-+{
-+public:
-+
-+    QuickDiagrammingLayout( const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > & rSMgr  );
-+
-+    // from FilterBase
-+    virtual bool importDocument() throw();
-+    virtual bool exportDocument() throw();
-+
-+    virtual const ::oox::drawingml::Theme* getCurrentTheme() const;
-+    virtual sal_Int32 getSchemeClr( sal_Int32 nColorSchemeToken ) const;
-+    virtual const oox::drawingml::table::TableStyleListPtr getTableStyles();
-+
-+    virtual ::oox::vml::Drawing* getVmlDrawing();
-+    virtual ::oox::drawingml::chart::ChartConverter* getChartConverter();
-+
-+private:
-+    virtual ::rtl::OUString implGetImplementationName() const;
-+    drawingml::ThemePtr mpThemePtr;
-+};
-+
-+} }
-+
-+#endif // OOX_POWERPOINT_QUICKDIAGRAMMINGLAYOUT_HXX
-diff --git oox/inc/oox/ppt/pptimport.hxx oox/inc/oox/ppt/pptimport.hxx
-index 0ac93dd..dadfa1e 100644
---- oox/inc/oox/ppt/pptimport.hxx
-+++ oox/inc/oox/ppt/pptimport.hxx
-@@ -56,7 +56,7 @@ public:
-     virtual const ::oox::drawingml::Theme* getCurrentTheme() const;
-     virtual ::oox::vml::Drawing* getVmlDrawing();
-     virtual const oox::drawingml::table::TableStyleListPtr getTableStyles();
--    virtual ::oox::drawingml::chart::ChartConverter& getChartConverter();
-+    virtual ::oox::drawingml::chart::ChartConverter* getChartConverter();
- 
-     void													setActualSlidePersist( SlidePersistPtr pActualSlidePersist ){ mpActualSlidePersist = pActualSlidePersist; };
-     std::map< rtl::OUString, oox::drawingml::ThemePtr >&	getThemes(){ return maThemes; };
-diff --git oox/inc/oox/xls/excelfilter.hxx oox/inc/oox/xls/excelfilter.hxx
-index 49a0c85..3f72d7a 100644
---- oox/inc/oox/xls/excelfilter.hxx
-+++ oox/inc/oox/xls/excelfilter.hxx
-@@ -68,7 +68,7 @@ public:
-     virtual const ::oox::drawingml::Theme* getCurrentTheme() const;
-     virtual ::oox::vml::Drawing* getVmlDrawing();
-     virtual const ::oox::drawingml::table::TableStyleListPtr getTableStyles();
--    virtual ::oox::drawingml::chart::ChartConverter& getChartConverter();
-+    virtual ::oox::drawingml::chart::ChartConverter* getChartConverter();
- 
-     virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rDescriptor ) throw( ::com::sun::star::uno::RuntimeException );
- 
-diff --git oox/inc/oox/xls/workbookhelper.hxx oox/inc/oox/xls/workbookhelper.hxx
-index 99857ea..65d89a2 100644
---- oox/inc/oox/xls/workbookhelper.hxx
-+++ oox/inc/oox/xls/workbookhelper.hxx
-@@ -253,7 +253,7 @@ public:
-     /** Returns the converter for string to cell address/range conversion. */
-     AddressConverter&   getAddressConverter() const;
-     /** Returns the chart object converter. */
--    ExcelChartConverter& getChartConverter() const;
-+    ExcelChartConverter* getChartConverter() const;
-     /** Returns the page and print settings converter. */
-     PageSettingsConverter& getPageSettingsConverter() const;
- 
-diff --git oox/source/core/facreg.cxx oox/source/core/facreg.cxx
-index 50a2a54..f6c0427 100644
---- oox/source/core/facreg.cxx
-+++ oox/source/core/facreg.cxx
-@@ -57,6 +57,8 @@ extern uno::Reference< uno::XInterface > SAL_CALL className##_createInstance(
- namespace oox {
-     namespace core { SERVICE( FilterDetect ); }
-     namespace ppt { SERVICE( PowerPointImport ); }
-+    namespace ppt { SERVICE( QuickDiagrammingImport ); }
-+    namespace ppt { SERVICE( QuickDiagrammingLayout ); }
-     namespace xls { SERVICE( BiffDetector ); }
-     namespace xls { SERVICE( ExcelFilter ); }
-     namespace xls { SERVICE( ExcelBiffFilter ); }
-@@ -100,6 +102,8 @@ OOX_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo( void * , void * pRegistryKe
- 
-             WRITEINFO( ::oox::core::FilterDetect );
-             WRITEINFO( ::oox::ppt::PowerPointImport );
-+            WRITEINFO( ::oox::ppt::QuickDiagrammingImport );
-+            WRITEINFO( ::oox::ppt::QuickDiagrammingLayout );
-             WRITEINFO( ::oox::xls::BiffDetector );
-             WRITEINFO( ::oox::xls::ExcelFilter );
-             WRITEINFO( ::oox::xls::ExcelBiffFilter );
-@@ -148,6 +152,8 @@ OOX_DLLPUBLIC void * SAL_CALL component_getFactory( const sal_Char * pImplName,
- 
-         SINGLEFACTORY( ::oox::core::FilterDetect )
-         else SINGLEFACTORY( oox::ppt::PowerPointImport )
-+        else SINGLEFACTORY( oox::ppt::QuickDiagrammingImport )
-+        else SINGLEFACTORY( oox::ppt::QuickDiagrammingLayout )
-         else SINGLEFACTORY( ::oox::xls::BiffDetector )
-         else SINGLEFACTORY( ::oox::xls::ExcelFilter )
-         else SINGLEFACTORY( ::oox::xls::ExcelBiffFilter )
-diff --git oox/source/core/filterbase.cxx oox/source/core/filterbase.cxx
-index 46075bc..09d4764 100644
---- oox/source/core/filterbase.cxx
-+++ oox/source/core/filterbase.cxx
-@@ -31,6 +31,7 @@
- #include <com/sun/star/frame/XModel.hpp>
- #include <com/sun/star/task/XStatusIndicator.hpp>
- #include <com/sun/star/task/XInteractionHandler.hpp>
-+#include <com/sun/star/drawing/XShape.hpp>
- #include <osl/mutex.hxx>
- #include <rtl/instance.hxx>
- #include <rtl/uri.hxx>
-@@ -62,6 +63,7 @@ using ::com::sun::star::io::XInputStream;
- using ::com::sun::star::io::XOutputStream;
- using ::com::sun::star::io::XStream;
- using ::com::sun::star::task::XStatusIndicator;
-+using ::com::sun::star::drawing::XShape;
- using ::com::sun::star::task::XInteractionHandler;
- using ::com::sun::star::graphic::XGraphic;
- using ::com::sun::star::container::XNameAccess;
-@@ -155,6 +157,7 @@ struct FilterBaseImpl
-     Reference< XStream >                mxOutStream;
-     Reference< XStatusIndicator >       mxStatusIndicator;
-     Reference< XInteractionHandler >    mxInteractionHandler;
-+    Reference< XShape >                 mxParentShape;
- 
-     explicit            FilterBaseImpl( const Reference< XMultiServiceFactory >& rxGlobalFactory );
- 
-@@ -266,6 +269,11 @@ const Reference< XFrame >& FilterBase::getTargetFrame() const
-     return mxImpl->mxTargetFrame;
- }
- 
-+const Reference< XShape >& FilterBase::getParentShape() const
-+{
-+    return mxImpl->mxParentShape;
-+}
-+
- const Reference< XStatusIndicator >& FilterBase::getStatusIndicator() const
- {
-     return mxImpl->mxStatusIndicator;
-@@ -560,6 +568,7 @@ void FilterBase::setMediaDescriptor( const Sequence< PropertyValue >& rMediaDesc
-     mxImpl->mxTargetFrame = mxImpl->maMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_FRAME(), Reference< XFrame >() );
-     mxImpl->mxStatusIndicator = mxImpl->maMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_STATUSINDICATOR(), Reference< XStatusIndicator >() );
-     mxImpl->mxInteractionHandler = mxImpl->maMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_INTERACTIONHANDLER(), Reference< XInteractionHandler >() );
-+    mxImpl->mxParentShape = mxImpl->maMediaDesc.getUnpackedValueOrDefault( CREATE_OUSTRING( "ParentShape" ), mxImpl->mxParentShape );
- 
-     // Check for ISO OOXML
-     OUString sFilterName = mxImpl->maMediaDesc.getUnpackedValueOrDefault( CREATE_OUSTRING( "FilterName" ), OUString() );
-diff --git oox/source/core/xmlfilterbase.cxx oox/source/core/xmlfilterbase.cxx
-index 5ee4052..615cc8f 100644
---- oox/source/core/xmlfilterbase.cxx
-+++ oox/source/core/xmlfilterbase.cxx
-@@ -31,10 +31,14 @@
- 
- #include <rtl/strbuf.hxx>
- #include <rtl/ustrbuf.hxx>
-+#include <rtl/instance.hxx>
- #include <com/sun/star/container/XNameContainer.hpp>
- #include <com/sun/star/embed/XRelationshipAccess.hpp>
-+#include <com/sun/star/xml/dom/XDocument.hpp>
-+#include <com/sun/star/xml/dom/XDocumentBuilder.hpp>
- #include <com/sun/star/xml/sax/InputSource.hpp>
- #include <com/sun/star/xml/sax/XFastParser.hpp>
-+#include <com/sun/star/xml/sax/XFastSAXSerializable.hpp>
- #include <com/sun/star/document/XDocumentProperties.hpp>
- #include <comphelper/mediadescriptor.hxx>
- #include <sax/fshelper.hxx>
-@@ -54,6 +58,7 @@ using ::rtl::OStringBuffer;
- using ::rtl::OUString;
- using ::rtl::OUStringBuffer;
- using ::com::sun::star::beans::StringPair;
-+using ::com::sun::star::beans::Pair;
- using ::com::sun::star::uno::Reference;
- using ::com::sun::star::uno::Sequence;
- using ::com::sun::star::uno::Exception;
-@@ -74,11 +79,14 @@ using ::com::sun::star::xml::sax::XFastTokenHandler;
- using ::com::sun::star::xml::sax::XFastDocumentHandler;
- using ::com::sun::star::xml::sax::InputSource;
- using ::com::sun::star::xml::sax::SAXException;
-+using ::com::sun::star::xml::dom::XDocument;
-+using ::com::sun::star::xml::dom::XDocumentBuilder;
- using ::com::sun::star::document::XDocumentProperties;
- using ::com::sun::star::util::DateTime;
- using ::comphelper::MediaDescriptor;
- using ::sax_fastparser::FastSerializerHelper;
- using ::sax_fastparser::FSHelperPtr;
-+using namespace ::com::sun::star;
- 
- 
- #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
-@@ -118,6 +126,8 @@ struct XmlFilterBaseImpl
-     typedef RefMap< OUString, Relations > RelationsMap;
- 
-     Reference< XFastParser > mxFastParser;
-+    Reference< XFastTokenHandler >
-+                        mxTokenHandler;
-     OUString            maBinSuffix;
-     OUString            maVmlSuffix;
-     RelationsMap        maRelationsMap;
-@@ -151,6 +161,66 @@ static Reference< XComponentContext > lcl_getComponentContext(Reference< XMultiS
- 
- // ============================================================================
- 
-+namespace 
-+{ 
-+    struct NamespaceIds: public rtl::StaticWithInit<
-+        Sequence< Pair< OUString, sal_Int32 > >,
-+        NamespaceIds> 
-+    {
-+        Sequence< Pair< OUString, sal_Int32 > > operator()()
-+        {
-+            static const char* const namespaceURIs[] = {
-+                "http://www.w3.org/XML/1998/namespace",
-+                "http://schemas.openxmlformats.org/package/2006/relationships",
-+                "http://schemas.openxmlformats.org/officeDocument/2006/relationships",
-+                "http://schemas.openxmlformats.org/drawingml/2006/main",
-+                "http://schemas.openxmlformats.org/drawingml/2006/diagram",
-+                "http://schemas.openxmlformats.org/drawingml/2006/chart",
-+                "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing",
-+                "urn:schemas-microsoft-com:vml",
-+                "urn:schemas-microsoft-com:office:office",
-+                "urn:schemas-microsoft-com:office:word",
-+                "urn:schemas-microsoft-com:office:excel",
-+                "urn:schemas-microsoft-com:office:powerpoint",
-+                "http://schemas.microsoft.com/office/2006/activeX",
-+                "http://schemas.openxmlformats.org/spreadsheetml/2006/main",
-+                "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing",
-+                "http://schemas.microsoft.com/office/excel/2006/main",
-+                "http://schemas.openxmlformats.org/presentationml/2006/main"
-+            };
-+
-+            static const sal_Int32 namespaceIds[] = {
-+                NMSP_XML,
-+                NMSP_PACKAGE_RELATIONSHIPS,
-+                NMSP_RELATIONSHIPS,
-+                NMSP_DRAWINGML,
-+                NMSP_DIAGRAM,
-+                NMSP_CHART,
-+                NMSP_CDR,
-+                NMSP_VML,
-+                NMSP_OFFICE,
-+                NMSP_VML_DOC,
-+                NMSP_VML_XLS,
-+                NMSP_VML_PPT,
-+                NMSP_AX,
-+                NMSP_XLS,
-+                NMSP_XDR,
-+                NMSP_XM,
-+                NMSP_PPT
-+            };
-+
-+            Sequence< Pair< OUString, sal_Int32 > > aRet(STATIC_ARRAY_SIZE(namespaceIds));
-+            for( sal_Int32 i=0; i<aRet.getLength(); ++i )
-+                aRet[i] = beans::make_Pair(
-+                    ::rtl::OUString::createFromAscii(namespaceURIs[i]),
-+                    namespaceIds[i]);
-+            return aRet;
-+        }
-+    }; 
-+}
-+ 
-+// ============================================================================
-+ 
- XmlFilterBase::XmlFilterBase( const Reference< XMultiServiceFactory >& rxGlobalFactory ) :
-     FilterBase( rxGlobalFactory ),
-     mxImpl( new XmlFilterBaseImpl ),
-@@ -159,32 +228,18 @@ XmlFilterBase::XmlFilterBase( const Reference< XMultiServiceFactory >& rxGlobalF
- {
-     try
-     {
-+        // create the fast tokenhandler
-+        mxImpl->mxTokenHandler.set( new FastTokenHandler );
-+
-         // create the fast parser
-         mxImpl->mxFastParser.set( rxGlobalFactory->createInstance( CREATE_OUSTRING( "com.sun.star.xml.sax.FastParser" ) ), UNO_QUERY_THROW );
--        mxImpl->mxFastParser->setTokenHandler( new FastTokenHandler );
-+        mxImpl->mxFastParser->setTokenHandler( mxImpl->mxTokenHandler );
- 
-         // register XML namespaces
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://www.w3.org/XML/1998/namespace" ), NMSP_XML );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/package/2006/relationships" ), NMSP_PACKAGE_RELATIONSHIPS );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/officeDocument/2006/relationships" ), NMSP_RELATIONSHIPS );
--
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/main" ), NMSP_DRAWINGML );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/diagram" ), NMSP_DIAGRAM );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/chart" ), NMSP_CHART );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/chartDrawing" ), NMSP_CDR );
--
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:vml" ), NMSP_VML );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:office" ), NMSP_OFFICE );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:word" ), NMSP_VML_DOC );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:excel" ), NMSP_VML_XLS );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "urn:schemas-microsoft-com:office:powerpoint" ), NMSP_VML_PPT );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.microsoft.com/office/2006/activeX" ), NMSP_AX );
--
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/spreadsheetml/2006/main"), NMSP_XLS );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" ), NMSP_XDR );
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.microsoft.com/office/excel/2006/main" ), NMSP_XM );
--
--        mxImpl->mxFastParser->registerNamespace( CREATE_OUSTRING( "http://schemas.openxmlformats.org/presentationml/2006/main"), NMSP_PPT );
-+        const Sequence< Pair< OUString, sal_Int32 > > ids=
-+            NamespaceIds::get();
-+        for( sal_Int32 i=0; i<ids.getLength(); ++i )
-+            mxImpl->mxFastParser->registerNamespace( ids[i].First, ids[i].Second );
-     }
-     catch( Exception& )
-     {
-@@ -297,6 +352,66 @@ bool XmlFilterBase::importFragment( const ::rtl::Reference< FragmentHandler >& r
-     return false;
- }
- 
-+Reference<XDocument> XmlFilterBase::importFragment( const ::rtl::OUString& aFragmentPath )
-+{
-+    Reference<XDocument> xRet;
-+
-+    // path to fragment stream valid?
-+    OSL_ENSURE( aFragmentPath.getLength() > 0, "XmlFilterBase::importFragment - empty fragment path" );
-+    if( aFragmentPath.getLength() == 0 )
-+        return xRet;
-+
-+    // try to open the fragment stream (this may fail - do not assert)
-+    Reference< XInputStream > xInStrm = openInputStream( aFragmentPath );
-+    if( !xInStrm.is() )
-+        return xRet;
-+
-+    // binary streams (fragment extension is '.bin') currently not supported
-+    sal_Int32 nBinSuffixPos = aFragmentPath.getLength() - mxImpl->maBinSuffix.getLength();
-+    if( (nBinSuffixPos >= 0) && aFragmentPath.match( mxImpl->maBinSuffix, nBinSuffixPos ) )
-+        return xRet;
-+
-+    // try to import XML stream
-+    try
-+    {
-+        // create the dom parser
-+        Reference<XDocumentBuilder> xDomBuilder( 
-+            getGlobalFactory()->createInstance(
-+                CREATE_OUSTRING( "com.sun.star.xml.dom.DocumentBuilder" ) ), 
-+            UNO_QUERY_THROW );
-+
-+        // create DOM from fragment
-+        xRet = xDomBuilder->parse(xInStrm);
-+    }
-+    catch( Exception& )
-+    {
-+    }
-+
-+    return xRet;
-+}
-+
-+bool XmlFilterBase::importFragment( const ::rtl::Reference< FragmentHandler >& rxHandler,
-+                                    const Reference< xml::sax::XFastSAXSerializable >& rxSerializer )
-+{
-+    Reference< XFastDocumentHandler > xDocHandler( rxHandler.get() );
-+    if( !xDocHandler.is() )
-+        return false;
-+
-+    // try to import XML stream
-+    try
-+    {
-+        rxSerializer->fastSerialize( xDocHandler,
-+                                     mxImpl->mxTokenHandler,
-+                                     uno::Sequence< beans::StringPair >(),
-+                                     NamespaceIds::get() );
-+        return true;
-+    }
-+    catch( Exception& )
-+    {}
-+
-+    return false;
-+}
-+
- RelationsRef XmlFilterBase::importRelations( const OUString& rFragmentPath )
- {
-     // try to find cached relations
-@@ -564,6 +679,11 @@ XmlFilterBase& XmlFilterBase::exportDocumentProperties( Reference< XDocumentProp
-     return *this;
- }
- 
-+::oox::drawingml::chart::ChartConverter* XmlFilterBase::getChartConverter()
-+{
-+    return 0;
-+}
-+
- // protected ------------------------------------------------------------------
- 
- Reference< XInputStream > XmlFilterBase::implGetInputStream( MediaDescriptor& rMediaDesc ) const
-diff --git oox/source/drawingml/chart/chartspaceconverter.cxx oox/source/drawingml/chart/chartspaceconverter.cxx
-index 591c556..bfeb136 100644
---- oox/source/drawingml/chart/chartspaceconverter.cxx
-+++ oox/source/drawingml/chart/chartspaceconverter.cxx
-@@ -70,9 +70,12 @@ ChartSpaceConverter::~ChartSpaceConverter()
- 
- void ChartSpaceConverter::convertFromModel( const Reference< XShapes >& rxExternalPage, const Point& rChartPos )
- {
-+    if( !getChartConverter() )
-+        return;
-+
-     /*  create data provider (virtual function in the ChartConverter class,
-         derived converters may create an external data provider) */
--    getChartConverter().createDataProvider( getChartDocument() );
-+    getChartConverter()->createDataProvider( getChartDocument() );
- 
-     // attach number formatter of container document to data receiver
-     try
-diff --git oox/source/drawingml/chart/converterbase.cxx oox/source/drawingml/chart/converterbase.cxx
-index 0f6b3d5..97cdeb8 100644
---- oox/source/drawingml/chart/converterbase.cxx
-+++ oox/source/drawingml/chart/converterbase.cxx
-@@ -261,9 +261,9 @@ XmlFilterBase& ConverterRoot::getFilter() const
-     return mxData->mrFilter;
- }
- 
--ChartConverter& ConverterRoot::getChartConverter() const
-+ChartConverter* ConverterRoot::getChartConverter() const
- {
--    return mxData->mrConverter;
-+    return &mxData->mrConverter;
- }
- 
- Reference< XChartDocument > ConverterRoot::getChartDocument() const
-diff --git oox/source/drawingml/chart/datasourceconverter.cxx oox/source/drawingml/chart/datasourceconverter.cxx
-index c874720..4c5edb6 100644
---- oox/source/drawingml/chart/datasourceconverter.cxx
-+++ oox/source/drawingml/chart/datasourceconverter.cxx
-@@ -53,12 +53,15 @@ DataSequenceConverter::~DataSequenceConverter()
- Reference< XDataSequence > DataSequenceConverter::createDataSequence( const OUString& rRole )
- {
-     // create data sequence from data source model (virtual call at chart converter)
--    Reference< XDataSequence > xDataSeq = getChartConverter().createDataSequence( getChartDocument()->getDataProvider(), mrModel );
--
--    // set sequence role
--    PropertySet aSeqProp( xDataSeq );
--    aSeqProp.setProperty( PROP_Role, rRole );
-+    Reference< XDataSequence > xDataSeq;
-+    if( getChartConverter() )
-+    {
-+        xDataSeq = getChartConverter()->createDataSequence( getChartDocument()->getDataProvider(), mrModel );
- 
-+        // set sequen   ce role
-+        PropertySet aSeqProp( xDataSeq );
-+        aSeqProp.setProperty( PROP_Role, rRole );
-+    }
-     return xDataSeq;
- }
- 
-diff --git oox/source/drawingml/clrscheme.cxx oox/source/drawingml/clrscheme.cxx
-index b620cd0..b91ae63 100644
---- oox/source/drawingml/clrscheme.cxx
-+++ oox/source/drawingml/clrscheme.cxx
-@@ -25,6 +25,7 @@
-  *
-  ************************************************************************/
- 
-+#include <osl/diagnose.h>
- #include "oox/drawingml/clrscheme.hxx"
- #include "tokens.hxx"
- 
-@@ -61,6 +62,7 @@ ClrScheme::~ClrScheme()
- 
- sal_Bool ClrScheme::getColor( sal_Int32 nSchemeClrToken, sal_Int32& rColor ) const
- {
-+    OSL_ASSERT((nSchemeClrToken & sal_Int32(0xFFFF0000))==0);
-     switch( nSchemeClrToken )
-     {
-         case XML_bg1 : nSchemeClrToken = XML_lt1; break;
-diff --git oox/source/drawingml/color.cxx oox/source/drawingml/color.cxx
-index 964d171..a2d454e 100644
---- oox/source/drawingml/color.cxx
-+++ oox/source/drawingml/color.cxx
-@@ -381,6 +381,7 @@ sal_Int32 Color::getColor( const GraphicHelper& rGraphicHelper, sal_Int32 nPhClr
-     {
-         for( TransformVec::const_iterator aIt = maTransforms.begin(), aEnd = maTransforms.end(); aIt != aEnd; ++aIt )
-         {
-+        OSL_ASSERT((aIt->mnToken & sal_Int32(0xFFFF0000))==0);
-             switch( aIt->mnToken )
-             {
-                 case XML_red:       toCrgb(); lclSetValue( mnC1, aIt->mnValue );    break;
-diff --git oox/source/drawingml/customshapegeometry.cxx oox/source/drawingml/customshapegeometry.cxx
-index 9c1293d..baeb4ac 100644
---- oox/source/drawingml/customshapegeometry.cxx
-+++ oox/source/drawingml/customshapegeometry.cxx
-@@ -1171,8 +1171,9 @@ Path2DListContext::Path2DListContext( ContextHandler& rParent, CustomShapeProper
- 
- // ---------------------------------------------------------------------
- 
--OUString GetShapeType( sal_Int32 nType )
-+OUString GetShapePresetType( sal_Int32 nType )
- {
-+    OSL_ASSERT((nType & sal_Int32(0xFFFF0000))==0);
-     OUString sType;
-      switch( nType )
-     {
-@@ -1800,6 +1801,7 @@ OUString GetShapeType( sal_Int32 nType )
- 
- static OUString GetTextShapeType( sal_Int32 nType )
- {
-+    OSL_ASSERT((nType & sal_Int32(0xFFFF0000))==0);
-     OUString sType;
-     switch( nType )
-     {
-@@ -2030,7 +2032,7 @@ PresetShapeGeometryContext::PresetShapeGeometryContext( ContextHandler& rParent,
-     OUString sShapeType;
-     sal_Int32 nShapeType = xAttribs->getOptionalValueToken( XML_prst, FastToken::DONTKNOW );
-     if ( nShapeType != FastToken::DONTKNOW )
--        sShapeType = GetShapeType( nShapeType );
-+        sShapeType = GetShapePresetType( nShapeType );
-     OSL_ENSURE( sShapeType.getLength(), "oox::drawingml::CustomShapeCustomGeometryContext::CustomShapeCustomGeometryContext(), unknown shape type" );
-     mrCustomShapeProperties.setShapePresetType( sShapeType );
- }
-diff --git oox/source/drawingml/diagram/constraintlistcontext.cxx oox/source/drawingml/diagram/constraintlistcontext.cxx
-new file mode 100644
-index 0000000..0ca24f7
---- /dev/null
-+++ oox/source/drawingml/diagram/constraintlistcontext.cxx
-@@ -0,0 +1,102 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ * $Revision$
-+ *
-+ * 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.
-+ *
-+ ************************************************************************/
-+
-+#include "constraintlistcontext.hxx"
-+#include "oox/helper/attributelist.hxx"
-+#include "oox/core/namespaces.hxx"
-+
-+using namespace ::oox::core;
-+using namespace ::com::sun::star::uno;
-+using namespace ::com::sun::star::xml::sax;
-+using ::rtl::OUString;
-+
-+namespace oox { namespace drawingml {
-+
-+// CT_ConstraintLists
-+ConstraintListContext::ConstraintListContext( ContextHandler& rParent,
-+                                              const Reference< XFastAttributeList >&,
-+                                              const LayoutAtomPtr &pNode )
-+    : ContextHandler( rParent )
-+    , mpNode( pNode )
-+{
-+    OSL_ENSURE( pNode, "Node must NOT be NULL" );
-+}
-+
-+
-+ConstraintListContext::~ConstraintListContext()
-+{
-+}
-+
-+void SAL_CALL ConstraintListContext::endFastElement( ::sal_Int32 )
-+    throw (SAXException, RuntimeException)
-+{
-+}
-+
-+Reference< XFastContextHandler > SAL_CALL
-+ConstraintListContext::createFastChildContext( ::sal_Int32 aElement,
-+                                               const Reference< XFastAttributeList >& xAttribs )
-+    throw (SAXException, RuntimeException)
-+{
-+    Reference< XFastContextHandler > xRet;
-+
-+    OUString aEmptyStr;
-+
-+    switch( aElement )
-+    {
-+    case NMSP_DIAGRAM|XML_constr:
-+    {
-+        ConstraintAtomPtr pNode( new ConstraintAtom() );
-+        mpNode->addChild( pNode );
-+
-+        AttributeList aAttribs( xAttribs );
-+        pNode->setFor( aAttribs.getToken( XML_for, XML_none ) );
-+        pNode->setForName( aAttribs.getString( XML_forName, aEmptyStr ) );
-+        pNode->setPointType( aAttribs.getToken( XML_ptType, XML_none ) );
-+        pNode->setType( aAttribs.getToken( XML_type, XML_none ) );
-+        pNode->setRefFor( aAttribs.getToken( XML_refFor, XML_none ) );
-+        pNode->setRefForName( aAttribs.getString( XML_refForName, aEmptyStr ) );
-+        pNode->setRefType( aAttribs.getToken( XML_refType, XML_none ) );
-+        pNode->setRefPointType( aAttribs.getToken( XML_refPtType, XML_none ) );
-+        pNode->setFactor( aAttribs.getDouble( XML_fact, 1.0 ) );
-+        pNode->setValue( aAttribs.getDouble( XML_val, 0.0 ) );
-+        pNode->setOperator( aAttribs.getToken( XML_op, XML_none ) );
-+        break;
-+    }
-+    default:
-+        break;
-+    }
-+    if( !xRet.is() )
-+        xRet.set(this);
-+
-+    return xRet;
-+}
-+
-+
-+} }
-diff --git oox/source/drawingml/diagram/constraintlistcontext.hxx oox/source/drawingml/diagram/constraintlistcontext.hxx
-new file mode 100644
-index 0000000..5766253
---- /dev/null
-+++ oox/source/drawingml/diagram/constraintlistcontext.hxx
-@@ -0,0 +1,54 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile$
-+ * $Revision$
-+ *
-+ * 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_DRAWINGML_CONSTRAINTLISTCONTEXT_HXX
-+#define OOX_DRAWINGML_CONSTRAINTLISTCONTEXT_HXX
-+
-+#include "oox/core/contexthandler.hxx"
-+#include "diagramlayoutatoms.hxx"
-+#include "diagram.hxx"
-+
-+namespace oox { namespace drawingml {
-+
-+class ConstraintListContext : public ::oox::core::ContextHandler
-+{
-+public:
-+    ConstraintListContext( ContextHandler& rParent, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttributes, const LayoutAtomPtr &pNode );
-+    virtual ~ConstraintListContext();
-+
-+    virtual void SAL_CALL endFastElement( ::sal_Int32 Element ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
-+    virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext( ::sal_Int32 Element, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& Attribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
-+private:
-+    LayoutAtomPtr mpNode;
-+};
-+
-+} }
-+
-+#endif
-diff --git oox/source/drawingml/diagram/datamodelcontext.cxx oox/source/drawingml/diagram/datamodelcontext.cxx
-index 23e5e54..839b021 100644
---- oox/source/drawingml/diagram/datamodelcontext.cxx
-+++ oox/source/drawingml/diagram/datamodelcontext.cxx
-@@ -25,7 +25,7 @@
-  *
-  ************************************************************************/
- 
--#include "oox/drawingml/diagram/datamodelcontext.hxx"
-+#include "datamodelcontext.hxx"
- #include "oox/helper/attributelist.hxx"
- #include "oox/core/namespaces.hxx"
- #include "oox/drawingml/fillpropertiesgroupcontext.hxx"
-@@ -41,40 +41,46 @@ namespace oox { namespace drawingml {
- 
- 
- 
--// CL_Cxn
--class CxnContext
-+// CT_CxnList
-+class CxnListContext
-     : public ContextHandler
- {
- public:
--    CxnContext( ContextHandler& rParent,
--                const Reference< XFastAttributeList >& xAttribs,
--                const dgm::ConnectionPtr & pConnection )
-+    CxnListContext( ContextHandler& rParent,
-+                    dgm::Connections & aConnections )
-         : ContextHandler( rParent )
--        , mpConnection( pConnection )
-+        , mrConnections( aConnections )
-         {
--            sal_Int32 nType = xAttribs->getOptionalValueToken( XML_type, XML_parOf );
--            pConnection->mnType = nType;
--            pConnection->msModelId = xAttribs->getOptionalValue( XML_modelId );
--            pConnection->msSourceId = xAttribs->getOptionalValue( XML_srcId );
--            pConnection->msDestId  = xAttribs->getOptionalValue( XML_destId );
--            pConnection->msPresId  = xAttribs->getOptionalValue( XML_presId );
--            pConnection->msSibTransId  = xAttribs->getOptionalValue( XML_sibTransId );
--            AttributeList attribs( xAttribs );
--            pConnection->mnSourceOrder = attribs.getInteger( XML_srcOrd, 0 );
--            pConnection->mnDestOrder = attribs.getInteger( XML_destOrd, 0 );
-         }
--
-     virtual Reference< XFastContextHandler > SAL_CALL
-     createFastChildContext( sal_Int32 aElementToken,
--                            const Reference< XFastAttributeList >& /*xAttribs*/ )
-+                            const Reference< XFastAttributeList >& xAttribs )
-         throw (SAXException, RuntimeException)
-         {
-             Reference< XFastContextHandler > xRet;
- 
-             switch( aElementToken )
-             {
--            case NMSP_DIAGRAM|XML_extLst:
-+            case NMSP_DIAGRAM|XML_cxn:
-+            {
-+                mrConnections.push_back( dgm::Connection() );
-+                dgm::Connection& rConnection=mrConnections.back();
-+
-+                const sal_Int32 nType = xAttribs->getOptionalValueToken( XML_type, XML_parOf );
-+                rConnection.mnType = nType;
-+                rConnection.msModelId = xAttribs->getOptionalValue( XML_modelId );
-+                rConnection.msSourceId = xAttribs->getOptionalValue( XML_srcId );
-+                rConnection.msDestId  = xAttribs->getOptionalValue( XML_destId );
-+                rConnection.msPresId  = xAttribs->getOptionalValue( XML_presId );
-+                rConnection.msSibTransId  = xAttribs->getOptionalValue( XML_sibTransId );
-+                rConnection.msParTransId  = xAttribs->getOptionalValue( XML_parTransId );
-+                const AttributeList attribs( xAttribs );
-+                rConnection.mnSourceOrder = attribs.getInteger( XML_srcOrd, 0 );
-+                rConnection.mnDestOrder = attribs.getInteger( XML_destOrd, 0 );
-+
-+                // skip CT_extLst
-                 return xRet;
-+            }
-             default:
-                 break;
-             }
-@@ -82,37 +88,136 @@ public:
-                 xRet.set( this );
-             return xRet;
-         }
-+
- private:
--    dgm::ConnectionPtr mpConnection;
-+    dgm::Connections& mrConnections;
- };
- 
- 
--// CT_CxnList
--class CxnListContext
-+// CT_presLayoutVars
-+class PresLayoutVarsContext
-     : public ContextHandler
- {
- public:
--    CxnListContext( ContextHandler& rParent,  dgm::Connections & aConnections )
--        : ContextHandler( rParent )
--        , maConnections( aConnections )
-+    PresLayoutVarsContext( ContextHandler& rParent,
-+                           dgm::Point & rPoint ) :
-+        ContextHandler( rParent ),
-+        mrPoint( rPoint )
-+    {
-+    }
-+    virtual Reference< XFastContextHandler > SAL_CALL
-+    createFastChildContext( sal_Int32 aElementToken,
-+                            const Reference< XFastAttributeList >& xAttribs )
-+        throw (SAXException, RuntimeException)
-         {
-+            Reference< XFastContextHandler > xRet;
-+            AttributeList aAttribs( xAttribs );
-+
-+            switch( aElementToken )
-+            {
-+                // TODO
-+            case NMSP_DIAGRAM|XML_animLvl:
-+            case NMSP_DIAGRAM|XML_animOne:
-+                break;
-+            case NMSP_DIAGRAM|XML_bulletEnabled:
-+                mrPoint.mbBulletEnabled = aAttribs.getBool( XML_val, false );
-+                break;
-+            case NMSP_DIAGRAM|XML_chMax:
-+                mrPoint.mnMaxChildren = aAttribs.getInteger( XML_val, -1 );
-+                break;
-+            case NMSP_DIAGRAM|XML_chPref:
-+                mrPoint.mnPreferredChildren = aAttribs.getInteger( XML_val, -1 );
-+                break;
-+            case NMSP_DIAGRAM|XML_dir:
-+                mrPoint.mnDirection = aAttribs.getToken( XML_val, XML_norm );
-+                break;
-+            case NMSP_DIAGRAM|XML_hierBranch:
-+                mrPoint.mnHierarchyBranch = aAttribs.getToken( XML_val, XML_std );
-+                break;
-+            case NMSP_DIAGRAM|XML_orgChart:
-+                mrPoint.mbOrgChartEnabled = aAttribs.getBool( XML_val, false );
-+                break;
-+            case NMSP_DIAGRAM|XML_resizeHandles:
-+                mrPoint.mnResizeHandles = aAttribs.getToken( XML_val, XML_rel );
-+                break;
-+            default:
-+                break;
-+            }
-+            if( !xRet.is() )
-+                xRet.set( this );
-+            return xRet;
-         }
-+
-+private:
-+    dgm::Point& mrPoint;
-+};
-+
-+
-+// CT_prSet
-+class PropertiesContext
-+    : public ContextHandler
-+{
-+public:
-+    PropertiesContext( ContextHandler& rParent,
-+                       dgm::Point & rPoint,
-+                       const Reference< XFastAttributeList >& xAttribs ) :
-+        ContextHandler( rParent ),
-+        mrPoint( rPoint )
-+    {
-+        OUString aEmptyStr;
-+        AttributeList aAttribs( xAttribs );
-+
-+        mrPoint.msColorTransformCategoryId = aAttribs.getString( XML_csCatId, aEmptyStr );
-+        mrPoint.msColorTransformTypeId = aAttribs.getString( XML_csTypeId, aEmptyStr );
-+        mrPoint.msLayoutCategoryId = aAttribs.getString( XML_loCatId, aEmptyStr );
-+        mrPoint.msLayoutTypeId = aAttribs.getString( XML_loTypeId, aEmptyStr );
-+        mrPoint.msPlaceholderText = aAttribs.getString( XML_phldrT, aEmptyStr );
-+        mrPoint.msPresentationAssociationId = aAttribs.getString( XML_presAssocID, aEmptyStr );
-+        mrPoint.msPresentationLayoutName = aAttribs.getString( XML_presName, aEmptyStr );
-+        mrPoint.msPresentationLayoutStyleLabel = aAttribs.getString( XML_presStyleLbl, aEmptyStr );
-+        mrPoint.msQuickStyleCategoryId = aAttribs.getString( XML_qsCatId, aEmptyStr );
-+        mrPoint.msQuickStyleTypeId = aAttribs.getString( XML_qsTypeId, aEmptyStr );
-+
-+        mrPoint.mnCustomAngle = aAttribs.getInteger( XML_custAng, -1 );
-+        mrPoint.mnPercentageNeighbourWidth = aAttribs.getInteger( XML_custLinFactNeighborX, -1 );
-+        mrPoint.mnPercentageNeighbourHeight = aAttribs.getInteger( XML_custLinFactNeighborY, -1 );
-+        mrPoint.mnPercentageOwnWidth = aAttribs.getInteger( XML_custLinFactX, -1 );
-+        mrPoint.mnPercentageOwnHeight = aAttribs.getInteger( XML_custLinFactY, -1 );
-+        mrPoint.mnIncludeAngleScale = aAttribs.getInteger( XML_custRadScaleInc, -1 );
-+        mrPoint.mnRadiusScale = aAttribs.getInteger( XML_custRadScaleRad, -1 );
-+        mrPoint.mnWidthScale = aAttribs.getInteger( XML_custScaleX, -1 );
-+        mrPoint.mnHeightScale = aAttribs.getInteger( XML_custScaleY, -1 );
-+        mrPoint.mnWidthOverride = aAttribs.getInteger( XML_custSzX, -1 );
-+        mrPoint.mnHeightOverride = aAttribs.getInteger( XML_custSzY, -1 );
-+        mrPoint.mnLayoutStyleCount = aAttribs.getInteger( XML_presStyleCnt, -1 );
-+        mrPoint.mnLayoutStyleIndex = aAttribs.getInteger( XML_presStyleIdx, -1 );
-+
-+        mrPoint.mbCoherent3DOffset = aAttribs.getBool( XML_coherent3DOff, false );
-+        mrPoint.mbCustomHorizontalFlip = aAttribs.getBool( XML_custFlipHor, false );
-+        mrPoint.mbCustomVerticalFlip = aAttribs.getBool( XML_custFlipVert, false );
-+        mrPoint.mbCustomText = aAttribs.getBool( XML_custT, false );
-+        mrPoint.mbIsPlaceholder = aAttribs.getBool( XML_phldr, false );
-+    }
-     virtual Reference< XFastContextHandler > SAL_CALL
-     createFastChildContext( sal_Int32 aElementToken,
--                            const Reference< XFastAttributeList >& xAttribs )
-+                            const Reference< XFastAttributeList >& )
-         throw (SAXException, RuntimeException)
-         {
-             Reference< XFastContextHandler > xRet;
- 
-             switch( aElementToken )
-             {
--            case NMSP_DIAGRAM|XML_cxn:
-+            case NMSP_DIAGRAM|XML_presLayoutVars:
-             {
--                dgm::ConnectionPtr pConnection( new dgm::Connection() );
--                maConnections.push_back( pConnection );
--                xRet.set( new CxnContext( *this, xAttribs, pConnection ) );
-+                xRet.set( new PresLayoutVarsContext( *this, mrPoint ) );
-                 break;
-             }
-+            case NMSP_DIAGRAM|XML_style:
-+            {
-+                // TODO
-+                // skip CT_shapeStyle
-+                return xRet;
-+            }
-             default:
-                 break;
-             }
-@@ -122,11 +227,10 @@ public:
-         }
- 
- private:
--    dgm::Connections  & maConnections;
-+    dgm::Point& mrPoint;
- };
- 
- 
--
- // CL_Pt
- class PtContext
-     : public ContextHandler
-@@ -134,27 +238,25 @@ class PtContext
- public:
-     PtContext( ContextHandler& rParent,
-                const Reference< XFastAttributeList >& xAttribs,
--               const dgm::PointPtr & pPoint)
--        : ContextHandler( rParent )
--        , mpPoint( pPoint )
--        {
--            mpPoint->setModelId( xAttribs->getOptionalValue( XML_modelId ) );
--            //
--            // the default type is XML_node
--            sal_Int32 nType  = xAttribs->getOptionalValueToken( XML_type, XML_node );
--            mpPoint->setType( nType );
--
--            // ignore the cxnId unless it is this type. See 5.15.3.1.3 in Primer
--            if( ( nType == XML_parTrans ) || ( nType == XML_sibTrans ) )
--            {
--                mpPoint->setCnxId( xAttribs->getOptionalValue( XML_cxnId ) );
--            }
--        }
-+               dgm::Point & rPoint):
-+        ContextHandler( rParent ),
-+        mrPoint( rPoint )
-+    {
-+        mrPoint.msModelId = xAttribs->getOptionalValue( XML_modelId );
-+
-+        // the default type is XML_node
-+        const sal_Int32 nType  = xAttribs->getOptionalValueToken( XML_type, XML_node );
-+        mrPoint.mnType = nType;
-+        
-+        // ignore the cxnId unless it is this type. See 5.15.3.1.3 in Primer    
-+        if( ( nType == XML_parTrans ) || ( nType == XML_sibTrans ) )
-+            mrPoint.msCnxId = xAttribs->getOptionalValue( XML_cxnId );
-+    }
- 
- 
-     virtual Reference< XFastContextHandler > SAL_CALL
-     createFastChildContext( sal_Int32 aElementToken,
--                            const Reference< XFastAttributeList >& /*xAttribs*/ )
-+                            const Reference< XFastAttributeList >& xAttribs )
-         throw (SAXException, RuntimeException)
-         {
-             Reference< XFastContextHandler > xRet;
-@@ -164,18 +266,22 @@ public:
-             case NMSP_DIAGRAM|XML_extLst:
-                 return xRet;
-             case NMSP_DIAGRAM|XML_prSet:
--                // TODO
--                // CT_ElemPropSet
-+                OSL_TRACE( "diagram property set for point");
-+                xRet = new PropertiesContext( *this, mrPoint, xAttribs );
-                 break;
-             case NMSP_DIAGRAM|XML_spPr:
-                 OSL_TRACE( "shape props for point");
--                xRet = new ShapePropertiesContext( *this, *mpPoint->getShape() );
-+                if( !mrPoint.mpShape )
-+                    mrPoint.mpShape.reset( new Shape() );
-+                xRet = new ShapePropertiesContext( *this, *(mrPoint.mpShape) );
-                 break;
-             case NMSP_DIAGRAM|XML_t:
-             {
-                 OSL_TRACE( "shape text body for point");
-                 TextBodyPtr xTextBody( new TextBody );
--                mpPoint->getShape()->setTextBody( xTextBody );
-+                if( !mrPoint.mpShape )
-+                    mrPoint.mpShape.reset( new Shape() );
-+                mrPoint.mpShape->setTextBody( xTextBody );
-                 xRet = new TextBodyContext( *this, *xTextBody );
-                 break;
-             }
-@@ -188,7 +294,7 @@ public:
-         }
- 
- private:
--    dgm::PointPtr mpPoint;
-+    dgm::Point& mrPoint;
- };
- 
- 
-@@ -198,11 +304,10 @@ class PtListContext
-     : public ContextHandler
- {
- public:
--    PtListContext( ContextHandler& rParent,  dgm::Points & aPoints)
--        : ContextHandler( rParent )
--        , maPoints( aPoints )
--        {
--        }
-+    PtListContext( ContextHandler& rParent,  dgm::Points& rPoints) :
-+        ContextHandler( rParent ),
-+        mrPoints( rPoints )
-+    {}
-     virtual Reference< XFastContextHandler > SAL_CALL
-     createFastChildContext( sal_Int32 aElementToken,
-                             const Reference< XFastAttributeList >& xAttribs )
-@@ -215,9 +320,8 @@ public:
-             case NMSP_DIAGRAM|XML_pt:
-             {
-                 // CT_Pt
--                dgm::PointPtr pPoint( new dgm::Point() );
--                maPoints.push_back( pPoint );
--                xRet.set( new PtContext( *this, xAttribs, pPoint ) );
-+                mrPoints.push_back( dgm::Point() );
-+                xRet.set( new PtContext( *this, xAttribs, mrPoints.back() ) );
-                 break;
-             }
-             default:
-@@ -229,7 +333,7 @@ public:
-         }
- 
- private:
--    dgm::Points  & maPoints;
-+    dgm::Points& mrPoints;
- };
- 
- // CT_BackgroundFormatting
-diff --git oox/source/drawingml/diagram/datamodelcontext.hxx oox/source/drawingml/diagram/datamodelcontext.hxx
-new file mode 100644
-index 0000000..7ca50dd
---- /dev/null
-+++ oox/source/drawingml/diagram/datamodelcontext.hxx
-@@ -0,0 +1,57 @@
-+/*************************************************************************
-+ *
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ * 
-+ * Copyright 2008 by Sun Microsystems, Inc.
-+ *
-+ * OpenOffice.org - a multi-platform office productivity suite
-+ *
-+ * $RCSfile: datamodelcontext.hxx,v $
-+ * $Revision: 1.4 $
-+ *
-+ * 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_DRAWINGML_SHAPECONTEXT_HXX
-+#define OOX_DRAWINGML_SHAPECONTEXT_HXX
-+
-+#include <com/sun/star/drawing/XShapes.hpp>
-+
-+#include "oox/core/contexthandler.hxx"
-+#include "diagram.hxx"
-+
-+namespace oox { namespace drawingml {
-+
-+// CT_DataModel
-+class DataModelContext : public ::oox::core::ContextHandler
-+{
-+public:
-+    DataModelContext( ::oox::core::ContextHandler& rParent, const DiagramDataPtr & pDataModelPtr );
-+    virtual ~DataModelContext();
-+

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list