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_DRAW_DOCUMENT_VIEW_HXX 25*b1cdbd2cSJim Jagielski #define _SD_ACCESSIBILITY_ACCESSIBLE_DRAW_DOCUMENT_VIEW_HXX 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #include "AccessibleDocumentViewBase.hxx" 28*b1cdbd2cSJim Jagielski 29*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleGroupPosition.hpp> 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski namespace accessibility { 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski 34*b1cdbd2cSJim Jagielski /** This class makes draw documents in the general view modes 35*b1cdbd2cSJim Jagielski accessible. It passes all shapes on the current draw page to a 36*b1cdbd2cSJim Jagielski children manager and additionally creates a new shape that 37*b1cdbd2cSJim Jagielski represents the actual draw page. 38*b1cdbd2cSJim Jagielski 39*b1cdbd2cSJim Jagielski Please see the documentation of the base class for further 40*b1cdbd2cSJim Jagielski explanations of the individual methods. 41*b1cdbd2cSJim Jagielski */ 42*b1cdbd2cSJim Jagielski class AccessibleDrawDocumentView : 43*b1cdbd2cSJim Jagielski public AccessibleDocumentViewBase 44*b1cdbd2cSJim Jagielski ,public ::com::sun::star::accessibility::XAccessibleGroupPosition 45*b1cdbd2cSJim Jagielski { 46*b1cdbd2cSJim Jagielski public: 47*b1cdbd2cSJim Jagielski //===== internal ======================================================== 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski AccessibleDrawDocumentView (::sd::Window* pSdWindow, 50*b1cdbd2cSJim Jagielski ::sd::ViewShell* pViewShell, 51*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 52*b1cdbd2cSJim Jagielski ::com::sun::star::frame::XController>& rxController, 53*b1cdbd2cSJim Jagielski const ::com::sun::star::uno::Reference< 54*b1cdbd2cSJim Jagielski ::com::sun::star::accessibility::XAccessible>& rxParent); 55*b1cdbd2cSJim Jagielski 56*b1cdbd2cSJim Jagielski virtual ~AccessibleDrawDocumentView (void); 57*b1cdbd2cSJim Jagielski 58*b1cdbd2cSJim Jagielski /** Complete the initialization begun in the constructor. 59*b1cdbd2cSJim Jagielski */ 60*b1cdbd2cSJim Jagielski virtual void Init (void); 61*b1cdbd2cSJim Jagielski 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski //===== IAccessibleViewForwarderListener ================================ 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski virtual void ViewForwarderChanged (ChangeType aChangeType, 66*b1cdbd2cSJim Jagielski const IAccessibleViewForwarder* pViewForwarder); 67*b1cdbd2cSJim Jagielski 68*b1cdbd2cSJim Jagielski //===== XAccessibleContext ============================================== 69*b1cdbd2cSJim Jagielski 70*b1cdbd2cSJim Jagielski virtual sal_Int32 SAL_CALL 71*b1cdbd2cSJim Jagielski getAccessibleChildCount (void) 72*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 73*b1cdbd2cSJim Jagielski 74*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL 75*b1cdbd2cSJim Jagielski getAccessibleChild (sal_Int32 nIndex) 76*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException, 77*b1cdbd2cSJim Jagielski ::com::sun::star::lang::IndexOutOfBoundsException); 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL 80*b1cdbd2cSJim Jagielski getAccessibleName(void) 81*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 82*b1cdbd2cSJim Jagielski 83*b1cdbd2cSJim Jagielski //===== lang::XEventListener ============================================ 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski virtual void SAL_CALL 86*b1cdbd2cSJim Jagielski disposing (const ::com::sun::star::lang::EventObject& rEventObject) 87*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 88*b1cdbd2cSJim Jagielski 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski //===== XPropertyChangeListener ========================================= 91*b1cdbd2cSJim Jagielski 92*b1cdbd2cSJim Jagielski virtual void SAL_CALL 93*b1cdbd2cSJim Jagielski propertyChange (const ::com::sun::star::beans::PropertyChangeEvent& rEventObject) 94*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 95*b1cdbd2cSJim Jagielski //===== XInterface ====================================================== 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski virtual com::sun::star::uno::Any SAL_CALL 98*b1cdbd2cSJim Jagielski queryInterface (const com::sun::star::uno::Type & rType) 99*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 100*b1cdbd2cSJim Jagielski 101*b1cdbd2cSJim Jagielski virtual void SAL_CALL 102*b1cdbd2cSJim Jagielski acquire (void) 103*b1cdbd2cSJim Jagielski throw (); 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski virtual void SAL_CALL 106*b1cdbd2cSJim Jagielski release (void) 107*b1cdbd2cSJim Jagielski throw (); 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski //===== XAccessibleGroupPosition ========================================= 110*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL 111*b1cdbd2cSJim Jagielski getGroupPosition( const ::com::sun::star::uno::Any& rAny ) 112*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 113*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL getObjectLink( const ::com::sun::star::uno::Any& accoject ) 114*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 115*b1cdbd2cSJim Jagielski 116*b1cdbd2cSJim Jagielski protected: 117*b1cdbd2cSJim Jagielski 118*b1cdbd2cSJim Jagielski //===== XServiceInfo ==================================================== 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski virtual ::rtl::OUString SAL_CALL 121*b1cdbd2cSJim Jagielski getImplementationName (void) 122*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL 125*b1cdbd2cSJim Jagielski getSupportedServiceNames (void) 126*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski virtual sal_Bool 130*b1cdbd2cSJim Jagielski implIsSelected( sal_Int32 nAccessibleChildIndex ) 131*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 132*b1cdbd2cSJim Jagielski 133*b1cdbd2cSJim Jagielski /** Select or deselect the specified child or all children if the given 134*b1cdbd2cSJim Jagielski index has the special value ACCESSIBLE_SELECTION_CHILD_ALL. 135*b1cdbd2cSJim Jagielski Selecting or deselecting a child sets or resets the 136*b1cdbd2cSJim Jagielski <const>SELECTED</const> state and selects or deslects the UNO shape 137*b1cdbd2cSJim Jagielski beeing made accessible by the child. 138*b1cdbd2cSJim Jagielski @param nAccessibleChildIndex 139*b1cdbd2cSJim Jagielski Index of the child to select or deselect. If the parameter has 140*b1cdbd2cSJim Jagielski the value ACCESSIBLE_SELECTION_CHILD_ALL then all children are 141*b1cdbd2cSJim Jagielski selected or deslected. 142*b1cdbd2cSJim Jagielski @param bSelect 143*b1cdbd2cSJim Jagielski Indicates whether to select or deselect the specified child 144*b1cdbd2cSJim Jagielski reps. children. 145*b1cdbd2cSJim Jagielski */ 146*b1cdbd2cSJim Jagielski virtual void 147*b1cdbd2cSJim Jagielski implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect ) 148*b1cdbd2cSJim Jagielski throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException); 149*b1cdbd2cSJim Jagielski private: 150*b1cdbd2cSJim Jagielski ::sd::ViewShell* mpSdViewSh; 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski protected: 153*b1cdbd2cSJim Jagielski /** This object manages the shapes of the represented draw page. It is 154*b1cdbd2cSJim Jagielski responsible to determine the visible shapes and create on demand the 155*b1cdbd2cSJim Jagielski accessible objects representing them. 156*b1cdbd2cSJim Jagielski */ 157*b1cdbd2cSJim Jagielski ChildrenManager* mpChildrenManager; 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski // This method is called from the component helper base class while 160*b1cdbd2cSJim Jagielski // disposing. 161*b1cdbd2cSJim Jagielski virtual void SAL_CALL disposing (void); 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielski /** Create a shape the represents the page as seen on the screen. 164*b1cdbd2cSJim Jagielski */ 165*b1cdbd2cSJim Jagielski AccessiblePageShape* CreateDrawPageShape (void); 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielski /// Create an accessible name that contains the current view mode. 168*b1cdbd2cSJim Jagielski virtual ::rtl::OUString 169*b1cdbd2cSJim Jagielski CreateAccessibleName () 170*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski /** Create an accessible description that contains the current 173*b1cdbd2cSJim Jagielski view mode. 174*b1cdbd2cSJim Jagielski */ 175*b1cdbd2cSJim Jagielski virtual ::rtl::OUString 176*b1cdbd2cSJim Jagielski CreateAccessibleDescription () 177*b1cdbd2cSJim Jagielski throw (::com::sun::star::uno::RuntimeException); 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski /** Make sure that the currently focused shape sends a FOCUSED state 180*b1cdbd2cSJim Jagielski change event indicating that it has (regained) the focus. 181*b1cdbd2cSJim Jagielski */ 182*b1cdbd2cSJim Jagielski virtual void Activated (void); 183*b1cdbd2cSJim Jagielski 184*b1cdbd2cSJim Jagielski /** Make sure that the currently focused shape sends a FOCUSED state 185*b1cdbd2cSJim Jagielski change event indicating that it has lost the focus. 186*b1cdbd2cSJim Jagielski */ 187*b1cdbd2cSJim Jagielski virtual void Deactivated (void); 188*b1cdbd2cSJim Jagielski 189*b1cdbd2cSJim Jagielski virtual void impl_dispose (void); 190*b1cdbd2cSJim Jagielski 191*b1cdbd2cSJim Jagielski //===== XAccessibleGetAccFromXShape ============================================ 192*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > 193*b1cdbd2cSJim Jagielski SAL_CALL get_AccFlowTo(const ::com::sun::star::uno::Any& rAny, sal_Int32 nType) 194*b1cdbd2cSJim Jagielski throw ( ::com::sun::star::uno::RuntimeException ); 195*b1cdbd2cSJim Jagielski ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > 196*b1cdbd2cSJim Jagielski GetSelAccContextInTable(); 197*b1cdbd2cSJim Jagielski 198*b1cdbd2cSJim Jagielski private: 199*b1cdbd2cSJim Jagielski void UpdateAccessibleName (void); 200*b1cdbd2cSJim Jagielski }; 201*b1cdbd2cSJim Jagielski 202*b1cdbd2cSJim Jagielski } // end of namespace accessibility 203*b1cdbd2cSJim Jagielski 204*b1cdbd2cSJim Jagielski #endif 205