1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski 
25*b1cdbd2cSJim Jagielski #ifndef _SC_ACCESSIBLECONTEXTBASE_HXX
26*b1cdbd2cSJim Jagielski #define _SC_ACCESSIBLECONTEXTBASE_HXX
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessible.hpp>
29*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleComponent.hpp>
30*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleContext.hpp>
31*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
32*b1cdbd2cSJim Jagielski #ifndef _COM_SUN_STAR_ACCESSIBILITY_IllegalAccessibleComponentStateException_HPP_
33*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/IllegalAccessibleComponentStateException.hpp>
34*b1cdbd2cSJim Jagielski #endif
35*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/DisposedException.hpp>
36*b1cdbd2cSJim Jagielski #include <com/sun/star/uno/Reference.hxx>
37*b1cdbd2cSJim Jagielski #include <cppuhelper/weak.hxx>
38*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceInfo.hpp>
39*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XTypeProvider.hpp>
40*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/XServiceName.hpp>
41*b1cdbd2cSJim Jagielski #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
42*b1cdbd2cSJim Jagielski #include <vos/mutex.hxx>
43*b1cdbd2cSJim Jagielski #include <cppuhelper/interfacecontainer.h>
44*b1cdbd2cSJim Jagielski 
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski #include <svl/lstner.hxx>
47*b1cdbd2cSJim Jagielski #include <cppuhelper/compbase5.hxx>
48*b1cdbd2cSJim Jagielski #include <cppuhelper/implbase1.hxx>
49*b1cdbd2cSJim Jagielski #include <comphelper/servicehelper.hxx>
50*b1cdbd2cSJim Jagielski #include <comphelper/broadcasthelper.hxx>
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski class Rectangle;
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski /**	@descr
55*b1cdbd2cSJim Jagielski         This base class provides an implementation of the
56*b1cdbd2cSJim Jagielski         <code>AccessibleContext</code> service.
57*b1cdbd2cSJim Jagielski */
58*b1cdbd2cSJim Jagielski 
59*b1cdbd2cSJim Jagielski typedef cppu::WeakAggComponentImplHelper5<
60*b1cdbd2cSJim Jagielski 				::com::sun::star::accessibility::XAccessible,
61*b1cdbd2cSJim Jagielski 				::com::sun::star::accessibility::XAccessibleComponent,
62*b1cdbd2cSJim Jagielski                 ::com::sun::star::accessibility::XAccessibleContext,
63*b1cdbd2cSJim Jagielski 				::com::sun::star::accessibility::XAccessibleEventBroadcaster,
64*b1cdbd2cSJim Jagielski                 ::com::sun::star::lang::XServiceInfo
65*b1cdbd2cSJim Jagielski 				> ScAccessibleContextBaseWeakImpl;
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski typedef cppu::ImplHelper1<
68*b1cdbd2cSJim Jagielski 				::com::sun::star::accessibility::XAccessibleEventListener
69*b1cdbd2cSJim Jagielski 				> ScAccessibleContextBaseImplEvent;
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski class ScAccessibleContextBase
72*b1cdbd2cSJim Jagielski 	:	public comphelper::OBaseMutex,
73*b1cdbd2cSJim Jagielski 		public ScAccessibleContextBaseWeakImpl,
74*b1cdbd2cSJim Jagielski 		public ScAccessibleContextBaseImplEvent,
75*b1cdbd2cSJim Jagielski 		public SfxListener
76*b1cdbd2cSJim Jagielski {
77*b1cdbd2cSJim Jagielski public:
78*b1cdbd2cSJim Jagielski 	//=====  internal  ========================================================
79*b1cdbd2cSJim Jagielski 	ScAccessibleContextBase(
80*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Reference<
81*b1cdbd2cSJim Jagielski         ::com::sun::star::accessibility::XAccessible>& rxParent,
82*b1cdbd2cSJim Jagielski 		const sal_Int16 aRole);
83*b1cdbd2cSJim Jagielski 
84*b1cdbd2cSJim Jagielski 	virtual void Init();
85*b1cdbd2cSJim Jagielski     virtual void SAL_CALL disposing();
86*b1cdbd2cSJim Jagielski protected:
87*b1cdbd2cSJim Jagielski 	virtual ~ScAccessibleContextBase(void);
88*b1cdbd2cSJim Jagielski public:
89*b1cdbd2cSJim Jagielski     using WeakAggComponentImplHelperBase::addEventListener;
90*b1cdbd2cSJim Jagielski     using WeakAggComponentImplHelperBase::removeEventListener;
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski 	///=====  SfxListener  =====================================================
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski 	virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski 	///=====  XInterface  =====================================================
97*b1cdbd2cSJim Jagielski 
98*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Any SAL_CALL queryInterface(
99*b1cdbd2cSJim Jagielski 		::com::sun::star::uno::Type const & rType )
100*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
101*b1cdbd2cSJim Jagielski 
102*b1cdbd2cSJim Jagielski 	virtual void SAL_CALL acquire() throw ();
103*b1cdbd2cSJim Jagielski 
104*b1cdbd2cSJim Jagielski 	virtual void SAL_CALL release() throw ();
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski 	///=====  XAccessible  =====================================================
107*b1cdbd2cSJim Jagielski 
108*b1cdbd2cSJim Jagielski     ///	Return the XAccessibleContext.
109*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL
110*b1cdbd2cSJim Jagielski     	getAccessibleContext(void) throw (::com::sun::star::uno::RuntimeException);
111*b1cdbd2cSJim Jagielski 
112*b1cdbd2cSJim Jagielski 	///=====  XAccessibleComponent  ============================================
113*b1cdbd2cSJim Jagielski 
114*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL containsPoint(
115*b1cdbd2cSJim Jagielski 		const ::com::sun::star::awt::Point& rPoint )
116*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
117*b1cdbd2cSJim Jagielski 
118*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
119*b1cdbd2cSJim Jagielski 		SAL_CALL getAccessibleAtPoint(
120*b1cdbd2cSJim Jagielski 		const ::com::sun::star::awt::Point& rPoint )
121*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds(  )
124*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
125*b1cdbd2cSJim Jagielski 
126*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::awt::Point SAL_CALL getLocation(  )
127*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
128*b1cdbd2cSJim Jagielski 
129*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen(  )
130*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
131*b1cdbd2cSJim Jagielski 
132*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::awt::Size SAL_CALL getSize(  )
133*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
134*b1cdbd2cSJim Jagielski 
135*b1cdbd2cSJim Jagielski 	virtual sal_Bool SAL_CALL isShowing(  )
136*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
137*b1cdbd2cSJim Jagielski 
138*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL isVisible(  )
139*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
140*b1cdbd2cSJim Jagielski 
141*b1cdbd2cSJim Jagielski     virtual void SAL_CALL grabFocus(  )
142*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
143*b1cdbd2cSJim Jagielski 
144*b1cdbd2cSJim Jagielski     virtual sal_Int32 SAL_CALL getForeground(  )
145*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
146*b1cdbd2cSJim Jagielski 
147*b1cdbd2cSJim Jagielski     virtual sal_Int32 SAL_CALL getBackground(  )
148*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
149*b1cdbd2cSJim Jagielski 
150*b1cdbd2cSJim Jagielski     ///=====  XAccessibleContext  ==============================================
151*b1cdbd2cSJim Jagielski 
152*b1cdbd2cSJim Jagielski     ///	Return the number of currently visible children.
153*b1cdbd2cSJim Jagielski     virtual sal_Int32 SAL_CALL
154*b1cdbd2cSJim Jagielski     	getAccessibleChildCount(void) throw (::com::sun::star::uno::RuntimeException);
155*b1cdbd2cSJim Jagielski 
156*b1cdbd2cSJim Jagielski     ///	Return the specified child or NULL if index is invalid.
157*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
158*b1cdbd2cSJim Jagielski     	getAccessibleChild(sal_Int32 nIndex)
159*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException,
160*b1cdbd2cSJim Jagielski 				::com::sun::star::lang::IndexOutOfBoundsException);
161*b1cdbd2cSJim Jagielski 
162*b1cdbd2cSJim Jagielski     ///	Return a reference to the parent.
163*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
164*b1cdbd2cSJim Jagielski     	getAccessibleParent(void)
165*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
166*b1cdbd2cSJim Jagielski 
167*b1cdbd2cSJim Jagielski     ///	Return this objects index among the parents children.
168*b1cdbd2cSJim Jagielski 	virtual	sal_Int32 SAL_CALL
169*b1cdbd2cSJim Jagielski     	getAccessibleIndexInParent(void)
170*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
171*b1cdbd2cSJim Jagielski 
172*b1cdbd2cSJim Jagielski     ///	Return this object's role.
173*b1cdbd2cSJim Jagielski 	virtual sal_Int16 SAL_CALL
174*b1cdbd2cSJim Jagielski     	getAccessibleRole(void)
175*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
176*b1cdbd2cSJim Jagielski 
177*b1cdbd2cSJim Jagielski     ///	Return this object's description.
178*b1cdbd2cSJim Jagielski 	virtual ::rtl::OUString SAL_CALL
179*b1cdbd2cSJim Jagielski     	getAccessibleDescription(void)
180*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
181*b1cdbd2cSJim Jagielski 
182*b1cdbd2cSJim Jagielski     ///	Return the object's current name.
183*b1cdbd2cSJim Jagielski 	virtual ::rtl::OUString SAL_CALL
184*b1cdbd2cSJim Jagielski     	getAccessibleName(void)
185*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
186*b1cdbd2cSJim Jagielski 
187*b1cdbd2cSJim Jagielski 	///	Return NULL to indicate that an empty relation set.
188*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference<
189*b1cdbd2cSJim Jagielski             ::com::sun::star::accessibility::XAccessibleRelationSet> SAL_CALL
190*b1cdbd2cSJim Jagielski     	getAccessibleRelationSet(void)
191*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
192*b1cdbd2cSJim Jagielski 
193*b1cdbd2cSJim Jagielski     ///	Return the set of current states.
194*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Reference<
195*b1cdbd2cSJim Jagielski             ::com::sun::star::accessibility::XAccessibleStateSet> SAL_CALL
196*b1cdbd2cSJim Jagielski     	getAccessibleStateSet(void)
197*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski 	/**	Return the parents locale or throw exception if this object has no
200*b1cdbd2cSJim Jagielski     	parent yet/anymore.
201*b1cdbd2cSJim Jagielski     */
202*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::lang::Locale SAL_CALL
203*b1cdbd2cSJim Jagielski     	getLocale(void)
204*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException,
205*b1cdbd2cSJim Jagielski 			::com::sun::star::accessibility::IllegalAccessibleComponentStateException);
206*b1cdbd2cSJim Jagielski 
207*b1cdbd2cSJim Jagielski 	///=====  XAccessibleEventBroadcaster  =====================================
208*b1cdbd2cSJim Jagielski 
209*b1cdbd2cSJim Jagielski     /**	Add listener that is informed of future changes of name,
210*b1cdbd2cSJim Jagielski       	description and so on events.
211*b1cdbd2cSJim Jagielski     */
212*b1cdbd2cSJim Jagielski 	virtual void SAL_CALL
213*b1cdbd2cSJim Jagielski     	addEventListener(
214*b1cdbd2cSJim Jagielski         	const ::com::sun::star::uno::Reference<
215*b1cdbd2cSJim Jagielski                 ::com::sun::star::accessibility::XAccessibleEventListener>& xListener)
216*b1cdbd2cSJim Jagielski         throw (com::sun::star::uno::RuntimeException);
217*b1cdbd2cSJim Jagielski 
218*b1cdbd2cSJim Jagielski     //	Remove an existing event listener.
219*b1cdbd2cSJim Jagielski 	virtual void SAL_CALL
220*b1cdbd2cSJim Jagielski     	removeEventListener(
221*b1cdbd2cSJim Jagielski 			const ::com::sun::star::uno::Reference<
222*b1cdbd2cSJim Jagielski                 ::com::sun::star::accessibility::XAccessibleEventListener>& xListener)
223*b1cdbd2cSJim Jagielski         throw (com::sun::star::uno::RuntimeException);
224*b1cdbd2cSJim Jagielski 
225*b1cdbd2cSJim Jagielski 	///=====  XAccessibleEventListener  ========================================
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski     virtual void SAL_CALL
228*b1cdbd2cSJim Jagielski 		disposing( const ::com::sun::star::lang::EventObject& Source )
229*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski 	virtual void SAL_CALL
232*b1cdbd2cSJim Jagielski 		notifyEvent(
233*b1cdbd2cSJim Jagielski 		const ::com::sun::star::accessibility::AccessibleEventObject& aEvent )
234*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
235*b1cdbd2cSJim Jagielski 
236*b1cdbd2cSJim Jagielski 	///=====  XServiceInfo  ====================================================
237*b1cdbd2cSJim Jagielski 
238*b1cdbd2cSJim Jagielski     /**	Returns an identifier for the implementation of this object.
239*b1cdbd2cSJim Jagielski     */
240*b1cdbd2cSJim Jagielski 	virtual ::rtl::OUString SAL_CALL
241*b1cdbd2cSJim Jagielski     	getImplementationName(void)
242*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
243*b1cdbd2cSJim Jagielski 
244*b1cdbd2cSJim Jagielski     /**	Return whether the specified service is supported by this class.
245*b1cdbd2cSJim Jagielski     */
246*b1cdbd2cSJim Jagielski     virtual sal_Bool SAL_CALL
247*b1cdbd2cSJim Jagielski     	supportsService(const ::rtl::OUString& sServiceName)
248*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
249*b1cdbd2cSJim Jagielski 
250*b1cdbd2cSJim Jagielski     /** Returns a list of all supported services.  In this case that is just
251*b1cdbd2cSJim Jagielski     	the AccessibleContext and Accessible service.
252*b1cdbd2cSJim Jagielski     */
253*b1cdbd2cSJim Jagielski 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL
254*b1cdbd2cSJim Jagielski     	getSupportedServiceNames(void)
255*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
256*b1cdbd2cSJim Jagielski 
257*b1cdbd2cSJim Jagielski 	///=====  XTypeProvider  ===================================================
258*b1cdbd2cSJim Jagielski 
259*b1cdbd2cSJim Jagielski  	/// returns the possible types
260*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL
261*b1cdbd2cSJim Jagielski 		getTypes()
262*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
263*b1cdbd2cSJim Jagielski 
264*b1cdbd2cSJim Jagielski 	/**	Returns a implementation id.
265*b1cdbd2cSJim Jagielski     */
266*b1cdbd2cSJim Jagielski     virtual ::com::sun::star::uno::Sequence<sal_Int8> SAL_CALL
267*b1cdbd2cSJim Jagielski         getImplementationId(void)
268*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
269*b1cdbd2cSJim Jagielski 
270*b1cdbd2cSJim Jagielski protected:
271*b1cdbd2cSJim Jagielski     ///	Return this object's description.
272*b1cdbd2cSJim Jagielski 	virtual ::rtl::OUString SAL_CALL
273*b1cdbd2cSJim Jagielski     	createAccessibleDescription(void)
274*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
275*b1cdbd2cSJim Jagielski 
276*b1cdbd2cSJim Jagielski     ///	Return the object's current name.
277*b1cdbd2cSJim Jagielski 	virtual ::rtl::OUString SAL_CALL
278*b1cdbd2cSJim Jagielski     	createAccessibleName(void)
279*b1cdbd2cSJim Jagielski         throw (::com::sun::star::uno::RuntimeException);
280*b1cdbd2cSJim Jagielski 
281*b1cdbd2cSJim Jagielski     ///	Return the object's current bounding box relative to the desktop.
282*b1cdbd2cSJim Jagielski 	virtual Rectangle GetBoundingBoxOnScreen(void) const
283*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
284*b1cdbd2cSJim Jagielski 
285*b1cdbd2cSJim Jagielski 	///	Return the object's current bounding box relative to the parent object.
286*b1cdbd2cSJim Jagielski 	virtual Rectangle GetBoundingBox(void) const
287*b1cdbd2cSJim Jagielski 		throw (::com::sun::star::uno::RuntimeException);
288*b1cdbd2cSJim Jagielski 
289*b1cdbd2cSJim Jagielski public:
290*b1cdbd2cSJim Jagielski     /// Calls all Listener to tell they the change.
291*b1cdbd2cSJim Jagielski 	void
292*b1cdbd2cSJim Jagielski 		CommitChange(const com::sun::star::accessibility::AccessibleEventObject& rEvent) const;
293*b1cdbd2cSJim Jagielski 
294*b1cdbd2cSJim Jagielski     /// change the name and call the listener to tell they the change
295*b1cdbd2cSJim Jagielski     void
296*b1cdbd2cSJim Jagielski         ChangeName();
297*b1cdbd2cSJim Jagielski 
298*b1cdbd2cSJim Jagielski protected:
299*b1cdbd2cSJim Jagielski 	/// Calls all FocusListener to tell they that the focus is gained.
300*b1cdbd2cSJim Jagielski 	void CommitFocusGained() const;
301*b1cdbd2cSJim Jagielski 
302*b1cdbd2cSJim Jagielski 	/// Calls all FocusListener to tell they that the focus is lost.
303*b1cdbd2cSJim Jagielski 	void CommitFocusLost() const;
304*b1cdbd2cSJim Jagielski 
IsDefunc() const305*b1cdbd2cSJim Jagielski 	sal_Bool IsDefunc() const { return rBHelper.bDisposed; }
306*b1cdbd2cSJim Jagielski 
307*b1cdbd2cSJim Jagielski     virtual void IsObjectValid() const
308*b1cdbd2cSJim Jagielski         throw (::com::sun::star::lang::DisposedException);
309*b1cdbd2cSJim Jagielski 
310*b1cdbd2cSJim Jagielski     /// Use this method to set initial Name without notification
SetName(const rtl::OUString & rName)311*b1cdbd2cSJim Jagielski     void SetName(const rtl::OUString& rName) { msName = rName; }
312*b1cdbd2cSJim Jagielski     /// Use this method to set initial Description without notification
SetDescription(const rtl::OUString & rDesc)313*b1cdbd2cSJim Jagielski     void SetDescription(const rtl::OUString& rDesc) { msDescription = rDesc; }
314*b1cdbd2cSJim Jagielski 
315*b1cdbd2cSJim Jagielski     ///	Reference to the parent object.
316*b1cdbd2cSJim Jagielski     ::com::sun::star::uno::Reference<
317*b1cdbd2cSJim Jagielski     	 ::com::sun::star::accessibility::XAccessible> mxParent;
318*b1cdbd2cSJim Jagielski 
319*b1cdbd2cSJim Jagielski private:
320*b1cdbd2cSJim Jagielski     /**	Description of this object.  This is not a constant because it can
321*b1cdbd2cSJim Jagielski     	be set from the outside.  Furthermore, it changes according the the
322*b1cdbd2cSJim Jagielski         draw page's display mode.
323*b1cdbd2cSJim Jagielski     */
324*b1cdbd2cSJim Jagielski     ::rtl::OUString msDescription;
325*b1cdbd2cSJim Jagielski 
326*b1cdbd2cSJim Jagielski     /**	Name of this object.  It changes according the the draw page's
327*b1cdbd2cSJim Jagielski         display mode.
328*b1cdbd2cSJim Jagielski     */
329*b1cdbd2cSJim Jagielski     ::rtl::OUString msName;
330*b1cdbd2cSJim Jagielski 
331*b1cdbd2cSJim Jagielski     /// client id in the AccessibleEventNotifier queue
332*b1cdbd2cSJim Jagielski     sal_uInt32 mnClientId;
333*b1cdbd2cSJim Jagielski 
334*b1cdbd2cSJim Jagielski 	/** This is the role of this object.
335*b1cdbd2cSJim Jagielski 	*/
336*b1cdbd2cSJim Jagielski 	sal_Int16 maRole;
337*b1cdbd2cSJim Jagielski };
338*b1cdbd2cSJim Jagielski 
339*b1cdbd2cSJim Jagielski 
340*b1cdbd2cSJim Jagielski #endif
341