/* -*- 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 * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef OOX_XLS_WORKSHEETFRAGMENT_HXX #define OOX_XLS_WORKSHEETFRAGMENT_HXX #include "excelhandlers.hxx" namespace oox { namespace xls { // ============================================================================ class DataValidationsContext : public WorksheetContextBase { public: explicit DataValidationsContext( WorksheetFragmentBase& rFragment ); protected: virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ); virtual void onCharacters( const ::rtl::OUString& rChars ); virtual void onEndElement(); virtual ::oox::core::ContextHandlerRef onCreateRecordContext( sal_Int32 nRecId, SequenceInputStream& rStrm ); private: /** Imports the dataValidation element containing data validation settings. */ void importDataValidation( const AttributeList& rAttribs ); /** Imports the DATAVALIDATION record containing data validation settings. */ void importDataValidation( SequenceInputStream& rStrm ); private: ::std::auto_ptr< ValidationModel > mxValModel; }; // ============================================================================ class WorksheetFragment : public WorksheetFragmentBase { public: explicit WorksheetFragment( const WorksheetHelper& rHelper, const ::rtl::OUString& rFragmentPath ); protected: virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs ); virtual void onCharacters( const ::rtl::OUString& rChars ); virtual ::oox::core::ContextHandlerRef onCreateRecordContext( sal_Int32 nRecId, SequenceInputStream& rStrm ); virtual const ::oox::core::RecordInfo* getRecordInfos() const; virtual void initializeImport(); virtual void finalizeImport(); private: /** Imports page settings from a pageSetUpPr element. */ void importPageSetUpPr( const AttributeList& rAttribs ); /** Imports the dimension element containing the used area of the sheet. */ void importDimension( const AttributeList& rAttribs ); /** Imports sheet format properties from a sheetFormatPr element. */ void importSheetFormatPr( const AttributeList& rAttribs ); /** Imports column settings from a col element. */ void importCol( const AttributeList& rAttribs ); /** Imports a merged cell range from a mergeCell element. */ void importMergeCell( const AttributeList& rAttribs ); /** Imports the hyperlink element containing a hyperlink for a cell range. */ void importHyperlink( const AttributeList& rAttribs ); /** Imports individual break that is either within row or column break context. */ void importBrk( const AttributeList& rAttribs, bool bRowBreak ); /** Imports the the relation identifier for the DrawingML part. */ void importDrawing( const AttributeList& rAttribs ); /** Imports the the relation identifier for the legacy VML drawing part. */ void importLegacyDrawing( const AttributeList& rAttribs ); /** Imports additional data for an OLE object. */ void importOleObject( const AttributeList& rAttribs ); /** Imports additional data for an OCX form control. */ void importControl( const AttributeList& rAttribs ); /** Imports the DIMENSION record containing the used area of the sheet. */ void importDimension( SequenceInputStream& rStrm ); /** Imports sheet format properties from a SHEETFORMATPR record. */ void importSheetFormatPr( SequenceInputStream& rStrm ); /** Imports column settings from a COL record. */ void importCol( SequenceInputStream& rStrm ); /** Imports a merged cell range from a MERGECELL record. */ void importMergeCell( SequenceInputStream& rStrm ); /** Imports a hyperlink for a cell range from a HYPERLINK record. */ void importHyperlink( SequenceInputStream& rStrm ); /** Imports the BRK record for an individual row or column page break. */ void importBrk( SequenceInputStream& rStrm, bool bRowBreak ); /** Imports the DRAWING record containing the relation identifier for the DrawingML part. */ void importDrawing( SequenceInputStream& rStrm ); /** Imports the LEGACYDRAWING record containing the relation identifier for the VML drawing part. */ void importLegacyDrawing( SequenceInputStream& rStrm ); /** Imports additional data for an OLE object. */ void importOleObject( SequenceInputStream& rStrm ); /** Imports additional data for an OCX form control. */ void importControl( SequenceInputStream& rStrm ); /** Imports the binary data of an embedded OLE object from the fragment with the passed ID. */ void importEmbeddedOleData( StreamDataSequence& orEmbeddedData, const ::rtl::OUString& rRelId ); }; } // namespace xls } // namespace oox #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */