summaryrefslogtreecommitdiff
path: root/sw/source/filter/xml/xmlexp.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/filter/xml/xmlexp.hxx')
-rw-r--r--sw/source/filter/xml/xmlexp.hxx190
1 files changed, 190 insertions, 0 deletions
diff --git a/sw/source/filter/xml/xmlexp.hxx b/sw/source/filter/xml/xmlexp.hxx
new file mode 100644
index 000000000000..5568995c5ca3
--- /dev/null
+++ b/sw/source/filter/xml/xmlexp.hxx
@@ -0,0 +1,190 @@
+/*************************************************************************
+ *
+ * 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 _XMLEXP_HXX
+#define _XMLEXP_HXX
+
+#include <xmloff/xmlexp.hxx>
+#include "xmlitmap.hxx"
+#include <xmloff/uniref.hxx>
+#include <xmloff/xmltoken.hxx>
+
+class SwPaM;
+class SwFmt;
+class SwFrmFmt;
+class SvXMLUnitConverter;
+class SvXMLExportItemMapper;
+class SvXMLAutoStylePoolP;
+class SwTableLine;
+class SwTableLines;
+class SwTableBox;
+class SwXMLTableColumn_Impl;
+class SwXMLTableLines_Impl;
+class SwXMLTableLinesCache_Impl;
+class SwXMLTableColumnsSortByWidth_Impl;
+class SwXMLTableFrmFmtsSort_Impl;
+class SwXMLTableInfo_Impl;
+class SwTableNode;
+class XMLPropertySetMapper;
+
+class SwXMLExport : public SvXMLExport
+{
+ friend class SwXMLExpContext;
+
+#ifdef XML_CORE_API
+ SwPaM *pCurPaM; // the current PaM
+ SwPaM *pOrigPaM; // the original PaM
+#endif
+
+ SvXMLUnitConverter *pTwipUnitConv;
+
+ SvXMLExportItemMapper *pTableItemMapper;
+ SwXMLTableLinesCache_Impl *pTableLines;
+
+ SvXMLItemMapEntriesRef xTableItemMap;
+ SvXMLItemMapEntriesRef xTableRowItemMap;
+ SvXMLItemMapEntriesRef xTableCellItemMap;
+ UniReference < XMLPropertySetMapper > xParaPropMapper;
+
+ sal_Bool bExportWholeDoc : 1;// export whole document?
+ sal_Bool bBlock : 1; // export text block?
+ sal_Bool bExportFirstTableOnly : 1;
+ sal_Bool bShowProgress : 1;
+ sal_Bool bSavedShowChanges : 1;
+
+ void _InitItemExport();
+ void _FinitItemExport();
+ void ExportTableLinesAutoStyles( const SwTableLines& rLines,
+ sal_uInt32 nAbsWidth,
+ sal_uInt32 nBaseWidth,
+ const ::rtl::OUString& rNamePrefix,
+ SwXMLTableColumnsSortByWidth_Impl& rExpCols,
+ SwXMLTableFrmFmtsSort_Impl& rExpRows,
+ SwXMLTableFrmFmtsSort_Impl& rExpCells,
+ SwXMLTableInfo_Impl& rTblInfo,
+ sal_Bool bTop=sal_False );
+
+
+ void ExportFmt( const SwFmt& rFmt, enum ::xmloff::token::XMLTokenEnum eClass = ::xmloff::token::XML_TOKEN_INVALID );
+ void ExportTableFmt( const SwFrmFmt& rFmt, sal_uInt32 nAbsWidth );
+
+ void ExportTableColumnStyle( const SwXMLTableColumn_Impl& rCol );
+ void ExportTableBox( const SwTableBox& rBox, sal_uInt16 nColSpan, sal_uInt16 nRowSpan,
+ SwXMLTableInfo_Impl& rTblInfo );
+ void ExportTableLine( const SwTableLine& rLine,
+ const SwXMLTableLines_Impl& rLines,
+ SwXMLTableInfo_Impl& rTblInfo );
+ void ExportTableLines( const SwTableLines& rLines,
+ SwXMLTableInfo_Impl& rTblInfo,
+ USHORT nHeaderRows = 0 );
+
+ virtual void _ExportMeta();
+ virtual void _ExportFontDecls();
+ virtual void _ExportStyles( sal_Bool bUsed );
+ virtual void _ExportAutoStyles();
+ virtual void _ExportMasterStyles();
+ virtual void SetBodyAttributes();
+ virtual void _ExportContent();
+ virtual void GetViewSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps);
+ virtual void GetConfigurationSettings(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aProps);
+ virtual sal_Int32 GetDocumentSpecificSettings( ::std::list< SettingsGroup >& _out_rSettings );
+
+#ifdef XML_CORE_API
+ void SetCurPaM( SwPaM& rPaM, sal_Bool bWhole, sal_Bool bTabOnly );
+#endif
+
+ // string constants for table cell export
+ const ::rtl::OUString sNumberFormat;
+ const ::rtl::OUString sIsProtected;
+ const ::rtl::OUString sCell;
+
+ void setBlockMode();
+
+protected:
+
+ virtual XMLTextParagraphExport* CreateTextParagraphExport();
+ virtual SvXMLAutoStylePoolP* CreateAutoStylePool();
+ virtual XMLPageExport* CreatePageExport();
+ virtual XMLShapeExport* CreateShapeExport();
+ virtual XMLFontAutoStylePool* CreateFontAutoStylePool();
+
+public:
+
+ // #110680#
+ SwXMLExport(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
+ sal_uInt16 nExportFlags = EXPORT_ALL);
+
+#ifdef XML_CORE_API
+ // #110680#
+ SwXMLExport(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rModel,
+ SwPaM& rPaM,
+ const ::rtl::OUString& rFileName,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XDocumentHandler > & rHandler,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::document::XGraphicObjectResolver > &,
+ sal_Bool bExpWholeDoc,
+ sal_Bool bExpFirstTableOnly,
+ sal_Bool bShowProgr );
+#endif
+ virtual ~SwXMLExport();
+
+ virtual sal_uInt32 exportDoc( enum ::xmloff::token::XMLTokenEnum eClass = ::xmloff::token::XML_TOKEN_INVALID );
+
+ inline const SvXMLUnitConverter& GetTwipUnitConverter() const;
+
+ void ExportTableAutoStyles( const SwTableNode& rTblNd );
+ void ExportTable( const SwTableNode& rTblNd );
+
+ SvXMLExportItemMapper& GetTableItemMapper() { return *pTableItemMapper; }
+ const UniReference < XMLPropertySetMapper >& GetParaPropMapper()
+ {
+ return xParaPropMapper;
+ }
+
+ sal_Bool IsShowProgress() const { return bShowProgress; }
+ void SetShowProgress( sal_Bool b ) { bShowProgress = b; }
+ sal_Bool IsBlockMode() const { return bBlock; }
+
+ // XUnoTunnel
+ static const ::com::sun::star::uno::Sequence< sal_Int8 > & getUnoTunnelId() throw();
+ virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& aIdentifier ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo (override parent method)
+ ::rtl::OUString SAL_CALL getImplementationName()
+ throw( ::com::sun::star::uno::RuntimeException );
+};
+
+inline const SvXMLUnitConverter& SwXMLExport::GetTwipUnitConverter() const
+{
+ return *pTwipUnitConv;
+}
+
+
+#endif // _XMLEXP_HXX
+