xref: /trunk/main/svtools/source/control/valueimp.hxx (revision 01aa44aa134af97080e2cf8e8bf3a0a4cd1cffe0)
1*01aa44aaSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*01aa44aaSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*01aa44aaSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*01aa44aaSAndrew Rist  * distributed with this work for additional information
6*01aa44aaSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*01aa44aaSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*01aa44aaSAndrew Rist  * "License"); you may not use this file except in compliance
9*01aa44aaSAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*01aa44aaSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*01aa44aaSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*01aa44aaSAndrew Rist  * software distributed under the License is distributed on an
15*01aa44aaSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*01aa44aaSAndrew Rist  * KIND, either express or implied.  See the License for the
17*01aa44aaSAndrew Rist  * specific language governing permissions and limitations
18*01aa44aaSAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*01aa44aaSAndrew Rist  *************************************************************/
21*01aa44aaSAndrew Rist 
22*01aa44aaSAndrew 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;
90cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >* mpxAcc;
91cdf0e10cSrcweir 
92cdf0e10cSrcweir     ValueSetItem( ValueSet& rParent );
93cdf0e10cSrcweir     ~ValueSetItem();
94cdf0e10cSrcweir 
95cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
96cdf0e10cSrcweir                         GetAccessible( bool bIsTransientChildrenDisabled );
97cdf0e10cSrcweir      void               ClearAccessible();
98cdf0e10cSrcweir };
99cdf0e10cSrcweir 
100cdf0e10cSrcweir // -----------------------------------------------------------------------------
101cdf0e10cSrcweir 
102cdf0e10cSrcweir DECLARE_LIST( ValueItemList, ValueSetItem* )
103cdf0e10cSrcweir 
104cdf0e10cSrcweir // -----------------------------------------------------------------------------
105cdf0e10cSrcweir 
106cdf0e10cSrcweir struct ValueSet_Impl
107cdf0e10cSrcweir {
108cdf0e10cSrcweir     ::std::auto_ptr< ValueItemList >    mpItemList;
109cdf0e10cSrcweir     bool                                mbIsTransientChildrenDisabled;
110cdf0e10cSrcweir     Link                                maHighlightHdl;
111cdf0e10cSrcweir 
112cdf0e10cSrcweir     ValueSet_Impl() :   mpItemList( ::std::auto_ptr< ValueItemList >( new ValueItemList() ) ),
113cdf0e10cSrcweir                         mbIsTransientChildrenDisabled( false )
114cdf0e10cSrcweir     {
115cdf0e10cSrcweir     }
116cdf0e10cSrcweir };
117cdf0e10cSrcweir 
118cdf0e10cSrcweir // ---------------
119cdf0e10cSrcweir // - ValueSetAcc -
120cdf0e10cSrcweir // ---------------
121cdf0e10cSrcweir 
122cdf0e10cSrcweir typedef ::cppu::WeakComponentImplHelper6<
123cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessible,
124cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
125cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleContext,
126cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleComponent,
127cdf0e10cSrcweir     ::com::sun::star::accessibility::XAccessibleSelection,
128cdf0e10cSrcweir     ::com::sun::star::lang::XUnoTunnel >
129cdf0e10cSrcweir     ValueSetAccComponentBase;
130cdf0e10cSrcweir 
131cdf0e10cSrcweir class ValueSetAcc :
132cdf0e10cSrcweir     public ::comphelper::OBaseMutex,
133cdf0e10cSrcweir     public ValueSetAccComponentBase
134cdf0e10cSrcweir {
135cdf0e10cSrcweir public:
136cdf0e10cSrcweir 
137cdf0e10cSrcweir     ValueSetAcc( ValueSet* pParent, bool bIsTransientChildrenDisabled );
138cdf0e10cSrcweir     ~ValueSetAcc();
139cdf0e10cSrcweir 
140cdf0e10cSrcweir     void                FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue );
141cdf0e10cSrcweir     sal_Bool                HasAccessibleListeners() const { return( mxEventListeners.size() > 0 ); }
142cdf0e10cSrcweir 
143cdf0e10cSrcweir     static ValueSetAcc* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
144cdf0e10cSrcweir 
145cdf0e10cSrcweir public:
146cdf0e10cSrcweir 
147cdf0e10cSrcweir     /** Called by the corresponding ValueSet when it gets the focus.
148cdf0e10cSrcweir         Stores the new focus state and broadcasts a state change event.
149cdf0e10cSrcweir     */
150cdf0e10cSrcweir     void GetFocus (void);
151cdf0e10cSrcweir 
152cdf0e10cSrcweir     /** Called by the corresponding ValueSet when it loses the focus.
153cdf0e10cSrcweir         Stores the new focus state and broadcasts a state change event.
154cdf0e10cSrcweir     */
155cdf0e10cSrcweir     void LoseFocus (void);
156cdf0e10cSrcweir 
157cdf0e10cSrcweir 
158cdf0e10cSrcweir     // XAccessible
159cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
160cdf0e10cSrcweir 
161cdf0e10cSrcweir     // XAccessibleEventBroadcaster
162cdf0e10cSrcweir     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;
163cdf0e10cSrcweir     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
164cdf0e10cSrcweir     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;
165cdf0e10cSrcweir     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
166cdf0e10cSrcweir 
167cdf0e10cSrcweir     // XAccessibleContext
168cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
169cdf0e10cSrcweir     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);
170cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
171cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
172cdf0e10cSrcweir     virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
173cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
174cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
175cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
176cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
177cdf0e10cSrcweir     virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
178cdf0e10cSrcweir 
179cdf0e10cSrcweir     // XAccessibleComponent
180cdf0e10cSrcweir     virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
181cdf0e10cSrcweir     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);
182cdf0e10cSrcweir     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  ) throw (::com::sun::star::uno::RuntimeException);
183cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  ) throw (::com::sun::star::uno::RuntimeException);
184cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  ) throw (::com::sun::star::uno::RuntimeException);
185cdf0e10cSrcweir     virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) throw (::com::sun::star::uno::RuntimeException);
186cdf0e10cSrcweir     virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
187cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding(  ) throw (::com::sun::star::uno::RuntimeException);
188cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
189cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
190cdf0e10cSrcweir 
191cdf0e10cSrcweir     // XAccessibleSelection
192cdf0e10cSrcweir     virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
193cdf0e10cSrcweir     virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
194cdf0e10cSrcweir     virtual void SAL_CALL clearAccessibleSelection(  ) throw (::com::sun::star::uno::RuntimeException);
195cdf0e10cSrcweir     virtual void SAL_CALL selectAllAccessibleChildren(  ) throw (::com::sun::star::uno::RuntimeException);
196cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
197cdf0e10cSrcweir     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);
198cdf0e10cSrcweir     virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
199cdf0e10cSrcweir 
200cdf0e10cSrcweir     // XUnoTunnel
201cdf0e10cSrcweir     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
202cdf0e10cSrcweir 
203cdf0e10cSrcweir private:
204cdf0e10cSrcweir     //    ::vos::OMutex                                                                                                           maMutex;
205cdf0e10cSrcweir     ::std::vector< ::com::sun::star::uno::Reference<
206cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessibleEventListener > >   mxEventListeners;
207cdf0e10cSrcweir     ValueSet*                                                           mpParent;
208cdf0e10cSrcweir     bool                                                                mbIsTransientChildrenDisabled;
209cdf0e10cSrcweir     /// The current FOCUSED state.
210cdf0e10cSrcweir     bool mbIsFocused;
211cdf0e10cSrcweir 
212cdf0e10cSrcweir     static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
213cdf0e10cSrcweir 
214cdf0e10cSrcweir     /** Tell all listeners that the object is dying.  This callback is
215cdf0e10cSrcweir         usually called from the WeakComponentImplHelper class.
216cdf0e10cSrcweir     */
217cdf0e10cSrcweir     virtual void SAL_CALL disposing (void);
218cdf0e10cSrcweir 
219cdf0e10cSrcweir     /** Return the number of items.  This takes the None-Item into account.
220cdf0e10cSrcweir     */
221cdf0e10cSrcweir     sal_uInt16 getItemCount (void) const;
222cdf0e10cSrcweir 
223cdf0e10cSrcweir     /** Return the item associated with the given index.  The None-Item is
224cdf0e10cSrcweir         taken into account which, when present, is taken to be the first
225cdf0e10cSrcweir         (with index 0) item.
226cdf0e10cSrcweir         @param nIndex
227cdf0e10cSrcweir             Index of the item to return.  The index 0 denotes the None-Item
228cdf0e10cSrcweir             when present.
229cdf0e10cSrcweir         @return
230cdf0e10cSrcweir             Returns NULL when the given index is out of range.
231cdf0e10cSrcweir     */
232cdf0e10cSrcweir     ValueSetItem* getItem (sal_uInt16 nIndex) const;
233cdf0e10cSrcweir 
234cdf0e10cSrcweir     /** Check whether or not the object has been disposed (or is in the
235cdf0e10cSrcweir         state of beeing disposed).  If that is the case then
236cdf0e10cSrcweir         DisposedException is thrown to inform the (indirect) caller of the
237cdf0e10cSrcweir         foul deed.
238cdf0e10cSrcweir     */
239cdf0e10cSrcweir     void ThrowIfDisposed (void)
240cdf0e10cSrcweir         throw (::com::sun::star::lang::DisposedException);
241cdf0e10cSrcweir 
242cdf0e10cSrcweir     /** Check whether or not the object has been disposed (or is in the
243cdf0e10cSrcweir         state of beeing disposed).
244cdf0e10cSrcweir 
245cdf0e10cSrcweir         @return sal_True, if the object is disposed or in the course
246cdf0e10cSrcweir         of being disposed. Otherwise, sal_False is returned.
247cdf0e10cSrcweir     */
248cdf0e10cSrcweir     sal_Bool IsDisposed (void);
249cdf0e10cSrcweir 
250cdf0e10cSrcweir     /** Check whether the value set has a 'none' field, i.e. a field (button)
251cdf0e10cSrcweir         that deselects any items (selects none of them).
252cdf0e10cSrcweir         @return
253cdf0e10cSrcweir             Returns <true/> if there is a 'none' field and <false/> it it is
254cdf0e10cSrcweir             missing.
255cdf0e10cSrcweir     */
256cdf0e10cSrcweir     bool HasNoneField (void) const;
257cdf0e10cSrcweir };
258cdf0e10cSrcweir 
259cdf0e10cSrcweir // ----------------
260cdf0e10cSrcweir // - ValueItemAcc -
261cdf0e10cSrcweir // ----------------
262cdf0e10cSrcweir 
263cdf0e10cSrcweir class ValueItemAcc : public ::cppu::WeakImplHelper5< ::com::sun::star::accessibility::XAccessible,
264cdf0e10cSrcweir                                                      ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
265cdf0e10cSrcweir                                                      ::com::sun::star::accessibility::XAccessibleContext,
266cdf0e10cSrcweir                                                      ::com::sun::star::accessibility::XAccessibleComponent,
267cdf0e10cSrcweir                                                      ::com::sun::star::lang::XUnoTunnel >
268cdf0e10cSrcweir {
269cdf0e10cSrcweir private:
270cdf0e10cSrcweir 
271cdf0e10cSrcweir     ::std::vector< ::com::sun::star::uno::Reference<
272cdf0e10cSrcweir         ::com::sun::star::accessibility::XAccessibleEventListener > >   mxEventListeners;
273cdf0e10cSrcweir     ::vos::OMutex                                                       maMutex;
274cdf0e10cSrcweir     ValueSetItem*                                                       mpParent;
275cdf0e10cSrcweir     bool                                                                mbIsTransientChildrenDisabled;
276cdf0e10cSrcweir 
277cdf0e10cSrcweir     static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
278cdf0e10cSrcweir 
279cdf0e10cSrcweir public:
280cdf0e10cSrcweir 
281cdf0e10cSrcweir     ValueItemAcc( ValueSetItem* pParent, bool bIsTransientChildrenDisabled );
282cdf0e10cSrcweir     ~ValueItemAcc();
283cdf0e10cSrcweir 
284cdf0e10cSrcweir     void    ParentDestroyed();
285cdf0e10cSrcweir 
286cdf0e10cSrcweir     void    FireAccessibleEvent( short nEventId, const ::com::sun::star::uno::Any& rOldValue, const ::com::sun::star::uno::Any& rNewValue );
287cdf0e10cSrcweir     sal_Bool    HasAccessibleListeners() const { return( mxEventListeners.size() > 0 ); }
288cdf0e10cSrcweir 
289cdf0e10cSrcweir     static ValueItemAcc* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
290cdf0e10cSrcweir 
291cdf0e10cSrcweir public:
292cdf0e10cSrcweir 
293cdf0e10cSrcweir     // XAccessible
294cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException);
295cdf0e10cSrcweir 
296cdf0e10cSrcweir     // XAccessibleEventBroadcaster
297cdf0e10cSrcweir     virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
298cdf0e10cSrcweir     virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
299cdf0e10cSrcweir 
300cdf0e10cSrcweir     // XAccessibleContext
301cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
302cdf0e10cSrcweir     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);
303cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
304cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getAccessibleIndexInParent(  ) throw (::com::sun::star::uno::RuntimeException);
305cdf0e10cSrcweir     virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
306cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
307cdf0e10cSrcweir     virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
308cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
309cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
310cdf0e10cSrcweir     virtual ::com::sun::star::lang::Locale SAL_CALL getLocale(  ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
311cdf0e10cSrcweir 
312cdf0e10cSrcweir     // XAccessibleComponent
313cdf0e10cSrcweir     virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
314cdf0e10cSrcweir     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);
315cdf0e10cSrcweir     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  ) throw (::com::sun::star::uno::RuntimeException);
316cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  ) throw (::com::sun::star::uno::RuntimeException);
317cdf0e10cSrcweir     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  ) throw (::com::sun::star::uno::RuntimeException);
318cdf0e10cSrcweir     virtual ::com::sun::star::awt::Size SAL_CALL getSize(  ) throw (::com::sun::star::uno::RuntimeException);
319cdf0e10cSrcweir     virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
320cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding(  ) throw (::com::sun::star::uno::RuntimeException);
321cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
322cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
323cdf0e10cSrcweir 
324cdf0e10cSrcweir     // XUnoTunnel
325cdf0e10cSrcweir     virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
326cdf0e10cSrcweir };
327