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 24*b1cdbd2cSJim Jagielski #ifndef SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_SORTER_OBJECT_HXX 25*b1cdbd2cSJim Jagielski #define SD_ACCESSIBILITY_ACCESSIBLE_SLIDE_SORTER_OBJECT_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "MutexOwner.hxx" 28*b1cdbd2cSJim Jagielski #include <cppuhelper/compbase5.hxx> 29*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessible.hpp> 30*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleContext.hpp> 31*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleComponent.hpp> 32*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleSelection.hpp> 33*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> 34*b1cdbd2cSJim Jagielski #include <com/sun/star/awt/XFocusListener.hpp> 35*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp> 36*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/DisposedException.hpp> 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski class SdPage; 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski namespace sd { namespace slidesorter { 41*b1cdbd2cSJim Jagielski class SlideSorter; 42*b1cdbd2cSJim Jagielski } } 43*b1cdbd2cSJim Jagielski 44*b1cdbd2cSJim Jagielski namespace accessibility { 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski typedef ::cppu::WeakComponentImplHelper5< 48*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessible, 49*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessibleEventBroadcaster, 50*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessibleContext, 51*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessibleComponent, 52*b1cdbd2cSJim Jagielski ::com::sun::star::lang::XServiceInfo > AccessibleSlideSorterObjectBase; 53*b1cdbd2cSJim Jagielski 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski /** This class makes page objects of the slide sorter accessible. 56*b1cdbd2cSJim Jagielski */ 57*b1cdbd2cSJim Jagielski class AccessibleSlideSorterObject 58*b1cdbd2cSJim Jagielski : public ::sd::MutexOwner, 59*b1cdbd2cSJim Jagielski public AccessibleSlideSorterObjectBase 60*b1cdbd2cSJim Jagielski { 61*b1cdbd2cSJim Jagielski public: 62*b1cdbd2cSJim Jagielski /** Create a new object that represents a page object in the slide 63*b1cdbd2cSJim Jagielski sorter. 64*b1cdbd2cSJim Jagielski @param rxParent 65*b1cdbd2cSJim Jagielski The accessible parent. 66*b1cdbd2cSJim Jagielski @param rSlideSorter 67*b1cdbd2cSJim Jagielski The slide sorter whose model manages the page. 68*b1cdbd2cSJim Jagielski @param nPageNumber 69*b1cdbd2cSJim Jagielski The number of the page in the range [0,nPageCount). 70*b1cdbd2cSJim Jagielski */ 71*b1cdbd2cSJim Jagielski AccessibleSlideSorterObject( 72*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 73*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessible >& rxParent, 74*b1cdbd2cSJim Jagielski ::sd::slidesorter::SlideSorter& rSlideSorter, 75*b1cdbd2cSJim Jagielski sal_uInt16 nPageNumber); 76*b1cdbd2cSJim Jagielski ~AccessibleSlideSorterObject (void); 77*b1cdbd2cSJim Jagielski 78*b1cdbd2cSJim Jagielski /** Return the page that is made accessible by the called object. 79*b1cdbd2cSJim Jagielski */ 80*b1cdbd2cSJim Jagielski SdPage* GetPage (void) const; 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski /** The page number as given to the constructor. 83*b1cdbd2cSJim Jagielski */ 84*b1cdbd2cSJim Jagielski sal_uInt16 GetPageNumber (void) const; 85*b1cdbd2cSJim Jagielski 86*b1cdbd2cSJim Jagielski void FireAccessibleEvent ( 87*b1cdbd2cSJim Jagielski short nEventId, 88*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& rOldValue, 89*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Any& rNewValue); 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielski virtual void SAL_CALL disposing (void); 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski //===== XAccessible ======================================================= 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< 98*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL 99*b1cdbd2cSJim Jagielski getAccessibleContext (void) 100*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielski //===== XAccessibleEventBroadcaster ======================================= 104*b1cdbd2cSJim Jagielski virtual void SAL_CALL 105*b1cdbd2cSJim Jagielski addEventListener( 106*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 107*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener) 108*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski virtual void SAL_CALL 111*b1cdbd2cSJim Jagielski removeEventListener( 112*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 113*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessibleEventListener >& rxListener ) 114*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski using cppu::WeakComponentImplHelperBase::addEventListener; 117*b1cdbd2cSJim Jagielski using cppu::WeakComponentImplHelperBase::removeEventListener; 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski //===== XAccessibleContext ============================================== 120*b1cdbd2cSJim Jagielski 121*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL 122*b1cdbd2cSJim Jagielski getAccessibleChildCount (void) throw (::com::sun::star::uno::RuntimeException); 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL 125*b1cdbd2cSJim Jagielski getAccessibleChild (sal_Int32 nIndex) 126*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL 129*b1cdbd2cSJim Jagielski getAccessibleParent (void) 130*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL 133*b1cdbd2cSJim Jagielski getAccessibleIndexInParent (void) 134*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 135*b1cdbd2cSJim Jagielski 136*b1cdbd2cSJim Jagielski virtual sal_Int16 SAL_CALL 137*b1cdbd2cSJim Jagielski getAccessibleRole (void) 138*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL 141*b1cdbd2cSJim Jagielski getAccessibleDescription (void) 142*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL 145*b1cdbd2cSJim Jagielski getAccessibleName (void) 146*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL 149*b1cdbd2cSJim Jagielski getAccessibleRelationSet (void) 150*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet> SAL_CALL 153*b1cdbd2cSJim Jagielski getAccessibleStateSet (void) 154*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 155*b1cdbd2cSJim Jagielski 156*b1cdbd2cSJim Jagielski virtual ::com::sun::star::lang::Locale SAL_CALL 157*b1cdbd2cSJim Jagielski getLocale (void) 158*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException, 159*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::IllegalAccessibleComponentStateException); 160*b1cdbd2cSJim Jagielski 161*b1cdbd2cSJim Jagielski 162*b1cdbd2cSJim Jagielski //===== XAccessibleComponent ================================================ 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL containsPoint ( 165*b1cdbd2cSJim Jagielski const ::com::sun::star::awt::Point& aPoint) 166*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 167*b1cdbd2cSJim Jagielski 168*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL 169*b1cdbd2cSJim Jagielski getAccessibleAtPoint ( 170*b1cdbd2cSJim Jagielski const ::com::sun::star::awt::Point& aPoint) 171*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds (void) 174*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 175*b1cdbd2cSJim Jagielski 176*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Point SAL_CALL getLocation (void) 177*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen (void) 180*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 181*b1cdbd2cSJim Jagielski 182*b1cdbd2cSJim Jagielski virtual ::com::sun::star::awt::Size SAL_CALL getSize (void) 183*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 184*b1cdbd2cSJim Jagielski 185*b1cdbd2cSJim Jagielski virtual void SAL_CALL grabFocus (void) 186*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getForeground (void) 189*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL getBackground (void) 192*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 193*b1cdbd2cSJim Jagielski 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski 196*b1cdbd2cSJim Jagielski //===== XServiceInfo ==================================================== 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski /** Returns an identifier for the implementation of this object. 199*b1cdbd2cSJim Jagielski */ 200*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL 201*b1cdbd2cSJim Jagielski getImplementationName (void) 202*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski /** Return whether the specified service is supported by this class. 205*b1cdbd2cSJim Jagielski */ 206*b1cdbd2cSJim Jagielski virtual sal_Bool SAL_CALL 207*b1cdbd2cSJim Jagielski supportsService (const ::rtl::OUString& sServiceName) 208*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski /** Returns a list of all supported services. 211*b1cdbd2cSJim Jagielski */ 212*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL 213*b1cdbd2cSJim Jagielski getSupportedServiceNames (void) 214*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski private: 218*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< 219*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessible> mxParent; 220*b1cdbd2cSJim Jagielski sal_uInt16 mnPageNumber; 221*b1cdbd2cSJim Jagielski ::sd::slidesorter::SlideSorter& mrSlideSorter; 222*b1cdbd2cSJim Jagielski sal_uInt32 mnClientId; 223*b1cdbd2cSJim Jagielski 224*b1cdbd2cSJim Jagielski /** Check whether or not the object has been disposed (or is in the 225*b1cdbd2cSJim Jagielski state of beeing disposed). If that is the case then 226*b1cdbd2cSJim Jagielski DisposedException is thrown to inform the (indirect) caller of the 227*b1cdbd2cSJim Jagielski foul deed. 228*b1cdbd2cSJim Jagielski */ 229*b1cdbd2cSJim Jagielski void ThrowIfDisposed (void) 230*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::DisposedException); 231*b1cdbd2cSJim Jagielski 232*b1cdbd2cSJim Jagielski /** Check whether or not the object has been disposed (or is in the 233*b1cdbd2cSJim Jagielski state of beeing disposed). 234*b1cdbd2cSJim Jagielski 235*b1cdbd2cSJim Jagielski @return sal_True, if the object is disposed or in the course 236*b1cdbd2cSJim Jagielski of being disposed. Otherwise, sal_False is returned. 237*b1cdbd2cSJim Jagielski */ 238*b1cdbd2cSJim Jagielski sal_Bool IsDisposed (void); 239*b1cdbd2cSJim Jagielski }; 240*b1cdbd2cSJim Jagielski 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski 243*b1cdbd2cSJim Jagielski } // end of namespace ::accessibility 244*b1cdbd2cSJim Jagielski 245*b1cdbd2cSJim Jagielski #endif 246