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 // MARKER(update_precomp.py): autogen include statement, do not remove 25*b1cdbd2cSJim Jagielski #include "precompiled_comphelper.hxx" 26*b1cdbd2cSJim Jagielski #include <comphelper/accessiblecomponenthelper.hxx> 27*b1cdbd2cSJim Jagielski 28*b1cdbd2cSJim Jagielski //......................................................................... 29*b1cdbd2cSJim Jagielski namespace comphelper 30*b1cdbd2cSJim Jagielski { 31*b1cdbd2cSJim Jagielski //......................................................................... 32*b1cdbd2cSJim Jagielski 33*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno; 34*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::awt; 35*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::lang; 36*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::accessibility; 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski //===================================================================== 39*b1cdbd2cSJim Jagielski //= OCommonAccessibleComponent 40*b1cdbd2cSJim Jagielski //===================================================================== 41*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------- OCommonAccessibleComponent()42*b1cdbd2cSJim Jagielski OCommonAccessibleComponent::OCommonAccessibleComponent( ) 43*b1cdbd2cSJim Jagielski { 44*b1cdbd2cSJim Jagielski } 45*b1cdbd2cSJim Jagielski 46*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------- OCommonAccessibleComponent(IMutex * _pExternalLock)47*b1cdbd2cSJim Jagielski OCommonAccessibleComponent::OCommonAccessibleComponent( IMutex* _pExternalLock ) 48*b1cdbd2cSJim Jagielski :OAccessibleContextHelper( _pExternalLock ) 49*b1cdbd2cSJim Jagielski { 50*b1cdbd2cSJim Jagielski } 51*b1cdbd2cSJim Jagielski 52*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------- ~OCommonAccessibleComponent()53*b1cdbd2cSJim Jagielski OCommonAccessibleComponent::~OCommonAccessibleComponent( ) 54*b1cdbd2cSJim Jagielski { 55*b1cdbd2cSJim Jagielski forgetExternalLock(); 56*b1cdbd2cSJim Jagielski // this ensures that the lock, which may be already destroyed as part of the derivee, 57*b1cdbd2cSJim Jagielski // is not used anymore 58*b1cdbd2cSJim Jagielski } 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- containsPoint(const Point & _rPoint)61*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OCommonAccessibleComponent::containsPoint( const Point& _rPoint ) throw (RuntimeException) 62*b1cdbd2cSJim Jagielski { 63*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 64*b1cdbd2cSJim Jagielski Rectangle aBounds( implGetBounds() ); 65*b1cdbd2cSJim Jagielski return ( _rPoint.X >= 0 ) 66*b1cdbd2cSJim Jagielski && ( _rPoint.Y >= 0 ) 67*b1cdbd2cSJim Jagielski && ( _rPoint.X < aBounds.Width ) 68*b1cdbd2cSJim Jagielski && ( _rPoint.Y < aBounds.Height ); 69*b1cdbd2cSJim Jagielski } 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getLocation()72*b1cdbd2cSJim Jagielski Point SAL_CALL OCommonAccessibleComponent::getLocation( ) throw (RuntimeException) 73*b1cdbd2cSJim Jagielski { 74*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 75*b1cdbd2cSJim Jagielski Rectangle aBounds( implGetBounds() ); 76*b1cdbd2cSJim Jagielski return Point( aBounds.X, aBounds.Y ); 77*b1cdbd2cSJim Jagielski } 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getLocationOnScreen()80*b1cdbd2cSJim Jagielski Point SAL_CALL OCommonAccessibleComponent::getLocationOnScreen( ) throw (RuntimeException) 81*b1cdbd2cSJim Jagielski { 82*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 83*b1cdbd2cSJim Jagielski Rectangle aBounds( implGetBounds() ); 84*b1cdbd2cSJim Jagielski 85*b1cdbd2cSJim Jagielski Point aScreenLoc( 0, 0 ); 86*b1cdbd2cSJim Jagielski 87*b1cdbd2cSJim Jagielski Reference< XAccessibleComponent > xParentComponent( implGetParentContext(), UNO_QUERY ); 88*b1cdbd2cSJim Jagielski OSL_ENSURE( xParentComponent.is(), "OCommonAccessibleComponent::getLocationOnScreen: no parent component!" ); 89*b1cdbd2cSJim Jagielski if ( xParentComponent.is() ) 90*b1cdbd2cSJim Jagielski { 91*b1cdbd2cSJim Jagielski Point aParentScreenLoc( xParentComponent->getLocationOnScreen() ); 92*b1cdbd2cSJim Jagielski Point aOwnRelativeLoc( getLocation() ); 93*b1cdbd2cSJim Jagielski aScreenLoc.X = aParentScreenLoc.X + aOwnRelativeLoc.X; 94*b1cdbd2cSJim Jagielski aScreenLoc.Y = aParentScreenLoc.Y + aOwnRelativeLoc.Y; 95*b1cdbd2cSJim Jagielski } 96*b1cdbd2cSJim Jagielski 97*b1cdbd2cSJim Jagielski return aScreenLoc; 98*b1cdbd2cSJim Jagielski } 99*b1cdbd2cSJim Jagielski 100*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getSize()101*b1cdbd2cSJim Jagielski Size SAL_CALL OCommonAccessibleComponent::getSize( ) throw (RuntimeException) 102*b1cdbd2cSJim Jagielski { 103*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 104*b1cdbd2cSJim Jagielski Rectangle aBounds( implGetBounds() ); 105*b1cdbd2cSJim Jagielski return Size( aBounds.Width, aBounds.Height ); 106*b1cdbd2cSJim Jagielski } 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getBounds()109*b1cdbd2cSJim Jagielski Rectangle SAL_CALL OCommonAccessibleComponent::getBounds( ) throw (RuntimeException) 110*b1cdbd2cSJim Jagielski { 111*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 112*b1cdbd2cSJim Jagielski return implGetBounds(); 113*b1cdbd2cSJim Jagielski } 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielski //===================================================================== 116*b1cdbd2cSJim Jagielski //= OAccessibleComponentHelper 117*b1cdbd2cSJim Jagielski //===================================================================== 118*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------- OAccessibleComponentHelper()119*b1cdbd2cSJim Jagielski OAccessibleComponentHelper::OAccessibleComponentHelper( ) 120*b1cdbd2cSJim Jagielski { 121*b1cdbd2cSJim Jagielski } 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------- OAccessibleComponentHelper(IMutex * _pExternalLock)124*b1cdbd2cSJim Jagielski OAccessibleComponentHelper::OAccessibleComponentHelper( IMutex* _pExternalLock ) 125*b1cdbd2cSJim Jagielski :OCommonAccessibleComponent( _pExternalLock ) 126*b1cdbd2cSJim Jagielski { 127*b1cdbd2cSJim Jagielski } 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- IMPLEMENT_FORWARD_XINTERFACE2(OAccessibleComponentHelper,OCommonAccessibleComponent,OAccessibleComponentHelper_Base)130*b1cdbd2cSJim Jagielski IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleComponentHelper, OCommonAccessibleComponent, OAccessibleComponentHelper_Base ) 131*b1cdbd2cSJim Jagielski IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleComponentHelper, OCommonAccessibleComponent, OAccessibleComponentHelper_Base ) 132*b1cdbd2cSJim Jagielski // (order matters: the first is the class name, the second is the class doing the ref counting) 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- 135*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OAccessibleComponentHelper::containsPoint( const Point& _rPoint ) throw (RuntimeException) 136*b1cdbd2cSJim Jagielski { 137*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::containsPoint( _rPoint ); 138*b1cdbd2cSJim Jagielski } 139*b1cdbd2cSJim Jagielski 140*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getLocation()141*b1cdbd2cSJim Jagielski Point SAL_CALL OAccessibleComponentHelper::getLocation( ) throw (RuntimeException) 142*b1cdbd2cSJim Jagielski { 143*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getLocation( ); 144*b1cdbd2cSJim Jagielski } 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getLocationOnScreen()147*b1cdbd2cSJim Jagielski Point SAL_CALL OAccessibleComponentHelper::getLocationOnScreen( ) throw (RuntimeException) 148*b1cdbd2cSJim Jagielski { 149*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getLocationOnScreen( ); 150*b1cdbd2cSJim Jagielski } 151*b1cdbd2cSJim Jagielski 152*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getSize()153*b1cdbd2cSJim Jagielski Size SAL_CALL OAccessibleComponentHelper::getSize( ) throw (RuntimeException) 154*b1cdbd2cSJim Jagielski { 155*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getSize( ); 156*b1cdbd2cSJim Jagielski } 157*b1cdbd2cSJim Jagielski 158*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getBounds()159*b1cdbd2cSJim Jagielski Rectangle SAL_CALL OAccessibleComponentHelper::getBounds( ) throw (RuntimeException) 160*b1cdbd2cSJim Jagielski { 161*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getBounds( ); 162*b1cdbd2cSJim Jagielski } 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski //===================================================================== 165*b1cdbd2cSJim Jagielski //= OAccessibleExtendedComponentHelper 166*b1cdbd2cSJim Jagielski //===================================================================== 167*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------- OAccessibleExtendedComponentHelper()168*b1cdbd2cSJim Jagielski OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper( ) 169*b1cdbd2cSJim Jagielski { 170*b1cdbd2cSJim Jagielski } 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski //--------------------------------------------------------------------- OAccessibleExtendedComponentHelper(IMutex * _pExternalLock)173*b1cdbd2cSJim Jagielski OAccessibleExtendedComponentHelper::OAccessibleExtendedComponentHelper( IMutex* _pExternalLock ) 174*b1cdbd2cSJim Jagielski :OCommonAccessibleComponent( _pExternalLock ) 175*b1cdbd2cSJim Jagielski { 176*b1cdbd2cSJim Jagielski } 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- IMPLEMENT_FORWARD_XINTERFACE2(OAccessibleExtendedComponentHelper,OCommonAccessibleComponent,OAccessibleExtendedComponentHelper_Base)179*b1cdbd2cSJim Jagielski IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleExtendedComponentHelper, OCommonAccessibleComponent, OAccessibleExtendedComponentHelper_Base ) 180*b1cdbd2cSJim Jagielski IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleExtendedComponentHelper, OCommonAccessibleComponent, OAccessibleExtendedComponentHelper_Base ) 181*b1cdbd2cSJim Jagielski // (order matters: the first is the class name, the second is the class doing the ref counting) 182*b1cdbd2cSJim Jagielski 183*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- 184*b1cdbd2cSJim Jagielski sal_Bool SAL_CALL OAccessibleExtendedComponentHelper::containsPoint( const Point& _rPoint ) throw (RuntimeException) 185*b1cdbd2cSJim Jagielski { 186*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::containsPoint( _rPoint ); 187*b1cdbd2cSJim Jagielski } 188*b1cdbd2cSJim Jagielski 189*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getLocation()190*b1cdbd2cSJim Jagielski Point SAL_CALL OAccessibleExtendedComponentHelper::getLocation( ) throw (RuntimeException) 191*b1cdbd2cSJim Jagielski { 192*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getLocation( ); 193*b1cdbd2cSJim Jagielski } 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getLocationOnScreen()196*b1cdbd2cSJim Jagielski Point SAL_CALL OAccessibleExtendedComponentHelper::getLocationOnScreen( ) throw (RuntimeException) 197*b1cdbd2cSJim Jagielski { 198*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getLocationOnScreen( ); 199*b1cdbd2cSJim Jagielski } 200*b1cdbd2cSJim Jagielski 201*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getSize()202*b1cdbd2cSJim Jagielski Size SAL_CALL OAccessibleExtendedComponentHelper::getSize( ) throw (RuntimeException) 203*b1cdbd2cSJim Jagielski { 204*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getSize( ); 205*b1cdbd2cSJim Jagielski } 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski //-------------------------------------------------------------------- getBounds()208*b1cdbd2cSJim Jagielski Rectangle SAL_CALL OAccessibleExtendedComponentHelper::getBounds( ) throw (RuntimeException) 209*b1cdbd2cSJim Jagielski { 210*b1cdbd2cSJim Jagielski return OCommonAccessibleComponent::getBounds( ); 211*b1cdbd2cSJim Jagielski } 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski //......................................................................... 214*b1cdbd2cSJim Jagielski } // namespace comphelper 215*b1cdbd2cSJim Jagielski //......................................................................... 216*b1cdbd2cSJim Jagielski 217*b1cdbd2cSJim Jagielski 218