1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski #ifndef _ACCDOC_HXX 24*b1cdbd2cSJim Jagielski #define _ACCDOC_HXX 25*b1cdbd2cSJim Jagielski #ifndef _ACCCONTEXT_HXX 26*b1cdbd2cSJim Jagielski #include "acccontext.hxx" 27*b1cdbd2cSJim Jagielski #endif 28*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleSelection.hpp> 29*b1cdbd2cSJim Jagielski #include <com/sun/star/document/XEventListener.hpp> 30*b1cdbd2cSJim Jagielski #include <accselectionhelper.hxx> 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_ACCESSIBILITY_XAccessibleExtendedAttributes_HPP_ 33*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp> 34*b1cdbd2cSJim Jagielski #endif 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLEGETACCFLOWTO_HPP_ 37*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp> 38*b1cdbd2cSJim Jagielski #endif 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski class VclSimpleEvent; 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski /** 43*b1cdbd2cSJim Jagielski * base class for SwAccessibleDocument (in this same header file) and 44*b1cdbd2cSJim Jagielski * SwAccessiblePreview 45*b1cdbd2cSJim Jagielski */ 46*b1cdbd2cSJim Jagielski class SwAccessibleDocumentBase : public SwAccessibleContext 47*b1cdbd2cSJim Jagielski { 48*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 49*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessible> mxParent; 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski Window* mpChildWin; // protected by solar mutext 52*b1cdbd2cSJim Jagielski 53*b1cdbd2cSJim Jagielski using SwAccessibleFrame::SetVisArea; 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski protected: 56*b1cdbd2cSJim Jagielski 57*b1cdbd2cSJim Jagielski virtual ~SwAccessibleDocumentBase(); 58*b1cdbd2cSJim Jagielski 59*b1cdbd2cSJim Jagielski public: 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski SwAccessibleDocumentBase( SwAccessibleMap* pInitMap ); 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski void SetVisArea(); 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski virtual void AddChild( Window *pWin, sal_Bool bFireEvent = sal_True ); 66*b1cdbd2cSJim Jagielski virtual void RemoveChild( Window *pWin ); 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski //===== XAccessibleContext ============================================== 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski /// Return the number of currently visible children. 71*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getAccessibleChildCount (void) 72*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski /// Return the specified child or NULL if index is invalid. 75*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL 76*b1cdbd2cSJim Jagielski getAccessibleChild (sal_Int32 nIndex) 77*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException, 78*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IndexOutOfBoundsException); 79*b1cdbd2cSJim Jagielski 80*b1cdbd2cSJim Jagielski /// Return a reference to the parent. 81*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL 82*b1cdbd2cSJim Jagielski getAccessibleParent (void) 83*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski /// Return this objects index among the parents children. 86*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL 87*b1cdbd2cSJim Jagielski getAccessibleIndexInParent (void) 88*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski /// Return this object's description. 91*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL 92*b1cdbd2cSJim Jagielski getAccessibleDescription (void) throw (com::sun::star::uno::RuntimeException); 93*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getAccessibleName (void) throw (::com::sun::star::uno::RuntimeException); 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski //===== XAccessibleComponent ============================================== 96*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL containsPoint( 97*b1cdbd2cSJim Jagielski const ::com::sun::star::awt::Point& aPoint ) 98*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< 101*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( 102*b1cdbd2cSJim Jagielski const ::com::sun::star::awt::Point& aPoint ) 103*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds() 106*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Point SAL_CALL getLocation() 109*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 110*b1cdbd2cSJim Jagielski 111*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen() 112*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 113*b1cdbd2cSJim Jagielski 114*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Size SAL_CALL getSize() 115*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 116*b1cdbd2cSJim Jagielski }; 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski /** 121*b1cdbd2cSJim Jagielski * access to an accessible Writer document 122*b1cdbd2cSJim Jagielski */ 123*b1cdbd2cSJim Jagielski class SwAccessibleDocument : public SwAccessibleDocumentBase, 124*b1cdbd2cSJim Jagielski public com::sun::star::accessibility::XAccessibleSelection, 125*b1cdbd2cSJim Jagielski public com::sun::star::document::XEventListener, 126*b1cdbd2cSJim Jagielski public com::sun::star::accessibility::XAccessibleExtendedAttributes, 127*b1cdbd2cSJim Jagielski public com::sun::star::accessibility::XAccessibleGetAccFlowTo 128*b1cdbd2cSJim Jagielski { 129*b1cdbd2cSJim Jagielski // Implementation for XAccessibleSelection interface 130*b1cdbd2cSJim Jagielski SwAccessibleSelectionHelper maSelectionHelper; 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski protected: 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski // Set states for getAccessibleStateSet. 135*b1cdbd2cSJim Jagielski // This drived class additinaly sets MULTISELECTABLE(1) 136*b1cdbd2cSJim Jagielski virtual void GetStates( ::utl::AccessibleStateSetHelper& rStateSet ); 137*b1cdbd2cSJim Jagielski 138*b1cdbd2cSJim Jagielski virtual ~SwAccessibleDocument(); 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski public: 141*b1cdbd2cSJim Jagielski 142*b1cdbd2cSJim Jagielski SwAccessibleDocument( SwAccessibleMap* pInitMap ); 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski DECL_LINK( WindowChildEventListener, VclSimpleEvent* ); 145*b1cdbd2cSJim Jagielski //===== XEventListener==================================================== 146*b1cdbd2cSJim Jagielski virtual void SAL_CALL notifyEvent( const ::com::sun::star::document::EventObject& Event ) 147*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 148*b1cdbd2cSJim Jagielski virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Event ) 149*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielski //===== XServiceInfo ==================================================== 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielski /** Returns an identifier for the implementation of this object. 154*b1cdbd2cSJim Jagielski */ 155*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL 156*b1cdbd2cSJim Jagielski getImplementationName (void) 157*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski /** Return whether the specified service is supported by this class. 160*b1cdbd2cSJim Jagielski */ 161*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 162*b1cdbd2cSJim Jagielski supportsService (const ::rtl::OUString& sServiceName) 163*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 164*b1cdbd2cSJim Jagielski 165*b1cdbd2cSJim Jagielski /** Returns a list of all supported services. In this case that is just 166*b1cdbd2cSJim Jagielski the AccessibleContext service. 167*b1cdbd2cSJim Jagielski */ 168*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL 169*b1cdbd2cSJim Jagielski getSupportedServiceNames (void) 170*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski //===== XInterface ====================================================== 173*b1cdbd2cSJim Jagielski 174*b1cdbd2cSJim Jagielski // XInterface is inherited through SwAcessibleContext and 175*b1cdbd2cSJim Jagielski // XAccessibleSelection. These methods are needed to avoid 176*b1cdbd2cSJim Jagielski // ambigiouties. 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( 179*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Type& aType ) 180*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 181*b1cdbd2cSJim Jagielski acquire()182*b1cdbd2cSJim Jagielski virtual void SAL_CALL acquire( ) throw () 183*b1cdbd2cSJim Jagielski { SwAccessibleContext::acquire(); }; 184*b1cdbd2cSJim Jagielski release()185*b1cdbd2cSJim Jagielski virtual void SAL_CALL release( ) throw () 186*b1cdbd2cSJim Jagielski { SwAccessibleContext::release(); }; 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski //====== XTypeProvider ==================================================== 189*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); 190*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException); 191*b1cdbd2cSJim Jagielski 192*b1cdbd2cSJim Jagielski //===== XAccessibleSelection ============================================ 193*b1cdbd2cSJim Jagielski 194*b1cdbd2cSJim Jagielski virtual void SAL_CALL selectAccessibleChild( 195*b1cdbd2cSJim Jagielski sal_Int32 nChildIndex ) 196*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 197*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 198*b1cdbd2cSJim Jagielski 199*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL isAccessibleChildSelected( 200*b1cdbd2cSJim Jagielski sal_Int32 nChildIndex ) 201*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 202*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 203*b1cdbd2cSJim Jagielski virtual void SAL_CALL clearAccessibleSelection( ) 204*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 205*b1cdbd2cSJim Jagielski virtual void SAL_CALL selectAllAccessibleChildren( ) 206*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 207*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) 208*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 209*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( 210*b1cdbd2cSJim Jagielski sal_Int32 nSelectedChildIndex ) 211*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 212*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException); 213*b1cdbd2cSJim Jagielski 214*b1cdbd2cSJim Jagielski // --> OD 2004-11-16 #111714# - index has to be treated as global child index. 215*b1cdbd2cSJim Jagielski virtual void SAL_CALL deselectAccessibleChild( 216*b1cdbd2cSJim Jagielski sal_Int32 nChildIndex ) 217*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::lang::IndexOutOfBoundsException, 218*b1cdbd2cSJim Jagielski ::com::sun::star::uno::RuntimeException ); 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Any SAL_CALL getExtendedAttributes() 221*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ; 222*b1cdbd2cSJim Jagielski //====== thread safe C++ interface ======================================== 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski // The object is not visible an longer and should be destroyed 225*b1cdbd2cSJim Jagielski virtual void Dispose( sal_Bool bRecursive = sal_False ); 226*b1cdbd2cSJim Jagielski 227*b1cdbd2cSJim Jagielski //===== XAccessibleComponent ============================================ 228*b1cdbd2cSJim Jagielski sal_Int32 SAL_CALL getBackground() 229*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 230*b1cdbd2cSJim Jagielski 231*b1cdbd2cSJim Jagielski //===== XAccessibleGetAccFlowTo ============================================ 232*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > 233*b1cdbd2cSJim Jagielski SAL_CALL get_AccFlowTo(const ::com::sun::star::uno::Any& rAny, sal_Int32 nType) 234*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 235*b1cdbd2cSJim Jagielski }; 236*b1cdbd2cSJim Jagielski 237*b1cdbd2cSJim Jagielski #endif 238*b1cdbd2cSJim Jagielski 239