1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifdef _MSC_VER
25 #pragma hdrstop
26 #endif
27 
28 #ifndef _ACCESSIBILITY_HXX_
29 #define _ACCESSIBILITY_HXX_
30 
31 //#ifndef _COM_SUN_STAR_LANG_XCOMPONENT_HPP_
32 //#include <com/sun/star/lang/XComponent.hpp>
33 //#endif
34 #include <com/sun/star/accessibility/XAccessible.hpp>
35 #include <com/sun/star/accessibility/XAccessibleComponent.hpp>
36 #include <com/sun/star/accessibility/XAccessibleContext.hpp>
37 #include <com/sun/star/accessibility/XAccessibleText.hpp>
38 #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
39 #include <com/sun/star/accessibility/AccessibleEventId.hpp>
40 #ifndef _COM_SUN_STAR_lang_XSERVICEINFO_HPP_
41 #include <com/sun/star/lang/XServiceInfo.hpp>
42 #endif
43 #include <com/sun/star/uno/Reference.h>
44 #include <osl/mutex.hxx>
45 #include <cppuhelper/interfacecontainer.h>
46 #include <cppuhelper/implbase5.hxx>
47 #include <cppuhelper/implbase6.hxx>
48 #include <svl/brdcst.hxx>
49 
50 #include <editeng/editeng.hxx>
51 #include <editeng/unoedsrc.hxx> // SvxEditSource, SvxTextForwarder, SvxViewForwarder, SvxEditViewForwarder
52 #include <svx/AccessibleTextHelper.hxx>
53 #include <edit.hxx>
54 
55 class Window;
56 class SmGraphicWindow;
57 class SmEditWindow;
58 class SmDocShell;
59 
60 namespace com { namespace sun { namespace star { namespace accessibility {
61 struct AccessibleEventObject;
62 }}}}
63 
64 //////////////////////////////////////////////////////////////////////
65 //
66 // classes and helper-classes used for accessibility in the graphic-window
67 //
68 
69 typedef
70 cppu::WeakImplHelper6
71     <
72         com::sun::star::lang::XServiceInfo,
73         com::sun::star::accessibility::XAccessible,
74         com::sun::star::accessibility::XAccessibleComponent,
75         com::sun::star::accessibility::XAccessibleContext,
76         com::sun::star::accessibility::XAccessibleText,
77         com::sun::star::accessibility::XAccessibleEventBroadcaster
78     >
79 SmGraphicAccessibleBaseClass;
80 
81 class SmGraphicAccessible :
82     public SmGraphicAccessibleBaseClass
83 {
84     //vos::ORefCount    aRefCount;  // number of references to object
85     osl::Mutex                          aListenerMutex;
86     String                              aAccName;
87     /// client id in the AccessibleEventNotifier queue
88     sal_uInt32                          nClientId;
89 
90     SmGraphicWindow     *pWin;
91 
92     // disallow copy-ctor and assignment-operator for now
93     SmGraphicAccessible( const SmGraphicAccessible & );
94     SmGraphicAccessible & operator = ( const SmGraphicAccessible & );
95 
96 protected:
97     SmDocShell *    GetDoc_Impl();
98     String          GetAccessibleText_Impl();
99 
100 public:
101     SmGraphicAccessible( SmGraphicWindow *pGraphicWin );
102     virtual ~SmGraphicAccessible();
103 
GetWin()104     SmGraphicWindow *   GetWin()    { return pWin; }
105     void                ClearWin();     // to be called when view is destroyed
106     void                LaunchEvent(
107                             const sal_Int16 nAccesibleEventId,
108                             const ::com::sun::star::uno::Any &rOldVal,
109                             const ::com::sun::star::uno::Any &rNewVal);
110 
111     // XAccessible
112     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
113 
114     // XAccessibleComponent
115     virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
116     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
117     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  ) throw (::com::sun::star::uno::RuntimeException);
118     virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  ) throw (::com::sun::star::uno::RuntimeException);
119     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  ) throw (::com::sun::star::uno::RuntimeException);
120     virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) throw (::com::sun::star::uno::RuntimeException);
121     virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
122     virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
123     virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
124 
125     // XAccessibleContext
126     virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
127     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
128     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
129     virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
130     virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
131     virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
132     virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
133     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
134     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
135     virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
136 
137     // XAccessibleEventBroadcaster
138     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
139     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
140 
141     // XAccessibleText
142     virtual sal_Int32 SAL_CALL getCaretPosition(  ) throw (::com::sun::star::uno::RuntimeException);
143     virtual sal_Bool SAL_CALL setCaretPosition ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
144     virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
145     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
146     virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
147     virtual sal_Int32 SAL_CALL getCharacterCount(  ) throw (::com::sun::star::uno::RuntimeException);
148     virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
149     virtual ::rtl::OUString SAL_CALL getSelectedText(  ) throw (::com::sun::star::uno::RuntimeException);
150     virtual sal_Int32 SAL_CALL getSelectionStart(  ) throw (::com::sun::star::uno::RuntimeException);
151     virtual sal_Int32 SAL_CALL getSelectionEnd(  ) throw (::com::sun::star::uno::RuntimeException);
152     virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
153     virtual ::rtl::OUString SAL_CALL getText(  ) throw (::com::sun::star::uno::RuntimeException);
154     virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
155     virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
156     virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
157     virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
158     virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
159 
160     // XServiceInfo
161     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw (::com::sun::star::uno::RuntimeException);
162     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
163     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
164 };
165 
166 //////////////////////////////////////////////////////////////////////
167 //
168 // classes and helper-classes used for accessibility in the command-window
169 //
170 
171 class SmEditAccessible;
172 class SmEditSource;
173 class EditEngine;
174 class EditView;
175 class SvxFieldItem;
176 struct ESelection;
177 
178 
179 class SmViewForwarder :
180     public SvxViewForwarder
181 {
182     SmEditAccessible &          rEditAcc;
183 
184     // disallow copy-ctor and assignment-operator for now
185     SmViewForwarder( const SmViewForwarder & );
186     SmViewForwarder & operator = ( const SmViewForwarder & );
187 
188 public:
189                         SmViewForwarder( SmEditAccessible &rAcc );
190     virtual             ~SmViewForwarder();
191 
192     virtual sal_Bool        IsValid() const;
193     virtual Rectangle   GetVisArea() const;
194     virtual Point       LogicToPixel( const Point& rPoint, const MapMode& rMapMode ) const;
195     virtual Point       PixelToLogic( const Point& rPoint, const MapMode& rMapMode ) const;
196 };
197 
198 
199 class SmTextForwarder :     /* analog to SvxEditEngineForwarder */
200     public SvxTextForwarder
201 {
202 	SmEditAccessible &	rEditAcc;
203     SmEditSource &      rEditSource;
204 
205     DECL_LINK( NotifyHdl, EENotify * );
206 
207     // disallow copy-ctor and assignment-operator for now
208     SmTextForwarder( const SmTextForwarder & );
209     SmTextForwarder & operator = ( const SmTextForwarder & );
210 
211 public:
212     SmTextForwarder( SmEditAccessible& rAcc, SmEditSource & rSource );
213     virtual ~SmTextForwarder();
214 
215 	virtual sal_uInt16		GetParagraphCount() const;
216 	virtual sal_uInt16		GetTextLen( sal_uInt16 nParagraph ) const;
217 	virtual String		GetText( const ESelection& rSel ) const;
218 	virtual SfxItemSet	GetAttribs( const ESelection& rSel, sal_Bool bOnlyHardAttrib = EditEngineAttribs_All ) const;
219 	virtual	SfxItemSet	GetParaAttribs( sal_uInt16 nPara ) const;
220 	virtual void		SetParaAttribs( sal_uInt16 nPara, const SfxItemSet& rSet );
221     virtual void        RemoveAttribs( const ESelection& rSelection, sal_Bool bRemoveParaAttribs, sal_uInt16 nWhich );
222 	virtual void		GetPortions( sal_uInt16 nPara, SvUShorts& rList ) const;
223 
224 	virtual sal_uInt16		GetItemState( const ESelection& rSel, sal_uInt16 nWhich ) const;
225 	virtual sal_uInt16		GetItemState( sal_uInt16 nPara, sal_uInt16 nWhich ) const;
226 
227 	virtual void		QuickInsertText( const String& rText, const ESelection& rSel );
228 	virtual void		QuickInsertField( const SvxFieldItem& rFld, const ESelection& rSel );
229 	virtual void		QuickSetAttribs( const SfxItemSet& rSet, const ESelection& rSel );
230 	virtual void		QuickInsertLineBreak( const ESelection& rSel );
231 
232 	virtual SfxItemPool* GetPool() const;
233 
234 	virtual XubString    CalcFieldValue( const SvxFieldItem& rField, sal_uInt16 nPara, sal_uInt16 nPos, Color*& rpTxtColor, Color*& rpFldColor );
235 	virtual void 		FieldClicked(const SvxFieldItem&, sal_uInt16, sal_uInt16);
236 	virtual sal_Bool		 IsValid() const;
237 
238     virtual LanguageType 	GetLanguage( sal_uInt16, sal_uInt16 ) const;
239     virtual sal_uInt16			GetFieldCount( sal_uInt16 nPara ) const;
240     virtual EFieldInfo		GetFieldInfo( sal_uInt16 nPara, sal_uInt16 nField ) const;
241     virtual EBulletInfo     GetBulletInfo( sal_uInt16 nPara ) const;
242     virtual Rectangle		GetCharBounds( sal_uInt16 nPara, sal_uInt16 nIndex ) const;
243     virtual Rectangle		GetParaBounds( sal_uInt16 nPara ) const;
244     virtual MapMode			GetMapMode() const;
245 	virtual OutputDevice*	GetRefDevice() const;
246     virtual sal_Bool		GetIndexAtPoint( const Point&, sal_uInt16& nPara, sal_uInt16& nIndex ) const;
247     virtual sal_Bool		GetWordIndices( sal_uInt16 nPara, sal_uInt16 nIndex, sal_uInt16& nStart, sal_uInt16& nEnd ) const;
248 	virtual sal_Bool 		GetAttributeRun( sal_uInt16& nStartIndex, sal_uInt16& nEndIndex, sal_uInt16 nPara, sal_uInt16 nIndex, sal_Bool bInCell = sal_False ) const;
249     virtual sal_uInt16		GetLineCount( sal_uInt16 nPara ) const;
250     virtual sal_uInt16		GetLineLen( sal_uInt16 nPara, sal_uInt16 nLine ) const;
251     virtual void            GetLineBoundaries( /*out*/sal_uInt16 &rStart, /*out*/sal_uInt16 &rEnd, sal_uInt16 nParagraph, sal_uInt16 nLine ) const;
252     virtual sal_uInt16          GetLineNumberAtIndex( sal_uInt16 nPara, sal_uInt16 nLine ) const;
253     virtual sal_Bool		Delete( const ESelection& );
254     virtual sal_Bool		InsertText( const String&, const ESelection& );
255     virtual sal_Bool		QuickFormatDoc( sal_Bool bFull=sal_False );
256 
257     virtual sal_Int16       GetDepth( sal_uInt16 nPara ) const;
258     virtual sal_Bool        SetDepth( sal_uInt16 nPara, sal_Int16 nNewDepth );
259 
260     virtual const SfxItemSet*   GetEmptyItemSetPtr();
261     // implementation functions for XParagraphAppend and XTextPortionAppend
262     virtual void        AppendParagraph();
263     virtual xub_StrLen  AppendTextPortion( sal_uInt16 nPara, const String &rText, const SfxItemSet &rSet );
264 
265     virtual void        CopyText(const SvxTextForwarder& rSource);
266 };
267 
268 
269 class SmEditViewForwarder :     /* analog to SvxEditEngineViewForwarder */
270     public SvxEditViewForwarder
271 {
272     SmEditAccessible&		rEditAcc;
273 
274     // disallow copy-ctor and assignment-operator for now
275     SmEditViewForwarder( const SmEditViewForwarder & );
276     SmEditViewForwarder & operator = ( const SmEditViewForwarder & );
277 
278 public:
279                         SmEditViewForwarder( SmEditAccessible& rAcc );
280     virtual             ~SmEditViewForwarder();
281 
282 	virtual sal_Bool		IsValid() const;
283 
284     virtual Rectangle	GetVisArea() const;
285     virtual Point		LogicToPixel( const Point& rPoint, const MapMode& rMapMode ) const;
286     virtual Point		PixelToLogic( const Point& rPoint, const MapMode& rMapMode ) const;
287 
288     virtual sal_Bool	GetSelection( ESelection& rSelection ) const;
289     virtual sal_Bool	SetSelection( const ESelection& rSelection );
290     virtual sal_Bool	Copy();
291     virtual sal_Bool	Cut();
292     virtual sal_Bool	Paste();
293 };
294 
295 
296 class SmEditSource :
297     public SvxEditSource
298 {
299     SfxBroadcaster          aBroadCaster;
300     SmViewForwarder         aViewFwd;
301     SmTextForwarder         aTextFwd;
302     SmEditViewForwarder     aEditViewFwd;
303 
304 	SmEditAccessible&		rEditAcc;
305 
306     // disallow copy-ctor and assignment-operator for now
307     SmEditSource( const SmEditSource &rSrc );
308     SmEditSource & operator = ( const SmEditSource & );
309 
310 public:
311             SmEditSource( SmEditWindow *pWin, SmEditAccessible &rAcc );
312     virtual ~SmEditSource();
313 
314     virtual SvxEditSource*      Clone() const;
315     virtual SvxTextForwarder*   GetTextForwarder();
316  	virtual SvxViewForwarder*	GetViewForwarder();
317  	virtual SvxEditViewForwarder*	GetEditViewForwarder( sal_Bool bCreate = sal_False );
318     virtual void                UpdateData();
319     virtual SfxBroadcaster&		GetBroadcaster() const;
320 };
321 
322 
323 
324 
325 typedef
326 cppu::WeakImplHelper5
327     <
328         com::sun::star::lang::XServiceInfo,
329         com::sun::star::accessibility::XAccessible,
330         com::sun::star::accessibility::XAccessibleComponent,
331         com::sun::star::accessibility::XAccessibleContext,
332         com::sun::star::accessibility::XAccessibleEventBroadcaster
333     >
334 SmEditAccessibleBaseClass;
335 
336 class SmEditAccessible :
337     public SmEditAccessibleBaseClass
338 {
339     osl::Mutex                              aListenerMutex;
340     String                                  aAccName;
341     ::accessibility::AccessibleTextHelper    *pTextHelper;
342     SmEditWindow                           *pWin;
343 
344     // disallow copy-ctor and assignment-operator for now
345     SmEditAccessible( const SmEditAccessible & );
346     SmEditAccessible & operator = ( const SmEditAccessible & );
347 
348 protected:
349 #ifdef TL_NOT_YET_USED
350     SmDocShell *    GetDoc_Impl();
351 #endif //TL_NOT_YET_USED
352 
353 public:
354     SmEditAccessible( SmEditWindow *pEditWin );
355     virtual ~SmEditAccessible();
356 
GetTextHelper()357     ::accessibility::AccessibleTextHelper *   GetTextHelper() { return pTextHelper; }
358 
359     void                Init();
GetWin()360     SmEditWindow *      GetWin()    { return pWin; }
361     void                ClearWin();     // to be called when view is destroyed
362 
363 	//! access EditEngine and EditView via the functions in the respective window
364 	//! pointers may be 0 (e.g. during reload)
GetEditEngine()365 	EditEngine * GetEditEngine()	{ return pWin ? pWin->GetEditEngine() : 0; }
GetEditView()366     EditView   * GetEditView()		{ return pWin ? pWin->GetEditView() : 0; }
367 
368     // XAccessible
369     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
370 
371     // XAccessibleComponent
372     virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
373     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
374     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  ) throw (::com::sun::star::uno::RuntimeException);
375     virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  ) throw (::com::sun::star::uno::RuntimeException);
376     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  ) throw (::com::sun::star::uno::RuntimeException);
377     virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) throw (::com::sun::star::uno::RuntimeException);
378     virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
379     virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
380     virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
381 
382     // XAccessibleContext
383     virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
384     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
385     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
386     virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
387     virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
388     virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
389     virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
390     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
391     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
392     virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
393 
394     // XAccessibleEventBroadcaster
395     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
396     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
397 
398     // XServiceInfo
399     virtual ::rtl::OUString SAL_CALL getImplementationName(  ) throw (::com::sun::star::uno::RuntimeException);
400     virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
401     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames(  ) throw (::com::sun::star::uno::RuntimeException);
402 };
403 
404 //////////////////////////////////////////////////////////////////////
405 
406 #endif
407 
408