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_accessibility.hxx" 26*b1cdbd2cSJim Jagielski #include <accessibility/extended/accessibletabbarpage.hxx> 27*b1cdbd2cSJim Jagielski #include <svtools/tabbar.hxx> 28*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/AccessibleEventId.hpp> 29*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/AccessibleRole.hpp> 30*b1cdbd2cSJim Jagielski #include <com/sun/star/accessibility/AccessibleStateType.hpp> 31*b1cdbd2cSJim Jagielski #include <unotools/accessiblestatesethelper.hxx> 32*b1cdbd2cSJim Jagielski #include <unotools/accessiblerelationsethelper.hxx> 33*b1cdbd2cSJim Jagielski #include <vcl/svapp.hxx> 34*b1cdbd2cSJim Jagielski #include <toolkit/helper/convert.hxx> 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski 37*b1cdbd2cSJim Jagielski //......................................................................... 38*b1cdbd2cSJim Jagielski namespace accessibility 39*b1cdbd2cSJim Jagielski { 40*b1cdbd2cSJim Jagielski //......................................................................... 41*b1cdbd2cSJim Jagielski 42*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::accessibility; 43*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::uno; 44*b1cdbd2cSJim Jagielski using namespace ::com::sun::star::lang; 45*b1cdbd2cSJim Jagielski using namespace ::com::sun::star; 46*b1cdbd2cSJim Jagielski using namespace ::comphelper; 47*b1cdbd2cSJim Jagielski 48*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 49*b1cdbd2cSJim Jagielski // class AccessibleTabBarPage 50*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 51*b1cdbd2cSJim Jagielski AccessibleTabBarPage(TabBar * pTabBar,sal_uInt16 nPageId,const Reference<XAccessible> & rxParent)52*b1cdbd2cSJim Jagielski AccessibleTabBarPage::AccessibleTabBarPage( TabBar* pTabBar, sal_uInt16 nPageId, const Reference< XAccessible >& rxParent ) 53*b1cdbd2cSJim Jagielski :AccessibleTabBarBase( pTabBar ) 54*b1cdbd2cSJim Jagielski ,m_nPageId( nPageId ) 55*b1cdbd2cSJim Jagielski ,m_xParent( rxParent ) 56*b1cdbd2cSJim Jagielski { 57*b1cdbd2cSJim Jagielski m_bEnabled = IsEnabled(); 58*b1cdbd2cSJim Jagielski m_bShowing = IsShowing(); 59*b1cdbd2cSJim Jagielski m_bSelected = IsSelected(); 60*b1cdbd2cSJim Jagielski 61*b1cdbd2cSJim Jagielski if ( m_pTabBar ) 62*b1cdbd2cSJim Jagielski m_sPageText = m_pTabBar->GetPageText( m_nPageId ); 63*b1cdbd2cSJim Jagielski } 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 66*b1cdbd2cSJim Jagielski ~AccessibleTabBarPage()67*b1cdbd2cSJim Jagielski AccessibleTabBarPage::~AccessibleTabBarPage() 68*b1cdbd2cSJim Jagielski { 69*b1cdbd2cSJim Jagielski } 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 72*b1cdbd2cSJim Jagielski IsEnabled()73*b1cdbd2cSJim Jagielski sal_Bool AccessibleTabBarPage::IsEnabled() 74*b1cdbd2cSJim Jagielski { 75*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 76*b1cdbd2cSJim Jagielski 77*b1cdbd2cSJim Jagielski sal_Bool bEnabled = sal_False; 78*b1cdbd2cSJim Jagielski if ( m_pTabBar ) 79*b1cdbd2cSJim Jagielski bEnabled = m_pTabBar->IsPageEnabled( m_nPageId ); 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski return bEnabled; 82*b1cdbd2cSJim Jagielski } 83*b1cdbd2cSJim Jagielski 84*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 85*b1cdbd2cSJim Jagielski IsShowing()86*b1cdbd2cSJim Jagielski sal_Bool AccessibleTabBarPage::IsShowing() 87*b1cdbd2cSJim Jagielski { 88*b1cdbd2cSJim Jagielski sal_Bool bShowing = sal_False; 89*b1cdbd2cSJim Jagielski 90*b1cdbd2cSJim Jagielski if ( m_pTabBar && m_pTabBar->IsVisible() ) 91*b1cdbd2cSJim Jagielski bShowing = sal_True; 92*b1cdbd2cSJim Jagielski 93*b1cdbd2cSJim Jagielski return bShowing; 94*b1cdbd2cSJim Jagielski } 95*b1cdbd2cSJim Jagielski 96*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 97*b1cdbd2cSJim Jagielski IsSelected()98*b1cdbd2cSJim Jagielski sal_Bool AccessibleTabBarPage::IsSelected() 99*b1cdbd2cSJim Jagielski { 100*b1cdbd2cSJim Jagielski sal_Bool bSelected = sal_False; 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski if ( m_pTabBar && m_pTabBar->GetCurPageId() == m_nPageId ) 103*b1cdbd2cSJim Jagielski bSelected = sal_True; 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski return bSelected; 106*b1cdbd2cSJim Jagielski } 107*b1cdbd2cSJim Jagielski 108*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 109*b1cdbd2cSJim Jagielski SetEnabled(sal_Bool bEnabled)110*b1cdbd2cSJim Jagielski void AccessibleTabBarPage::SetEnabled( sal_Bool bEnabled ) 111*b1cdbd2cSJim Jagielski { 112*b1cdbd2cSJim Jagielski if ( m_bEnabled != bEnabled ) 113*b1cdbd2cSJim Jagielski { 114*b1cdbd2cSJim Jagielski Any aOldValue[2], aNewValue[2]; 115*b1cdbd2cSJim Jagielski if ( m_bEnabled ) 116*b1cdbd2cSJim Jagielski { 117*b1cdbd2cSJim Jagielski aOldValue[0] <<= AccessibleStateType::SENSITIVE; 118*b1cdbd2cSJim Jagielski aOldValue[1] <<= AccessibleStateType::ENABLED; 119*b1cdbd2cSJim Jagielski } 120*b1cdbd2cSJim Jagielski else 121*b1cdbd2cSJim Jagielski { 122*b1cdbd2cSJim Jagielski 123*b1cdbd2cSJim Jagielski aNewValue[0] <<= AccessibleStateType::ENABLED; 124*b1cdbd2cSJim Jagielski aNewValue[1] <<= AccessibleStateType::SENSITIVE; 125*b1cdbd2cSJim Jagielski } 126*b1cdbd2cSJim Jagielski m_bEnabled = bEnabled; 127*b1cdbd2cSJim Jagielski NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[0], aNewValue[0] ); 128*b1cdbd2cSJim Jagielski NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[1], aNewValue[1] ); 129*b1cdbd2cSJim Jagielski } 130*b1cdbd2cSJim Jagielski } 131*b1cdbd2cSJim Jagielski 132*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 133*b1cdbd2cSJim Jagielski SetShowing(sal_Bool bShowing)134*b1cdbd2cSJim Jagielski void AccessibleTabBarPage::SetShowing( sal_Bool bShowing ) 135*b1cdbd2cSJim Jagielski { 136*b1cdbd2cSJim Jagielski if ( m_bShowing != bShowing ) 137*b1cdbd2cSJim Jagielski { 138*b1cdbd2cSJim Jagielski Any aOldValue, aNewValue; 139*b1cdbd2cSJim Jagielski if ( m_bShowing ) 140*b1cdbd2cSJim Jagielski aOldValue <<= AccessibleStateType::SHOWING; 141*b1cdbd2cSJim Jagielski else 142*b1cdbd2cSJim Jagielski aNewValue <<= AccessibleStateType::SHOWING; 143*b1cdbd2cSJim Jagielski m_bShowing = bShowing; 144*b1cdbd2cSJim Jagielski NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue ); 145*b1cdbd2cSJim Jagielski } 146*b1cdbd2cSJim Jagielski } 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 149*b1cdbd2cSJim Jagielski SetSelected(sal_Bool bSelected)150*b1cdbd2cSJim Jagielski void AccessibleTabBarPage::SetSelected( sal_Bool bSelected ) 151*b1cdbd2cSJim Jagielski { 152*b1cdbd2cSJim Jagielski if ( m_bSelected != bSelected ) 153*b1cdbd2cSJim Jagielski { 154*b1cdbd2cSJim Jagielski Any aOldValue, aNewValue; 155*b1cdbd2cSJim Jagielski if ( m_bSelected ) 156*b1cdbd2cSJim Jagielski aOldValue <<= AccessibleStateType::SELECTED; 157*b1cdbd2cSJim Jagielski else 158*b1cdbd2cSJim Jagielski aNewValue <<= AccessibleStateType::SELECTED; 159*b1cdbd2cSJim Jagielski m_bSelected = bSelected; 160*b1cdbd2cSJim Jagielski NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue ); 161*b1cdbd2cSJim Jagielski } 162*b1cdbd2cSJim Jagielski } 163*b1cdbd2cSJim Jagielski 164*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 165*b1cdbd2cSJim Jagielski SetPageText(const::rtl::OUString & sPageText)166*b1cdbd2cSJim Jagielski void AccessibleTabBarPage::SetPageText( const ::rtl::OUString& sPageText ) 167*b1cdbd2cSJim Jagielski { 168*b1cdbd2cSJim Jagielski if ( !m_sPageText.equals( sPageText ) ) 169*b1cdbd2cSJim Jagielski { 170*b1cdbd2cSJim Jagielski Any aOldValue, aNewValue; 171*b1cdbd2cSJim Jagielski aOldValue <<= m_sPageText; 172*b1cdbd2cSJim Jagielski aNewValue <<= sPageText; 173*b1cdbd2cSJim Jagielski m_sPageText = sPageText; 174*b1cdbd2cSJim Jagielski NotifyAccessibleEvent( AccessibleEventId::NAME_CHANGED, aOldValue, aNewValue ); 175*b1cdbd2cSJim Jagielski } 176*b1cdbd2cSJim Jagielski } 177*b1cdbd2cSJim Jagielski 178*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 179*b1cdbd2cSJim Jagielski FillAccessibleStateSet(utl::AccessibleStateSetHelper & rStateSet)180*b1cdbd2cSJim Jagielski void AccessibleTabBarPage::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) 181*b1cdbd2cSJim Jagielski { 182*b1cdbd2cSJim Jagielski if ( IsEnabled() ) 183*b1cdbd2cSJim Jagielski { 184*b1cdbd2cSJim Jagielski rStateSet.AddState( AccessibleStateType::ENABLED ); 185*b1cdbd2cSJim Jagielski rStateSet.AddState( AccessibleStateType::SENSITIVE ); 186*b1cdbd2cSJim Jagielski } 187*b1cdbd2cSJim Jagielski 188*b1cdbd2cSJim Jagielski rStateSet.AddState( AccessibleStateType::VISIBLE ); 189*b1cdbd2cSJim Jagielski 190*b1cdbd2cSJim Jagielski if ( IsShowing() ) 191*b1cdbd2cSJim Jagielski rStateSet.AddState( AccessibleStateType::SHOWING ); 192*b1cdbd2cSJim Jagielski 193*b1cdbd2cSJim Jagielski rStateSet.AddState( AccessibleStateType::SELECTABLE ); 194*b1cdbd2cSJim Jagielski 195*b1cdbd2cSJim Jagielski if ( IsSelected() ) 196*b1cdbd2cSJim Jagielski rStateSet.AddState( AccessibleStateType::SELECTED ); 197*b1cdbd2cSJim Jagielski } 198*b1cdbd2cSJim Jagielski 199*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 200*b1cdbd2cSJim Jagielski // OCommonAccessibleComponent 201*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 202*b1cdbd2cSJim Jagielski implGetBounds()203*b1cdbd2cSJim Jagielski awt::Rectangle AccessibleTabBarPage::implGetBounds() throw (RuntimeException) 204*b1cdbd2cSJim Jagielski { 205*b1cdbd2cSJim Jagielski awt::Rectangle aBounds; 206*b1cdbd2cSJim Jagielski if ( m_pTabBar ) 207*b1cdbd2cSJim Jagielski { 208*b1cdbd2cSJim Jagielski // get bounding rectangle relative to the AccessibleTabBar 209*b1cdbd2cSJim Jagielski aBounds = AWTRectangle( m_pTabBar->GetPageRect( m_nPageId ) ); 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielski // get position of the AccessibleTabBarPageList relative to the AccessibleTabBar 212*b1cdbd2cSJim Jagielski Reference< XAccessible > xParent = getAccessibleParent(); 213*b1cdbd2cSJim Jagielski if ( xParent.is() ) 214*b1cdbd2cSJim Jagielski { 215*b1cdbd2cSJim Jagielski Reference< XAccessibleComponent > xParentComponent( xParent->getAccessibleContext(), UNO_QUERY ); 216*b1cdbd2cSJim Jagielski if ( xParentComponent.is() ) 217*b1cdbd2cSJim Jagielski { 218*b1cdbd2cSJim Jagielski awt::Point aParentLoc = xParentComponent->getLocation(); 219*b1cdbd2cSJim Jagielski 220*b1cdbd2cSJim Jagielski // calculate bounding rectangle relative to the AccessibleTabBarPageList 221*b1cdbd2cSJim Jagielski aBounds.X -= aParentLoc.X; 222*b1cdbd2cSJim Jagielski aBounds.Y -= aParentLoc.Y; 223*b1cdbd2cSJim Jagielski } 224*b1cdbd2cSJim Jagielski } 225*b1cdbd2cSJim Jagielski } 226*b1cdbd2cSJim Jagielski 227*b1cdbd2cSJim Jagielski return aBounds; 228*b1cdbd2cSJim Jagielski } 229*b1cdbd2cSJim Jagielski 230*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 231*b1cdbd2cSJim Jagielski // XInterface 232*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 233*b1cdbd2cSJim Jagielski IMPLEMENT_FORWARD_XINTERFACE2(AccessibleTabBarPage,AccessibleExtendedComponentHelper_BASE,AccessibleTabBarPage_BASE)234*b1cdbd2cSJim Jagielski IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabBarPage, AccessibleExtendedComponentHelper_BASE, AccessibleTabBarPage_BASE ) 235*b1cdbd2cSJim Jagielski 236*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 237*b1cdbd2cSJim Jagielski // XTypeProvider 238*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 239*b1cdbd2cSJim Jagielski 240*b1cdbd2cSJim Jagielski IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabBarPage, AccessibleExtendedComponentHelper_BASE, AccessibleTabBarPage_BASE ) 241*b1cdbd2cSJim Jagielski 242*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 243*b1cdbd2cSJim Jagielski // XComponent 244*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski void AccessibleTabBarPage::disposing() 247*b1cdbd2cSJim Jagielski { 248*b1cdbd2cSJim Jagielski AccessibleTabBarBase::disposing(); 249*b1cdbd2cSJim Jagielski m_sPageText = ::rtl::OUString(); 250*b1cdbd2cSJim Jagielski } 251*b1cdbd2cSJim Jagielski 252*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 253*b1cdbd2cSJim Jagielski // XServiceInfo 254*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 255*b1cdbd2cSJim Jagielski getImplementationName()256*b1cdbd2cSJim Jagielski ::rtl::OUString AccessibleTabBarPage::getImplementationName() throw (RuntimeException) 257*b1cdbd2cSJim Jagielski { 258*b1cdbd2cSJim Jagielski return ::rtl::OUString::createFromAscii( "com.sun.star.comp.svtools.AccessibleTabBarPage" ); 259*b1cdbd2cSJim Jagielski } 260*b1cdbd2cSJim Jagielski 261*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 262*b1cdbd2cSJim Jagielski supportsService(const::rtl::OUString & rServiceName)263*b1cdbd2cSJim Jagielski sal_Bool AccessibleTabBarPage::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException) 264*b1cdbd2cSJim Jagielski { 265*b1cdbd2cSJim Jagielski Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() ); 266*b1cdbd2cSJim Jagielski const ::rtl::OUString* pNames = aNames.getConstArray(); 267*b1cdbd2cSJim Jagielski const ::rtl::OUString* pEnd = pNames + aNames.getLength(); 268*b1cdbd2cSJim Jagielski for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames ) 269*b1cdbd2cSJim Jagielski ; 270*b1cdbd2cSJim Jagielski 271*b1cdbd2cSJim Jagielski return pNames != pEnd; 272*b1cdbd2cSJim Jagielski } 273*b1cdbd2cSJim Jagielski 274*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 275*b1cdbd2cSJim Jagielski getSupportedServiceNames()276*b1cdbd2cSJim Jagielski Sequence< ::rtl::OUString > AccessibleTabBarPage::getSupportedServiceNames() throw (RuntimeException) 277*b1cdbd2cSJim Jagielski { 278*b1cdbd2cSJim Jagielski Sequence< ::rtl::OUString > aNames(1); 279*b1cdbd2cSJim Jagielski aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleTabBarPage" ); 280*b1cdbd2cSJim Jagielski return aNames; 281*b1cdbd2cSJim Jagielski } 282*b1cdbd2cSJim Jagielski 283*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 284*b1cdbd2cSJim Jagielski // XAccessible 285*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 286*b1cdbd2cSJim Jagielski getAccessibleContext()287*b1cdbd2cSJim Jagielski Reference< XAccessibleContext > AccessibleTabBarPage::getAccessibleContext( ) throw (RuntimeException) 288*b1cdbd2cSJim Jagielski { 289*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 290*b1cdbd2cSJim Jagielski 291*b1cdbd2cSJim Jagielski return this; 292*b1cdbd2cSJim Jagielski } 293*b1cdbd2cSJim Jagielski 294*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 295*b1cdbd2cSJim Jagielski // XAccessibleContext 296*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 297*b1cdbd2cSJim Jagielski getAccessibleChildCount()298*b1cdbd2cSJim Jagielski sal_Int32 AccessibleTabBarPage::getAccessibleChildCount() throw (RuntimeException) 299*b1cdbd2cSJim Jagielski { 300*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 301*b1cdbd2cSJim Jagielski 302*b1cdbd2cSJim Jagielski return 0; 303*b1cdbd2cSJim Jagielski } 304*b1cdbd2cSJim Jagielski 305*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 306*b1cdbd2cSJim Jagielski getAccessibleChild(sal_Int32 i)307*b1cdbd2cSJim Jagielski Reference< XAccessible > AccessibleTabBarPage::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException) 308*b1cdbd2cSJim Jagielski { 309*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 310*b1cdbd2cSJim Jagielski 311*b1cdbd2cSJim Jagielski if ( i < 0 || i >= getAccessibleChildCount() ) 312*b1cdbd2cSJim Jagielski throw IndexOutOfBoundsException(); 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielski return Reference< XAccessible >(); 315*b1cdbd2cSJim Jagielski } 316*b1cdbd2cSJim Jagielski 317*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 318*b1cdbd2cSJim Jagielski getAccessibleParent()319*b1cdbd2cSJim Jagielski Reference< XAccessible > AccessibleTabBarPage::getAccessibleParent( ) throw (RuntimeException) 320*b1cdbd2cSJim Jagielski { 321*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 322*b1cdbd2cSJim Jagielski 323*b1cdbd2cSJim Jagielski return m_xParent; 324*b1cdbd2cSJim Jagielski } 325*b1cdbd2cSJim Jagielski 326*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 327*b1cdbd2cSJim Jagielski getAccessibleIndexInParent()328*b1cdbd2cSJim Jagielski sal_Int32 AccessibleTabBarPage::getAccessibleIndexInParent( ) throw (RuntimeException) 329*b1cdbd2cSJim Jagielski { 330*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 331*b1cdbd2cSJim Jagielski 332*b1cdbd2cSJim Jagielski sal_Int32 nIndexInParent = -1; 333*b1cdbd2cSJim Jagielski if ( m_pTabBar ) 334*b1cdbd2cSJim Jagielski nIndexInParent = m_pTabBar->GetPagePos( m_nPageId ); 335*b1cdbd2cSJim Jagielski 336*b1cdbd2cSJim Jagielski return nIndexInParent; 337*b1cdbd2cSJim Jagielski } 338*b1cdbd2cSJim Jagielski 339*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 340*b1cdbd2cSJim Jagielski getAccessibleRole()341*b1cdbd2cSJim Jagielski sal_Int16 AccessibleTabBarPage::getAccessibleRole( ) throw (RuntimeException) 342*b1cdbd2cSJim Jagielski { 343*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 344*b1cdbd2cSJim Jagielski 345*b1cdbd2cSJim Jagielski return AccessibleRole::PAGE_TAB; 346*b1cdbd2cSJim Jagielski } 347*b1cdbd2cSJim Jagielski 348*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 349*b1cdbd2cSJim Jagielski getAccessibleDescription()350*b1cdbd2cSJim Jagielski ::rtl::OUString AccessibleTabBarPage::getAccessibleDescription( ) throw (RuntimeException) 351*b1cdbd2cSJim Jagielski { 352*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 353*b1cdbd2cSJim Jagielski 354*b1cdbd2cSJim Jagielski ::rtl::OUString sDescription; 355*b1cdbd2cSJim Jagielski if ( m_pTabBar ) 356*b1cdbd2cSJim Jagielski sDescription = m_pTabBar->GetHelpText( m_nPageId ); 357*b1cdbd2cSJim Jagielski 358*b1cdbd2cSJim Jagielski return sDescription; 359*b1cdbd2cSJim Jagielski } 360*b1cdbd2cSJim Jagielski 361*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 362*b1cdbd2cSJim Jagielski getAccessibleName()363*b1cdbd2cSJim Jagielski ::rtl::OUString AccessibleTabBarPage::getAccessibleName( ) throw (RuntimeException) 364*b1cdbd2cSJim Jagielski { 365*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 366*b1cdbd2cSJim Jagielski 367*b1cdbd2cSJim Jagielski return m_sPageText; 368*b1cdbd2cSJim Jagielski } 369*b1cdbd2cSJim Jagielski 370*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 371*b1cdbd2cSJim Jagielski getAccessibleRelationSet()372*b1cdbd2cSJim Jagielski Reference< XAccessibleRelationSet > AccessibleTabBarPage::getAccessibleRelationSet( ) throw (RuntimeException) 373*b1cdbd2cSJim Jagielski { 374*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 375*b1cdbd2cSJim Jagielski 376*b1cdbd2cSJim Jagielski utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper; 377*b1cdbd2cSJim Jagielski Reference< XAccessibleRelationSet > xSet = pRelationSetHelper; 378*b1cdbd2cSJim Jagielski return xSet; 379*b1cdbd2cSJim Jagielski } 380*b1cdbd2cSJim Jagielski 381*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 382*b1cdbd2cSJim Jagielski getAccessibleStateSet()383*b1cdbd2cSJim Jagielski Reference< XAccessibleStateSet > AccessibleTabBarPage::getAccessibleStateSet( ) throw (RuntimeException) 384*b1cdbd2cSJim Jagielski { 385*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 386*b1cdbd2cSJim Jagielski 387*b1cdbd2cSJim Jagielski utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper; 388*b1cdbd2cSJim Jagielski Reference< XAccessibleStateSet > xSet = pStateSetHelper; 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielski if ( !rBHelper.bDisposed && !rBHelper.bInDispose ) 391*b1cdbd2cSJim Jagielski { 392*b1cdbd2cSJim Jagielski FillAccessibleStateSet( *pStateSetHelper ); 393*b1cdbd2cSJim Jagielski } 394*b1cdbd2cSJim Jagielski else 395*b1cdbd2cSJim Jagielski { 396*b1cdbd2cSJim Jagielski pStateSetHelper->AddState( AccessibleStateType::DEFUNC ); 397*b1cdbd2cSJim Jagielski } 398*b1cdbd2cSJim Jagielski 399*b1cdbd2cSJim Jagielski return xSet; 400*b1cdbd2cSJim Jagielski } 401*b1cdbd2cSJim Jagielski 402*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 403*b1cdbd2cSJim Jagielski getLocale()404*b1cdbd2cSJim Jagielski Locale AccessibleTabBarPage::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException) 405*b1cdbd2cSJim Jagielski { 406*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 407*b1cdbd2cSJim Jagielski 408*b1cdbd2cSJim Jagielski return Application::GetSettings().GetLocale(); 409*b1cdbd2cSJim Jagielski } 410*b1cdbd2cSJim Jagielski 411*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 412*b1cdbd2cSJim Jagielski // XAccessibleComponent 413*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 414*b1cdbd2cSJim Jagielski getAccessibleAtPoint(const awt::Point &)415*b1cdbd2cSJim Jagielski Reference< XAccessible > AccessibleTabBarPage::getAccessibleAtPoint( const awt::Point& ) throw (RuntimeException) 416*b1cdbd2cSJim Jagielski { 417*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 418*b1cdbd2cSJim Jagielski 419*b1cdbd2cSJim Jagielski return Reference< XAccessible >(); 420*b1cdbd2cSJim Jagielski } 421*b1cdbd2cSJim Jagielski 422*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 423*b1cdbd2cSJim Jagielski grabFocus()424*b1cdbd2cSJim Jagielski void AccessibleTabBarPage::grabFocus( ) throw (RuntimeException) 425*b1cdbd2cSJim Jagielski { 426*b1cdbd2cSJim Jagielski // no focus 427*b1cdbd2cSJim Jagielski } 428*b1cdbd2cSJim Jagielski 429*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 430*b1cdbd2cSJim Jagielski getForeground()431*b1cdbd2cSJim Jagielski sal_Int32 AccessibleTabBarPage::getForeground( ) throw (RuntimeException) 432*b1cdbd2cSJim Jagielski { 433*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 434*b1cdbd2cSJim Jagielski 435*b1cdbd2cSJim Jagielski sal_Int32 nColor = 0; 436*b1cdbd2cSJim Jagielski Reference< XAccessible > xParent = getAccessibleParent(); 437*b1cdbd2cSJim Jagielski if ( xParent.is() ) 438*b1cdbd2cSJim Jagielski { 439*b1cdbd2cSJim Jagielski Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY ); 440*b1cdbd2cSJim Jagielski if ( xParentComp.is() ) 441*b1cdbd2cSJim Jagielski nColor = xParentComp->getForeground(); 442*b1cdbd2cSJim Jagielski } 443*b1cdbd2cSJim Jagielski 444*b1cdbd2cSJim Jagielski return nColor; 445*b1cdbd2cSJim Jagielski } 446*b1cdbd2cSJim Jagielski 447*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 448*b1cdbd2cSJim Jagielski getBackground()449*b1cdbd2cSJim Jagielski sal_Int32 AccessibleTabBarPage::getBackground( ) throw (RuntimeException) 450*b1cdbd2cSJim Jagielski { 451*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 452*b1cdbd2cSJim Jagielski 453*b1cdbd2cSJim Jagielski sal_Int32 nColor = 0; 454*b1cdbd2cSJim Jagielski Reference< XAccessible > xParent = getAccessibleParent(); 455*b1cdbd2cSJim Jagielski if ( xParent.is() ) 456*b1cdbd2cSJim Jagielski { 457*b1cdbd2cSJim Jagielski Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY ); 458*b1cdbd2cSJim Jagielski if ( xParentComp.is() ) 459*b1cdbd2cSJim Jagielski nColor = xParentComp->getBackground(); 460*b1cdbd2cSJim Jagielski } 461*b1cdbd2cSJim Jagielski 462*b1cdbd2cSJim Jagielski return nColor; 463*b1cdbd2cSJim Jagielski } 464*b1cdbd2cSJim Jagielski 465*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 466*b1cdbd2cSJim Jagielski // XAccessibleExtendedComponent 467*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 468*b1cdbd2cSJim Jagielski getFont()469*b1cdbd2cSJim Jagielski Reference< awt::XFont > AccessibleTabBarPage::getFont( ) throw (RuntimeException) 470*b1cdbd2cSJim Jagielski { 471*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 472*b1cdbd2cSJim Jagielski 473*b1cdbd2cSJim Jagielski Reference< awt::XFont > xFont; 474*b1cdbd2cSJim Jagielski Reference< XAccessible > xParent = getAccessibleParent(); 475*b1cdbd2cSJim Jagielski if ( xParent.is() ) 476*b1cdbd2cSJim Jagielski { 477*b1cdbd2cSJim Jagielski Reference< XAccessibleExtendedComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY ); 478*b1cdbd2cSJim Jagielski if ( xParentComp.is() ) 479*b1cdbd2cSJim Jagielski xFont = xParentComp->getFont(); 480*b1cdbd2cSJim Jagielski } 481*b1cdbd2cSJim Jagielski 482*b1cdbd2cSJim Jagielski return xFont; 483*b1cdbd2cSJim Jagielski } 484*b1cdbd2cSJim Jagielski 485*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 486*b1cdbd2cSJim Jagielski getTitledBorderText()487*b1cdbd2cSJim Jagielski ::rtl::OUString AccessibleTabBarPage::getTitledBorderText( ) throw (RuntimeException) 488*b1cdbd2cSJim Jagielski { 489*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 490*b1cdbd2cSJim Jagielski 491*b1cdbd2cSJim Jagielski return m_sPageText; 492*b1cdbd2cSJim Jagielski } 493*b1cdbd2cSJim Jagielski 494*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 495*b1cdbd2cSJim Jagielski getToolTipText()496*b1cdbd2cSJim Jagielski ::rtl::OUString AccessibleTabBarPage::getToolTipText( ) throw (RuntimeException) 497*b1cdbd2cSJim Jagielski { 498*b1cdbd2cSJim Jagielski OExternalLockGuard aGuard( this ); 499*b1cdbd2cSJim Jagielski 500*b1cdbd2cSJim Jagielski return ::rtl::OUString(); 501*b1cdbd2cSJim Jagielski } 502*b1cdbd2cSJim Jagielski 503*b1cdbd2cSJim Jagielski // ----------------------------------------------------------------------------- 504*b1cdbd2cSJim Jagielski 505*b1cdbd2cSJim Jagielski //......................................................................... 506*b1cdbd2cSJim Jagielski } // namespace accessibility 507*b1cdbd2cSJim Jagielski //......................................................................... 508