13334a7e6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 33334a7e6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 43334a7e6SAndrew Rist * or more contributor license agreements. See the NOTICE file 53334a7e6SAndrew Rist * distributed with this work for additional information 63334a7e6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 73334a7e6SAndrew Rist * to you under the Apache License, Version 2.0 (the 83334a7e6SAndrew Rist * "License"); you may not use this file except in compliance 93334a7e6SAndrew Rist * with the License. You may obtain a copy of the License at 103334a7e6SAndrew Rist * 113334a7e6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 123334a7e6SAndrew Rist * 133334a7e6SAndrew Rist * Unless required by applicable law or agreed to in writing, 143334a7e6SAndrew Rist * software distributed under the License is distributed on an 153334a7e6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 163334a7e6SAndrew Rist * KIND, either express or implied. See the License for the 173334a7e6SAndrew Rist * specific language governing permissions and limitations 183334a7e6SAndrew Rist * under the License. 193334a7e6SAndrew Rist * 203334a7e6SAndrew Rist *************************************************************/ 213334a7e6SAndrew Rist 223334a7e6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef _SVX_ACCESSIBILITY_ACCESSIBLE_TABLE_SHAPE_HXX 25cdf0e10cSrcweir #define _SVX_ACCESSIBILITY_ACCESSIBLE_TABLE_SHAPE_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <com/sun/star/table/XTable.hpp> 28cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleTable.hpp> 29cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleSelection.hpp> 30cdf0e10cSrcweir #include <com/sun/star/util/XModifyListener.hpp> 31cdf0e10cSrcweir 32cdf0e10cSrcweir #include <rtl/ref.hxx> 33cdf0e10cSrcweir 34cdf0e10cSrcweir #include <cppuhelper/implbase2.hxx> 35cdf0e10cSrcweir 36cdf0e10cSrcweir #include <svx/AccessibleShape.hxx> 379b8096d0SSteve Yin #include <com/sun/star/view/XSelectionChangeListener.hpp> 389b8096d0SSteve Yin #include <com/sun/star/accessibility/XAccessibleTableSelection.hpp> 399b8096d0SSteve Yin #include <cppuhelper/compbase5.hxx> 40cdf0e10cSrcweir 41cdf0e10cSrcweir #include <boost/noncopyable.hpp> 42cdf0e10cSrcweir 43cdf0e10cSrcweir namespace sdr { namespace table { 44cdf0e10cSrcweir class SvxTableController; 45cdf0e10cSrcweir } } 46cdf0e10cSrcweir 47cdf0e10cSrcweir namespace accessibility 48cdf0e10cSrcweir { 49cdf0e10cSrcweir class AccessibleTableShapeImpl; 509b8096d0SSteve Yin class AccessibleCell; 51cdf0e10cSrcweir 529b8096d0SSteve Yin /*typedef ::cppu::ImplInheritanceHelper2< AccessibleShape, 53cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleSelection, 54cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleTable 559b8096d0SSteve Yin > AccessibleTableShape_Base;*/ 569b8096d0SSteve Yin typedef ::cppu::ImplInheritanceHelper2< AccessibleShape, 579b8096d0SSteve Yin ::com::sun::star::accessibility::XAccessibleTable, 589b8096d0SSteve Yin ::com::sun::star::view::XSelectionChangeListener 59cdf0e10cSrcweir > AccessibleTableShape_Base; 60cdf0e10cSrcweir /** @descr 61cdf0e10cSrcweir */ 629b8096d0SSteve Yin class AccessibleTableShape : boost::noncopyable, public AccessibleTableShape_Base, public ::com::sun::star::accessibility::XAccessibleTableSelection 63cdf0e10cSrcweir { 64cdf0e10cSrcweir public: 65cdf0e10cSrcweir AccessibleTableShape( const AccessibleShapeInfo& rShapeInfo, const AccessibleShapeTreeInfo& rShapeTreeInfo ); 66cdf0e10cSrcweir virtual ~AccessibleTableShape( ); 67cdf0e10cSrcweir 68cdf0e10cSrcweir virtual void Init (void); 69cdf0e10cSrcweir 70cdf0e10cSrcweir // XInterface 71cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException); 72cdf0e10cSrcweir virtual void SAL_CALL acquire( ) throw (); 73cdf0e10cSrcweir virtual void SAL_CALL release( ) throw (); 74cdf0e10cSrcweir 75cdf0e10cSrcweir // XAccessible 76cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL getAccessibleContext( ) throw(::com::sun::star::uno::RuntimeException); 77cdf0e10cSrcweir 78cdf0e10cSrcweir // XAccessibleContext 79cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw(::com::sun::star::uno::RuntimeException); 80cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 81cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException); 82cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getAccessibleRole (void) throw (::com::sun::star::uno::RuntimeException); 83cdf0e10cSrcweir 84cdf0e10cSrcweir // XAccessibleTable 85cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleRowCount() throw (::com::sun::star::uno::RuntimeException); 86cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleColumnCount( ) throw (::com::sun::star::uno::RuntimeException); 87cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 88cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 89cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 90cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 91cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders( ) throw (::com::sun::star::uno::RuntimeException); 92cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders( ) throw (::com::sun::star::uno::RuntimeException); 93cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows( ) throw (::com::sun::star::uno::RuntimeException); 94cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns( ) throw (::com::sun::star::uno::RuntimeException); 95cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 96cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 97cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 98cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCaption( ) throw (::com::sun::star::uno::RuntimeException); 99cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleSummary( ) throw (::com::sun::star::uno::RuntimeException); 100cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 101cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 102cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 103cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 104cdf0e10cSrcweir 105cdf0e10cSrcweir // XAccessibleSelection 106cdf0e10cSrcweir virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException ); 107cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException ); 108cdf0e10cSrcweir virtual void SAL_CALL clearAccessibleSelection( ) throw ( ::com::sun::star::uno::RuntimeException ); 109cdf0e10cSrcweir virtual void SAL_CALL selectAllAccessibleChildren( ) throw ( ::com::sun::star::uno::RuntimeException ); 110cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw ( ::com::sun::star::uno::RuntimeException ); 111cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 112cdf0e10cSrcweir virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException ); 1139b8096d0SSteve Yin //===== XAccessibleTableSelection ============================================ 1149b8096d0SSteve Yin virtual sal_Bool SAL_CALL selectRow( sal_Int32 row ) 1159b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 1169b8096d0SSteve Yin virtual sal_Bool SAL_CALL selectColumn( sal_Int32 column ) 1179b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 1189b8096d0SSteve Yin virtual sal_Bool SAL_CALL unselectRow( sal_Int32 row ) 1199b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 1209b8096d0SSteve Yin virtual sal_Bool SAL_CALL unselectColumn( sal_Int32 column ) 1219b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 122cdf0e10cSrcweir 123cdf0e10cSrcweir // XServiceInfo 124cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getImplementationName( ) throw(::com::sun::star::uno::RuntimeException); 125cdf0e10cSrcweir 126cdf0e10cSrcweir // XComponent 127cdf0e10cSrcweir virtual void SAL_CALL disposing( ); 128cdf0e10cSrcweir 1299b8096d0SSteve Yin // XSelectionChangeListener 1309b8096d0SSteve Yin virtual void SAL_CALL 1319b8096d0SSteve Yin disposing (const ::com::sun::star::lang::EventObject& Source) 1329b8096d0SSteve Yin throw (::com::sun::star::uno::RuntimeException); 1339b8096d0SSteve Yin virtual void SAL_CALL 1349b8096d0SSteve Yin selectionChanged (const ::com::sun::star::lang::EventObject& rEvent) 1359b8096d0SSteve Yin throw (::com::sun::star::uno::RuntimeException); 1369b8096d0SSteve Yin sal_Int32 mnPreviousSelectionCount; 137cdf0e10cSrcweir using AccessibleShape::disposing; 1389b8096d0SSteve Yin friend class AccessibleTableHeaderShape; 139*0deba7fbSSteve Yin 1409b8096d0SSteve Yin void getColumnAndRow( sal_Int32 nChildIndex, sal_Int32& rnColumn, sal_Int32& rnRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException ); 141*0deba7fbSSteve Yin // overwrite the SetState & ResetState to do special operation for table cell's internal text 1429b8096d0SSteve Yin virtual sal_Bool SetState (sal_Int16 aState); 1439b8096d0SSteve Yin virtual sal_Bool ResetState (sal_Int16 aState); 1449b8096d0SSteve Yin // The following two methods are used to set state directly on table object, instread of the internal cell or paragraph. 1459b8096d0SSteve Yin sal_Bool SetStateDirectly (sal_Int16 aState); 1469b8096d0SSteve Yin sal_Bool ResetStateDirectly (sal_Int16 aState); 1479b8096d0SSteve Yin // Get the currently active cell which is text editing 1489b8096d0SSteve Yin AccessibleCell* GetActiveAccessibleCell(); 149cdf0e10cSrcweir 150cdf0e10cSrcweir protected: 151cdf0e10cSrcweir virtual ::rtl::OUString CreateAccessibleBaseName(void) throw (::com::sun::star::uno::RuntimeException); 152cdf0e10cSrcweir 153cdf0e10cSrcweir sdr::table::SvxTableController* getTableController(); 154cdf0e10cSrcweir 155cdf0e10cSrcweir void checkCellPosition( sal_Int32 nCol, sal_Int32 nRow ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException ); 156*0deba7fbSSteve Yin //IAccessibility2 Implementation 2009, move to public 1579b8096d0SSteve Yin //void getColumnAndRow( sal_Int32 nChildIndex, sal_Int32& rnColumn, sal_Int32& rnRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException ); 158cdf0e10cSrcweir 159cdf0e10cSrcweir private: 160cdf0e10cSrcweir rtl::Reference< AccessibleTableShapeImpl > mxImpl; 1619b8096d0SSteve Yin sal_Int32 GetIndexOfSelectedChild( sal_Int32 nSelectedChildIndex ) const; 1629b8096d0SSteve Yin }; 1639b8096d0SSteve Yin 1649b8096d0SSteve Yin typedef ::cppu::WeakImplHelper5< 1659b8096d0SSteve Yin ::com::sun::star::accessibility::XAccessible, 1669b8096d0SSteve Yin ::com::sun::star::accessibility::XAccessibleComponent, 1679b8096d0SSteve Yin ::com::sun::star::accessibility::XAccessibleContext, 1689b8096d0SSteve Yin ::com::sun::star::accessibility::XAccessibleTable, 1699b8096d0SSteve Yin ::com::sun::star::accessibility::XAccessibleTableSelection > 1709b8096d0SSteve Yin AccessibleTableHeaderShape_BASE; 1719b8096d0SSteve Yin 1729b8096d0SSteve Yin class AccessibleTableHeaderShape : boost::noncopyable, 1739b8096d0SSteve Yin public MutexOwner, 1749b8096d0SSteve Yin public AccessibleTableHeaderShape_BASE 1759b8096d0SSteve Yin { 1769b8096d0SSteve Yin public: 1779b8096d0SSteve Yin // bRow, sal_True means rowheader, sal_False means columnheader 1789b8096d0SSteve Yin AccessibleTableHeaderShape( AccessibleTableShape* pTable, sal_Bool bRow ); 1799b8096d0SSteve Yin virtual ~AccessibleTableHeaderShape(); 1809b8096d0SSteve Yin 1819b8096d0SSteve Yin // XAccessible 1829b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL getAccessibleContext( ) throw(::com::sun::star::uno::RuntimeException); 1839b8096d0SSteve Yin 1849b8096d0SSteve Yin // XAccessibleContext 1859b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException); 1869b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 1879b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException); 1889b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException); 1899b8096d0SSteve Yin virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException); 1909b8096d0SSteve Yin virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException); 1919b8096d0SSteve Yin virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException); 1929b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException); 1939b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException); 1949b8096d0SSteve Yin virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException); 1959b8096d0SSteve Yin 1969b8096d0SSteve Yin //XAccessibleComponent 1979b8096d0SSteve Yin virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException); 1989b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException); 1999b8096d0SSteve Yin virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException); 2009b8096d0SSteve Yin virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException); 2019b8096d0SSteve Yin virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException); 2029b8096d0SSteve Yin virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException); 2039b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException); 2049b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException); 2059b8096d0SSteve Yin virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException); 2069b8096d0SSteve Yin 2079b8096d0SSteve Yin // XAccessibleTable 2089b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleRowCount() throw (::com::sun::star::uno::RuntimeException); 2099b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleColumnCount( ) throw (::com::sun::star::uno::RuntimeException); 2109b8096d0SSteve Yin virtual ::rtl::OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2119b8096d0SSteve Yin virtual ::rtl::OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2129b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2139b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2149b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders( ) throw (::com::sun::star::uno::RuntimeException); 2159b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders( ) throw (::com::sun::star::uno::RuntimeException); 2169b8096d0SSteve Yin virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows( ) throw (::com::sun::star::uno::RuntimeException); 2179b8096d0SSteve Yin virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns( ) throw (::com::sun::star::uno::RuntimeException); 2189b8096d0SSteve Yin virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2199b8096d0SSteve Yin virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2209b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2219b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCaption( ) throw (::com::sun::star::uno::RuntimeException); 2229b8096d0SSteve Yin virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleSummary( ) throw (::com::sun::star::uno::RuntimeException); 2239b8096d0SSteve Yin virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2249b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2259b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2269b8096d0SSteve Yin virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 2279b8096d0SSteve Yin 2289b8096d0SSteve Yin //===== XAccessibleTableSelection ============================================ 2299b8096d0SSteve Yin virtual sal_Bool SAL_CALL selectRow( sal_Int32 row ) 2309b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 2319b8096d0SSteve Yin virtual sal_Bool SAL_CALL selectColumn( sal_Int32 column ) 2329b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 2339b8096d0SSteve Yin virtual sal_Bool SAL_CALL unselectRow( sal_Int32 row ) 2349b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 2359b8096d0SSteve Yin virtual sal_Bool SAL_CALL unselectColumn( sal_Int32 column ) 2369b8096d0SSteve Yin throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 2379b8096d0SSteve Yin private: 2389b8096d0SSteve Yin SVX_DLLPRIVATE explicit AccessibleTableHeaderShape( const ::com::sun::star::uno::Reference< 2399b8096d0SSteve Yin ::com::sun::star::accessibility::XAccessible>& rxParent ); 2409b8096d0SSteve Yin sal_Bool mbRow; 2419b8096d0SSteve Yin rtl::Reference< AccessibleTableShape > mpTable; 242cdf0e10cSrcweir }; 243cdf0e10cSrcweir 244cdf0e10cSrcweir } // end of namespace accessibility 245cdf0e10cSrcweir 246cdf0e10cSrcweir #endif 247