| /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| /* |
| * This file is part of the Collabora Office project. |
| * |
| * This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| * |
| * This file incorporates work covered by the following license notice: |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed |
| * with this work for additional information regarding copyright |
| * ownership. The ASF licenses this file to you under the Apache |
| * License, Version 2.0 (the "License"); you may not use this file |
| * except in compliance with the License. You may obtain a copy of |
| * the License at http://www.apache.org/licenses/LICENSE-2.0 . |
| */ |
| |
| #ifndef INCLUDED_SW_INC_UNOTBL_HXX |
| #define INCLUDED_SW_INC_UNOTBL_HXX |
| |
| #include <com/sun/star/lang/XUnoTunnel.hpp> |
| #include <com/sun/star/container/XNamed.hpp> |
| #include <com/sun/star/container/XEnumerationAccess.hpp> |
| #include <com/sun/star/util/XSortable.hpp> |
| #include <com/sun/star/chart/XChartDataArray.hpp> |
| #include <com/sun/star/text/XTextTableCursor.hpp> |
| #include <com/sun/star/text/XTextTable.hpp> |
| #include <com/sun/star/table/XCellRange.hpp> |
| #include <com/sun/star/sheet/XCellRangeData.hpp> |
| #include <com/sun/star/table/XAutoFormattable.hpp> |
| |
| #include <cppuhelper/implbase.hxx> |
| |
| #include <comphelper/uno3.hxx> |
| |
| #include <svl/listener.hxx> |
| |
| #include "TextCursorHelper.hxx" |
| #include "unotext.hxx" |
| #include "frmfmt.hxx" |
| #include "unocrsr.hxx" |
| |
| class SwTable; |
| class SwTableBox; |
| class SwTableLine; |
| class SwTableCursor; |
| class SwUnoInternalPaM; |
| struct SwXParagraphEnumeration; |
| class SwXTableRows; |
| class SfxItemPropertySet; |
| |
| typedef |
| cppu::WeakImplHelper |
| < |
| css::table::XCell, |
| css::lang::XServiceInfo, |
| css::beans::XPropertySet, |
| css::container::XEnumerationAccess |
| > |
| SwXCellBaseClass; |
| class SW_DLLPUBLIC SwXCell final : public SwXCellBaseClass, |
| public SwXText, |
| public SvtListener |
| { |
| friend void sw_setString( SwXCell &rCell, const OUString &rText, |
| bool bKeepNumberFormat ); |
| friend void sw_setValue( SwXCell &rCell, double nVal ); |
| |
| const SfxItemPropertySet* m_pPropSet; |
| SwTableBox* m_pBox; // only set in non-XML import |
| const SwStartNode* m_pStartNode; // only set in XML import |
| SwFrameFormat* m_pTableFormat; |
| |
| // table position where pBox was found last |
| size_t m_nFndPos; |
| css::uno::Reference<SwXText> m_xParentText; |
| static size_t const NOTFOUND = SAL_MAX_SIZE; |
| |
| virtual const SwStartNode *GetStartNode() const override; |
| |
| bool IsValid() const; |
| |
| virtual ~SwXCell() override; |
| |
| virtual void Notify(const SfxHint&) override; |
| |
| public: |
| SwXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, size_t nPos); |
| SwXCell(SwFrameFormat* pTableFormat, const SwStartNode& rStartNode); // XML import interface |
| |
| virtual css::uno::Any SAL_CALL queryInterface( const css::uno::Type& aType ) override; |
| virtual void SAL_CALL acquire( ) noexcept override; |
| virtual void SAL_CALL release( ) noexcept override; |
| |
| //XTypeProvider |
| virtual css::uno::Sequence< css::uno::Type > SAL_CALL getTypes( ) override; |
| virtual css::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) override; |
| |
| //XCell |
| virtual OUString SAL_CALL getFormula( ) override; |
| virtual void SAL_CALL setFormula( const OUString& aFormula ) override; |
| virtual double SAL_CALL getValue( ) override; |
| /// @throws css::uno::RuntimeException |
| double getValue( ) const |
| { return const_cast<SwXCell*>(this)->getValue(); }; |
| virtual void SAL_CALL setValue( double nValue ) override; |
| virtual css::table::CellContentType SAL_CALL getType( ) override; |
| virtual sal_Int32 SAL_CALL getError( ) override; |
| |
| //XText |
| virtual rtl::Reference< SwXTextCursor > createXTextCursor() override; |
| virtual rtl::Reference< SwXTextCursor > createXTextCursorByRange( |
| const ::css::uno::Reference< ::css::text::XTextRange >& aTextPosition ) override; |
| virtual void SAL_CALL setString(const OUString& aString) override; |
| |
| //XPropertySet |
| virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override; |
| virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override; |
| virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override; |
| virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override; |
| virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override; |
| virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| |
| //XServiceInfo |
| virtual OUString SAL_CALL getImplementationName() override; |
| virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
| |
| //XEnumerationAccess - was: XParagraphEnumerationAccess |
| virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override; |
| |
| //XElementAccess |
| virtual css::uno::Type SAL_CALL getElementType( ) override; |
| virtual sal_Bool SAL_CALL hasElements( ) override; |
| |
| rtl::Reference< SwXParagraphEnumeration > createSwEnumeration(); |
| SwTableBox* GetTableBox() const { return m_pBox; } |
| static rtl::Reference<SwXCell> CreateXCell(SwFrameFormat* pTableFormat, SwTableBox* pBox, SwTable *pTable = nullptr ); |
| SwTableBox* FindBox(SwTable* pTable, SwTableBox* pBox); |
| SwFrameFormat* GetFrameFormat() const { return m_pTableFormat; } |
| double GetForcedNumericalValue() const; |
| css::uno::Any GetAny() const; |
| private: |
| rtl::Reference< SwXTextCursor > createXTextCursorByRangeImpl(SwUnoInternalPaM& rPam); |
| }; |
| |
| class SwXTextTableRow final |
| : public cppu::WeakImplHelper<css::beans::XPropertySet, css::lang::XServiceInfo> |
| , public SvtListener |
| { |
| SwFrameFormat* m_pFormat; |
| SwTableLine* m_pLine; |
| const SfxItemPropertySet* m_pPropSet; |
| |
| SwFrameFormat* GetFrameFormat() { return m_pFormat; } |
| const SwFrameFormat* GetFrameFormat() const { return m_pFormat; } |
| virtual ~SwXTextTableRow() override; |
| |
| public: |
| SwXTextTableRow(SwFrameFormat* pFormat, SwTableLine* pLine); |
| |
| |
| //XPropertySet |
| virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override; |
| virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override; |
| virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override; |
| virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override; |
| virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override; |
| virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| |
| //XServiceInfo |
| virtual OUString SAL_CALL getImplementationName() override; |
| virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
| |
| static SwTableLine* FindLine(SwTable* pTable, SwTableLine const * pLine); |
| |
| void Notify(const SfxHint&) override; |
| }; |
| |
| |
| typedef cppu::ImplInheritanceHelper< |
| OTextCursorHelper, |
| css::text::XTextTableCursor, |
| css::lang::XServiceInfo> SwXTextTableCursor_Base; |
| class SW_DLLPUBLIC SwXTextTableCursor final |
| : public SwXTextTableCursor_Base |
| , public SvtListener |
| { |
| SwFrameFormat* m_pFrameFormat; |
| const SfxItemPropertySet* m_pPropSet; |
| sw::UnoCursorPointer m_pUnoCursor; |
| |
| public: |
| SwXTextTableCursor(SwFrameFormat* pFormat, SwTableBox const* pBox); |
| SwXTextTableCursor(SwFrameFormat& rTableFormat, const SwTableCursor* pTableSelection); |
| virtual void SAL_CALL release() noexcept override; |
| |
| //XTextTableCursor |
| virtual OUString SAL_CALL getRangeName() override; |
| virtual sal_Bool SAL_CALL gotoCellByName( const OUString& aCellName, sal_Bool bExpand ) override; |
| virtual sal_Bool SAL_CALL goLeft( sal_Int16 nCount, sal_Bool bExpand ) override; |
| virtual sal_Bool SAL_CALL goRight( sal_Int16 nCount, sal_Bool bExpand ) override; |
| virtual sal_Bool SAL_CALL goUp( sal_Int16 nCount, sal_Bool bExpand ) override; |
| virtual sal_Bool SAL_CALL goDown( sal_Int16 nCount, sal_Bool bExpand ) override; |
| virtual void SAL_CALL gotoStart( sal_Bool bExpand ) override; |
| virtual void SAL_CALL gotoEnd( sal_Bool bExpand ) override; |
| virtual sal_Bool SAL_CALL mergeRange() override; |
| virtual sal_Bool SAL_CALL splitRange( sal_Int16 Count, sal_Bool Horizontal ) override; |
| |
| //XPropertySet |
| virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override; |
| virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override; |
| virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override; |
| virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override; |
| virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override; |
| virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| |
| //XServiceInfo |
| virtual OUString SAL_CALL getImplementationName() override; |
| virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
| |
| |
| // ITextCursorHelper |
| virtual const SwPaM* GetPaM() const override; |
| virtual SwPaM* GetPaM() override; |
| virtual const SwDoc* GetDoc() const override; |
| virtual SwDoc* GetDoc() override; |
| |
| virtual void Notify( const SfxHint& ) override; |
| |
| const SwUnoCursor& GetCursor() const; |
| SwUnoCursor& GetCursor(); |
| SwFrameFormat* GetFrameFormat() const { return m_pFrameFormat; } |
| }; |
| |
| struct SwRangeDescriptor |
| { |
| sal_Int32 nTop; |
| sal_Int32 nLeft; |
| sal_Int32 nBottom; |
| sal_Int32 nRight; |
| |
| void Normalize(); |
| }; |
| |
| class SW_DLLPUBLIC SwXTextTable final : public cppu::WeakImplHelper |
| < |
| css::text::XTextTable, |
| css::lang::XServiceInfo, |
| css::table::XCellRange, |
| css::chart::XChartDataArray, |
| css::beans::XPropertySet, |
| css::container::XNamed, |
| css::table::XAutoFormattable, |
| css::util::XSortable, |
| css::sheet::XCellRangeData |
| > |
| { |
| private: |
| class Impl; |
| ::sw::UnoImplPtr<Impl> m_pImpl; |
| |
| SwXTextTable(); |
| SwXTextTable(SwFrameFormat& rFrameFormat); |
| virtual ~SwXTextTable() override; |
| |
| public: |
| static rtl::Reference<SwXTextTable> |
| CreateXTextTable(SwFrameFormat * pFrameFormat); |
| |
| static void GetCellPosition(std::u16string_view aCellName, sal_Int32& o_rColumn, sal_Int32& o_rRow); |
| |
| SwFrameFormat* GetFrameFormat(); |
| |
| //XTextTable |
| virtual void SAL_CALL initialize( sal_Int32 nRows, sal_Int32 nColumns ) override; |
| virtual css::uno::Reference< css::table::XTableRows > SAL_CALL getRows( ) override; |
| virtual css::uno::Reference< css::table::XTableColumns > SAL_CALL getColumns( ) override; |
| virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByName( const OUString& aCellName ) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getCellNames( ) override; |
| virtual css::uno::Reference< css::text::XTextTableCursor > SAL_CALL createCursorByCellName( const OUString& aCellName ) override; |
| |
| //XTextContent |
| virtual void SAL_CALL attach(const css::uno::Reference< css::text::XTextRange > & xTextRange) override; |
| virtual css::uno::Reference< css::text::XTextRange > SAL_CALL getAnchor( ) override; |
| |
| //XComponent |
| virtual void SAL_CALL dispose() override; |
| virtual void SAL_CALL addEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override; |
| virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::lang::XEventListener > & aListener) override; |
| |
| //XCellRange |
| virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) override; |
| virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom ) override; |
| virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByName( const OUString& aRange ) override; |
| |
| //XChartDataArray |
| virtual css::uno::Sequence< css::uno::Sequence< double > > SAL_CALL getData( ) override; |
| virtual void SAL_CALL setData( const css::uno::Sequence< css::uno::Sequence< double > >& aData ) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getRowDescriptions( ) override; |
| virtual void SAL_CALL setRowDescriptions( const css::uno::Sequence< OUString >& aRowDescriptions ) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getColumnDescriptions( ) override; |
| virtual void SAL_CALL setColumnDescriptions( const css::uno::Sequence< OUString >& aColumnDescriptions ) override; |
| |
| //XChartData |
| virtual void SAL_CALL addChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override; |
| virtual void SAL_CALL removeChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override; |
| virtual double SAL_CALL getNotANumber( ) override; |
| virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) override; |
| |
| //XSortable |
| virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL createSortDescriptor() override; |
| virtual void SAL_CALL sort(const css::uno::Sequence< css::beans::PropertyValue >& xDescriptor) override; |
| |
| //XAutoFormattable |
| virtual void SAL_CALL autoFormat(const OUString& aName) override; |
| |
| //XPropertySet |
| virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override; |
| virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) override; |
| virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) override; |
| virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override; |
| virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override; |
| virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| |
| //XNamed |
| virtual OUString SAL_CALL getName() override; |
| virtual void SAL_CALL setName(const OUString& Name_) override; |
| |
| //XCellRangeData |
| virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getDataArray( ) override; |
| virtual void SAL_CALL setDataArray( const css::uno::Sequence< css::uno::Sequence< css::uno::Any > >& aArray ) override; |
| |
| //XServiceInfo |
| virtual OUString SAL_CALL getImplementationName() override; |
| virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
| |
| rtl::Reference< SwXTableRows > getSwRows(); |
| rtl::Reference< SwXCell > getSwCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ); |
| rtl::Reference< SwXCell > getSwCellByName( const OUString& aCellName ); |
| }; |
| |
| class SwXCellRange final : public cppu::WeakImplHelper |
| < |
| css::table::XCellRange, |
| css::lang::XServiceInfo, |
| css::beans::XPropertySet, |
| css::chart::XChartDataArray, |
| css::util::XSortable, |
| css::sheet::XCellRangeData |
| > |
| { |
| private: |
| class Impl; |
| ::sw::UnoImplPtr<Impl> m_pImpl; |
| |
| SwXCellRange(const sw::UnoCursorPointer& pCursor, SwFrameFormat& rFrameFormat, SwRangeDescriptor const & rDesc); |
| virtual ~SwXCellRange() override; |
| |
| public: |
| static ::rtl::Reference<SwXCellRange> CreateXCellRange( |
| const sw::UnoCursorPointer& pCursor, SwFrameFormat& rFrameFormat, |
| SwRangeDescriptor const & rDesc); |
| |
| void SetLabels(bool bFirstRowAsLabel, bool bFirstColumnAsLabel); |
| |
| std::vector<css::uno::Reference<css::table::XCell>> GetCells(); |
| |
| const SwUnoCursor* GetTableCursor() const; |
| |
| //XCellRange |
| virtual css::uno::Reference< css::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) override; |
| virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom ) override; |
| virtual css::uno::Reference< css::table::XCellRange > SAL_CALL getCellRangeByName( const OUString& aRange ) override; |
| |
| //XPropertySet |
| virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo( ) override; |
| virtual void SAL_CALL setPropertyValue(const OUString& aPropertyName, const css::uno::Any& aValue) override; |
| virtual css::uno::Any SAL_CALL getPropertyValue(const OUString& PropertyName) override; |
| virtual void SAL_CALL addPropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& xListener ) override; |
| virtual void SAL_CALL removePropertyChangeListener( const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener >& aListener ) override; |
| virtual void SAL_CALL addVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| virtual void SAL_CALL removeVetoableChangeListener( const OUString& PropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener >& aListener ) override; |
| |
| //XChartData |
| virtual void SAL_CALL addChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override; |
| virtual void SAL_CALL removeChartDataChangeEventListener( const css::uno::Reference< css::chart::XChartDataChangeEventListener >& aListener ) override; |
| virtual double SAL_CALL getNotANumber( ) override; |
| virtual sal_Bool SAL_CALL isNotANumber( double nNumber ) override; |
| |
| //XChartDataArray |
| virtual css::uno::Sequence< css::uno::Sequence< double > > SAL_CALL getData( ) override; |
| virtual void SAL_CALL setData( const css::uno::Sequence< css::uno::Sequence< double > >& aData ) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getRowDescriptions( ) override; |
| virtual void SAL_CALL setRowDescriptions( const css::uno::Sequence< OUString >& aRowDescriptions ) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getColumnDescriptions( ) override; |
| virtual void SAL_CALL setColumnDescriptions( const css::uno::Sequence< OUString >& aColumnDescriptions ) override; |
| |
| //XSortable |
| virtual css::uno::Sequence< css::beans::PropertyValue > SAL_CALL createSortDescriptor() override; |
| virtual void SAL_CALL sort(const css::uno::Sequence< css::beans::PropertyValue >& xDescriptor) override; |
| |
| //XCellRangeData |
| virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getDataArray( ) override; |
| virtual void SAL_CALL setDataArray( const css::uno::Sequence< css::uno::Sequence< css::uno::Any > >& aArray ) override; |
| |
| //XServiceInfo |
| virtual OUString SAL_CALL getImplementationName() override; |
| virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
| |
| }; |
| |
| /// UNO API wrapper for SwTableLines. |
| class SAL_DLLPUBLIC_RTTI SwXTableRows final : public cppu::WeakImplHelper |
| < |
| css::table::XTableRows, |
| css::lang::XServiceInfo |
| > |
| { |
| class Impl; |
| ::sw::UnoImplPtr<Impl> m_pImpl; |
| SwFrameFormat* GetFrameFormat(); |
| const SwFrameFormat* GetFrameFormat() const { return const_cast<SwXTableRows*>(this)->GetFrameFormat(); } |
| virtual ~SwXTableRows() override; |
| |
| public: |
| SwXTableRows(SwFrameFormat& rFrameFormat); |
| |
| //XIndexAccess |
| SW_DLLPUBLIC virtual sal_Int32 SAL_CALL getCount() override; |
| virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override; |
| |
| //XElementAccess |
| virtual css::uno::Type SAL_CALL getElementType( ) override; |
| virtual sal_Bool SAL_CALL hasElements( ) override; |
| |
| //XTableRows |
| virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) override; |
| virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) override; |
| |
| //XServiceInfo |
| virtual OUString SAL_CALL getImplementationName() override; |
| virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
| }; |
| |
| class SwXTableColumns final : public cppu::WeakImplHelper |
| < |
| css::table::XTableColumns, |
| css::lang::XServiceInfo |
| > |
| { |
| private: |
| class Impl; |
| ::sw::UnoImplPtr<Impl> m_pImpl; |
| SwFrameFormat* GetFrameFormat() const; |
| |
| virtual ~SwXTableColumns() override; |
| public: |
| SwXTableColumns(SwFrameFormat& rFrameFormat); |
| |
| |
| //XIndexAccess |
| virtual sal_Int32 SAL_CALL getCount() override; |
| virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override; |
| |
| //XElementAccess |
| virtual css::uno::Type SAL_CALL getElementType( ) override; |
| virtual sal_Bool SAL_CALL hasElements( ) override; |
| |
| //XTableColumns |
| virtual void SAL_CALL insertByIndex(sal_Int32 nIndex, sal_Int32 nCount) override; |
| virtual void SAL_CALL removeByIndex(sal_Int32 nIndex, sal_Int32 nCount) override; |
| |
| //XServiceInfo |
| virtual OUString SAL_CALL getImplementationName() override; |
| virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; |
| virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override; |
| }; |
| |
| int sw_CompareCellRanges( |
| std::u16string_view aRange1StartCell, std::u16string_view aRange1EndCell, |
| std::u16string_view aRange2StartCell, std::u16string_view aRange2EndCell, |
| bool bCmpColsFirst ); |
| |
| void sw_NormalizeRange( OUString &rCell1, OUString &rCell2 ); |
| |
| OUString sw_GetCellName( sal_Int32 nColumn, sal_Int32 nRow ); |
| |
| int sw_CompareCellsByColFirst( std::u16string_view aCellName1, std::u16string_view aCellName2 ); |
| |
| int sw_CompareCellsByRowFirst( std::u16string_view aCellName1, std::u16string_view aCellName2 ); |
| |
| #endif |
| |
| /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |