xref: /aoo42x/main/sw/inc/accmap.hxx (revision 86e1cf34)
11d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
31d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
41d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
51d2dbeb0SAndrew Rist  * distributed with this work for additional information
61d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
71d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
81d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
91d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
101d2dbeb0SAndrew Rist  *
111d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
121d2dbeb0SAndrew Rist  *
131d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
141d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
151d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
161d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
171d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
181d2dbeb0SAndrew Rist  * under the License.
191d2dbeb0SAndrew Rist  *
201d2dbeb0SAndrew Rist  *************************************************************/
211d2dbeb0SAndrew Rist 
221d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir #ifndef _ACCMAP_HXX
24cdf0e10cSrcweir #define _ACCMAP_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <cppuhelper/weakref.hxx>
27cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessible.hpp>
28cdf0e10cSrcweir #include <vos/ref.hxx>
29cdf0e10cSrcweir #include <vos/mutex.hxx>
30cdf0e10cSrcweir #include <svx/IAccessibleViewForwarder.hxx>
31cdf0e10cSrcweir #include <svx/IAccessibleParent.hxx>
32cdf0e10cSrcweir #include <tools/debug.hxx>
33cdf0e10cSrcweir #include <tools/fract.hxx>
34cdf0e10cSrcweir 
35ca62e2c2SSteve Yin #include <svx/AccessibleControlShape.hxx>
36ca62e2c2SSteve Yin #include <svx/AccessibleShape.hxx>
37ca62e2c2SSteve Yin #include "fesh.hxx"
38cdf0e10cSrcweir #include <vector>
39ca62e2c2SSteve Yin #include <set>
40ca62e2c2SSteve Yin class SwAccessibleParagraph;
41cdf0e10cSrcweir 
42cdf0e10cSrcweir class ViewShell;
43cdf0e10cSrcweir class Rectangle;
44cdf0e10cSrcweir class SwFrm;
45cdf0e10cSrcweir class SwTxtFrm;
46cdf0e10cSrcweir class SwPageFrm;
47cdf0e10cSrcweir class SwAccessibleContext;
48cdf0e10cSrcweir class SwAccessibleContextMap_Impl;
49cdf0e10cSrcweir class SwAccessibleEventList_Impl;
50cdf0e10cSrcweir class SwAccessibleEventMap_Impl;
51cdf0e10cSrcweir class SwShapeList_Impl;
52cdf0e10cSrcweir class SdrObject;
53cdf0e10cSrcweir namespace accessibility {
54cdf0e10cSrcweir     class AccessibleShape;
55cdf0e10cSrcweir }
56cdf0e10cSrcweir class SwAccessibleShapeMap_Impl;
57cdf0e10cSrcweir struct SwAccessibleEvent_Impl;
58cdf0e10cSrcweir class SwAccessibleSelectedParas_Impl;
59cdf0e10cSrcweir class SwRect;
60cdf0e10cSrcweir class MapMode;
61cdf0e10cSrcweir class SwAccPreviewData;
62cdf0e10cSrcweir struct PrevwPage;
63cdf0e10cSrcweir class Window;
64cdf0e10cSrcweir 
65cdf0e10cSrcweir // real states for events
66cdf0e10cSrcweir #define ACC_STATE_EDITABLE 0x01
67cdf0e10cSrcweir #define ACC_STATE_OPAQUE 0x02
68cdf0e10cSrcweir 
69cdf0e10cSrcweir // pseudo states for events
70cdf0e10cSrcweir // --> OD 2009-01-07 #i88069# - pseudo state for event TEXT_ATTRIBUTE_CHANGED
71cdf0e10cSrcweir #define ACC_STATE_TEXT_ATTRIBUTE_CHANGED 0x0200
72cdf0e10cSrcweir // <--
73cdf0e10cSrcweir // --> OD 2005-12-12 #i27301# - pseudo state for event TEXT_SELECTION_CHANGED
74cdf0e10cSrcweir #define ACC_STATE_TEXT_SELECTION_CHANGED 0x0100
75cdf0e10cSrcweir // <--
76cdf0e10cSrcweir #define ACC_STATE_CARET 0x80
77cdf0e10cSrcweir #define ACC_STATE_RELATION_FROM 0x40
78cdf0e10cSrcweir #define ACC_STATE_RELATION_TO 0x20
79cdf0e10cSrcweir 
80cdf0e10cSrcweir #define ACC_STATE_RELATION_MASK 0x60
81cdf0e10cSrcweir 
82cdf0e10cSrcweir #define ACC_STATE_MASK 0x1F
83cdf0e10cSrcweir 
84cdf0e10cSrcweir // --> OD 2005-12-12 #i27301# - introduce type definition of states
85cdf0e10cSrcweir typedef sal_uInt16 tAccessibleStates;
86cdf0e10cSrcweir // <--
87cdf0e10cSrcweir 
88ca62e2c2SSteve Yin class SwAccessibleMap : public ::accessibility::IAccessibleViewForwarder,
89ca62e2c2SSteve Yin 						public ::accessibility::IAccessibleParent
90cdf0e10cSrcweir {
91cdf0e10cSrcweir     mutable ::vos::OMutex maMutex;
92cdf0e10cSrcweir 	::vos::OMutex maEventMutex;
93cdf0e10cSrcweir 	SwAccessibleContextMap_Impl *mpFrmMap;
94cdf0e10cSrcweir 	SwAccessibleShapeMap_Impl *mpShapeMap;
95cdf0e10cSrcweir 	SwShapeList_Impl *mpShapes;
96cdf0e10cSrcweir 	SwAccessibleEventList_Impl *mpEvents;
97cdf0e10cSrcweir 	SwAccessibleEventMap_Impl *mpEventMap;
98cdf0e10cSrcweir     // --> OD 2005-12-13 #i27301# - data structure to keep information about
99cdf0e10cSrcweir     // accessible paragraph, which have a selection.
100cdf0e10cSrcweir     SwAccessibleSelectedParas_Impl* mpSelectedParas;
101cdf0e10cSrcweir     // <--
102cdf0e10cSrcweir     ViewShell *mpVSh;
103cdf0e10cSrcweir     /// for page preview: store preview data, VisArea, and mapping of
104cdf0e10cSrcweir     /// preview-to-display coordinates
105cdf0e10cSrcweir     SwAccPreviewData* mpPreview;
106cdf0e10cSrcweir 
107cdf0e10cSrcweir 	::com::sun::star::uno::WeakReference < ::com::sun::star::accessibility::XAccessible > mxCursorContext;
108cdf0e10cSrcweir 
109cdf0e10cSrcweir 	sal_Int32 mnPara;
110cdf0e10cSrcweir 	sal_Int32 mnFootnote;
111cdf0e10cSrcweir 	sal_Int32 mnEndnote;
112cdf0e10cSrcweir 
113cdf0e10cSrcweir 
114cdf0e10cSrcweir 	sal_Bool mbShapeSelected;
115cdf0e10cSrcweir 
116cdf0e10cSrcweir 	void FireEvent( const SwAccessibleEvent_Impl& rEvent );
117cdf0e10cSrcweir 
118cdf0e10cSrcweir 	void AppendEvent( const SwAccessibleEvent_Impl& rEvent );
119cdf0e10cSrcweir 
120cdf0e10cSrcweir 	void InvalidateCursorPosition(
121cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference<
122cdf0e10cSrcweir 			::com::sun::star::accessibility::XAccessible>& rAcc );
123ca62e2c2SSteve Yin 	void DoInvalidateShapeSelection(sal_Bool bInvalidateFocusMode = sal_False);
124ca62e2c2SSteve Yin 
125ca62e2c2SSteve Yin 	//Replace by DoInvalidateShapeSelection
126ca62e2c2SSteve Yin 	//void DoInvalidateShapeFocus();
127cdf0e10cSrcweir 	void InvalidateShapeSelection();
128cdf0e10cSrcweir 
129ca62e2c2SSteve Yin 	//mpSelectedFrmMap contains the old selected objects.
130ca62e2c2SSteve Yin 	SwAccessibleContextMap_Impl *mpSeletedFrmMap;
131*86e1cf34SPedro Giffuni 	//IvalidateShapeInParaSelection() method is responsible for the updating the selected states of the objects.
132ca62e2c2SSteve Yin 	void InvalidateShapeInParaSelection();
133ca62e2c2SSteve Yin 
134cdf0e10cSrcweir     void _InvalidateRelationSet( const SwFrm* pFrm, sal_Bool bFrom );
135cdf0e10cSrcweir 
136cdf0e10cSrcweir 	::com::sun::star::uno::Reference<
137cdf0e10cSrcweir 		::com::sun::star::accessibility::XAccessible>
138cdf0e10cSrcweir             _GetDocumentView( sal_Bool bPagePreview );
139cdf0e10cSrcweir 
140cdf0e10cSrcweir     /** method to build up a new data structure of the accessible pararaphs,
141cdf0e10cSrcweir         which have a selection
142cdf0e10cSrcweir 
143cdf0e10cSrcweir         OD 2005-12-13 #i27301#
144cdf0e10cSrcweir         Important note: method has to used inside a mutual exclusive section
145cdf0e10cSrcweir 
146cdf0e10cSrcweir         @author OD
147cdf0e10cSrcweir     */
148cdf0e10cSrcweir     SwAccessibleSelectedParas_Impl* _BuildSelectedParas();
149cdf0e10cSrcweir 
150cdf0e10cSrcweir public:
151cdf0e10cSrcweir 
152cdf0e10cSrcweir 	SwAccessibleMap( ViewShell *pSh );
153cdf0e10cSrcweir 	~SwAccessibleMap();
154cdf0e10cSrcweir 
155cdf0e10cSrcweir 	::com::sun::star::uno::Reference<
156cdf0e10cSrcweir 		::com::sun::star::accessibility::XAccessible> GetDocumentView();
157cdf0e10cSrcweir 
158cdf0e10cSrcweir     // OD 15.01.2003 #103492# - complete re-factoring of method due to new
159cdf0e10cSrcweir     // page/print preview functionality.
160cdf0e10cSrcweir     ::com::sun::star::uno::Reference<
161cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessible> GetDocumentPreview(
162cdf0e10cSrcweir                             const std::vector<PrevwPage*>& _rPrevwPages,
163cdf0e10cSrcweir                             const Fraction&  _rScale,
164cdf0e10cSrcweir                             const SwPageFrm* _pSelectedPageFrm,
165cdf0e10cSrcweir                             const Size&      _rPrevwWinSize );
166cdf0e10cSrcweir 
167cdf0e10cSrcweir 	::vos::ORef < SwAccessibleContext > GetContextImpl(
168cdf0e10cSrcweir 									 			const SwFrm *pFrm,
169cdf0e10cSrcweir 												sal_Bool bCreate = sal_True );
170cdf0e10cSrcweir 	::com::sun::star::uno::Reference<
171cdf0e10cSrcweir 		::com::sun::star::accessibility::XAccessible> GetContext(
172cdf0e10cSrcweir 									 			const SwFrm *pFrm,
173cdf0e10cSrcweir 												sal_Bool bCreate = sal_True );
174cdf0e10cSrcweir 
175cdf0e10cSrcweir 	::vos::ORef < ::accessibility::AccessibleShape > GetContextImpl(
176cdf0e10cSrcweir 										const SdrObject *pObj,
177cdf0e10cSrcweir 										SwAccessibleContext *pParentImpl,
178cdf0e10cSrcweir 										sal_Bool bCreate = sal_True );
179cdf0e10cSrcweir 	::com::sun::star::uno::Reference<
180cdf0e10cSrcweir 		::com::sun::star::accessibility::XAccessible> GetContext(
181cdf0e10cSrcweir 										const SdrObject *pObj,
182cdf0e10cSrcweir 										SwAccessibleContext *pParentImpl,
183cdf0e10cSrcweir 										sal_Bool bCreate = sal_True );
184cdf0e10cSrcweir 
GetShell() const185cdf0e10cSrcweir     inline ViewShell* GetShell() const
186cdf0e10cSrcweir     {
187cdf0e10cSrcweir         return mpVSh;
188cdf0e10cSrcweir     }
189ca62e2c2SSteve Yin 	sal_Bool IsInSameLevel(const SdrObject* pObj, const SwFEShell* pFESh);
190ca62e2c2SSteve Yin 	void AddShapeContext(const SdrObject *pObj,
191ca62e2c2SSteve Yin 							 ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > xAccShape);
192ca62e2c2SSteve Yin 
193ca62e2c2SSteve Yin 	void AddGroupContext(const SdrObject *pParentObj,
194ca62e2c2SSteve Yin 					::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > xAccParent);
195ca62e2c2SSteve Yin 	void RemoveGroupContext(const SdrObject *pParentObj, ::com::sun::star::uno::Reference < ::com::sun::star::accessibility::XAccessible > xAccParent);
196cdf0e10cSrcweir 
197cdf0e10cSrcweir     const SwRect& GetVisArea() const;
198cdf0e10cSrcweir 
199cdf0e10cSrcweir     /** get size of a dedicated preview page
200cdf0e10cSrcweir 
201cdf0e10cSrcweir         OD 15.01.2003 #103492#
202cdf0e10cSrcweir         complete re-factoring of previous method due to new page/print preview
203cdf0e10cSrcweir         functionality.
204cdf0e10cSrcweir 
205cdf0e10cSrcweir         @author OD
206cdf0e10cSrcweir 
207cdf0e10cSrcweir         @param _nPrevwPageNum
208cdf0e10cSrcweir         input parameter - physical page number of page visible in the page preview
209cdf0e10cSrcweir 
210cdf0e10cSrcweir         @return an object of class <Size>
211cdf0e10cSrcweir     */
212cdf0e10cSrcweir     Size GetPreViewPageSize( sal_uInt16 _nPrevwPageNum ) const;
213cdf0e10cSrcweir 
214cdf0e10cSrcweir 	void RemoveContext( const SwFrm *pFrm );
215cdf0e10cSrcweir 	void RemoveContext( const SdrObject *pObj );
216cdf0e10cSrcweir 
217cdf0e10cSrcweir 	// Dispose frame and its children if bRecursive is set
218cdf0e10cSrcweir     void Dispose( const SwFrm* pFrm,
219cdf0e10cSrcweir                   const SdrObject* pObj,
220cdf0e10cSrcweir                   Window* pWindow,
221cdf0e10cSrcweir                   sal_Bool bRecursive = sal_False );
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     void InvalidatePosOrSize( const SwFrm* pFrm,
224cdf0e10cSrcweir                               const SdrObject* pObj,
225cdf0e10cSrcweir                               Window* pWindow,
226cdf0e10cSrcweir 							  const SwRect& rOldFrm );
227cdf0e10cSrcweir 
228cdf0e10cSrcweir 	void InvalidateContent( const SwFrm *pFrm );
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     // --> OD 2009-01-06 #i88069#
231cdf0e10cSrcweir     void InvalidateAttr( const SwTxtFrm& rTxtFrm );
232cdf0e10cSrcweir     // <--
233cdf0e10cSrcweir 
234cdf0e10cSrcweir 	void InvalidateCursorPosition( const SwFrm *pFrm );
235cdf0e10cSrcweir 	void InvalidateFocus();
236ca62e2c2SSteve Yin 	void FirePageChangeEvent(sal_uInt16 nOldPage, sal_uInt16 nNewPage);
237ca62e2c2SSteve Yin 	void FireSectionChangeEvent(sal_uInt16 nOldSection, sal_uInt16 nNewSection);
238ca62e2c2SSteve Yin 	void FireColumnChangeEvent(sal_uInt16 nOldColumn, sal_uInt16 nNewColumn);
239cdf0e10cSrcweir 	void SetCursorContext(
240cdf0e10cSrcweir 		const ::vos::ORef < SwAccessibleContext >& rCursorContext );
241cdf0e10cSrcweir 
242cdf0e10cSrcweir 	// Invalidate state of whole tree. If an action is open, this call
243cdf0e10cSrcweir 	// is processed when the last action ends.
244cdf0e10cSrcweir     // --> OD 2005-12-12 #i27301# - use new type definition for <_nStates>
245cdf0e10cSrcweir     void InvalidateStates( tAccessibleStates _nStates,
246cdf0e10cSrcweir                            const SwFrm* _pFrm = 0 );
247cdf0e10cSrcweir 
248cdf0e10cSrcweir     void InvalidateRelationSet( const SwFrm* pMaster, const SwFrm* pFollow );
249cdf0e10cSrcweir 
250cdf0e10cSrcweir     /** invalidation CONTENT_FLOWS_FROM/_TO relation of a paragraph
251cdf0e10cSrcweir 
252cdf0e10cSrcweir         OD 2005-12-01 #i27138#
253cdf0e10cSrcweir 
254cdf0e10cSrcweir         @author OD
255cdf0e10cSrcweir 
256cdf0e10cSrcweir         @param _rTxtFrm
257cdf0e10cSrcweir         input parameter - reference to paragraph, whose CONTENT_FLOWS_FROM/_TO
258cdf0e10cSrcweir         has to be invalidated.
259cdf0e10cSrcweir 
260cdf0e10cSrcweir         @param _bFrom
261cdf0e10cSrcweir         input parameter - boolean indicating, if relation CONTENT_FLOWS_FROM
262cdf0e10cSrcweir         (value <true>) or CONTENT_FLOWS_TO (value <false>) has to be invalidated.
263cdf0e10cSrcweir     */
264cdf0e10cSrcweir     void InvalidateParaFlowRelation( const SwTxtFrm& _rTxtFrm,
265cdf0e10cSrcweir                                      const bool _bFrom );
266cdf0e10cSrcweir 
267cdf0e10cSrcweir     /** invalidation of text selection of a paragraph
268cdf0e10cSrcweir 
269cdf0e10cSrcweir         OD 2005-12-12 #i27301#
270cdf0e10cSrcweir 
271cdf0e10cSrcweir         @author OD
272cdf0e10cSrcweir     */
273cdf0e10cSrcweir     void InvalidateParaTextSelection( const SwTxtFrm& _rTxtFrm );
274cdf0e10cSrcweir 
275cdf0e10cSrcweir     /** invalidation of text selection of all paragraphs
276cdf0e10cSrcweir 
277cdf0e10cSrcweir         OD 2005-12-13 #i27301#
278cdf0e10cSrcweir 
279cdf0e10cSrcweir         @author OD
280cdf0e10cSrcweir     */
281cdf0e10cSrcweir     void InvalidateTextSelectionOfAllParas();
282cdf0e10cSrcweir 
283cdf0e10cSrcweir     sal_Int32 GetChildIndex( const SwFrm& rParentFrm,
284cdf0e10cSrcweir                              Window& rChild ) const;
285cdf0e10cSrcweir 
286cdf0e10cSrcweir     // update preview data (and fire events if necessary)
287cdf0e10cSrcweir     // OD 15.01.2003 #103492# - complete re-factoring of method due to new
288cdf0e10cSrcweir     // page/print preview functionality.
289cdf0e10cSrcweir     void UpdatePreview( const std::vector<PrevwPage*>& _rPrevwPages,
290cdf0e10cSrcweir                         const Fraction&  _rScale,
291cdf0e10cSrcweir                         const SwPageFrm* _pSelectedPageFrm,
292cdf0e10cSrcweir                         const Size&      _rPrevwWinSize );
293cdf0e10cSrcweir 
294cdf0e10cSrcweir     void InvalidatePreViewSelection( sal_uInt16 nSelPage );
295cdf0e10cSrcweir 	sal_Bool IsPageSelected( const SwPageFrm *pPageFrm ) const;
296cdf0e10cSrcweir 
297cdf0e10cSrcweir 	void FireEvents();
298cdf0e10cSrcweir 
299cdf0e10cSrcweir 
300cdf0e10cSrcweir 	// IAccessibleViewForwarder
301cdf0e10cSrcweir 
302cdf0e10cSrcweir 	virtual sal_Bool IsValid() const;
303cdf0e10cSrcweir     virtual Rectangle GetVisibleArea() const;
304cdf0e10cSrcweir     virtual Point LogicToPixel (const Point& rPoint) const;
305cdf0e10cSrcweir     virtual Size LogicToPixel (const Size& rSize) const;
306cdf0e10cSrcweir     virtual Point PixelToLogic (const Point& rPoint) const;
307cdf0e10cSrcweir     virtual Size PixelToLogic (const Size& rSize) const;
308cdf0e10cSrcweir 
309cdf0e10cSrcweir 	// IAccessibleParent
310cdf0e10cSrcweir     virtual sal_Bool ReplaceChild (
311cdf0e10cSrcweir         ::accessibility::AccessibleShape* pCurrentChild,
312cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape >& _rxShape,
313cdf0e10cSrcweir 		const long _nIndex,
314cdf0e10cSrcweir 		const ::accessibility::AccessibleShapeTreeInfo& _rShapeTreeInfo
315cdf0e10cSrcweir 	)	throw (::com::sun::star::uno::RuntimeException);
316ca62e2c2SSteve Yin 	virtual ::accessibility::AccessibleControlShape* GetAccControlShapeFromModel
317ca62e2c2SSteve Yin 		(::com::sun::star::beans::XPropertySet* pSet)
318ca62e2c2SSteve Yin 		throw (::com::sun::star::uno::RuntimeException);
319ca62e2c2SSteve Yin 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >   GetAccessibleCaption (
320ca62e2c2SSteve Yin 		const ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > & xShape)
321ca62e2c2SSteve Yin     throw (::com::sun::star::uno::RuntimeException);
322cdf0e10cSrcweir 
323cdf0e10cSrcweir     // additional Core/Pixel conversions for internal use; also works
324cdf0e10cSrcweir     // for preview
325cdf0e10cSrcweir     Point PixelToCore (const Point& rPoint) const;
326cdf0e10cSrcweir     Rectangle CoreToPixel (const Rectangle& rRect) const;
327cdf0e10cSrcweir 
328cdf0e10cSrcweir private:
329cdf0e10cSrcweir     /** get mapping mode for LogicToPixel and PixelToLogic conversions
330cdf0e10cSrcweir 
331cdf0e10cSrcweir         OD 15.01.2003 #103492#
332cdf0e10cSrcweir         Replacement method <PreviewAdjust(..)> by new method <GetMapMode>.
333cdf0e10cSrcweir         Method returns mapping mode of current output device and adjusts it,
334cdf0e10cSrcweir         if the shell is in page/print preview.
335cdf0e10cSrcweir         Necessary, because <PreviewAdjust(..)> changes mapping mode at current
336cdf0e10cSrcweir         output device for mapping logic document positions to page preview window
337cdf0e10cSrcweir         positions and vice versa and doesn't take care to recover its changes.
338cdf0e10cSrcweir 
339cdf0e10cSrcweir         @author OD
340cdf0e10cSrcweir 
341cdf0e10cSrcweir         @param _rPoint
342cdf0e10cSrcweir         input parameter - constant reference to point to determine the mapping
343cdf0e10cSrcweir         mode adjustments for page/print preview.
344cdf0e10cSrcweir 
345cdf0e10cSrcweir         @param _orMapMode
346cdf0e10cSrcweir         output parameter - reference to the mapping mode, which is determined
347cdf0e10cSrcweir         by the method
348cdf0e10cSrcweir     */
349cdf0e10cSrcweir     void GetMapMode( const Point& _rPoint,
350cdf0e10cSrcweir                      MapMode&     _orMapMode ) const;
351ca62e2c2SSteve Yin public:
352ca62e2c2SSteve Yin 	virtual sal_Bool IsDocumentSelAll();
353ca62e2c2SSteve Yin 
354ca62e2c2SSteve Yin 	::com::sun::star::uno::WeakReference < ::com::sun::star::accessibility::XAccessible >
GetCursorContext() const355ca62e2c2SSteve Yin 		GetCursorContext() const { return mxCursorContext; }
356ca62e2c2SSteve Yin 
357ca62e2c2SSteve Yin     //Para Container for InvalidateCursorPosition
358ca62e2c2SSteve Yin     typedef std::set< SwAccessibleParagraph* >  SET_PARA;
359ca62e2c2SSteve Yin     SET_PARA m_setParaAdd;
360ca62e2c2SSteve Yin     SET_PARA m_setParaRemove;
361cdf0e10cSrcweir };
362cdf0e10cSrcweir #endif
363