xref: /AOO41X/main/svtools/source/control/valueimp.hxx (revision 4d7c9de063a797b8b4f3d45e3561e82ad1f8ef1f)
101aa44aaSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
301aa44aaSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
401aa44aaSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
501aa44aaSAndrew Rist  * distributed with this work for additional information
601aa44aaSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
701aa44aaSAndrew Rist  * to you under the Apache License, Version 2.0 (the
801aa44aaSAndrew Rist  * "License"); you may not use this file except in compliance
901aa44aaSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
1101aa44aaSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
1301aa44aaSAndrew Rist  * Unless required by applicable law or agreed to in writing,
1401aa44aaSAndrew Rist  * software distributed under the License is distributed on an
1501aa44aaSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
1601aa44aaSAndrew Rist  * KIND, either express or implied.  See the License for the
1701aa44aaSAndrew Rist  * specific language governing permissions and limitations
1801aa44aaSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
2001aa44aaSAndrew Rist  *************************************************************/
2101aa44aaSAndrew Rist 
2201aa44aaSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #include <vos/mutex.hxx>
25cdf0e10cSrcweir #include <tools/list.hxx>
26cdf0e10cSrcweir #include <tools/color.hxx>
27cdf0e10cSrcweir #include <tools/string.hxx>
28cdf0e10cSrcweir #ifndef _IMAGE_HXX
29cdf0e10cSrcweir #include <vcl/image.hxx>
30cdf0e10cSrcweir #endif
31cdf0e10cSrcweir #include <rtl/uuid.h>
32cdf0e10cSrcweir #include <cppuhelper/implbase5.hxx>
33cdf0e10cSrcweir #include <cppuhelper/compbase6.hxx>
34cdf0e10cSrcweir #include <comphelper/broadcasthelper.hxx>
35cdf0e10cSrcweir #include <com/sun/star/lang/XUnoTunnel.hpp>
36cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessible.hpp>
37cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleContext.hpp>
38cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleComponent.hpp>
39cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleSelection.hpp>
40cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
41cdf0e10cSrcweir #include <com/sun/star/lang/DisposedException.hpp>
42cdf0e10cSrcweir 
43cdf0e10cSrcweir #include <memory>
44cdf0e10cSrcweir #include <vector>
45cdf0e10cSrcweir 
46cdf0e10cSrcweir // -----------
47cdf0e10cSrcweir // - Defines -
48cdf0e10cSrcweir // -----------
49cdf0e10cSrcweir 
50cdf0e10cSrcweir #define ITEM_OFFSET 				4
51cdf0e10cSrcweir #define ITEM_OFFSET_DOUBLE			6
52cdf0e10cSrcweir #define NAME_LINE_OFF_X 			2
53cdf0e10cSrcweir #define NAME_LINE_OFF_Y 			2
54cdf0e10cSrcweir #define NAME_LINE_HEIGHT			2
55cdf0e10cSrcweir #define NAME_OFFSET 				2
56cdf0e10cSrcweir #define SCRBAR_OFFSET				1
57cdf0e10cSrcweir #define VALUESET_ITEM_NONEITEM		0xFFFE
58cdf0e10cSrcweir #define VALUESET_SCROLL_OFFSET		4
59cdf0e10cSrcweir 
60cdf0e10cSrcweir // --------------------
61cdf0e10cSrcweir // - ValueSetItemType -
62cdf0e10cSrcweir // --------------------
63cdf0e10cSrcweir 
64cdf0e10cSrcweir enum ValueSetItemType
65cdf0e10cSrcweir {
66cdf0e10cSrcweir 	VALUESETITEM_NONE,
67cdf0e10cSrcweir 	VALUESETITEM_IMAGE,
68cdf0e10cSrcweir 	VALUESETITEM_COLOR,
69cdf0e10cSrcweir 	VALUESETITEM_USERDRAW,
70cdf0e10cSrcweir 	VALUESETITEM_SPACE
71cdf0e10cSrcweir };
72cdf0e10cSrcweir 
73cdf0e10cSrcweir // ----------------
74cdf0e10cSrcweir // - ValueSetItem -
75cdf0e10cSrcweir // ----------------
76cdf0e10cSrcweir 
77cdf0e10cSrcweir class ValueSet;
78cdf0e10cSrcweir 
79cdf0e10cSrcweir struct ValueSetItem
80cdf0e10cSrcweir {
81cdf0e10cSrcweir 	ValueSet&           mrParent;
82cdf0e10cSrcweir     sal_uInt16				mnId;
83cdf0e10cSrcweir 	sal_uInt16				mnBits;
84cdf0e10cSrcweir 	ValueSetItemType	meType;
85cdf0e10cSrcweir 	Image				maImage;
86cdf0e10cSrcweir 	Color				maColor;
87cdf0e10cSrcweir 	XubString			maText;
88cdf0e10cSrcweir 	void*				mpData;
89cdf0e10cSrcweir 	Rectangle			maRect;
90*2bfcd321SSteve Yin 	sal_Bool				bSelected:1;
91cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >* mpxAcc;
92cdf0e10cSrcweir 
93cdf0e10cSrcweir     ValueSetItem( ValueSet& rParent );
94cdf0e10cSrcweir     ~ValueSetItem();
95cdf0e10cSrcweir 
96cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
97cdf0e10cSrcweir                         GetAccessible( bool bIsTransientChildrenDisabled );
98cdf0e10cSrcweir      void               ClearAccessible();
99cdf0e10cSrcweir };
100cdf0e10cSrcweir 
101cdf0e10cSrcweir // -----------------------------------------------------------------------------
102cdf0e10cSrcweir 
103cdf0e10cSrcweir DECLARE_LIST( ValueItemList, ValueSetItem* )
104cdf0e10cSrcweir 
105cdf0e10cSrcweir // -----------------------------------------------------------------------------
106cdf0e10cSrcweir 
107cdf0e10cSrcweir struct ValueSet_Impl
108cdf0e10cSrcweir {
109cdf0e10cSrcweir     ::std::auto_ptr< ValueItemList >    mpItemList;
110cdf0e10cSrcweir     bool                                mbIsTransientChildrenDisabled;
111cdf0e10cSrcweir 	Link								maHighlightHdl;
112cdf0e10cSrcweir 
ValueSet_ImplValueSet_Impl113cdf0e10cSrcweir     ValueSet_Impl() :   mpItemList( ::std::auto_ptr< ValueItemList >( new ValueItemList() ) ),
114cdf0e10cSrcweir                         mbIsTransientChildrenDisabled( false )
115cdf0e10cSrcweir     {
116cdf0e10cSrcweir     }
117cdf0e10cSrcweir };
118cdf0e10cSrcweir 
119cdf0e10cSrcweir // ---------------
120cdf0e10cSrcweir // - ValueSetAcc -
121cdf0e10cSrcweir // ---------------
122cdf0e10cSrcweir 
123cdf0e10cSrcweir typedef ::cppu::WeakComponentImplHelper6<
124cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessible,
125cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
126cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleContext,
127cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleComponent,
128cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleSelection,
129cdf0e10cSrcweir     ::com::sun::star::lang::XUnoTunnel >
130cdf0e10cSrcweir     ValueSetAccComponentBase;
131cdf0e10cSrcweir 
132cdf0e10cSrcweir class ValueSetAcc :
133cdf0e10cSrcweir     public ::comphelper::OBaseMutex,
134cdf0e10cSrcweir     public ValueSetAccComponentBase
135cdf0e10cSrcweir {
136cdf0e10cSrcweir public:
137cdf0e10cSrcweir 
138cdf0e10cSrcweir     ValueSetAcc( ValueSet* pParent, bool bIsTransientChildrenDisabled );
139cdf0e10cSrcweir     ~ValueSetAcc();
140cdf0e10cSrcweir 
141cdf0e10cSrcweir     void                FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue );
HasAccessibleListeners() const142cdf0e10cSrcweir     sal_Bool                HasAccessibleListeners() const { return( mxEventListeners.size() > 0 ); }
143cdf0e10cSrcweir 
144cdf0e10cSrcweir     static ValueSetAcc* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
145cdf0e10cSrcweir 
146cdf0e10cSrcweir public:
147cdf0e10cSrcweir 
148cdf0e10cSrcweir     /** Called by the corresponding ValueSet when it gets the focus.
149cdf0e10cSrcweir         Stores the new focus state and broadcasts a state change event.
150cdf0e10cSrcweir     */
151cdf0e10cSrcweir     void GetFocus (void);
152cdf0e10cSrcweir 
153cdf0e10cSrcweir     /** Called by the corresponding ValueSet when it loses the focus.
154cdf0e10cSrcweir         Stores the new focus state and broadcasts a state change event.
155cdf0e10cSrcweir     */
156cdf0e10cSrcweir     void LoseFocus (void);
157cdf0e10cSrcweir 
158cdf0e10cSrcweir 
159cdf0e10cSrcweir     // XAccessible
160cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
161cdf0e10cSrcweir 
162cdf0e10cSrcweir     // XAccessibleEventBroadcaster
163cdf0e10cSrcweir     using cppu::WeakComponentImplHelper6<com::sun::star::accessibility::XAccessible, com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleContext, com::sun::star::accessibility::XAccessibleComponent, com::sun::star::accessibility::XAccessibleSelection, com::sun::star::lang::XUnoTunnel>::addEventListener;
164cdf0e10cSrcweir     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
165cdf0e10cSrcweir     using cppu::WeakComponentImplHelper6<com::sun::star::accessibility::XAccessible, com::sun::star::accessibility::XAccessibleEventBroadcaster, com::sun::star::accessibility::XAccessibleContext, com::sun::star::accessibility::XAccessibleComponent, com::sun::star::accessibility::XAccessibleSelection, com::sun::star::lang::XUnoTunnel>::removeEventListener;
166cdf0e10cSrcweir     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
167cdf0e10cSrcweir 
168cdf0e10cSrcweir     // XAccessibleContext
169cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
170cdf0e10cSrcweir     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);
171cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
172cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
173cdf0e10cSrcweir     virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
174cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
175cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
176cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
177cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
178cdf0e10cSrcweir     virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
179cdf0e10cSrcweir 
180cdf0e10cSrcweir     // XAccessibleComponent
181cdf0e10cSrcweir     virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
182cdf0e10cSrcweir     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);
183cdf0e10cSrcweir     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  ) throw (::com::sun::star::uno::RuntimeException);
184cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  ) throw (::com::sun::star::uno::RuntimeException);
185cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  ) throw (::com::sun::star::uno::RuntimeException);
186cdf0e10cSrcweir     virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) throw (::com::sun::star::uno::RuntimeException);
187cdf0e10cSrcweir     virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
188cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding(  ) throw (::com::sun::star::uno::RuntimeException);
189cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
190cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
191cdf0e10cSrcweir 
192cdf0e10cSrcweir     // XAccessibleSelection
193cdf0e10cSrcweir     virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
194cdf0e10cSrcweir     virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
195cdf0e10cSrcweir     virtual void SAL_CALL clearAccessibleSelection(  ) throw (::com::sun::star::uno::RuntimeException);
196cdf0e10cSrcweir     virtual void SAL_CALL selectAllAccessibleChildren(  ) throw (::com::sun::star::uno::RuntimeException);
197cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
198cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
199cdf0e10cSrcweir     virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
200cdf0e10cSrcweir 
201cdf0e10cSrcweir     // XUnoTunnel
202cdf0e10cSrcweir     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
203cdf0e10cSrcweir 
204cdf0e10cSrcweir private:
205cdf0e10cSrcweir     //    ::vos::OMutex                                                                                                           maMutex;
206cdf0e10cSrcweir     ::std::vector< ::com::sun::star::uno::Reference<
207cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessibleEventListener > >   mxEventListeners;
208cdf0e10cSrcweir     ValueSet*                                                           mpParent;
209cdf0e10cSrcweir     bool                                                                mbIsTransientChildrenDisabled;
210cdf0e10cSrcweir     /// The current FOCUSED state.
211cdf0e10cSrcweir     bool mbIsFocused;
212cdf0e10cSrcweir 
213cdf0e10cSrcweir 	static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
214cdf0e10cSrcweir 
215cdf0e10cSrcweir     /** Tell all listeners that the object is dying.  This callback is
216cdf0e10cSrcweir         usually called from the WeakComponentImplHelper class.
217cdf0e10cSrcweir     */
218cdf0e10cSrcweir     virtual void SAL_CALL disposing (void);
219cdf0e10cSrcweir 
220cdf0e10cSrcweir     /** Return the number of items.  This takes the None-Item into account.
221cdf0e10cSrcweir     */
222cdf0e10cSrcweir     sal_uInt16 getItemCount (void) const;
223cdf0e10cSrcweir 
224cdf0e10cSrcweir     /** Return the item associated with the given index.  The None-Item is
225cdf0e10cSrcweir         taken into account which, when present, is taken to be the first
226cdf0e10cSrcweir         (with index 0) item.
227cdf0e10cSrcweir         @param nIndex
228cdf0e10cSrcweir             Index of the item to return.  The index 0 denotes the None-Item
229cdf0e10cSrcweir             when present.
230cdf0e10cSrcweir         @return
231cdf0e10cSrcweir             Returns NULL when the given index is out of range.
232cdf0e10cSrcweir     */
233cdf0e10cSrcweir     ValueSetItem* getItem (sal_uInt16 nIndex) const;
234cdf0e10cSrcweir 
235cdf0e10cSrcweir     /** Check whether or not the object has been disposed (or is in the
236cdf0e10cSrcweir         state of beeing disposed).  If that is the case then
237cdf0e10cSrcweir         DisposedException is thrown to inform the (indirect) caller of the
238cdf0e10cSrcweir         foul deed.
239cdf0e10cSrcweir     */
240cdf0e10cSrcweir     void ThrowIfDisposed (void)
241cdf0e10cSrcweir         throw (::com::sun::star::lang::DisposedException);
242cdf0e10cSrcweir 
243cdf0e10cSrcweir     /** Check whether or not the object has been disposed (or is in the
244cdf0e10cSrcweir         state of beeing disposed).
245cdf0e10cSrcweir 
246cdf0e10cSrcweir         @return sal_True, if the object is disposed or in the course
247cdf0e10cSrcweir         of being disposed. Otherwise, sal_False is returned.
248cdf0e10cSrcweir     */
249cdf0e10cSrcweir     sal_Bool IsDisposed (void);
250cdf0e10cSrcweir 
251cdf0e10cSrcweir     /** Check whether the value set has a 'none' field, i.e. a field (button)
252cdf0e10cSrcweir         that deselects any items (selects none of them).
253cdf0e10cSrcweir         @return
254cdf0e10cSrcweir             Returns <true/> if there is a 'none' field and <false/> it it is
255cdf0e10cSrcweir             missing.
256cdf0e10cSrcweir     */
257cdf0e10cSrcweir     bool HasNoneField (void) const;
258cdf0e10cSrcweir };
259cdf0e10cSrcweir 
260cdf0e10cSrcweir // ----------------
261cdf0e10cSrcweir // - ValueItemAcc -
262cdf0e10cSrcweir // ----------------
263cdf0e10cSrcweir 
264cdf0e10cSrcweir class ValueItemAcc : public ::cppu::WeakImplHelper5< ::com::sun::star::accessibility::XAccessible,
265cdf0e10cSrcweir                                                      ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
266cdf0e10cSrcweir                                                      ::com::sun::star::accessibility::XAccessibleContext,
267cdf0e10cSrcweir                                                      ::com::sun::star::accessibility::XAccessibleComponent,
268cdf0e10cSrcweir                                                      ::com::sun::star::lang::XUnoTunnel >
269cdf0e10cSrcweir {
270cdf0e10cSrcweir private:
271cdf0e10cSrcweir 
272cdf0e10cSrcweir     ::std::vector< ::com::sun::star::uno::Reference<
273cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessibleEventListener > >   mxEventListeners;
274cdf0e10cSrcweir     ::vos::OMutex                                                       maMutex;
275cdf0e10cSrcweir     ValueSetItem*                                                       mpParent;
276cdf0e10cSrcweir     bool                                                                mbIsTransientChildrenDisabled;
277cdf0e10cSrcweir 
278cdf0e10cSrcweir 	static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
279cdf0e10cSrcweir 
280cdf0e10cSrcweir public:
281cdf0e10cSrcweir 
282cdf0e10cSrcweir     ValueItemAcc( ValueSetItem* pParent, bool bIsTransientChildrenDisabled );
283cdf0e10cSrcweir     ~ValueItemAcc();
284cdf0e10cSrcweir 
285cdf0e10cSrcweir     void    ParentDestroyed();
286cdf0e10cSrcweir 
287cdf0e10cSrcweir     void    FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue );
HasAccessibleListeners() const288cdf0e10cSrcweir     sal_Bool    HasAccessibleListeners() const { return( mxEventListeners.size() > 0 ); }
289cdf0e10cSrcweir 
290cdf0e10cSrcweir     static ValueItemAcc* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
291cdf0e10cSrcweir 
292cdf0e10cSrcweir public:
293cdf0e10cSrcweir 
294cdf0e10cSrcweir     // XAccessible
295cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
296cdf0e10cSrcweir 
297cdf0e10cSrcweir     // XAccessibleEventBroadcaster
298cdf0e10cSrcweir     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
299cdf0e10cSrcweir     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
300cdf0e10cSrcweir 
301cdf0e10cSrcweir     // XAccessibleContext
302cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
303cdf0e10cSrcweir     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);
304cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
305cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
306cdf0e10cSrcweir     virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
307cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
308cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
309cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
310cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
311cdf0e10cSrcweir     virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
312cdf0e10cSrcweir 
313cdf0e10cSrcweir     // XAccessibleComponent
314cdf0e10cSrcweir     virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
315cdf0e10cSrcweir     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);
316cdf0e10cSrcweir     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  ) throw (::com::sun::star::uno::RuntimeException);
317cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  ) throw (::com::sun::star::uno::RuntimeException);
318cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  ) throw (::com::sun::star::uno::RuntimeException);
319cdf0e10cSrcweir     virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) throw (::com::sun::star::uno::RuntimeException);
320cdf0e10cSrcweir     virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
321cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding(  ) throw (::com::sun::star::uno::RuntimeException);
322cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
323cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
324cdf0e10cSrcweir 
325cdf0e10cSrcweir     // XUnoTunnel
326cdf0e10cSrcweir     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
327cdf0e10cSrcweir };
328