101aa44aaSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 301aa44aaSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 401aa44aaSAndrew Rist * or more contributor license agreements. See the NOTICE file 501aa44aaSAndrew Rist * distributed with this work for additional information 601aa44aaSAndrew Rist * regarding copyright ownership. The ASF licenses this file 701aa44aaSAndrew Rist * to you under the Apache License, Version 2.0 (the 801aa44aaSAndrew Rist * "License"); you may not use this file except in compliance 901aa44aaSAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 1101aa44aaSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 1301aa44aaSAndrew Rist * Unless required by applicable law or agreed to in writing, 1401aa44aaSAndrew Rist * software distributed under the License is distributed on an 1501aa44aaSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1601aa44aaSAndrew Rist * KIND, either express or implied. See the License for the 1701aa44aaSAndrew Rist * specific language governing permissions and limitations 1801aa44aaSAndrew Rist * under the License. 19cdf0e10cSrcweir * 2001aa44aaSAndrew Rist *************************************************************/ 2101aa44aaSAndrew Rist 2201aa44aaSAndrew 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 <cppuhelper/implbase5.hxx> 33cdf0e10cSrcweir #include <cppuhelper/compbase6.hxx> 34cdf0e10cSrcweir #include <comphelper/broadcasthelper.hxx> 35cdf0e10cSrcweir #include <com/sun/star/lang/XUnoTunnel.hpp> 36cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessible.hpp> 37cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleContext.hpp> 38cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleComponent.hpp> 39cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleSelection.hpp> 40cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> 41cdf0e10cSrcweir #include <com/sun/star/lang/DisposedException.hpp> 42cdf0e10cSrcweir 43cdf0e10cSrcweir #include <memory> 44cdf0e10cSrcweir #include <vector> 45cdf0e10cSrcweir 46cdf0e10cSrcweir // ----------- 47cdf0e10cSrcweir // - Defines - 48cdf0e10cSrcweir // ----------- 49cdf0e10cSrcweir 50cdf0e10cSrcweir #define ITEM_OFFSET 4 51cdf0e10cSrcweir #define ITEM_OFFSET_DOUBLE 6 52cdf0e10cSrcweir #define NAME_LINE_OFF_X 2 53cdf0e10cSrcweir #define NAME_LINE_OFF_Y 2 54cdf0e10cSrcweir #define NAME_LINE_HEIGHT 2 55cdf0e10cSrcweir #define NAME_OFFSET 2 56cdf0e10cSrcweir #define SCRBAR_OFFSET 1 57cdf0e10cSrcweir #define VALUESET_ITEM_NONEITEM 0xFFFE 58cdf0e10cSrcweir #define VALUESET_SCROLL_OFFSET 4 59cdf0e10cSrcweir 60cdf0e10cSrcweir // -------------------- 61cdf0e10cSrcweir // - ValueSetItemType - 62cdf0e10cSrcweir // -------------------- 63cdf0e10cSrcweir 64cdf0e10cSrcweir enum ValueSetItemType 65cdf0e10cSrcweir { 66cdf0e10cSrcweir VALUESETITEM_NONE, 67cdf0e10cSrcweir VALUESETITEM_IMAGE, 68cdf0e10cSrcweir VALUESETITEM_COLOR, 69cdf0e10cSrcweir VALUESETITEM_USERDRAW, 70cdf0e10cSrcweir VALUESETITEM_SPACE 71cdf0e10cSrcweir }; 72cdf0e10cSrcweir 73cdf0e10cSrcweir // ---------------- 74cdf0e10cSrcweir // - ValueSetItem - 75cdf0e10cSrcweir // ---------------- 76cdf0e10cSrcweir 77cdf0e10cSrcweir class ValueSet; 78cdf0e10cSrcweir 79cdf0e10cSrcweir struct ValueSetItem 80cdf0e10cSrcweir { 81cdf0e10cSrcweir ValueSet& mrParent; 82cdf0e10cSrcweir sal_uInt16 mnId; 83cdf0e10cSrcweir sal_uInt16 mnBits; 84cdf0e10cSrcweir ValueSetItemType meType; 85cdf0e10cSrcweir Image maImage; 86cdf0e10cSrcweir Color maColor; 87cdf0e10cSrcweir XubString maText; 88cdf0e10cSrcweir void* mpData; 89cdf0e10cSrcweir Rectangle maRect; 90*2bfcd321SSteve Yin //IAccessibility2 Implementation 2009----- 91*2bfcd321SSteve Yin sal_Bool bSelected:1; 92*2bfcd321SSteve Yin //-----IAccessibility2 Implementation 2009 93cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >* mpxAcc; 94cdf0e10cSrcweir 95cdf0e10cSrcweir ValueSetItem( ValueSet& rParent ); 96cdf0e10cSrcweir ~ValueSetItem(); 97cdf0e10cSrcweir 98cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > 99cdf0e10cSrcweir GetAccessible( bool bIsTransientChildrenDisabled ); 100cdf0e10cSrcweir void ClearAccessible(); 101cdf0e10cSrcweir }; 102cdf0e10cSrcweir 103cdf0e10cSrcweir // ----------------------------------------------------------------------------- 104cdf0e10cSrcweir 105cdf0e10cSrcweir DECLARE_LIST( ValueItemList, ValueSetItem* ) 106cdf0e10cSrcweir 107cdf0e10cSrcweir // ----------------------------------------------------------------------------- 108cdf0e10cSrcweir 109cdf0e10cSrcweir struct ValueSet_Impl 110cdf0e10cSrcweir { 111cdf0e10cSrcweir ::std::auto_ptr< ValueItemList > mpItemList; 112cdf0e10cSrcweir bool mbIsTransientChildrenDisabled; 113cdf0e10cSrcweir Link maHighlightHdl; 114cdf0e10cSrcweir 115cdf0e10cSrcweir ValueSet_Impl() : mpItemList( ::std::auto_ptr< ValueItemList >( new ValueItemList() ) ), 116cdf0e10cSrcweir mbIsTransientChildrenDisabled( false ) 117cdf0e10cSrcweir { 118cdf0e10cSrcweir } 119cdf0e10cSrcweir }; 120cdf0e10cSrcweir 121cdf0e10cSrcweir // --------------- 122cdf0e10cSrcweir // - ValueSetAcc - 123cdf0e10cSrcweir // --------------- 124cdf0e10cSrcweir 125cdf0e10cSrcweir typedef ::cppu::WeakComponentImplHelper6< 126cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessible, 127cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleEventBroadcaster, 128cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleContext, 129cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleComponent, 130cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleSelection, 131cdf0e10cSrcweir ::com::sun::star::lang::XUnoTunnel > 132cdf0e10cSrcweir ValueSetAccComponentBase; 133cdf0e10cSrcweir 134cdf0e10cSrcweir class ValueSetAcc : 135cdf0e10cSrcweir public ::comphelper::OBaseMutex, 136cdf0e10cSrcweir public ValueSetAccComponentBase 137cdf0e10cSrcweir { 138cdf0e10cSrcweir public: 139cdf0e10cSrcweir 140cdf0e10cSrcweir ValueSetAcc( ValueSet* pParent, bool bIsTransientChildrenDisabled ); 141cdf0e10cSrcweir ~ValueSetAcc(); 142cdf0e10cSrcweir 143cdf0e10cSrcweir void FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue ); 144cdf0e10cSrcweir sal_Bool HasAccessibleListeners() const { return( mxEventListeners.size() > 0 ); } 145cdf0e10cSrcweir 146cdf0e10cSrcweir static ValueSetAcc* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw(); 147cdf0e10cSrcweir 148cdf0e10cSrcweir public: 149cdf0e10cSrcweir 150cdf0e10cSrcweir /** Called by the corresponding ValueSet when it gets the focus. 151cdf0e10cSrcweir Stores the new focus state and broadcasts a state change event. 152cdf0e10cSrcweir */ 153cdf0e10cSrcweir void GetFocus (void); 154cdf0e10cSrcweir 155cdf0e10cSrcweir /** Called by the corresponding ValueSet when it loses the focus. 156cdf0e10cSrcweir Stores the new focus state and broadcasts a state change event. 157cdf0e10cSrcweir */ 158cdf0e10cSrcweir void LoseFocus (void); 159cdf0e10cSrcweir 160cdf0e10cSrcweir 161cdf0e10cSrcweir // XAccessible 162cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException); 163cdf0e10cSrcweir 164cdf0e10cSrcweir // XAccessibleEventBroadcaster 165cdf0e10cSrcweir using cppu::WeakComponentImplHelper6<com::sun::star::accessibility::XAccessible, com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleContext, com::sun::star::accessibility::XAccessibleComponent, com::sun::star::accessibility::XAccessibleSelection, com::sun::star::lang::XUnoTunnel>::addEventListener; 166cdf0e10cSrcweir virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 167cdf0e10cSrcweir using cppu::WeakComponentImplHelper6<com::sun::star::accessibility::XAccessible, com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleContext, com::sun::star::accessibility::XAccessibleComponent, com::sun::star::accessibility::XAccessibleSelection, com::sun::star::lang::XUnoTunnel>::removeEventListener; 168cdf0e10cSrcweir virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 169cdf0e10cSrcweir 170cdf0e10cSrcweir // XAccessibleContext 171cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException); 172cdf0e10cSrcweir 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); 173cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException); 174cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException); 175cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException); 176cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException); 177cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException); 178cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException); 179cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException); 180cdf0e10cSrcweir virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException); 181cdf0e10cSrcweir 182cdf0e10cSrcweir // XAccessibleComponent 183cdf0e10cSrcweir virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException); 184cdf0e10cSrcweir 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); 185cdf0e10cSrcweir virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException); 186cdf0e10cSrcweir virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException); 187cdf0e10cSrcweir virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException); 188cdf0e10cSrcweir virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException); 189cdf0e10cSrcweir virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException); 190cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding( ) throw (::com::sun::star::uno::RuntimeException); 191cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException); 192cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException); 193cdf0e10cSrcweir 194cdf0e10cSrcweir // XAccessibleSelection 195cdf0e10cSrcweir virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 196cdf0e10cSrcweir virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 197cdf0e10cSrcweir virtual void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException); 198cdf0e10cSrcweir virtual void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException); 199cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException); 200cdf0e10cSrcweir 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); 201cdf0e10cSrcweir virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 202cdf0e10cSrcweir 203cdf0e10cSrcweir // XUnoTunnel 204cdf0e10cSrcweir virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException ); 205cdf0e10cSrcweir 206cdf0e10cSrcweir private: 207cdf0e10cSrcweir // ::vos::OMutex maMutex; 208cdf0e10cSrcweir ::std::vector< ::com::sun::star::uno::Reference< 209cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleEventListener > > mxEventListeners; 210cdf0e10cSrcweir ValueSet* mpParent; 211cdf0e10cSrcweir bool mbIsTransientChildrenDisabled; 212cdf0e10cSrcweir /// The current FOCUSED state. 213cdf0e10cSrcweir bool mbIsFocused; 214cdf0e10cSrcweir 215cdf0e10cSrcweir static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId(); 216cdf0e10cSrcweir 217cdf0e10cSrcweir /** Tell all listeners that the object is dying. This callback is 218cdf0e10cSrcweir usually called from the WeakComponentImplHelper class. 219cdf0e10cSrcweir */ 220cdf0e10cSrcweir virtual void SAL_CALL disposing (void); 221cdf0e10cSrcweir 222cdf0e10cSrcweir /** Return the number of items. This takes the None-Item into account. 223cdf0e10cSrcweir */ 224cdf0e10cSrcweir sal_uInt16 getItemCount (void) const; 225cdf0e10cSrcweir 226cdf0e10cSrcweir /** Return the item associated with the given index. The None-Item is 227cdf0e10cSrcweir taken into account which, when present, is taken to be the first 228cdf0e10cSrcweir (with index 0) item. 229cdf0e10cSrcweir @param nIndex 230cdf0e10cSrcweir Index of the item to return. The index 0 denotes the None-Item 231cdf0e10cSrcweir when present. 232cdf0e10cSrcweir @return 233cdf0e10cSrcweir Returns NULL when the given index is out of range. 234cdf0e10cSrcweir */ 235cdf0e10cSrcweir ValueSetItem* getItem (sal_uInt16 nIndex) const; 236cdf0e10cSrcweir 237cdf0e10cSrcweir /** Check whether or not the object has been disposed (or is in the 238cdf0e10cSrcweir state of beeing disposed). If that is the case then 239cdf0e10cSrcweir DisposedException is thrown to inform the (indirect) caller of the 240cdf0e10cSrcweir foul deed. 241cdf0e10cSrcweir */ 242cdf0e10cSrcweir void ThrowIfDisposed (void) 243cdf0e10cSrcweir throw (::com::sun::star::lang::DisposedException); 244cdf0e10cSrcweir 245cdf0e10cSrcweir /** Check whether or not the object has been disposed (or is in the 246cdf0e10cSrcweir state of beeing disposed). 247cdf0e10cSrcweir 248cdf0e10cSrcweir @return sal_True, if the object is disposed or in the course 249cdf0e10cSrcweir of being disposed. Otherwise, sal_False is returned. 250cdf0e10cSrcweir */ 251cdf0e10cSrcweir sal_Bool IsDisposed (void); 252cdf0e10cSrcweir 253cdf0e10cSrcweir /** Check whether the value set has a 'none' field, i.e. a field (button) 254cdf0e10cSrcweir that deselects any items (selects none of them). 255cdf0e10cSrcweir @return 256cdf0e10cSrcweir Returns <true/> if there is a 'none' field and <false/> it it is 257cdf0e10cSrcweir missing. 258cdf0e10cSrcweir */ 259cdf0e10cSrcweir bool HasNoneField (void) const; 260cdf0e10cSrcweir }; 261cdf0e10cSrcweir 262cdf0e10cSrcweir // ---------------- 263cdf0e10cSrcweir // - ValueItemAcc - 264cdf0e10cSrcweir // ---------------- 265cdf0e10cSrcweir 266cdf0e10cSrcweir class ValueItemAcc : public ::cppu::WeakImplHelper5< ::com::sun::star::accessibility::XAccessible, 267cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleEventBroadcaster, 268cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleContext, 269cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleComponent, 270cdf0e10cSrcweir ::com::sun::star::lang::XUnoTunnel > 271cdf0e10cSrcweir { 272cdf0e10cSrcweir private: 273cdf0e10cSrcweir 274cdf0e10cSrcweir ::std::vector< ::com::sun::star::uno::Reference< 275cdf0e10cSrcweir ::com::sun::star::accessibility::XAccessibleEventListener > > mxEventListeners; 276cdf0e10cSrcweir ::vos::OMutex maMutex; 277cdf0e10cSrcweir ValueSetItem* mpParent; 278cdf0e10cSrcweir bool mbIsTransientChildrenDisabled; 279cdf0e10cSrcweir 280cdf0e10cSrcweir static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId(); 281cdf0e10cSrcweir 282cdf0e10cSrcweir public: 283cdf0e10cSrcweir 284cdf0e10cSrcweir ValueItemAcc( ValueSetItem* pParent, bool bIsTransientChildrenDisabled ); 285cdf0e10cSrcweir ~ValueItemAcc(); 286cdf0e10cSrcweir 287cdf0e10cSrcweir void ParentDestroyed(); 288cdf0e10cSrcweir 289cdf0e10cSrcweir void FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue ); 290cdf0e10cSrcweir sal_Bool HasAccessibleListeners() const { return( mxEventListeners.size() > 0 ); } 291cdf0e10cSrcweir 292cdf0e10cSrcweir static ValueItemAcc* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw(); 293cdf0e10cSrcweir 294cdf0e10cSrcweir public: 295cdf0e10cSrcweir 296cdf0e10cSrcweir // XAccessible 297cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException); 298cdf0e10cSrcweir 299cdf0e10cSrcweir // XAccessibleEventBroadcaster 300cdf0e10cSrcweir virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 301cdf0e10cSrcweir virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException); 302cdf0e10cSrcweir 303cdf0e10cSrcweir // XAccessibleContext 304cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException); 305cdf0e10cSrcweir 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); 306cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException); 307cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException); 308cdf0e10cSrcweir virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException); 309cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException); 310cdf0e10cSrcweir virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException); 311cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException); 312cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException); 313cdf0e10cSrcweir virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException); 314cdf0e10cSrcweir 315cdf0e10cSrcweir // XAccessibleComponent 316cdf0e10cSrcweir virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException); 317cdf0e10cSrcweir 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); 318cdf0e10cSrcweir virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException); 319cdf0e10cSrcweir virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException); 320cdf0e10cSrcweir virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException); 321cdf0e10cSrcweir virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException); 322cdf0e10cSrcweir virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException); 323cdf0e10cSrcweir virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding( ) throw (::com::sun::star::uno::RuntimeException); 324cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException); 325cdf0e10cSrcweir virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException); 326cdf0e10cSrcweir 327cdf0e10cSrcweir // XUnoTunnel 328cdf0e10cSrcweir virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException ); 329cdf0e10cSrcweir }; 330