Commits

Anonymous committed 7577414

log load odf

Comments (0)

Files changed (462)

scp2/source/ooo/file_library_ooo.scp

 
 STD_UNO_LIB_FILE( gid_File_Lib_Xcr, xcr)
 STD_UNO_LIB_FILE( gid_File_Lib_Xmx , xmx)
-STD_UNO_LIB_FILE( gid_File_Lib_Xof , xof)
+
+//STD_UNO_LIB_FILE( gid_File_Lib_Xof , xof)
+File gid_File_Lib_Xof
+    Name = LIBNAME(xof);
+    TXT_FILE_BODY;
+    Styles = (PACKED,PATCH,UNO_COMPONENT);
+    Dir = SCP2_OOO_BIN_DIR;
+    RegistryID = gid_Starregistry_Services_Rdb;
+End
+
+STD_UNO_LIB_FILE( gid_File_Lib_Xof_new , xmloff_new)
 
 File gid_File_Lib_Xo
     Name = LIBNAME(xo);

scp2/source/ooo/module_hidden_ooo.scp

 	gid_File_Lib_Xmx,
 	gid_File_Lib_Xo,
 	gid_File_Lib_Xof,
+	gid_File_Lib_Xof_new,
 	gid_File_Lib_Xsltdlg,
 	gid_File_Lib_Xsltfilter,
 	gid_File_Lib_Zip,

xmloff/inc/xmloff2/compare.hxx

+/*************************************************************************
+ *
+ * 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: compare.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 _xmloff_compare_hxx_
+#define _xmloff_compare_hxx_
+
+#include <comphelper/stl_types.hxx>
+#include <com/sun/star/uno/Reference.h>
+
+using namespace com::sun::star;
+//=============================================================
+template< class Interface >
+struct OdfInterfaceCompare
+:public std::binary_function
+<uno::Reference< Interface >, uno::Reference< Interface >,	bool>
+{
+    bool operator()
+    (const uno::Reference< Interface >& lhs, const uno::Reference< Interface >& rhs) const
+    {
+        return lhs.get() < rhs.get();
+    }
+};
+//=============================================================
+
+#endif

xmloff/inc/xmloff2/cpuhelper.hxx

+/*************************************************************************
+ *
+ * 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: cpuhelper.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 _XMLOFF_CPUHELPER_HXX
+#define _XMLOFF_CPUHELPER_HXX
+
+
+#include <omp.h>
+
+extern int DetectNumberOfWorkers();
+
+inline int GetThreadId()
+{
+    return omp_get_thread_num();
+}
+
+#endif
+

xmloff/inc/xmloff2/dllapi.h

+/*************************************************************************
+ *
+ * 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: dllapi.h,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 _XMLOFF_DLLAPI_H
+#define _XMLOFF_DLLAPI_H
+//=============================================================
+#include "sal/config.h"
+#include "sal/types.h"
+
+#if defined XMLOFF_DLLIMPLEMENTATION
+#define XMLOFF_DLLPUBLIC SAL_DLLPUBLIC_EXPORT
+#else
+#define XMLOFF_DLLPUBLIC SAL_DLLPUBLIC_IMPORT
+#endif
+//=============================================================
+#define XMLOFF_INLINE
+//=============================================================
+#ifdef XMLOFF_INLINE
+#define INLINE inline
+#else
+#define INLINE
+#endif
+//=============================================================
+#define LOGFILE_AUTHOR "XML_OFF_PERFORMANCE"
+//=============================================================
+#define NO_COPY_ABLE( CLASS_A ) \
+private: \
+    SAL_DLLPRIVATE CLASS_A(CLASS_A &); \
+    SAL_DLLPRIVATE void operator =(CLASS_A &);
+//=============================================================
+#endif
+

xmloff/inc/xmloff2/enhancedcustomshapetoken.hxx

+/*************************************************************************
+ *
+ * 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: enhancedcustomshapetoken.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 __xmloff_enhancedcustomshapetoken_hxx_
+#define __xmloff_enhancedcustomshapetoken_hxx_
+
+#include <rtl/ustring.hxx>
+
+	enum CustomShapeToken
+	{
+		EAS_type,
+		EAS_name,
+		EAS_mirror_horizontal,
+		EAS_mirror_vertical,
+		EAS_viewBox,
+		EAS_text_rotate_angle,
+		EAS_extrusion_allowed,
+		EAS_text_path_allowed,
+		EAS_concentric_gradient_fill_allowed,
+		EAS_extrusion,
+		EAS_extrusion_brightness,
+		EAS_extrusion_depth,
+		EAS_extrusion_diffusion,
+		EAS_extrusion_number_of_line_segments,
+		EAS_extrusion_light_face,
+		EAS_extrusion_first_light_harsh,
+		EAS_extrusion_second_light_harsh,
+		EAS_extrusion_first_light_level,
+		EAS_extrusion_second_light_level,
+		EAS_extrusion_first_light_direction,
+		EAS_extrusion_second_light_direction,
+		EAS_extrusion_metal,
+		EAS_shade_mode,
+		EAS_extrusion_rotation_angle,
+		EAS_extrusion_rotation_center,
+		EAS_extrusion_shininess,
+		EAS_extrusion_skew,
+		EAS_extrusion_specularity,
+		EAS_projection,
+		EAS_extrusion_viewpoint,
+		EAS_extrusion_origin,
+		EAS_extrusion_color,
+		EAS_enhanced_path,
+		EAS_path_stretchpoint_x,
+		EAS_path_stretchpoint_y,
+		EAS_text_areas,
+		EAS_glue_points,
+		EAS_glue_point_type,
+		EAS_glue_point_leaving_directions,
+		EAS_text_path,
+		EAS_text_path_mode,
+		EAS_text_path_scale,
+		EAS_text_path_same_letter_heights,
+		EAS_modifiers,
+		EAS_equation,
+		EAS_formula,
+		EAS_handle,
+		EAS_handle_mirror_horizontal,
+		EAS_handle_mirror_vertical,
+		EAS_handle_switched,
+		EAS_handle_position,
+		EAS_handle_range_x_minimum,
+		EAS_handle_range_x_maximum,
+		EAS_handle_range_y_minimum,
+		EAS_handle_range_y_maximum,
+		EAS_handle_polar,
+		EAS_handle_radius_range_minimum,
+		EAS_handle_radius_range_maximum,
+
+		EAS_CustomShapeEngine,
+		EAS_CustomShapeData,
+		EAS_Type,
+		EAS_MirroredX,
+		EAS_MirroredY,
+		EAS_ViewBox,
+		EAS_TextRotateAngle,
+		EAS_ExtrusionAllowed,
+		EAS_ConcentricGradientFillAllowed,
+		EAS_TextPathAllowed,
+		EAS_Extrusion,
+		EAS_Equations,
+		EAS_Equation,
+		EAS_Path,
+		EAS_TextPath,
+		EAS_Handles,
+		EAS_Handle,
+		EAS_Brightness,
+		EAS_Depth,
+		EAS_Diffusion,
+		EAS_NumberOfLineSegments,
+		EAS_LightFace,
+		EAS_FirstLightHarsh,
+		EAS_SecondLightHarsh,
+		EAS_FirstLightLevel,
+		EAS_SecondLightLevel,
+		EAS_FirstLightDirection,
+		EAS_SecondLightDirection,
+		EAS_Metal,
+		EAS_ShadeMode,
+		EAS_RotateAngle,
+		EAS_RotationCenter,
+		EAS_Shininess,
+		EAS_Skew,
+		EAS_Specularity,
+		EAS_ProjectionMode,
+		EAS_ViewPoint,
+		EAS_Origin,
+		EAS_Color,
+		EAS_Switched,
+		EAS_Polar,
+		EAS_RangeXMinimum,
+		EAS_RangeXMaximum,
+		EAS_RangeYMinimum,
+		EAS_RangeYMaximum,
+		EAS_RadiusRangeMinimum,
+		EAS_RadiusRangeMaximum,
+		EAS_Coordinates,
+		EAS_Segments,
+		EAS_StretchX,
+		EAS_StretchY,
+		EAS_TextFrames,
+		EAS_GluePoints,
+		EAS_GluePointLeavingDirections,
+		EAS_GluePointType,
+		EAS_TextPathMode,
+		EAS_ScaleX,
+		EAS_SameLetterHeights,
+		EAS_Position,
+		EAS_AdjustmentValues,
+
+		EAS_Last,
+		EAS_NotFound
+	};
+
+	CustomShapeToken GetShapeToken(const rtl::OUString& );
+	rtl::OUString GetShapeToken(const CustomShapeToken& );
+
+#endif
+

xmloff/inc/xmloff2/helper/attributelist.hxx

+/*************************************************************************
+ *
+ * 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: attributelist.hxx,v $
+ * $Revision: 1.5 $
+ *
+ * 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 _HELPER_ATTRIBUTELIST_HXX
+#define _HELPER_ATTRIBUTELIST_HXX
+
+
+#include <cppuhelper/implbase2.hxx>
+#include <com/sun/star/uno/RuntimeException.hpp>
+#include <com/sun/star/util/XCloneable.hpp>
+#include <com/sun/star/xml/sax/XAttributeList.hpp>
+
+namespace helper
+{
+
+using namespace com::sun::star;
+//------------------------------------------------------------
+struct AttributeList_impl;
+
+//FIXME
+class /*SAX_DLLPUBLIC*/ AttributeList :
+	public ::cppu::WeakImplHelper2<
+                xml::sax::XAttributeList,
+                util::XCloneable >
+{
+public:
+	AttributeList();
+	AttributeList( const AttributeList & );
+	virtual ~AttributeList();
+
+	void addAttribute( const ::rtl::OUString &sName ,
+        const ::rtl::OUString &sType , const ::rtl::OUString &sValue );
+	void clear();
+	void removeAttribute( const ::rtl::OUString &sName );
+	void setAttributeList( const uno::Reference<
+            xml::sax::XAttributeList > & );
+
+public:
+    // XAttributeList
+    virtual sal_Int16 SAL_CALL getLength(void)
+        throw(uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getNameByIndex(sal_Int16 i)
+        throw(uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getTypeByIndex(sal_Int16 i)
+        throw(uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getTypeByName(const ::rtl::OUString& aName)
+        throw(uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getValueByIndex(sal_Int16 i)
+        throw(uno::RuntimeException);
+    virtual ::rtl::OUString SAL_CALL getValueByName(const ::rtl::OUString& aName)
+        throw( uno::RuntimeException);
+
+    // XCloneable
+	virtual uno::Reference< XCloneable > SAL_CALL
+        createClone()	throw(uno::RuntimeException);
+
+private:
+	struct AttributeList_impl *m_pImpl;
+};
+//------------------------------------------------------------
+}
+#endif

xmloff/inc/xmloff2/helper/eventattachermanager.hxx

+/*************************************************************************
+ *
+ * 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: eventattachermanager.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 _HELPER_EVENTATTACHERMANAGER_HXX
+#define _HELPER_EVENTATTACHERMANAGER_HXX
+
+#include <xmloff2/dllapi.h>
+#include <xmloff2/compare.hxx>
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/container/XIndexAccess.hpp>
+#include <com/sun/star/script/ScriptEventDescriptor.hpp>
+
+namespace helper
+{
+//=============================================================
+using namespace com::sun::star;
+
+class IEventAttacherManager
+{
+protected:
+//**************************************************************************
+    typedef OdfInterfaceCompare<beans::XPropertySet> Compare;
+
+    DECLARE_STL_MAP
+    (uno::Reference<beans::XPropertySet >, uno::Sequence<script::ScriptEventDescriptor >, Compare, EventContainer);															// class name
+
+    EventContainer	maEvents;
+//**************************************************************************
+
+public:
+	virtual ~IEventAttacherManager(){};
+    virtual sal_Bool collect
+    (const uno::Reference< beans::XPropertySet >& xPropertySet,
+     const uno::Sequence<script::ScriptEventDescriptor >& rDescriptor);
+
+protected:
+    virtual sal_Bool _setEvents
+    (const uno::Reference< container::XIndexAccess >& xContainer);
+};
+//=============================================================
+
+}
+#endif
+

xmloff/inc/xmloff2/helper/formcellbindinghelper.hxx

+/*************************************************************************
+ *
+ * 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: formcellbindinghelper.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 xmloff_helper_formcellbindinghelper_hxx__
+#define xmloff_helper_formcellbindinghelper_hxx__
+
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/table/CellAddress.hpp>
+#include <com/sun/star/table/CellRangeAddress.hpp>
+#include <com/sun/star/form/binding/XValueBinding.hpp>
+#include <com/sun/star/form/binding/XListEntrySource.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/frame/XModel.hpp>
+
+namespace helper
+{
+using namespace com::sun::star;
+//========================================================================
+/** encapsulates functionality related to binding a form control to a spreadsheet cell
+*/
+class FormCellBindingHelper
+{
+protected:
+    uno::Reference<beans::XPropertySet> m_xControlModel;         // the model we work for
+    uno::Reference<sheet::XSpreadsheetDocument > m_xDocument;    // the document where the model lives
+
+public:
+    /** determines whether the given control model lives in a spreadsheet document
+        <p>If this method returns <FALSE/>, you cannot instantiate a CellBindingHelper with
+        this model, since then no of it's functionality will be available.</p>
+    */
+    static  sal_Bool    LivesInSpreadsheetDocument
+    (const uno::Reference< beans::XPropertySet >& _rxControlModel);
+    /** checks whether within the given document, it's possible to bind control models to spreadsheet cells
+    */
+    static bool IsCellBindingAllowed
+    (const uno::Reference< frame::XModel >& _rxDocument );
+    /** checks whether within the given document, it's possible to bind the control model to a range of
+        spreadsheet cells supplying the list entries
+    */
+    static bool IsListCellRangeAllowed
+    (const uno::Reference< frame::XModel >& _rxDocument );
+
+    /** ctor
+        @param _rxControlModel
+            the control model which is or will be bound
+        @param _rxDocument
+            the document. If this is <NULL/>, the document will be obtained from the model
+            itself by walkong up the chain of its ancestors.<br/>
+            This parameter can be used if the control model is not (yet) part of a document
+            model.
+    */
+    FormCellBindingHelper
+    (const uno::Reference< beans::XPropertySet >& _rxControlModel,
+     const uno::Reference< frame::XModel >& _rxDocument);
+
+public:
+    /** gets a cell binding for the given address
+        @precond
+            isCellBindingAllowed returns <TRUE/>
+    */
+    uno::Reference<form::binding::XValueBinding >
+    createCellBindingFromStringAddress
+    (const rtl::OUString& _rAddress, bool _bUseIntegerBinding ) const;
+
+    /** gets a cell range list source binding for the given address
+    */
+    uno::Reference<form::binding::XListEntrySource >
+    createCellListSourceFromStringAddress( const rtl::OUString& _rAddress ) const;
+
+    /** creates a string representation for the given value binding's address
+
+        <p>If the sheet of the bound cell is the same as the sheet which our control belongs
+        to, then the sheet name is omitted in the resulting string representation.</p>
+
+        @precond
+            The binding is a valid cell binding, or <NULL/>
+        @see isCellBinding
+    */
+    rtl::OUString getStringAddressFromCellBinding
+    (const uno::Reference< form::binding::XValueBinding >& _rxBinding ) const;
+
+    /** creates a string representation for the given list source's range address
+
+        <p>If the sheet of the cell range which acts as list source is the same as the
+        sheet which our control belongs to, then the sheet name is omitted in the
+        resulting string representation.</p>
+
+        @precond
+            The object is a valid cell range list source, or <NULL/>
+        @see isCellRangeListSource
+    */
+    rtl::OUString getStringAddressFromCellListSource
+    (const uno::Reference< form::binding::XListEntrySource >& _rxSource ) const;
+
+    /** returns the current binding of our control model, if any.
+    */
+    uno::Reference<form::binding::XValueBinding >
+    getCurrentBinding( ) const;
+
+    /** returns the current external list source of the control model, if any
+    */
+    uno::Reference< form::binding::XListEntrySource >
+                    getCurrentListSource( ) const;
+
+    /** sets a new binding for our control model
+        @precond
+            the control model is bindable (which is implied by <member>isCellBindingAllowed</member>
+            returning <TRUE/>)
+    */
+    void setBinding
+    (const uno::Reference< form::binding::XValueBinding >& _rxBinding);
+
+    /** sets a list source for our control model
+        @precond
+            the control model is a list sink (which is implied by <member>isListCellRangeAllowed</member>
+            returning <TRUE/>)
+    */
+    void setListSource
+    ( const uno::Reference< form::binding::XListEntrySource >& _rxSource );
+
+    /** checks whether it's possible to bind the control model to a spreadsheet cell
+    */
+    bool isCellBindingAllowed( ) const;
+    //========================================================================
+    /** checks whether it's possible to bind the control model to a range of spreadsheet cells
+        supplying the list entries
+    */
+    bool isListCellRangeAllowed( ) const;
+    /** checks whether a given binding is a spreadsheet cell binding
+    */
+    bool isCellBinding
+    (const uno::Reference< form::binding::XValueBinding >& _rxBinding) const;
+
+    /** checks whether a given binding is a spreadsheet cell binding, exchanging
+        integer values
+    */
+    bool isCellIntegerBinding
+    (const uno::Reference< form::binding::XValueBinding >& _rxBinding) const;
+
+    /** checks whether a given list source is a spreadsheet cell list source
+    */
+    bool isCellRangeListSource
+    (const uno::Reference< form::binding::XListEntrySource >& _rxSource ) const;
+
+protected:
+    /** determines if our document is a spreadsheet document, *and* can supply
+        the given service
+    */
+    static bool IsSpreadsheetDocumentWhichSupplies(
+                        const uno::Reference< sheet::XSpreadsheetDocument >& _rxDocument,
+                        const ::rtl::OUString& _rService
+                    ) SAL_THROW(());
+
+
+    /** creates an address object from a string representation of a cell address
+    */
+    bool convertStringAddress
+    ( const ::rtl::OUString& _rAddressDescription,
+      table::CellAddress& /* [out] */ _rAddress,
+      sal_Int16 _nAssumeSheet = -1) const;
+
+    /** creates an address range object from a string representation of a cell range address
+    */
+    bool convertStringAddress
+    (const ::rtl::OUString& _rAddressDescription,
+     table::CellRangeAddress& /* [out] */ _rAddress) const;
+
+    /** determines if our document is a spreadsheet document, *and* can supply
+        the given service
+    */
+    bool isSpreadsheetDocumentWhichSupplies
+    ( const ::rtl::OUString& _rService ) const  SAL_THROW(());
+
+
+    /** checkes whether a given component supports a given servive
+    */
+    bool doesComponentSupport
+    ( const uno::Reference< uno::XInterface >& _rxComponent,
+      const ::rtl::OUString& _rService ) const;
+
+    /** uses the document (it's factory interface, respectively) to create a component instance
+        @param _rService
+            the service name
+        @param _rArgumentName
+            the name of the single argument to pass during creation. May be empty, in this case
+            no arguments are passed
+        @param _rArgumentValue
+            the value of the instantiation argument. Not evaluated if <arg>_rArgumentName</arg>
+            is empty.
+    */
+    uno::Reference< uno::XInterface >
+    createDocumentDependentInstance(
+        const ::rtl::OUString& _rService,
+        const ::rtl::OUString& _rArgumentName,
+        const uno::Any& _rArgumentValue
+    ) const;
+
+    /** converts an address representation into another one
+
+        @param _rInputProperty
+            the input property name for the conversion service
+        @param _rInputValue
+            the input property value for the conversion service
+        @param _rOutputProperty
+            the output property name for the conversion service
+        @param _rOutputValue
+            the output property value for the conversion service
+        @param _bIsRange
+            if <TRUE/>, the RangeAddressConversion service will be used, else
+            the AddressConversion service
+
+        @return
+            <TRUE/> if any only if the conversion was successfull
+
+        @see com::sun::star::table::CellAddressConversion
+        @see com::sun::star::table::CellRangeAddressConversion
+    */
+    bool doConvertAddressRepresentations
+    ( const ::rtl::OUString& _rInputProperty,
+     const uno::Any& _rInputValue,
+     const ::rtl::OUString& _rOutputProperty,
+          uno::Any& _rOutputValue,
+     bool _bIsRange
+    ) const SAL_THROW(());
+};
+
+//========================================================================
+}
+#endif

xmloff/inc/xmloff2/helper/odfanimationnodeimporthelper.hxx

+/*************************************************************************
+ *
+ * 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: odfanimationnodeimporthelper.hxx,v $
+ * $Revision: 1.13.2.2 $
+ *
+ * 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 _XMLOFF_HELPER_ODFANIMATIONNODEIMPORTHELPER_HXX_
+#define _XMLOFF_HELPER_ODFANIMATIONNODEIMPORTHELPER_HXX_
+
+#include <xmloff2/dllapi.h>
+#include <xmloff2/odftoken.hxx>
+#include <com/sun/star/uno/Any.h>
+#include <com/sun/star/uno/Sequence.h>
+#include <com/sun/star/animations/TimeFilterPair.hpp>
+
+#include <xmloff2/helper/xmloffsimplereferenceobject.hxx>
+
+namespace import
+{
+    class OdfImport;
+}
+
+//------------------------------------------------------------
+namespace helper
+{
+
+using import::OdfImport;
+
+using namespace com::sun::star;
+//------------------------------------------------------------
+class OdfAnimationNodeImportHelper
+:public XmloffSimpleReferenceObject
+{
+protected:
+    OdfImport* m_pOdfImport;
+public:
+    OdfAnimationNodeImportHelper(OdfImport* pOdfImport);
+    virtual ~OdfAnimationNodeImportHelper();
+
+	uno::Any convertValue(const ODFTokenEnum& eAttributeName, const rtl::OUString& rValue );
+	uno::Sequence< uno::Any > convertValueSequence(const ODFTokenEnum& eAttributeName, const rtl::OUString& rValue );
+
+	uno::Any convertTarget( const rtl::OUString& rValue );
+	uno::Any convertPath( const rtl::OUString& rValue );
+	uno::Any convertTiming( const rtl::OUString& rValue );
+
+	uno::Sequence< double > convertKeyTimes( const rtl::OUString& rValue );
+	uno::Sequence< animations::TimeFilterPair > convertTimeFilter( const rtl::OUString& rValue );
+
+	//sal_Bool convertAnimationValue(const ODFTokenEnum& eAttributeName, uno::Any& rValue );
+
+};
+//------------------------------------------------------------
+}
+#endif
+
+

xmloff/inc/xmloff2/helper/odfchartimporthelper.hxx

+/*************************************************************************
+ *
+ * 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: odfchartimporthelper.hxx,v $
+ * $Revision: 1.13.2.2 $
+ *
+ * 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 _XMLOFF_HELPER_ODFCHARTIMPORTHELPER_HXX_
+#define _XMLOFF_HELPER_ODFCHARTIMPORTHELPER_HXX_
+
+#include <map>
+#include <xmloff2/dllapi.h>
+#include <rtl/ref.hxx>
+#include <xmloff2/style/families.hxx>
+#include <xmloff2/helper/xmloffsimplereferenceobject.hxx>
+
+
+#include <com/sun/star/uno/Reference.hxx>
+
+#include <com/sun/star/chart/XChartDocument.hpp>
+#include <com/sun/star/chart2/XChartDocument.hpp>
+#include <com/sun/star/chart2/XDataSeries.hpp>
+//------------------------------------------------------------
+namespace import
+{
+    class OdfImport;
+    namespace core
+    {
+        class OdfContext;
+    }
+    namespace style2
+    {
+        class OdfStylesContext;
+    }
+}
+
+namespace helper
+{
+using namespace com::sun::star;
+using import::OdfImport;
+using import::core::OdfContext;
+using import::style2::OdfStylesContext;
+//------------------------------------------------------------
+class OdfChartImportHelper
+:public XmloffSimpleReferenceObject
+{
+
+protected:
+    OdfImport* mp_odfImport;
+	rtl::Reference< OdfStylesContext> mrAutoStyles;
+    std::map<sal_Int16, uno::Reference<chart::XChartDocument> > mxChartDocumentMap;
+public:
+    explicit OdfChartImportHelper(OdfImport* p_odfImport);
+    ~OdfChartImportHelper();
+
+    void setAutoStyles(OdfStylesContext* pAutoStyles );
+	OdfStylesContext* getAutoStyles() const ;
+
+	OdfContext* createChartContext(const sal_Int16& id, const sal_Int16& local, const uno::Reference< frame::XModel >& model);
+    const uno::Reference< chart::XChartDocument >& getChartDocument(const sal_Int16& id);
+
+	static sal_Int32	GetNumberOfSeries(const uno::Reference< chart::XChartDocument > & xChartDoc);
+	static sal_Int32	GetLengthOfSeries(const uno::Reference< chart::XChartDocument > & xChartDoc);
+	static void		ResizeChartData(const uno::Reference< chart::XChartDocument > & xChartDoc,
+                                sal_Int32 nSeries, sal_Int32 nDataPoints = -1 );
+	///
+    static sal_uInt16 GetChartFamilyID() { return ODF_STYLE_FAMILY_SCH_CHART_ID; }
+
+    // if no data provider exists by, now the model (as XChild) is asked for its
+    // parent which creates the data provider that is finally set at the chart
+    // document
+    static uno::Reference< chart2::data::XDataProvider >
+        GetDataProvider( const uno::Reference< chart2::XChartDocument > & xChartDoc );
+
+    /** @param bPushLastChartType If </FALSE>, in case a new chart type has to
+               be added (because it does not exist yet), it is appended at the
+               end of the chart-type container.  When </TRUE>, a new chart type
+               is added at one position before the last one, i.e. the formerly
+               last chart type is pushed back, so that it remains the last one.
+
+               This is needed when the global chart type is set to type A, but
+               the first series has type B. Then B should appear before A (done
+               by passing true).  Once a series of type A has been read,
+               following new chart types are again be added at the end (by
+               passing false).
+     */
+    static uno::Reference< chart2::XDataSeries > GetNewDataSeries(
+                    const  uno::Reference< chart2::XChartDocument > & xDoc,
+                    sal_Int32 nCoordinateSystemIndex,
+                    const ::rtl::OUString & rChartTypeName,
+                    bool bPushLastChartType = false );
+
+    static void DeleteDataSeries(
+                    const  uno::Reference<
+                    chart2::XDataSeries >& xSeries,
+                    const uno::Reference< chart2::XChartDocument > & xDoc );
+
+};
+//------------------------------------------------------------
+}
+#endif
+
+

xmloff/inc/xmloff2/helper/odfdataimporthelper.hxx

+/*************************************************************************
+ *
+ * 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: odfdataimporthelper.hxx,v $
+ * $Revision: 1.13.2.2 $
+ *
+ * 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 _XMLOFF_HELPER_ODFDATAIMPORTHELPER_HXX_
+#define _XMLOFF_HELPER_ODFDATAIMPORTHELPER_HXX_
+
+#include <svl/svarray.hxx>
+#include <svl/zformat.hxx>
+#include <svl/numuno.hxx>
+
+#include <unotools/localedatawrapper.hxx>
+#include <xmloff2/helper/xmloffsimplereferenceobject.hxx>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
+
+namespace import
+{
+    namespace core
+    {
+        class IOdfParentContext;
+        class OdfContext;
+    }
+
+    class OdfImport;
+}
+
+//------------------------------------------------------------
+namespace helper
+{
+using namespace com::sun::star;
+
+using import::core::OdfContext;
+using import::core::IOdfParentContext;
+using import::OdfImport;
+
+struct NumberFormatEntry
+{
+	rtl::OUString	aName;
+	sal_uInt32		nKey;
+	sal_Bool		bRemoveAfterUse;
+
+	NumberFormatEntry( const rtl::OUString& rN, sal_uInt32 nK, sal_Bool bR ) :
+		aName(rN), nKey(nK), bRemoveAfterUse(bR) {}
+};
+
+typedef NumberFormatEntry* NumberFormatEntryPtr;
+SV_DECL_PTRARR_DEL(NumberFormatEntryArr, NumberFormatEntryPtr, 4, 4 )
+//------------------------------------------------------------
+class OdfDataImportHelper
+:public XmloffSimpleReferenceObject
+{
+protected:
+    uno::Reference< lang::XMultiServiceFactory > mxServiceFactory;
+	SvNumberFormatter*      mpFormatter;
+    LocaleDataWrapper*	    mpLocaleData;
+    NumberFormatEntryArr    mFormatEntryArr;
+public:
+    OdfDataImportHelper(const uno::Reference< util::XNumberFormatsSupplier >& rSupp,
+                        const uno::Reference< lang::XMultiServiceFactory >& xServiceFactory);
+
+    OdfDataImportHelper(SvNumberFormatter*  pFormatter,
+                        const uno::Reference< lang::XMultiServiceFactory >& xServiceFactory);
+
+    ~OdfDataImportHelper();
+
+    SvNumberFormatter* getFormatter();
+    sal_uInt32 getKeyByName(const rtl::OUString& rName );
+    LocaleDataWrapper& getLocaleData(LanguageType nLang );
+    OdfContext* createContext(const sal_uInt32& _local, OdfImport* p_odfImport, IOdfParentContext* p_parentContext);
+    void addKey(const sal_uInt32& nKey, const rtl::OUString& rName, sal_Bool bRemoveAfterUse );
+	void setUsed(const sal_uInt32& nKey );
+    void removeVolatileFormats();
+};
+//------------------------------------------------------------
+}
+#endif
+
+
+

xmloff/inc/xmloff2/helper/odfeventfactory.hxx

+/*************************************************************************
+ *
+ * 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: odfeventfactory.hxx,v $
+ * $Revision: 1.3 $
+ *
+ * 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 _XMLOFF_HELPER_ODFEVENTFACTORY_HXX
+#define _XMLOFF_HELPER_ODFEVENTFACTORY_HXX
+
+
+#include <xmloff2/dllapi.h>
+#include <xmloff2/import/core/iodfparentcontext.hxx>
+
+namespace import
+{
+    class OdfImport;
+}
+
+namespace helper
+{
+using import::OdfImport;
+using import::core::OdfContext;
+using import::core::IOdfParentContext;
+//=============================================================
+struct OdfEventName
+{
+	sal_uInt16 mnPrefix;
+	rtl::OUString maName;
+
+	OdfEventName():mnPrefix( 0 ) {}
+	OdfEventName(sal_uInt16 n, const sal_Char *p )
+	:mnPrefix( n )
+	,maName(rtl::OUString::createFromAscii(p) )
+   	{}
+
+	OdfEventName(sal_uInt16 n, const rtl::OUString& r )
+	:mnPrefix( n )
+	,maName( r )
+   	{}
+
+	bool operator<(const OdfEventName& r ) const
+	{
+		return mnPrefix < r.mnPrefix ||
+			   (mnPrefix == r.mnPrefix && maName < r.maName);
+	}
+};
+
+//=============================================================
+/**
+ * OdfEventNameTranslation: define tables that translate between event names
+ * as used in the XML file format and in the StarOffice API.
+ * The last entry in the table must be { NULL, 0, NULL }.
+ */
+struct OdfEventNameTranslation
+{
+	const sal_Char* sAPIName;
+	sal_uInt16		nPrefix;	// namespace prefix
+	const sal_Char* sXMLName;
+};
+
+/// a translation table for the events defined in the XEventsSupplier service
+/// (implemented in XMLEventExport.cxx)
+extern const OdfEventNameTranslation aStandardEventTable[];
+//=============================================================
+/**
+ * Handle import of an event for a certain event type (as defined by
+ * the PropertyValue "EventType" in the API).
+ *
+ * EventContextFactories must be registered with the EventImportHelper
+ * that is attached to the SvXMLImport.
+ *
+ * The factory has to create an import context for a <script:event>
+ * element.  The context has to call the
+ * EventsImportContext::AddEventValues() method to fave its event
+ * registered with the enclosing element. For events consisting only
+ * of attributes (and an empty element) an easy solution is to handle
+ * all attributes in the CreateContext()-method and return a default
+ * context.
+ *
+ * EventContextFactory objects have to be registered with the
+ * EventsImportHelper.
+ */
+class OdfEventContextFactory
+{
+public:
+    virtual ~OdfEventContextFactory() {};
+
+	virtual OdfContext* createContext
+	( const sal_uInt32& _local,
+      OdfImport* p_odfImport,
+      IOdfParentContext* p_parentContext,
+	  /// the context for the enclosing <script:events> element
+	  /// the event name (as understood by the API)
+	  const ::rtl::OUString& rApiEventName,
+	  /// the event type name (as registered)
+	  const ::rtl::OUString& rApiLanguage) = 0;
+};
+//=============================================================
+class OdfStarBasicContextFactory
+:public OdfEventContextFactory
+{
+public:
+    OdfStarBasicContextFactory(){}
+    virtual ~OdfStarBasicContextFactory() {}
+
+	virtual OdfContext* createContext
+	( const sal_uInt32& _local,
+      OdfImport* p_odfImport,
+      IOdfParentContext* p_parentContext,
+	  /// the context for the enclosing <script:events> element
+	  /// the event name (as understood by the API)
+	  const ::rtl::OUString& rApiEventName,
+	  /// the event type name (as registered)
+	  const ::rtl::OUString& rApiLanguage);
+};
+//=============================================================
+class OdfScriptContextFactory
+:public OdfEventContextFactory
+{
+public:
+    OdfScriptContextFactory(){}
+    virtual ~OdfScriptContextFactory() {}
+
+	virtual OdfContext* createContext
+	( const sal_uInt32& _local,
+      OdfImport* p_odfImport,
+      IOdfParentContext* p_parentContext,
+	  /// the context for the enclosing <script:events> element
+	  /// the event name (as understood by the API)
+	  const ::rtl::OUString& rApiEventName,
+	  /// the event type name (as registered)
+	  const ::rtl::OUString& rApiLanguage);
+};
+//=============================================================
+}
+
+#endif
+
+
+
+

xmloff/inc/xmloff2/helper/odfformimporthelper.hxx

+/*************************************************************************
+ *
+ * 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: odfformimporthelper.hxx,v $
+ * $Revision: 1.13.2.2 $
+ *
+ * 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 _XMLOFF_HELPER_ODFFORMIMPORTHELPER_HXX_
+#define _XMLOFF_HELPER_ODFFORMIMPORTHELPER_HXX_
+
+#include <list>
+#include <xmloff2/dllapi.h>
+#include <xmloff2/compare.hxx>
+#include <xmloff2/helper/odfeventfactory.hxx>
+#include <xmloff2/helper/odfformimporthelper2.hxx>
+#include <xmloff2/helper/eventattachermanager.hxx>
+#include <xmloff2/helper/xmloffsimplereferenceobject.hxx>
+//#include <xmloff2/import/style/odfstylescontext.hxx>
+
+#include <com/sun/star/drawing/XDrawPage.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/form/XFormsSupplier2.hpp>
+//------------------------------------------------------------
+namespace import
+{
+    class OdfImport;
+}
+namespace import
+{
+    namespace core
+    {
+        class OdfContext;
+        class IOdfParentContext;
+        class IFontStylesContext;
+    }
+}
+//------------------------------------------------------------
+namespace import
+{
+    namespace style2
+    {
+        class OdfStylesContext;
+    }
+}
+namespace helper
+{
+using import::OdfImport;
+using import::core::OdfContext;
+using import::core::IOdfParentContext;
+using import::style2::OdfStylesContext;
+using namespace com::sun::star;
+//------------------------------------------------------------
+class OdfFormImportHelper
+:public XmloffSimpleReferenceObject
+,public IEventAttacherManager
+{
+protected:
+    OdfImport*          mpImport;
+    OdfStylesContext*   mpAutoStyles;
+    OdfAttribute2Property					maAttributeMetaData;
+    //=====================================================================
+    typedef OdfInterfaceCompare< drawing::XDrawPage > ODrawPageCompare;
+    DECLARE_STL_USTRINGACCESS_MAP
+    (uno::Reference<beans::XPropertySet >, MapString2PropertySet );
+	DECLARE_STL_MAP
+	(uno::Reference<drawing::XDrawPage >,
+	 MapString2PropertySet,
+	 ODrawPageCompare,
+	 MapDrawPage2Map);
+
+    typedef std::pair<uno::Reference<beans::XPropertySet >, rtl::OUString > ModelStringPair;
+    //=====================================================================
+    std::map<sal_Int16, uno::Reference<form::XFormsSupplier2> > mxSuppMap;
+    std::map<sal_Int16, MapDrawPage2Map>                        maControlIdsMap;// ids of the controls on all known page
+    std::map<sal_Int16, MapDrawPage2MapIterator>                maCurrentPageIdsMap;// ifs of the controls on the current page
+
+    std::map<sal_Int16, std::vector<ModelStringPair> >          maControlReferencesMap;
+    std::map<sal_Int16, std::vector<ModelStringPair> >          maCellValueBindingsMap;
+    std::map<sal_Int16, std::vector<ModelStringPair> >          maCellRangeListSourcesMap;