xref: /AOO42X/main/comphelper/source/misc/accessiblecomponenthelper.cxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
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