1*3334a7e6SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*3334a7e6SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*3334a7e6SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*3334a7e6SAndrew Rist * distributed with this work for additional information 6*3334a7e6SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*3334a7e6SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*3334a7e6SAndrew Rist * "License"); you may not use this file except in compliance 9*3334a7e6SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*3334a7e6SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*3334a7e6SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*3334a7e6SAndrew Rist * software distributed under the License is distributed on an 15*3334a7e6SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*3334a7e6SAndrew Rist * KIND, either express or implied. See the License for the 17*3334a7e6SAndrew Rist * specific language governing permissions and limitations 18*3334a7e6SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*3334a7e6SAndrew Rist *************************************************************/ 21*3334a7e6SAndrew Rist 22*3334a7e6SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #include <vos/mutex.hxx> 25cdf0e10cSrcweir #include <tools/list.hxx> 26cdf0e10cSrcweir #include <tools/color.hxx> 27cdf0e10cSrcweir #include <tools/string.hxx> 28cdf0e10cSrcweir #ifndef _IMAGE_HXX 29cdf0e10cSrcweir #include <vcl/image.hxx> 30cdf0e10cSrcweir #endif 31cdf0e10cSrcweir #include <rtl/uuid.h> 32cdf0e10cSrcweir #include <comphelper/accessibleselectionhelper.hxx> 33cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleTable.hpp> 34cdf0e10cSrcweir 35cdf0e10cSrcweir #include <vector> 36cdf0e10cSrcweir class SvxShowCharSet; 37cdf0e10cSrcweir 38cdf0e10cSrcweir namespace svx 39cdf0e10cSrcweir { 40cdf0e10cSrcweir typedef ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessible 41cdf0e10cSrcweir > OAccessibleHelper_Base_2; 42cdf0e10cSrcweir 43cdf0e10cSrcweir class SvxShowCharSetAcc; 44cdf0e10cSrcweir /** The class SvxShowCharSetVirtualAcc is used as a virtual class which contains the table and the scrollbar. 45cdf0e10cSrcweir In the vcl control, the table and the scrollbar exists in one class. This is not feasible for the accessibility api. 46cdf0e10cSrcweir */ 47cdf0e10cSrcweir class SvxShowCharSetVirtualAcc : public ::comphelper::OAccessibleComponentHelper, 48cdf0e10cSrcweir public OAccessibleHelper_Base_2 49cdf0e10cSrcweir { 50cdf0e10cSrcweir SvxShowCharSet* mpParent; // the vcl control 51cdf0e10cSrcweir SvxShowCharSetAcc* m_pTable; // the table, which holds the characters shown by the vcl control 52cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xAcc; // the ref to the table 53cdf0e10cSrcweir protected: 54cdf0e10cSrcweir virtual ~SvxShowCharSetVirtualAcc(); 55cdf0e10cSrcweir 56cdf0e10cSrcweir virtual void SAL_CALL disposing(); 57cdf0e10cSrcweir 58cdf0e10cSrcweir virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException); 59cdf0e10cSrcweir public: 60cdf0e10cSrcweir SvxShowCharSetVirtualAcc( SvxShowCharSet* pParent ); 61cdf0e10cSrcweir 62cdf0e10cSrcweir // XInterface 63cdf0e10cSrcweir DECLARE_XINTERFACE( ) 64cdf0e10cSrcweir DECLARE_XTYPEPROVIDER( ) 65cdf0e10cSrcweir 66cdf0e10cSrcweir // XAccessibleComponent 67cdf0e10cSrcweir virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException); 68cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding( ) throw (::com::sun::star::uno::RuntimeException); 69cdf0e10cSrcweir 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); 70cdf0e10cSrcweir //OAccessibleContextHelper 71cdf0e10cSrcweir // XAccessibleContext - still waiting to be overwritten 72cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException); 73cdf0e10cSrcweir 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); 74cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException); 75cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException); 76cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException); 77cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException); 78cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException); 79cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException); 80cdf0e10cSrcweir getAccessibleContext()81cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException) { return this; } 82cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException); 83cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException); 84cdf0e10cSrcweir 85cdf0e10cSrcweir 86cdf0e10cSrcweir // call the fireEvent method from the table when it exists. 87cdf0e10cSrcweir void SAL_CALL fireEvent( 88cdf0e10cSrcweir const sal_Int16 _nEventId, 89cdf0e10cSrcweir const ::com::sun::star::uno::Any& _rOldValue, 90cdf0e10cSrcweir const ::com::sun::star::uno::Any& _rNewValue 91cdf0e10cSrcweir ); 92cdf0e10cSrcweir 93cdf0e10cSrcweir // simple access methods getTable() const94cdf0e10cSrcweir inline SvxShowCharSetAcc* getTable() const { return m_pTable; } getCharSetControl() const95cdf0e10cSrcweir inline SvxShowCharSet* getCharSetControl() const { return mpParent; } 96cdf0e10cSrcweir }; 97cdf0e10cSrcweir 98cdf0e10cSrcweir 99cdf0e10cSrcweir class SvxShowCharSetItemAcc; 100cdf0e10cSrcweir // ---------------- 101cdf0e10cSrcweir // - SvxShowCharSetItem - 102cdf0e10cSrcweir // ---------------- 103cdf0e10cSrcweir /** Simple struct to hold some information about the single items of the table. 104cdf0e10cSrcweir */ 105cdf0e10cSrcweir struct SvxShowCharSetItem 106cdf0e10cSrcweir { 107cdf0e10cSrcweir SvxShowCharSet& mrParent; 108cdf0e10cSrcweir sal_uInt16 mnId; 109cdf0e10cSrcweir XubString maText; 110cdf0e10cSrcweir Rectangle maRect; 111cdf0e10cSrcweir SvxShowCharSetItemAcc* m_pItem; 112cdf0e10cSrcweir SvxShowCharSetAcc* m_pParent; 113cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xAcc; 114cdf0e10cSrcweir 115cdf0e10cSrcweir SvxShowCharSetItem( SvxShowCharSet& rParent,SvxShowCharSetAcc* _pParent,sal_uInt16 _nPos ); 116cdf0e10cSrcweir ~SvxShowCharSetItem(); 117cdf0e10cSrcweir 118cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetAccessible(); 119cdf0e10cSrcweir void ClearAccessible(); 120cdf0e10cSrcweir }; 121cdf0e10cSrcweir 122cdf0e10cSrcweir // ----------------------------------------------------------------------------- 123cdf0e10cSrcweir 124cdf0e10cSrcweir typedef ::cppu::ImplHelper2 < ::com::sun::star::accessibility::XAccessible, 125cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleTable 126cdf0e10cSrcweir > OAccessibleHelper_Base; 127cdf0e10cSrcweir // --------------- 128cdf0e10cSrcweir // - SvxShowCharSetAcc - 129cdf0e10cSrcweir // --------------- 130cdf0e10cSrcweir /** The table implemtentation of the vcl control. 131cdf0e10cSrcweir */ 132cdf0e10cSrcweir 133cdf0e10cSrcweir class SvxShowCharSetAcc : public ::comphelper::OAccessibleSelectionHelper, 134cdf0e10cSrcweir public OAccessibleHelper_Base 135cdf0e10cSrcweir { 136cdf0e10cSrcweir ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > m_aChildren; 137cdf0e10cSrcweir SvxShowCharSetVirtualAcc* m_pParent; // the virtual parent 138cdf0e10cSrcweir protected: 139cdf0e10cSrcweir virtual void SAL_CALL disposing(); 140cdf0e10cSrcweir public: 141cdf0e10cSrcweir SvxShowCharSetAcc( SvxShowCharSetVirtualAcc* _pParent ); 142cdf0e10cSrcweir 143cdf0e10cSrcweir DECLARE_XINTERFACE( ) 144cdf0e10cSrcweir DECLARE_XTYPEPROVIDER( ) 145cdf0e10cSrcweir 146cdf0e10cSrcweir // XAccessibleComponent 147cdf0e10cSrcweir virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException); 148cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding( ) throw (::com::sun::star::uno::RuntimeException); 149cdf0e10cSrcweir 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); 150cdf0e10cSrcweir 151cdf0e10cSrcweir //OAccessibleContextHelper 152cdf0e10cSrcweir // XAccessibleContext - still waiting to be overwritten 153cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException); 154cdf0e10cSrcweir 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); 155cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException); 156cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException); 157cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException); 158cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException); 159cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException); 160cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException); 161cdf0e10cSrcweir getAccessibleContext()162cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException) { return this; } 163cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException); 164cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException); 165cdf0e10cSrcweir 166cdf0e10cSrcweir // XAccessibleTable 167cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleRowCount( ) throw (::com::sun::star::uno::RuntimeException); 168cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleColumnCount( ) throw (::com::sun::star::uno::RuntimeException); 169cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 170cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 171cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 172cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 173cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders( ) throw (::com::sun::star::uno::RuntimeException); 174cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders( ) throw (::com::sun::star::uno::RuntimeException); 175cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows( ) throw (::com::sun::star::uno::RuntimeException); 176cdf0e10cSrcweir virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns( ) throw (::com::sun::star::uno::RuntimeException); 177cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 178cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 179cdf0e10cSrcweir 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); 180cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCaption( ) throw (::com::sun::star::uno::RuntimeException); 181cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleSummary( ) throw (::com::sun::star::uno::RuntimeException); 182cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 183cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 184cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 185cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 186cdf0e10cSrcweir 187cdf0e10cSrcweir fireEvent(const sal_Int16 _nEventId,const::com::sun::star::uno::Any & _rOldValue,const::com::sun::star::uno::Any & _rNewValue)188cdf0e10cSrcweir inline void SAL_CALL fireEvent( 189cdf0e10cSrcweir const sal_Int16 _nEventId, 190cdf0e10cSrcweir const ::com::sun::star::uno::Any& _rOldValue, 191cdf0e10cSrcweir const ::com::sun::star::uno::Any& _rNewValue 192cdf0e10cSrcweir ) 193cdf0e10cSrcweir { 194cdf0e10cSrcweir NotifyAccessibleEvent(_nEventId,_rOldValue,_rNewValue); 195cdf0e10cSrcweir } 196cdf0e10cSrcweir protected: 197cdf0e10cSrcweir 198cdf0e10cSrcweir virtual ~SvxShowCharSetAcc(); 199cdf0e10cSrcweir 200cdf0e10cSrcweir // OCommonAccessibleSelection 201cdf0e10cSrcweir // return if the specified child is visible => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx) 202cdf0e10cSrcweir virtual sal_Bool 203cdf0e10cSrcweir implIsSelected( sal_Int32 nAccessibleChildIndex ) 204cdf0e10cSrcweir throw (::com::sun::star::uno::RuntimeException); 205cdf0e10cSrcweir 206cdf0e10cSrcweir // select the specified child => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx) 207cdf0e10cSrcweir virtual void 208cdf0e10cSrcweir implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect ) 209cdf0e10cSrcweir throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 210cdf0e10cSrcweir 211cdf0e10cSrcweir // OCommonAccessibleComponent 212cdf0e10cSrcweir /// implements the calculation of the bounding rectangle - still waiting to be overwritten 213cdf0e10cSrcweir virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException); 214cdf0e10cSrcweir }; 215cdf0e10cSrcweir 216cdf0e10cSrcweir // ---------------- 217cdf0e10cSrcweir // - SvxShowCharSetItemAcc - 218cdf0e10cSrcweir // ---------------- 219cdf0e10cSrcweir /** The child implementation of the table. 220cdf0e10cSrcweir */ 221cdf0e10cSrcweir class SvxShowCharSetItemAcc : public ::comphelper::OAccessibleComponentHelper, 222cdf0e10cSrcweir public OAccessibleHelper_Base_2 223cdf0e10cSrcweir { 224cdf0e10cSrcweir private: 225cdf0e10cSrcweir SvxShowCharSetItem* mpParent; 226cdf0e10cSrcweir protected: 227cdf0e10cSrcweir virtual ~SvxShowCharSetItemAcc(); 228cdf0e10cSrcweir 229cdf0e10cSrcweir // OCommonAccessibleComponent 230cdf0e10cSrcweir /// implements the calculation of the bounding rectangle - still waiting to be overwritten 231cdf0e10cSrcweir virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException); 232cdf0e10cSrcweir public: 233cdf0e10cSrcweir 234cdf0e10cSrcweir // XInterface 235cdf0e10cSrcweir DECLARE_XINTERFACE( ) 236cdf0e10cSrcweir DECLARE_XTYPEPROVIDER( ) 237cdf0e10cSrcweir 238cdf0e10cSrcweir SvxShowCharSetItemAcc( SvxShowCharSetItem* pParent ); 239cdf0e10cSrcweir 240cdf0e10cSrcweir void ParentDestroyed(); 241cdf0e10cSrcweir 242cdf0e10cSrcweir // XAccessibleComponent 243cdf0e10cSrcweir virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException); 244cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding( ) throw (::com::sun::star::uno::RuntimeException); 245cdf0e10cSrcweir 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); 246cdf0e10cSrcweir 247cdf0e10cSrcweir //OAccessibleContextHelper 248cdf0e10cSrcweir // XAccessibleContext - still waiting to be overwritten 249cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException); 250cdf0e10cSrcweir 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); 251cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException); 252cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException); 253cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException); 254cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException); 255cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException); 256cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException); 257cdf0e10cSrcweir getAccessibleContext()258cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException) { return this; } 259cdf0e10cSrcweir getForeground()260cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException) { return mpParent->m_pParent->getForeground(); } getBackground()261cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException) { return mpParent->m_pParent->getBackground(); } 262cdf0e10cSrcweir fireEvent(const sal_Int16 _nEventId,const::com::sun::star::uno::Any & _rOldValue,const::com::sun::star::uno::Any & _rNewValue)263cdf0e10cSrcweir inline void SAL_CALL fireEvent( 264cdf0e10cSrcweir const sal_Int16 _nEventId, 265cdf0e10cSrcweir const ::com::sun::star::uno::Any& _rOldValue, 266cdf0e10cSrcweir const ::com::sun::star::uno::Any& _rNewValue 267cdf0e10cSrcweir ) 268cdf0e10cSrcweir { 269cdf0e10cSrcweir NotifyAccessibleEvent(_nEventId,_rOldValue,_rNewValue); 270cdf0e10cSrcweir } 271cdf0e10cSrcweir }; 272cdf0e10cSrcweir } 273cdf0e10cSrcweir 274cdf0e10cSrcweir 275