xref: /AOO41X/main/svx/source/inc/charmapacc.hxx (revision 3334a7e6acdae9820fa1a6f556bb10129a8de6b2)
1*3334a7e6SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*3334a7e6SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*3334a7e6SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*3334a7e6SAndrew Rist  * distributed with this work for additional information
6*3334a7e6SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*3334a7e6SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*3334a7e6SAndrew Rist  * "License"); you may not use this file except in compliance
9*3334a7e6SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*3334a7e6SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*3334a7e6SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*3334a7e6SAndrew Rist  * software distributed under the License is distributed on an
15*3334a7e6SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3334a7e6SAndrew Rist  * KIND, either express or implied.  See the License for the
17*3334a7e6SAndrew Rist  * specific language governing permissions and limitations
18*3334a7e6SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*3334a7e6SAndrew Rist  *************************************************************/
21*3334a7e6SAndrew Rist 
22*3334a7e6SAndrew 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 <comphelper/accessibleselectionhelper.hxx>
33cdf0e10cSrcweir #include <com/sun/star/accessibility/XAccessibleTable.hpp>
34cdf0e10cSrcweir 
35cdf0e10cSrcweir #include <vector>
36cdf0e10cSrcweir class SvxShowCharSet;
37cdf0e10cSrcweir 
38cdf0e10cSrcweir namespace svx
39cdf0e10cSrcweir {
40cdf0e10cSrcweir 	typedef	::cppu::ImplHelper1	<	::com::sun::star::accessibility::XAccessible
41cdf0e10cSrcweir 								>	OAccessibleHelper_Base_2;
42cdf0e10cSrcweir 
43cdf0e10cSrcweir 	class SvxShowCharSetAcc;
44cdf0e10cSrcweir 	/** The class SvxShowCharSetVirtualAcc is used as a virtual class which contains the table and the scrollbar.
45cdf0e10cSrcweir 		In the vcl control, the table and the scrollbar exists in one class. This is not feasible for the accessibility api.
46cdf0e10cSrcweir 	*/
47cdf0e10cSrcweir 	class SvxShowCharSetVirtualAcc : public ::comphelper::OAccessibleComponentHelper,
48cdf0e10cSrcweir 									 public OAccessibleHelper_Base_2
49cdf0e10cSrcweir 	{
50cdf0e10cSrcweir 		SvxShowCharSet*		mpParent; // the vcl control
51cdf0e10cSrcweir 		SvxShowCharSetAcc*	m_pTable; // the table, which holds the characters shown by the vcl control
52cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xAcc; // the ref to the table
53cdf0e10cSrcweir 	protected:
54cdf0e10cSrcweir 		virtual ~SvxShowCharSetVirtualAcc();
55cdf0e10cSrcweir 
56cdf0e10cSrcweir 		virtual void SAL_CALL disposing();
57cdf0e10cSrcweir 
58cdf0e10cSrcweir 		virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds(  ) throw (::com::sun::star::uno::RuntimeException);
59cdf0e10cSrcweir 	public:
60cdf0e10cSrcweir 		SvxShowCharSetVirtualAcc( SvxShowCharSet* pParent );
61cdf0e10cSrcweir 
62cdf0e10cSrcweir 		// XInterface
63cdf0e10cSrcweir 		DECLARE_XINTERFACE( )
64cdf0e10cSrcweir 		DECLARE_XTYPEPROVIDER( )
65cdf0e10cSrcweir 
66cdf0e10cSrcweir 		// XAccessibleComponent
67cdf0e10cSrcweir 		virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
68cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding(  ) throw (::com::sun::star::uno::RuntimeException);
69cdf0e10cSrcweir 		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);
70cdf0e10cSrcweir 		//OAccessibleContextHelper
71cdf0e10cSrcweir 		// XAccessibleContext - still waiting to be overwritten
72cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
73cdf0e10cSrcweir 		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);
74cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
75cdf0e10cSrcweir 		virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
76cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
77cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
78cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
79cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
80cdf0e10cSrcweir 
getAccessibleContext()81cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException) { return this; }
82cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
83cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
84cdf0e10cSrcweir 
85cdf0e10cSrcweir 
86cdf0e10cSrcweir 		// call the fireEvent method from the table when it exists.
87cdf0e10cSrcweir 		void SAL_CALL fireEvent(
88cdf0e10cSrcweir 					const sal_Int16 _nEventId,
89cdf0e10cSrcweir 					const ::com::sun::star::uno::Any& _rOldValue,
90cdf0e10cSrcweir 					const ::com::sun::star::uno::Any& _rNewValue
91cdf0e10cSrcweir 				);
92cdf0e10cSrcweir 
93cdf0e10cSrcweir 		// simple access methods
getTable() const94cdf0e10cSrcweir 		inline SvxShowCharSetAcc*	getTable() const { return m_pTable; }
getCharSetControl() const95cdf0e10cSrcweir 		inline SvxShowCharSet* getCharSetControl() const { return mpParent; }
96cdf0e10cSrcweir 	};
97cdf0e10cSrcweir 
98cdf0e10cSrcweir 
99cdf0e10cSrcweir 	class SvxShowCharSetItemAcc;
100cdf0e10cSrcweir 	// ----------------
101cdf0e10cSrcweir 	// - SvxShowCharSetItem -
102cdf0e10cSrcweir 	// ----------------
103cdf0e10cSrcweir 	/** Simple struct to hold some information about the single items of the table.
104cdf0e10cSrcweir 	*/
105cdf0e10cSrcweir 	struct SvxShowCharSetItem
106cdf0e10cSrcweir 	{
107cdf0e10cSrcweir 		SvxShowCharSet&				mrParent;
108cdf0e10cSrcweir 		sal_uInt16						mnId;
109cdf0e10cSrcweir 		XubString					maText;
110cdf0e10cSrcweir 		Rectangle					maRect;
111cdf0e10cSrcweir 		SvxShowCharSetItemAcc*		m_pItem;
112cdf0e10cSrcweir 		SvxShowCharSetAcc*			m_pParent;
113cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xAcc;
114cdf0e10cSrcweir 
115cdf0e10cSrcweir 		SvxShowCharSetItem( SvxShowCharSet& rParent,SvxShowCharSetAcc*	_pParent,sal_uInt16 _nPos );
116cdf0e10cSrcweir 		~SvxShowCharSetItem();
117cdf0e10cSrcweir 
118cdf0e10cSrcweir 		::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >    GetAccessible();
119cdf0e10cSrcweir 		 void                                                                                       ClearAccessible();
120cdf0e10cSrcweir 	};
121cdf0e10cSrcweir 
122cdf0e10cSrcweir 	// -----------------------------------------------------------------------------
123cdf0e10cSrcweir 
124cdf0e10cSrcweir 	typedef	::cppu::ImplHelper2	<	::com::sun::star::accessibility::XAccessible,
125cdf0e10cSrcweir 									::com::sun::star::accessibility::XAccessibleTable
126cdf0e10cSrcweir 								>	OAccessibleHelper_Base;
127cdf0e10cSrcweir 	// ---------------
128cdf0e10cSrcweir 	// - SvxShowCharSetAcc -
129cdf0e10cSrcweir 	// ---------------
130cdf0e10cSrcweir 	/** The table implemtentation of the vcl control.
131cdf0e10cSrcweir 	*/
132cdf0e10cSrcweir 
133cdf0e10cSrcweir 	class SvxShowCharSetAcc : public ::comphelper::OAccessibleSelectionHelper,
134cdf0e10cSrcweir 							  public OAccessibleHelper_Base
135cdf0e10cSrcweir 	{
136cdf0e10cSrcweir 		::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > m_aChildren;
137cdf0e10cSrcweir 		SvxShowCharSetVirtualAcc* m_pParent; // the virtual parent
138cdf0e10cSrcweir 	protected:
139cdf0e10cSrcweir 		virtual void SAL_CALL disposing();
140cdf0e10cSrcweir 	public:
141cdf0e10cSrcweir 		SvxShowCharSetAcc( SvxShowCharSetVirtualAcc* _pParent );
142cdf0e10cSrcweir 
143cdf0e10cSrcweir 		DECLARE_XINTERFACE( )
144cdf0e10cSrcweir 		DECLARE_XTYPEPROVIDER( )
145cdf0e10cSrcweir 
146cdf0e10cSrcweir 		// XAccessibleComponent
147cdf0e10cSrcweir 		virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
148cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding(  ) throw (::com::sun::star::uno::RuntimeException);
149cdf0e10cSrcweir 		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);
150cdf0e10cSrcweir 
151cdf0e10cSrcweir 		//OAccessibleContextHelper
152cdf0e10cSrcweir 		// XAccessibleContext - still waiting to be overwritten
153cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
154cdf0e10cSrcweir 		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);
155cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
156cdf0e10cSrcweir 		virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
157cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
158cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
159cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
160cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
161cdf0e10cSrcweir 
getAccessibleContext()162cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException) { return this; }
163cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException);
164cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException);
165cdf0e10cSrcweir 
166cdf0e10cSrcweir 		// XAccessibleTable
167cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleRowCount(  ) throw (::com::sun::star::uno::RuntimeException);
168cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleColumnCount(  ) throw (::com::sun::star::uno::RuntimeException);
169cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
170cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
171cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
172cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
173cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleRowHeaders(  ) throw (::com::sun::star::uno::RuntimeException);
174cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL getAccessibleColumnHeaders(  ) throw (::com::sun::star::uno::RuntimeException);
175cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleRows(  ) throw (::com::sun::star::uno::RuntimeException);
176cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getSelectedAccessibleColumns(  ) throw (::com::sun::star::uno::RuntimeException);
177cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
178cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
179cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
180cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleCaption(  ) throw (::com::sun::star::uno::RuntimeException);
181cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleSummary(  ) throw (::com::sun::star::uno::RuntimeException);
182cdf0e10cSrcweir 		virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
183cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
184cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
185cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
186cdf0e10cSrcweir 
187cdf0e10cSrcweir 
fireEvent(const sal_Int16 _nEventId,const::com::sun::star::uno::Any & _rOldValue,const::com::sun::star::uno::Any & _rNewValue)188cdf0e10cSrcweir 		inline void SAL_CALL fireEvent(
189cdf0e10cSrcweir 					const sal_Int16 _nEventId,
190cdf0e10cSrcweir 					const ::com::sun::star::uno::Any& _rOldValue,
191cdf0e10cSrcweir 					const ::com::sun::star::uno::Any& _rNewValue
192cdf0e10cSrcweir 				)
193cdf0e10cSrcweir 		{
194cdf0e10cSrcweir 			NotifyAccessibleEvent(_nEventId,_rOldValue,_rNewValue);
195cdf0e10cSrcweir 		}
196cdf0e10cSrcweir 	protected:
197cdf0e10cSrcweir 
198cdf0e10cSrcweir 		virtual ~SvxShowCharSetAcc();
199cdf0e10cSrcweir 
200cdf0e10cSrcweir 		// OCommonAccessibleSelection
201cdf0e10cSrcweir         // return if the specified child is visible => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
202cdf0e10cSrcweir 	    virtual sal_Bool
203cdf0e10cSrcweir             implIsSelected( sal_Int32 nAccessibleChildIndex )
204cdf0e10cSrcweir             throw (::com::sun::star::uno::RuntimeException);
205cdf0e10cSrcweir 
206cdf0e10cSrcweir 	    // select the specified child => watch for special ChildIndexes (ACCESSIBLE_SELECTION_CHILD_xxx)
207cdf0e10cSrcweir         virtual void
208cdf0e10cSrcweir             implSelect( sal_Int32 nAccessibleChildIndex, sal_Bool bSelect )
209cdf0e10cSrcweir             throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
210cdf0e10cSrcweir 
211cdf0e10cSrcweir 		// OCommonAccessibleComponent
212cdf0e10cSrcweir 		/// implements the calculation of the bounding rectangle - still waiting to be overwritten
213cdf0e10cSrcweir 		virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds(  ) throw (::com::sun::star::uno::RuntimeException);
214cdf0e10cSrcweir 	};
215cdf0e10cSrcweir 
216cdf0e10cSrcweir 	// ----------------
217cdf0e10cSrcweir 	// - SvxShowCharSetItemAcc -
218cdf0e10cSrcweir 	// ----------------
219cdf0e10cSrcweir 	/** The child implementation of the table.
220cdf0e10cSrcweir 	*/
221cdf0e10cSrcweir 	class SvxShowCharSetItemAcc : public ::comphelper::OAccessibleComponentHelper,
222cdf0e10cSrcweir 								  public OAccessibleHelper_Base_2
223cdf0e10cSrcweir 	{
224cdf0e10cSrcweir 	private:
225cdf0e10cSrcweir 		SvxShowCharSetItem*	mpParent;
226cdf0e10cSrcweir 	protected:
227cdf0e10cSrcweir 		virtual ~SvxShowCharSetItemAcc();
228cdf0e10cSrcweir 
229cdf0e10cSrcweir 		// OCommonAccessibleComponent
230cdf0e10cSrcweir 		/// implements the calculation of the bounding rectangle - still waiting to be overwritten
231cdf0e10cSrcweir 		virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds(  ) throw (::com::sun::star::uno::RuntimeException);
232cdf0e10cSrcweir 	public:
233cdf0e10cSrcweir 
234cdf0e10cSrcweir 		// XInterface
235cdf0e10cSrcweir 		DECLARE_XINTERFACE( )
236cdf0e10cSrcweir 		DECLARE_XTYPEPROVIDER( )
237cdf0e10cSrcweir 
238cdf0e10cSrcweir 		SvxShowCharSetItemAcc( SvxShowCharSetItem* pParent );
239cdf0e10cSrcweir 
240cdf0e10cSrcweir 		void    ParentDestroyed();
241cdf0e10cSrcweir 
242cdf0e10cSrcweir 		// XAccessibleComponent
243cdf0e10cSrcweir 		virtual void SAL_CALL grabFocus(  ) throw (::com::sun::star::uno::RuntimeException);
244cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding(  ) throw (::com::sun::star::uno::RuntimeException);
245cdf0e10cSrcweir 		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);
246cdf0e10cSrcweir 
247cdf0e10cSrcweir 		//OAccessibleContextHelper
248cdf0e10cSrcweir 		// XAccessibleContext - still waiting to be overwritten
249cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getAccessibleChildCount(  ) throw (::com::sun::star::uno::RuntimeException);
250cdf0e10cSrcweir 		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);
251cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent(  ) throw (::com::sun::star::uno::RuntimeException);
252cdf0e10cSrcweir 		virtual sal_Int16 SAL_CALL getAccessibleRole(  ) throw (::com::sun::star::uno::RuntimeException);
253cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleDescription(  ) throw (::com::sun::star::uno::RuntimeException);
254cdf0e10cSrcweir 		virtual ::rtl::OUString SAL_CALL getAccessibleName(  ) throw (::com::sun::star::uno::RuntimeException);
255cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet(  ) throw (::com::sun::star::uno::RuntimeException);
256cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet(  ) throw (::com::sun::star::uno::RuntimeException);
257cdf0e10cSrcweir 
getAccessibleContext()258cdf0e10cSrcweir 		virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext(  ) throw (::com::sun::star::uno::RuntimeException) { return this; }
259cdf0e10cSrcweir 
getForeground()260cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getForeground(  ) throw (::com::sun::star::uno::RuntimeException) { return mpParent->m_pParent->getForeground(); }
getBackground()261cdf0e10cSrcweir 		virtual sal_Int32 SAL_CALL getBackground(  ) throw (::com::sun::star::uno::RuntimeException) { return mpParent->m_pParent->getBackground(); }
262cdf0e10cSrcweir 
fireEvent(const sal_Int16 _nEventId,const::com::sun::star::uno::Any & _rOldValue,const::com::sun::star::uno::Any & _rNewValue)263cdf0e10cSrcweir 		inline void SAL_CALL fireEvent(
264cdf0e10cSrcweir 					const sal_Int16 _nEventId,
265cdf0e10cSrcweir 					const ::com::sun::star::uno::Any& _rOldValue,
266cdf0e10cSrcweir 					const ::com::sun::star::uno::Any& _rNewValue
267cdf0e10cSrcweir 				)
268cdf0e10cSrcweir 		{
269cdf0e10cSrcweir 			NotifyAccessibleEvent(_nEventId,_rOldValue,_rNewValue);
270cdf0e10cSrcweir 		}
271cdf0e10cSrcweir 	};
272cdf0e10cSrcweir }
273cdf0e10cSrcweir 
274cdf0e10cSrcweir 
275