1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef _SVX_TABLEROW_HXX_ 29 #define _SVX_TABLEROW_HXX_ 30 31 #include <com/sun/star/table/XCellRange.hpp> 32 #include <com/sun/star/container/XNamed.hpp> 33 #include <cppuhelper/implbase2.hxx> 34 35 #include "propertyset.hxx" 36 #include "tablemodel.hxx" 37 38 // ----------------------------------------------------------------------------- 39 40 namespace sdr { namespace table { 41 42 // ----------------------------------------------------------------------------- 43 // TableRow 44 // ----------------------------------------------------------------------------- 45 46 typedef ::cppu::ImplInheritanceHelper2< ::comphelper::FastPropertySet, ::com::sun::star::table::XCellRange, ::com::sun::star::container::XNamed > TableRowBase; 47 48 class TableRow : public TableRowBase 49 { 50 friend class TableModel; 51 friend class TableRowUndo; 52 public: 53 TableRow( const TableModelRef& xTableModel, sal_Int32 nRow, sal_Int32 nColumns ); 54 virtual ~TableRow(); 55 56 void dispose(); 57 void throwIfDisposed() const throw (::com::sun::star::uno::RuntimeException); 58 59 TableRow& operator=( const TableRow& ); 60 61 void insertColumns( sal_Int32 nIndex, sal_Int32 nCount, CellVector::iterator* pIter = 0 ); 62 void removeColumns( sal_Int32 nIndex, sal_Int32 nCount ); 63 64 // XCellRange 65 virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > SAL_CALL getCellByPosition( sal_Int32 nColumn, sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 66 virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByPosition( sal_Int32 nLeft, sal_Int32 nTop, sal_Int32 nRight, sal_Int32 nBottom ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 67 virtual ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > SAL_CALL getCellRangeByName( const ::rtl::OUString& aRange ) throw (::com::sun::star::uno::RuntimeException); 68 69 // XNamed 70 virtual ::rtl::OUString SAL_CALL getName() throw (::com::sun::star::uno::RuntimeException); 71 virtual void SAL_CALL setName( const ::rtl::OUString& aName ) throw (::com::sun::star::uno::RuntimeException); 72 73 // XFastPropertySet 74 virtual void SAL_CALL setFastPropertyValue( ::sal_Int32 nHandle, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); 75 virtual ::com::sun::star::uno::Any SAL_CALL getFastPropertyValue( ::sal_Int32 nHandle ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); 76 77 private: 78 static rtl::Reference< ::comphelper::FastPropertySetInfo > getStaticPropertySetInfo(); 79 80 TableModelRef mxTableModel; 81 CellVector maCells; 82 sal_Int32 mnRow; 83 sal_Int32 mnHeight; 84 sal_Bool mbOptimalHeight; 85 sal_Bool mbIsVisible; 86 sal_Bool mbIsStartOfNewPage; 87 ::rtl::OUString maName; 88 }; 89 90 } } 91 92 #endif 93