1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir 
28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
29*cdf0e10cSrcweir #include "precompiled_comphelper.hxx"
30*cdf0e10cSrcweir #include <comphelper/accessiblecomponenthelper.hxx>
31*cdf0e10cSrcweir 
32*cdf0e10cSrcweir //.........................................................................
33*cdf0e10cSrcweir namespace comphelper
34*cdf0e10cSrcweir {
35*cdf0e10cSrcweir //.........................................................................
36*cdf0e10cSrcweir 
37*cdf0e10cSrcweir 	using namespace ::com::sun::star::uno;
38*cdf0e10cSrcweir 	using namespace ::com::sun::star::awt;
39*cdf0e10cSrcweir 	using namespace ::com::sun::star::lang;
40*cdf0e10cSrcweir 	using namespace ::com::sun::star::accessibility;
41*cdf0e10cSrcweir 
42*cdf0e10cSrcweir 	//=====================================================================
43*cdf0e10cSrcweir 	//= OCommonAccessibleComponent
44*cdf0e10cSrcweir 	//=====================================================================
45*cdf0e10cSrcweir 	//---------------------------------------------------------------------
46*cdf0e10cSrcweir 	OCommonAccessibleComponent::OCommonAccessibleComponent( )
47*cdf0e10cSrcweir 	{
48*cdf0e10cSrcweir 	}
49*cdf0e10cSrcweir 
50*cdf0e10cSrcweir 	//---------------------------------------------------------------------
51*cdf0e10cSrcweir 	OCommonAccessibleComponent::OCommonAccessibleComponent( IMutex* _pExternalLock )
52*cdf0e10cSrcweir 		:OAccessibleContextHelper( _pExternalLock )
53*cdf0e10cSrcweir 	{
54*cdf0e10cSrcweir 	}
55*cdf0e10cSrcweir 
56*cdf0e10cSrcweir 	//---------------------------------------------------------------------
57*cdf0e10cSrcweir 	OCommonAccessibleComponent::~OCommonAccessibleComponent( )
58*cdf0e10cSrcweir 	{
59*cdf0e10cSrcweir 		forgetExternalLock();
60*cdf0e10cSrcweir 			// this ensures that the lock, which may be already destroyed as part of the derivee,
61*cdf0e10cSrcweir 			// is not used anymore
62*cdf0e10cSrcweir 	}
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir 	//--------------------------------------------------------------------
65*cdf0e10cSrcweir 	sal_Bool SAL_CALL OCommonAccessibleComponent::containsPoint( const Point& _rPoint ) throw (RuntimeException)
66*cdf0e10cSrcweir 	{
67*cdf0e10cSrcweir 		OExternalLockGuard aGuard( this );
68*cdf0e10cSrcweir 		Rectangle aBounds( implGetBounds() );
69*cdf0e10cSrcweir 		return	( _rPoint.X >= 0 )
70*cdf0e10cSrcweir 			&&	( _rPoint.Y >= 0 )
71*cdf0e10cSrcweir 			&&	( _rPoint.X < aBounds.Width )
72*cdf0e10cSrcweir 			&&	( _rPoint.Y < aBounds.Height );
73*cdf0e10cSrcweir 	}
74*cdf0e10cSrcweir 
75*cdf0e10cSrcweir 	//--------------------------------------------------------------------
76*cdf0e10cSrcweir 	Point SAL_CALL OCommonAccessibleComponent::getLocation(  ) throw (RuntimeException)
77*cdf0e10cSrcweir 	{
78*cdf0e10cSrcweir 		OExternalLockGuard aGuard( this );
79*cdf0e10cSrcweir 		Rectangle aBounds( implGetBounds() );
80*cdf0e10cSrcweir 		return Point( aBounds.X, aBounds.Y );
81*cdf0e10cSrcweir 	}
82*cdf0e10cSrcweir 
83*cdf0e10cSrcweir 	//--------------------------------------------------------------------
84*cdf0e10cSrcweir 	Point SAL_CALL OCommonAccessibleComponent::getLocationOnScreen(  ) throw (RuntimeException)
85*cdf0e10cSrcweir 	{
86*cdf0e10cSrcweir 		OExternalLockGuard aGuard( this );
87*cdf0e10cSrcweir 		Rectangle aBounds( implGetBounds() );
88*cdf0e10cSrcweir 
89*cdf0e10cSrcweir 		Point aScreenLoc( 0, 0 );
90*cdf0e10cSrcweir 
91*cdf0e10cSrcweir 		Reference< XAccessibleComponent > xParentComponent( implGetParentContext(), UNO_QUERY );
92*cdf0e10cSrcweir 		OSL_ENSURE( xParentComponent.is(), "OCommonAccessibleComponent::getLocationOnScreen: no parent component!" );
93*cdf0e10cSrcweir 		if ( xParentComponent.is() )
94*cdf0e10cSrcweir 		{
95*cdf0e10cSrcweir 			Point aParentScreenLoc( xParentComponent->getLocationOnScreen() );
96*cdf0e10cSrcweir 			Point aOwnRelativeLoc( getLocation() );
97*cdf0e10cSrcweir 			aScreenLoc.X = aParentScreenLoc.X + aOwnRelativeLoc.X;
98*cdf0e10cSrcweir 			aScreenLoc.Y = aParentScreenLoc.Y + aOwnRelativeLoc.Y;
99*cdf0e10cSrcweir 		}
100*cdf0e10cSrcweir 
101*cdf0e10cSrcweir 		return aScreenLoc;
102*cdf0e10cSrcweir 	}
103*cdf0e10cSrcweir 
104*cdf0e10cSrcweir 	//--------------------------------------------------------------------
105*cdf0e10cSrcweir 	Size SAL_CALL OCommonAccessibleComponent::getSize(  ) throw (RuntimeException)
106*cdf0e10cSrcweir 	{
107*cdf0e10cSrcweir 		OExternalLockGuard aGuard( this );
108*cdf0e10cSrcweir 		Rectangle aBounds( implGetBounds() );
109*cdf0e10cSrcweir 		return Size( aBounds.Width, aBounds.Height );
110*cdf0e10cSrcweir 	}
111*cdf0e10cSrcweir 
112*cdf0e10cSrcweir 	//--------------------------------------------------------------------
113*cdf0e10cSrcweir 	Rectangle SAL_CALL OCommonAccessibleComponent::getBounds(  ) throw (RuntimeException)
114*cdf0e10cSrcweir 	{
115*cdf0e10cSrcweir 		OExternalLockGuard aGuard( this );
116*cdf0e10cSrcweir 		return implGetBounds();
117*cdf0e10cSrcweir 	}
118*cdf0e10cSrcweir 
119*cdf0e10cSrcweir 	//=====================================================================
120*cdf0e10cSrcweir 	//= OAccessibleComponentHelper
121*cdf0e10cSrcweir 	//=====================================================================
122*cdf0e10cSrcweir 	//---------------------------------------------------------------------
123*cdf0e10cSrcweir 	OAccessibleComponentHelper::OAccessibleComponentHelper( )
124*cdf0e10cSrcweir 	{
125*cdf0e10cSrcweir 	}
126*cdf0e10cSrcweir 
127*cdf0e10cSrcweir 	//---------------------------------------------------------------------
128*cdf0e10cSrcweir 	OAccessibleComponentHelper::OAccessibleComponentHelper( IMutex* _pExternalLock )
129*cdf0e10cSrcweir 		:OCommonAccessibleComponent( _pExternalLock )
130*cdf0e10cSrcweir 	{
131*cdf0e10cSrcweir 	}
132*cdf0e10cSrcweir 
133*cdf0e10cSrcweir 	//--------------------------------------------------------------------
134*cdf0e10cSrcweir 	IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleComponentHelper, OCommonAccessibleComponent, OAccessibleComponentHelper_Base )
135*cdf0e10cSrcweir 	IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleComponentHelper, OCommonAccessibleComponent, OAccessibleComponentHelper_Base )
136*cdf0e10cSrcweir 		// (order matters: the first is the class name, the second is the class doing the ref counting)
137*cdf0e10cSrcweir 
138*cdf0e10cSrcweir 	//--------------------------------------------------------------------
139*cdf0e10cSrcweir 	sal_Bool SAL_CALL OAccessibleComponentHelper::containsPoint( const Point& _rPoint ) throw (RuntimeException)
140*cdf0e10cSrcweir 	{
141*cdf0e10cSrcweir 		return OCommonAccessibleComponent::containsPoint( _rPoint );
142*cdf0e10cSrcweir 	}
143*cdf0e10cSrcweir 
144*cdf0e10cSrcweir 	//--------------------------------------------------------------------
145*cdf0e10cSrcweir 	Point SAL_CALL OAccessibleComponentHelper::getLocation(  ) throw (RuntimeException)
146*cdf0e10cSrcweir 	{
147*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getLocation( );
148*cdf0e10cSrcweir 	}
149*cdf0e10cSrcweir 
150*cdf0e10cSrcweir 	//--------------------------------------------------------------------
151*cdf0e10cSrcweir 	Point SAL_CALL OAccessibleComponentHelper::getLocationOnScreen(  ) throw (RuntimeException)
152*cdf0e10cSrcweir 	{
153*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getLocationOnScreen( );
154*cdf0e10cSrcweir 	}
155*cdf0e10cSrcweir 
156*cdf0e10cSrcweir 	//--------------------------------------------------------------------
157*cdf0e10cSrcweir 	Size SAL_CALL OAccessibleComponentHelper::getSize(  ) throw (RuntimeException)
158*cdf0e10cSrcweir 	{
159*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getSize( );
160*cdf0e10cSrcweir 	}
161*cdf0e10cSrcweir 
162*cdf0e10cSrcweir 	//--------------------------------------------------------------------
163*cdf0e10cSrcweir 	Rectangle SAL_CALL OAccessibleComponentHelper::getBounds(  ) throw (RuntimeException)
164*cdf0e10cSrcweir 	{
165*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getBounds( );
166*cdf0e10cSrcweir 	}
167*cdf0e10cSrcweir 
168*cdf0e10cSrcweir 	//=====================================================================
169*cdf0e10cSrcweir 	//= OAccessibleExtendedComponentHelper
170*cdf0e10cSrcweir 	//=====================================================================
171*cdf0e10cSrcweir 	//---------------------------------------------------------------------
172*cdf0e10cSrcweir 	OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper( )
173*cdf0e10cSrcweir 	{
174*cdf0e10cSrcweir 	}
175*cdf0e10cSrcweir 
176*cdf0e10cSrcweir 	//---------------------------------------------------------------------
177*cdf0e10cSrcweir 	OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper( IMutex* _pExternalLock )
178*cdf0e10cSrcweir 		:OCommonAccessibleComponent( _pExternalLock )
179*cdf0e10cSrcweir 	{
180*cdf0e10cSrcweir 	}
181*cdf0e10cSrcweir 
182*cdf0e10cSrcweir 	//--------------------------------------------------------------------
183*cdf0e10cSrcweir 	IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleExtendedComponentHelper, OCommonAccessibleComponent, OAccessibleExtendedComponentHelper_Base )
184*cdf0e10cSrcweir 	IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleExtendedComponentHelper, OCommonAccessibleComponent, OAccessibleExtendedComponentHelper_Base )
185*cdf0e10cSrcweir 		// (order matters: the first is the class name, the second is the class doing the ref counting)
186*cdf0e10cSrcweir 
187*cdf0e10cSrcweir 	//--------------------------------------------------------------------
188*cdf0e10cSrcweir 	sal_Bool SAL_CALL OAccessibleExtendedComponentHelper::containsPoint( const Point& _rPoint ) throw (RuntimeException)
189*cdf0e10cSrcweir 	{
190*cdf0e10cSrcweir 		return OCommonAccessibleComponent::containsPoint( _rPoint );
191*cdf0e10cSrcweir 	}
192*cdf0e10cSrcweir 
193*cdf0e10cSrcweir 	//--------------------------------------------------------------------
194*cdf0e10cSrcweir 	Point SAL_CALL OAccessibleExtendedComponentHelper::getLocation(  ) throw (RuntimeException)
195*cdf0e10cSrcweir 	{
196*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getLocation( );
197*cdf0e10cSrcweir 	}
198*cdf0e10cSrcweir 
199*cdf0e10cSrcweir 	//--------------------------------------------------------------------
200*cdf0e10cSrcweir 	Point SAL_CALL OAccessibleExtendedComponentHelper::getLocationOnScreen(  ) throw (RuntimeException)
201*cdf0e10cSrcweir 	{
202*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getLocationOnScreen( );
203*cdf0e10cSrcweir 	}
204*cdf0e10cSrcweir 
205*cdf0e10cSrcweir 	//--------------------------------------------------------------------
206*cdf0e10cSrcweir 	Size SAL_CALL OAccessibleExtendedComponentHelper::getSize(  ) throw (RuntimeException)
207*cdf0e10cSrcweir 	{
208*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getSize( );
209*cdf0e10cSrcweir 	}
210*cdf0e10cSrcweir 
211*cdf0e10cSrcweir 	//--------------------------------------------------------------------
212*cdf0e10cSrcweir 	Rectangle SAL_CALL OAccessibleExtendedComponentHelper::getBounds(  ) throw (RuntimeException)
213*cdf0e10cSrcweir 	{
214*cdf0e10cSrcweir 		return OCommonAccessibleComponent::getBounds( );
215*cdf0e10cSrcweir 	}
216*cdf0e10cSrcweir 
217*cdf0e10cSrcweir //.........................................................................
218*cdf0e10cSrcweir }	// namespace comphelper
219*cdf0e10cSrcweir //.........................................................................
220*cdf0e10cSrcweir 
221*cdf0e10cSrcweir 
222