xref: /AOO41X/main/sd/source/ui/inc/AccessibleDocumentViewBase.hxx (revision 0deba7fbda3d9908785c25a443701a293b6f4e71)
1c45d927aSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3c45d927aSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4c45d927aSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5c45d927aSAndrew Rist  * distributed with this work for additional information
6c45d927aSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7c45d927aSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8c45d927aSAndrew Rist  * "License"); you may not use this file except in compliance
9c45d927aSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11c45d927aSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13c45d927aSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14c45d927aSAndrew Rist  * software distributed under the License is distributed on an
15c45d927aSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16c45d927aSAndrew Rist  * KIND, either express or implied.  See the License for the
17c45d927aSAndrew Rist  * specific language governing permissions and limitations
18c45d927aSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20c45d927aSAndrew Rist  *************************************************************/
21c45d927aSAndrew Rist 
22c45d927aSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SD_ACCESSIBILITY_ACCESSIBLE_DOCUMENT_VIEW_BASE_HXX
25cdf0e10cSrcweir #define SD_ACCESSIBILITY_ACCESSIBLE_DOCUMENT_VIEW_BASE_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <editeng/AccessibleContextBase.hxx>
28cdf0e10cSrcweir #include <editeng/AccessibleComponentBase.hxx>
29cdf0e10cSrcweir #include <editeng/AccessibleSelectionBase.hxx>
30cdf0e10cSrcweir #include "AccessibleViewForwarder.hxx"
31cdf0e10cSrcweir #include "AccessiblePageShape.hxx"
32cdf0e10cSrcweir #include <svx/ChildrenManager.hxx>
33cdf0e10cSrcweir #include <com/sun/star/frame/XModel.hpp>
34cdf0e10cSrcweir #include <com/sun/star/awt/XWindowListener.hpp>
35cdf0e10cSrcweir #include <com/sun/star/awt/XFocusListener.hpp>
36cdf0e10cSrcweir #include <com/sun/star/beans/XPropertyChangeListener.hpp>
37cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessible.hpp>
38cdf0e10cSrcweir #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
39cdf0e10cSrcweir #include <tools/link.hxx>
40cdf0e10cSrcweir 
41*0deba7fbSSteve Yin //IAccessibility2 Implementation 2009-----
42*0deba7fbSSteve Yin #include <com/sun/star/accessibility/XAccessibleExtendedAttributes.hpp>
43*0deba7fbSSteve Yin #include "DrawViewShell.hxx"
44*0deba7fbSSteve Yin #include "sdpage.hxx"
45*0deba7fbSSteve Yin #include "drawdoc.hxx"
46*0deba7fbSSteve Yin #include "FrameView.hxx"
47*0deba7fbSSteve Yin #include "PresentationViewShell.hxx"
48*0deba7fbSSteve Yin #include <editeng/outlobj.hxx>
49*0deba7fbSSteve Yin #include <com/sun/star/accessibility/XAccessibleGetAccFlowTo.hpp>
50*0deba7fbSSteve Yin class SdViewShell;
51*0deba7fbSSteve Yin //-----IAccessibility2 Implementation 2009
52cdf0e10cSrcweir namespace sd {
53cdf0e10cSrcweir class ViewShell;
54cdf0e10cSrcweir class Window;
55cdf0e10cSrcweir }
56cdf0e10cSrcweir 
57cdf0e10cSrcweir class VclSimpleEvent;
58cdf0e10cSrcweir 
59cdf0e10cSrcweir namespace accessibility {
60cdf0e10cSrcweir 
61cdf0e10cSrcweir 
62cdf0e10cSrcweir /** Base class for the various document views of the Draw and
63cdf0e10cSrcweir     Impress applications.
64cdf0e10cSrcweir 
65cdf0e10cSrcweir 	<p>The different view modes of the Draw and Impress applications
66cdf0e10cSrcweir 	are made accessible by derived classes.  When the view mode is
67cdf0e10cSrcweir 	changed than the object representing the document view is
68cdf0e10cSrcweir 	disposed and replaced by a new instance of the then appropriate
69cdf0e10cSrcweir 	derived class.</p>
70cdf0e10cSrcweir 
71cdf0e10cSrcweir     <p>This base class also manages an optionally active accessible OLE
72cdf0e10cSrcweir     object.  If you overwrite the <member>getAccessibleChildCount</member>
73cdf0e10cSrcweir     and <member>getAccessibleChild</member> methods then make sure to first
74cdf0e10cSrcweir     call the corresponding method of this class and adapt your child count
75cdf0e10cSrcweir     and indices accordingly.  Only one active OLE object is allowed at a
76cdf0e10cSrcweir     time.  This class does not listen for disposing calls at the moment
77cdf0e10cSrcweir     because it does not use the accessible OLE object directly and trusts on
78cdf0e10cSrcweir     getting informed through VCL window events.</p>
79cdf0e10cSrcweir 
80cdf0e10cSrcweir     <p>This class implements three kinds of listeners:
81cdf0e10cSrcweir     <ol><li>The property change listener is not used directly but exists as
82cdf0e10cSrcweir     convenience for derived classes.  May be moved to those classes
83cdf0e10cSrcweir     instead.</li>
84cdf0e10cSrcweir     <li>As window listener it waits for changes of the window geometry and
85cdf0e10cSrcweir     forwards those as view forwarder changes.</li>
86cdf0e10cSrcweir     <li>As focus listener it keeps track of the focus to give this class and
87cdf0e10cSrcweir     derived classes the oportunity to set and remove the focus to/from
88cdf0e10cSrcweir     shapes.</li>
89cdf0e10cSrcweir     </ol>
90cdf0e10cSrcweir     </p>
91cdf0e10cSrcweir */
92cdf0e10cSrcweir class AccessibleDocumentViewBase
93cdf0e10cSrcweir 	:	public AccessibleContextBase,
94cdf0e10cSrcweir         public AccessibleComponentBase,
95cdf0e10cSrcweir         public AccessibleSelectionBase,
96cdf0e10cSrcweir         public IAccessibleViewForwarderListener,
97cdf0e10cSrcweir         public ::com::sun::star::beans::XPropertyChangeListener,
98cdf0e10cSrcweir         public ::com::sun::star::awt::XWindowListener,
99cdf0e10cSrcweir         public ::com::sun::star::awt::XFocusListener
100*0deba7fbSSteve Yin //IAccessibility2 Implementation 2009-----
101*0deba7fbSSteve Yin 		,public ::com::sun::star::accessibility::XAccessibleExtendedAttributes
102*0deba7fbSSteve Yin 	       ,public com::sun::star::accessibility::XAccessibleGetAccFlowTo
103*0deba7fbSSteve Yin //-----IAccessibility2 Implementation 2009
104cdf0e10cSrcweir {
105cdf0e10cSrcweir public:
106cdf0e10cSrcweir     //=====  internal  ========================================================
107cdf0e10cSrcweir 
108cdf0e10cSrcweir     /** Create a new object.  Note that the caller has to call the
109cdf0e10cSrcweir         Init method directly after this constructor has finished.
110cdf0e10cSrcweir 	@param pSdWindow
111cdf0e10cSrcweir 	    The window whose content is to be made accessible.
112cdf0e10cSrcweir 	@param pViewShell
113cdf0e10cSrcweir 	    The view shell associated with the given window.
114cdf0e10cSrcweir     @param rxController
115cdf0e10cSrcweir         The controller from which to get the model.
116cdf0e10cSrcweir     @param rxParent
117cdf0e10cSrcweir         The accessible parent of the new object.  Note that this parent does
118cdf0e10cSrcweir         not necessarily correspond with the parent of the given window.
119cdf0e10cSrcweir      */
120cdf0e10cSrcweir     AccessibleDocumentViewBase (
121cdf0e10cSrcweir         ::sd::Window* pSdWindow,
122cdf0e10cSrcweir         ::sd::ViewShell* pViewShell,
123cdf0e10cSrcweir         const ::com::sun::star::uno::Reference<
124cdf0e10cSrcweir             ::com::sun::star::frame::XController>& rxController,
125cdf0e10cSrcweir         const ::com::sun::star::uno::Reference<
126cdf0e10cSrcweir             ::com::sun::star::accessibility::XAccessible>& rxParent);
127cdf0e10cSrcweir 
128cdf0e10cSrcweir     virtual ~AccessibleDocumentViewBase	(void);
129cdf0e10cSrcweir 
130cdf0e10cSrcweir     /** Initialize a new object.  Call this method directly after creating a
131cdf0e10cSrcweir         new object.  It finished the initialization begun in the constructor
132cdf0e10cSrcweir         but which needs a fully created object.
133cdf0e10cSrcweir      */
134cdf0e10cSrcweir     virtual void Init (void);
135cdf0e10cSrcweir 
136cdf0e10cSrcweir     /** Define callback for listening to window child events of VCL.
137cdf0e10cSrcweir         Listen for creation or destruction of OLE objects.
138cdf0e10cSrcweir     */
139cdf0e10cSrcweir 	DECL_LINK (WindowChildEventListener, VclSimpleEvent*);
140cdf0e10cSrcweir 
141cdf0e10cSrcweir     //=====  IAccessibleViewForwarderListener  ================================
142cdf0e10cSrcweir 
143cdf0e10cSrcweir     /** A view forwarder change is signalled for instance when any of the
144cdf0e10cSrcweir         window events is recieved.  Thus, instead of overloading the four
145cdf0e10cSrcweir         windowResized... methods it will be sufficient in most cases just to
146cdf0e10cSrcweir         overload this method.
147cdf0e10cSrcweir      */
148cdf0e10cSrcweir     virtual void ViewForwarderChanged (ChangeType aChangeType,
149cdf0e10cSrcweir         const IAccessibleViewForwarder* pViewForwarder);
150cdf0e10cSrcweir 
151cdf0e10cSrcweir     //=====  XAccessibleContext  ==============================================
152cdf0e10cSrcweir 
153cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference<
154cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessible> SAL_CALL
155cdf0e10cSrcweir         getAccessibleParent (void)
156cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
157cdf0e10cSrcweir 
158cdf0e10cSrcweir     /** This implementation returns either 1 or 0 depending on whether there
159cdf0e10cSrcweir         is an active accessible OLE object or not.
160cdf0e10cSrcweir     */
161cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL
162cdf0e10cSrcweir         getAccessibleChildCount (void)
163cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
164cdf0e10cSrcweir 
165cdf0e10cSrcweir     /** This implementation either returns the active accessible OLE object
166cdf0e10cSrcweir         if it exists and the given index is 0 or throws an exception.
167cdf0e10cSrcweir     */
168cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference<
169cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessible> SAL_CALL
170cdf0e10cSrcweir         getAccessibleChild (sal_Int32 nIndex)
171cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException,
172cdf0e10cSrcweir             ::com::sun::star::lang::IndexOutOfBoundsException);
173cdf0e10cSrcweir 
174cdf0e10cSrcweir 
175cdf0e10cSrcweir     //=====  XAccessibleComponent  ============================================
176cdf0e10cSrcweir 
177cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference<
178cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessible > SAL_CALL
179cdf0e10cSrcweir         getAccessibleAtPoint (const ::com::sun::star::awt::Point& aPoint)
180cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
181cdf0e10cSrcweir 
182cdf0e10cSrcweir     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds (void)
183cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
184cdf0e10cSrcweir 
185cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocation (void)
186cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
187cdf0e10cSrcweir 
188cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen (void)
189cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
190cdf0e10cSrcweir 
191cdf0e10cSrcweir     virtual ::com::sun::star::awt::Size SAL_CALL getSize (void)
192cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
193cdf0e10cSrcweir 
194cdf0e10cSrcweir 
195cdf0e10cSrcweir     //=====  XInterface  ======================================================
196cdf0e10cSrcweir 
197cdf0e10cSrcweir     virtual com::sun::star::uno::Any SAL_CALL
198cdf0e10cSrcweir         queryInterface (const com::sun::star::uno::Type & rType)
199cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
200cdf0e10cSrcweir 
201cdf0e10cSrcweir     virtual void SAL_CALL
202cdf0e10cSrcweir         acquire (void)
203cdf0e10cSrcweir         throw ();
204cdf0e10cSrcweir 
205cdf0e10cSrcweir     virtual void SAL_CALL
206cdf0e10cSrcweir         release (void)
207cdf0e10cSrcweir         throw ();
208cdf0e10cSrcweir 
209cdf0e10cSrcweir 
210cdf0e10cSrcweir     //=====  XServiceInfo  ====================================================
211cdf0e10cSrcweir 
212cdf0e10cSrcweir     /**	Returns an identifier for the implementation of this object.
213cdf0e10cSrcweir     */
214cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL
215cdf0e10cSrcweir     	getImplementationName (void)
216cdf0e10cSrcweir 	    throw (::com::sun::star::uno::RuntimeException);
217cdf0e10cSrcweir 
218cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
219cdf0e10cSrcweir         getSupportedServiceNames (void)
220cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
221cdf0e10cSrcweir 
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     //=====  XTypeProvider  ===================================================
224cdf0e10cSrcweir 
225cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type> SAL_CALL
226cdf0e10cSrcweir         getTypes (void)
227cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
228cdf0e10cSrcweir 
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     //=====  lang::XEventListener  ============================================
231cdf0e10cSrcweir 
232cdf0e10cSrcweir     virtual void SAL_CALL
233cdf0e10cSrcweir         disposing (const ::com::sun::star::lang::EventObject& rEventObject)
234cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
235cdf0e10cSrcweir 
236cdf0e10cSrcweir 
237cdf0e10cSrcweir     //=====  XPropertyChangeListener  =========================================
238cdf0e10cSrcweir 
239cdf0e10cSrcweir 	virtual void SAL_CALL
240cdf0e10cSrcweir 		propertyChange (const ::com::sun::star::beans::PropertyChangeEvent& rEventObject)
241cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
242cdf0e10cSrcweir 
243cdf0e10cSrcweir 
244cdf0e10cSrcweir     //=====  XWindowListener  =================================================
245cdf0e10cSrcweir 
246cdf0e10cSrcweir     virtual void SAL_CALL
247cdf0e10cSrcweir         windowResized (const ::com::sun::star::awt::WindowEvent& e)
248cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
249cdf0e10cSrcweir 
250cdf0e10cSrcweir     virtual void SAL_CALL
251cdf0e10cSrcweir         windowMoved (const ::com::sun::star::awt::WindowEvent& e)
252cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
253cdf0e10cSrcweir 
254cdf0e10cSrcweir     virtual void SAL_CALL
255cdf0e10cSrcweir         windowShown (const ::com::sun::star::lang::EventObject& e)
256cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
257cdf0e10cSrcweir 
258cdf0e10cSrcweir     virtual void SAL_CALL
259cdf0e10cSrcweir         windowHidden (const ::com::sun::star::lang::EventObject& e)
260cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
261cdf0e10cSrcweir 
262cdf0e10cSrcweir     //=====  XFocusListener  =================================================
263cdf0e10cSrcweir 
264cdf0e10cSrcweir 	virtual void SAL_CALL focusGained (const ::com::sun::star::awt::FocusEvent& e)
265cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
266cdf0e10cSrcweir 	virtual void SAL_CALL focusLost (const ::com::sun::star::awt::FocusEvent& e)
267cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
268*0deba7fbSSteve Yin //IAccessibility2 Implementation 2009-----
269*0deba7fbSSteve Yin 	//----------------------------xAttribute----------------------------
270*0deba7fbSSteve Yin 	virtual com::sun::star::uno::Any SAL_CALL getExtendedAttributes()
271*0deba7fbSSteve Yin 		throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException) ;
272*0deba7fbSSteve Yin 	 ::sd::ViewShell* mpViewShell;
273*0deba7fbSSteve Yin //-----IAccessibility2 Implementation 2009
274cdf0e10cSrcweir private:
275cdf0e10cSrcweir 
276cdf0e10cSrcweir     // return the member maMutex;
277cdf0e10cSrcweir     virtual ::osl::Mutex&
278cdf0e10cSrcweir         implGetMutex();
279cdf0e10cSrcweir 
280cdf0e10cSrcweir 	// return ourself as context in default case
281cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
282cdf0e10cSrcweir         implGetAccessibleContext()
283cdf0e10cSrcweir         throw ( ::com::sun::star::uno::RuntimeException );
284cdf0e10cSrcweir 
285cdf0e10cSrcweir     // return sal_False in default case
286cdf0e10cSrcweir 	virtual sal_Bool
287cdf0e10cSrcweir         implIsSelected( sal_Int32 nAccessibleChildIndex )
288cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
289cdf0e10cSrcweir 
290cdf0e10cSrcweir     // return nothing in default case
291cdf0e10cSrcweir     virtual void
292cdf0e10cSrcweir         implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect )
293cdf0e10cSrcweir         throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
294cdf0e10cSrcweir 
295cdf0e10cSrcweir protected:
296cdf0e10cSrcweir     /// The core window that is made accessible.
297cdf0e10cSrcweir     ::sd::Window* mpWindow;
298cdf0e10cSrcweir 
299cdf0e10cSrcweir     /// The API window that is made accessible.
300cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow>
301cdf0e10cSrcweir          mxWindow;
302cdf0e10cSrcweir 
303cdf0e10cSrcweir     /// The controller of the window in which this view is displayed.
304cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController>
305cdf0e10cSrcweir          mxController;
306cdf0e10cSrcweir 
307cdf0e10cSrcweir     /// Model of the document.
308cdf0e10cSrcweir     ::com::sun::star::uno::Reference < ::com::sun::star::frame::XModel>
309cdf0e10cSrcweir         mxModel;
310cdf0e10cSrcweir 
311cdf0e10cSrcweir     // Bundle of information that is passed down the shape tree.
312cdf0e10cSrcweir     AccessibleShapeTreeInfo maShapeTreeInfo;
313cdf0e10cSrcweir 
314cdf0e10cSrcweir     /// The view forwarder passed to the children manager.
315cdf0e10cSrcweir     AccessibleViewForwarder maViewForwarder;
316cdf0e10cSrcweir 
317cdf0e10cSrcweir     /** Accessible OLE object.  Set or removed by the
318cdf0e10cSrcweir         <member>SetAccessibleOLEObject</member> method.
319cdf0e10cSrcweir     */
320cdf0e10cSrcweir     ::com::sun::star::uno::Reference <
321cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessible>
322cdf0e10cSrcweir         mxAccessibleOLEObject;
323cdf0e10cSrcweir 
324cdf0e10cSrcweir     Link maWindowLink;
325cdf0e10cSrcweir 
326cdf0e10cSrcweir     // This method is called from the component helper base class while
327cdf0e10cSrcweir     // disposing.
328cdf0e10cSrcweir     virtual void SAL_CALL disposing (void);
329cdf0e10cSrcweir 
330cdf0e10cSrcweir     /**	Create a name string.  The current name is not modified and,
331cdf0e10cSrcweir         therefore, no events are send.  This method is usually called once
332cdf0e10cSrcweir         by the <member>getAccessibleName</member> method of the base class.
333cdf0e10cSrcweir         @return
334cdf0e10cSrcweir            A name string.
335cdf0e10cSrcweir     */
336cdf0e10cSrcweir     virtual ::rtl::OUString
337cdf0e10cSrcweir     	CreateAccessibleName ()
338cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
339cdf0e10cSrcweir 
340cdf0e10cSrcweir     /**	Create a description string.  The current description is not
341cdf0e10cSrcweir         modified and, therefore, no events are send.  This method is usually
342cdf0e10cSrcweir         called once by the <member>getAccessibleDescription</member> method
343cdf0e10cSrcweir         of the base class.
344cdf0e10cSrcweir         @return
345cdf0e10cSrcweir            A description string.
346cdf0e10cSrcweir     */
347cdf0e10cSrcweir     virtual ::rtl::OUString
348cdf0e10cSrcweir     	CreateAccessibleDescription ()
349cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
350cdf0e10cSrcweir 
351cdf0e10cSrcweir     /** This method is called when (after) the frame containing this
352cdf0e10cSrcweir         document has been activated.  Can be used to send FOCUSED state
353cdf0e10cSrcweir         changes for the currently selected element.
354cdf0e10cSrcweir 
355cdf0e10cSrcweir         Note: Currently used as a substitute for FocusGained.  Should be
356cdf0e10cSrcweir         renamed in the future.
357cdf0e10cSrcweir     */
358cdf0e10cSrcweir     virtual void Activated (void);
359cdf0e10cSrcweir 
360cdf0e10cSrcweir     /** This method is called when (before or after?) the frame containing
361cdf0e10cSrcweir         this document has been deactivated.  Can be used to send FOCUSED
362cdf0e10cSrcweir         state changes for the currently selected element.
363cdf0e10cSrcweir 
364cdf0e10cSrcweir         Note: Currently used as a substitute for FocusLost.  Should be
365cdf0e10cSrcweir         renamed in the future.
366cdf0e10cSrcweir     */
367cdf0e10cSrcweir     virtual void Deactivated (void);
368cdf0e10cSrcweir 
369cdf0e10cSrcweir     /** Set or remove the currently active accessible OLE object.
370cdf0e10cSrcweir         @param xOLEObject
371cdf0e10cSrcweir             If this is a valid reference then a child event is send that
372cdf0e10cSrcweir             informs the listeners of a new child.  If there has already been
373cdf0e10cSrcweir             an active accessible OLE object then this is removed first and
374cdf0e10cSrcweir             appropriate events are send.
375cdf0e10cSrcweir 
376cdf0e10cSrcweir             If this is an empty reference then the currently active
377cdf0e10cSrcweir             accessible OLE object (if there is one) is removed.
378cdf0e10cSrcweir     */
379cdf0e10cSrcweir     virtual void SetAccessibleOLEObject (
380cdf0e10cSrcweir         const ::com::sun::star::uno::Reference <
381cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessible>& xOLEObject);
382*0deba7fbSSteve Yin //IAccessibility2 Implementation 2009-----
383*0deba7fbSSteve Yin 	//=====  XAccessibleGetAccFromXShape  ============================================
384*0deba7fbSSteve Yin 	::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >
385*0deba7fbSSteve Yin 		SAL_CALL get_AccFlowTo(const ::com::sun::star::uno::Any& rAny, sal_Int32 nType)
386*0deba7fbSSteve Yin 		throw ( ::com::sun::star::uno::RuntimeException );
387cdf0e10cSrcweir 
388*0deba7fbSSteve Yin public:
389*0deba7fbSSteve Yin 	virtual void SwitchViewActivated (void) { Activated(); }
390*0deba7fbSSteve Yin 	 virtual sal_Int32 SAL_CALL getForeground(  )
391*0deba7fbSSteve Yin         throw (::com::sun::star::uno::RuntimeException);
392*0deba7fbSSteve Yin 
393*0deba7fbSSteve Yin     virtual sal_Int32 SAL_CALL getBackground(  )
394*0deba7fbSSteve Yin         throw (::com::sun::star::uno::RuntimeException);
395*0deba7fbSSteve Yin //-----IAccessibility2 Implementation 2009
396cdf0e10cSrcweir     virtual void impl_dispose (void);
397cdf0e10cSrcweir };
398cdf0e10cSrcweir 
399cdf0e10cSrcweir } // end of namespace accessibility
400cdf0e10cSrcweir 
401cdf0e10cSrcweir #endif
402