summaryrefslogtreecommitdiff
path: root/accessibility/source/standard/accessiblemenubasecomponent.cxx
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
commit2e626373db2412ac22e8c5c27a60d11cd29e875b (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /accessibility/source/standard/accessiblemenubasecomponent.cxx
parentf7ee7bbd5174b084f018c2ec94d8c70c98ee04da (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'accessibility/source/standard/accessiblemenubasecomponent.cxx')
-rw-r--r--accessibility/source/standard/accessiblemenubasecomponent.cxx786
1 files changed, 0 insertions, 786 deletions
diff --git a/accessibility/source/standard/accessiblemenubasecomponent.cxx b/accessibility/source/standard/accessiblemenubasecomponent.cxx
deleted file mode 100644
index 6688215e3..000000000
--- a/accessibility/source/standard/accessiblemenubasecomponent.cxx
+++ /dev/null
@@ -1,786 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_accessibility.hxx"
-
-// includes --------------------------------------------------------------
-#include <accessibility/standard/accessiblemenubasecomponent.hxx>
-#include <accessibility/standard/vclxaccessiblemenu.hxx>
-#include <accessibility/standard/vclxaccessiblemenuitem.hxx>
-#include <accessibility/standard/vclxaccessiblemenuseparator.hxx>
-#include <toolkit/helper/externallock.hxx>
-#include <toolkit/helper/convert.hxx>
-
-#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-
-#include <unotools/accessiblestatesethelper.hxx>
-#include <vcl/svapp.hxx>
-#include <vcl/window.hxx>
-#include <vcl/menu.hxx>
-#include <tools/debug.hxx>
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::accessibility;
-using namespace ::comphelper;
-
-
-// -----------------------------------------------------------------------------
-// OAccessibleMenuBaseComponent
-// -----------------------------------------------------------------------------
-
-OAccessibleMenuBaseComponent::OAccessibleMenuBaseComponent( Menu* pMenu )
- :AccessibleExtendedComponentHelper_BASE( new VCLExternalSolarLock() )
- ,m_pMenu( pMenu )
- ,m_bEnabled( sal_False )
- ,m_bFocused( sal_False )
- ,m_bVisible( sal_False )
- ,m_bSelected( sal_False )
- ,m_bChecked( sal_False )
-{
- m_pExternalLock = static_cast< VCLExternalSolarLock* >( getExternalLock() );
-
- if ( m_pMenu )
- {
- m_aAccessibleChildren.assign( m_pMenu->GetItemCount(), Reference< XAccessible >() );
- m_pMenu->AddEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
- }
-}
-
-// -----------------------------------------------------------------------------
-
-OAccessibleMenuBaseComponent::~OAccessibleMenuBaseComponent()
-{
- if ( m_pMenu )
- m_pMenu->RemoveEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
-
- delete m_pExternalLock;
- m_pExternalLock = NULL;
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsEnabled()
-{
- return sal_False;
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsFocused()
-{
- return sal_False;
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsVisible()
-{
- return sal_False;
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsSelected()
-{
- return sal_False;
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsChecked()
-{
- return sal_False;
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::SetStates()
-{
- m_bEnabled = IsEnabled();
- m_bFocused = IsFocused();
- m_bVisible = IsVisible();
- m_bSelected = IsSelected();
- m_bChecked = IsChecked();
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::SetEnabled( sal_Bool bEnabled )
-{
- if ( m_bEnabled != bEnabled )
- {
- Any aOldValue[2], aNewValue[2];
- if ( m_bEnabled )
- {
- aOldValue[0] <<= AccessibleStateType::SENSITIVE;
- aOldValue[1] <<= AccessibleStateType::ENABLED;
- }
- else
- {
- aNewValue[0] <<= AccessibleStateType::ENABLED;
- aNewValue[1] <<= AccessibleStateType::SENSITIVE;
- }
- m_bEnabled = bEnabled;
- NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[0], aNewValue[0] );
- NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[1], aNewValue[1] );
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::SetFocused( sal_Bool bFocused )
-{
- if ( m_bFocused != bFocused )
- {
- Any aOldValue, aNewValue;
- if ( m_bFocused )
- aOldValue <<= AccessibleStateType::FOCUSED;
- else
- aNewValue <<= AccessibleStateType::FOCUSED;
- m_bFocused = bFocused;
- NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::SetVisible( sal_Bool bVisible )
-{
- if ( m_bVisible != bVisible )
- {
- Any aOldValue, aNewValue;
- if ( m_bVisible )
- aOldValue <<= AccessibleStateType::VISIBLE;
- else
- aNewValue <<= AccessibleStateType::VISIBLE;
- m_bVisible = bVisible;
- NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::SetSelected( sal_Bool bSelected )
-{
- if ( m_bSelected != bSelected )
- {
- Any aOldValue, aNewValue;
- if ( m_bSelected )
- aOldValue <<= AccessibleStateType::SELECTED;
- else
- aNewValue <<= AccessibleStateType::SELECTED;
- m_bSelected = bSelected;
- NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::SetChecked( sal_Bool bChecked )
-{
- if ( m_bChecked != bChecked )
- {
- Any aOldValue, aNewValue;
- if ( m_bChecked )
- aOldValue <<= AccessibleStateType::CHECKED;
- else
- aNewValue <<= AccessibleStateType::CHECKED;
- m_bChecked = bChecked;
- NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::UpdateEnabled( sal_Int32 i, sal_Bool bEnabled )
-{
- if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetEnabled( bEnabled );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::UpdateFocused( sal_Int32 i, sal_Bool bFocused )
-{
- if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetFocused( bFocused );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::UpdateVisible()
-{
- SetVisible( IsVisible() );
- for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetVisible( pComp->IsVisible() );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::UpdateSelected( sal_Int32 i, sal_Bool bSelected )
-{
- NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
-
- if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetSelected( bSelected );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::UpdateChecked( sal_Int32 i, sal_Bool bChecked )
-{
- if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetChecked( bChecked );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::UpdateAccessibleName( sal_Int32 i )
-{
- if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetAccessibleName( pComp->GetAccessibleName() );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::UpdateItemText( sal_Int32 i )
-{
- if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetItemText( pComp->GetItemText() );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Int32 OAccessibleMenuBaseComponent::GetChildCount()
-{
- return m_aAccessibleChildren.size();
-}
-
-// -----------------------------------------------------------------------------
-
-Reference< XAccessible > OAccessibleMenuBaseComponent::GetChild( sal_Int32 i )
-{
- Reference< XAccessible > xChild = m_aAccessibleChildren[i];
- if ( !xChild.is() )
- {
- if ( m_pMenu )
- {
- // create a new child
- OAccessibleMenuBaseComponent* pChild;
-
- if ( m_pMenu->GetItemType( (sal_uInt16)i ) == MENUITEM_SEPARATOR )
- {
- pChild = new VCLXAccessibleMenuSeparator( m_pMenu, (sal_uInt16)i );
- }
- else
- {
- PopupMenu* pPopupMenu = m_pMenu->GetPopupMenu( m_pMenu->GetItemId( (sal_uInt16)i ) );
- if ( pPopupMenu )
- {
- pChild = new VCLXAccessibleMenu( m_pMenu, (sal_uInt16)i, pPopupMenu );
- pPopupMenu->SetAccessible( pChild );
- }
- else
- {
- pChild = new VCLXAccessibleMenuItem( m_pMenu, (sal_uInt16)i );
- }
- }
-
- // set states
- pChild->SetStates();
-
- xChild = pChild;
-
- // insert into menu item list
- m_aAccessibleChildren[i] = xChild;
- }
- }
-
- return xChild;
-}
-
-// -----------------------------------------------------------------------------
-
-Reference< XAccessible > OAccessibleMenuBaseComponent::GetChildAt( const awt::Point& rPoint )
-{
- Reference< XAccessible > xChild;
- for ( sal_uInt32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
- {
- Reference< XAccessible > xAcc = getAccessibleChild( i );
- if ( xAcc.is() )
- {
- Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );
- if ( xComp.is() )
- {
- Rectangle aRect = VCLRectangle( xComp->getBounds() );
- Point aPos = VCLPoint( rPoint );
- if ( aRect.IsInside( aPos ) )
- {
- xChild = xAcc;
- break;
- }
- }
- }
- }
-
- return xChild;
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::InsertChild( sal_Int32 i )
-{
- if ( i > (sal_Int32)m_aAccessibleChildren.size() )
- i = m_aAccessibleChildren.size();
-
- if ( i >= 0 )
- {
- // insert entry in child list
- m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
-
- // update item position of accessible children
- for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; ++j )
- {
- Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
- if ( xAcc.is() )
- {
- OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xAcc.get() );
- if ( pComp )
- pComp->SetItemPos( (sal_uInt16)j );
- }
- }
-
- // send accessible child event
- Reference< XAccessible > xChild( GetChild( i ) );
- if ( xChild.is() )
- {
- Any aOldValue, aNewValue;
- aNewValue <<= xChild;
- NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::RemoveChild( sal_Int32 i )
-{
- if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
- {
- // keep the accessible of the removed item
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
-
- // remove entry in child list
- m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
-
- // update item position of accessible children
- for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; ++j )
- {
- Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
- if ( xAcc.is() )
- {
- OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xAcc.get() );
- if ( pComp )
- pComp->SetItemPos( (sal_uInt16)j );
- }
- }
-
- // send accessible child event
- if ( xChild.is() )
- {
- Any aOldValue, aNewValue;
- aOldValue <<= xChild;
- NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
-
- Reference< XComponent > xComponent( xChild, UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
- }
- }
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsHighlighted()
-{
- return sal_False;
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsChildHighlighted()
-{
- sal_Bool bChildHighlighted = sal_False;
-
- for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
- {
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp && pComp->IsHighlighted() )
- {
- bChildHighlighted = sal_True;
- break;
- }
- }
- }
-
- return bChildHighlighted;
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::SelectChild( sal_Int32 i )
-{
- // open the menu
- if ( getAccessibleRole() == AccessibleRole::MENU && !IsPopupMenuOpen() )
- Click();
-
- // highlight the child
- if ( m_pMenu )
- m_pMenu->HighlightItem( (sal_uInt16)i );
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::DeSelectAll()
-{
- if ( m_pMenu )
- m_pMenu->DeHighlight();
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsChildSelected( sal_Int32 i )
-{
- sal_Bool bSelected = sal_False;
-
- if ( m_pMenu && m_pMenu->IsHighlighted( (sal_uInt16)i ) )
- bSelected = sal_True;
-
- return bSelected;
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::Select()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::DeSelect()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::Click()
-{
-}
-
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::IsPopupMenuOpen()
-{
- return sal_False;
-}
-
-// -----------------------------------------------------------------------------
-
-IMPL_LINK( OAccessibleMenuBaseComponent, MenuEventListener, VclSimpleEvent*, pEvent )
-{
- DBG_ASSERT( pEvent && pEvent->ISA( VclMenuEvent ), "OAccessibleMenuBaseComponent - Unknown MenuEvent!" );
- if ( pEvent && pEvent->ISA( VclMenuEvent ) )
- {
- DBG_ASSERT( ((VclMenuEvent*)pEvent)->GetMenu(), "OAccessibleMenuBaseComponent - Menu?" );
- ProcessMenuEvent( *(VclMenuEvent*)pEvent );
- }
- return 0;
-}
-
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::ProcessMenuEvent( const VclMenuEvent& rVclMenuEvent )
-{
- sal_uInt16 nItemPos = rVclMenuEvent.GetItemPos();
-
- switch ( rVclMenuEvent.GetId() )
- {
- case VCLEVENT_MENU_SHOW:
- case VCLEVENT_MENU_HIDE:
- {
- UpdateVisible();
- }
- break;
- case VCLEVENT_MENU_HIGHLIGHT:
- {
- SetFocused( sal_False );
- UpdateFocused( nItemPos, sal_True );
- UpdateSelected( nItemPos, sal_True );
- }
- break;
- case VCLEVENT_MENU_DEHIGHLIGHT:
- {
- UpdateFocused( nItemPos, sal_False );
- UpdateSelected( nItemPos, sal_False );
- }
- break;
- case VCLEVENT_MENU_SUBMENUACTIVATE:
- {
- }
- break;
- case VCLEVENT_MENU_SUBMENUDEACTIVATE:
- {
- UpdateFocused( nItemPos, sal_True );
- }
- break;
- case VCLEVENT_MENU_ENABLE:
- {
- UpdateEnabled( nItemPos, sal_True );
- }
- break;
- case VCLEVENT_MENU_DISABLE:
- {
- UpdateEnabled( nItemPos, sal_False );
- }
- break;
- case VCLEVENT_MENU_SUBMENUCHANGED:
- {
- RemoveChild( nItemPos );
- InsertChild( nItemPos );
- }
- break;
- case VCLEVENT_MENU_INSERTITEM:
- {
- InsertChild( nItemPos );
- }
- break;
- case VCLEVENT_MENU_REMOVEITEM:
- {
- RemoveChild( nItemPos );
- }
- break;
- case VCLEVENT_MENU_ACCESSIBLENAMECHANGED:
- {
- UpdateAccessibleName( nItemPos );
- }
- break;
- case VCLEVENT_MENU_ITEMTEXTCHANGED:
- {
- UpdateAccessibleName( nItemPos );
- UpdateItemText( nItemPos );
- }
- break;
- case VCLEVENT_MENU_ITEMCHECKED:
- {
- UpdateChecked( nItemPos, sal_True );
- }
- break;
- case VCLEVENT_MENU_ITEMUNCHECKED:
- {
- UpdateChecked( nItemPos, sal_False );
- }
- break;
- case VCLEVENT_OBJECT_DYING:
- {
- if ( m_pMenu )
- {
- m_pMenu->RemoveEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
-
- m_pMenu = NULL;
-
- // dispose all menu items
- for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
- {
- Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
- }
- m_aAccessibleChildren.clear();
- }
- }
- break;
- default:
- {
- }
- break;
- }
-}
-
-// -----------------------------------------------------------------------------
-// XInterface
-// -----------------------------------------------------------------------------
-
-IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleMenuBaseComponent, AccessibleExtendedComponentHelper_BASE, OAccessibleMenuBaseComponent_BASE )
-
-// -----------------------------------------------------------------------------
-// XTypeProvider
-// -----------------------------------------------------------------------------
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleMenuBaseComponent, AccessibleExtendedComponentHelper_BASE, OAccessibleMenuBaseComponent_BASE )
-
-// -----------------------------------------------------------------------------
-// XComponent
-// -----------------------------------------------------------------------------
-
-void OAccessibleMenuBaseComponent::disposing()
-{
- AccessibleExtendedComponentHelper_BASE::disposing();
-
- if ( m_pMenu )
- {
- m_pMenu->RemoveEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
-
- m_pMenu = NULL;
-
- // dispose all menu items
- for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
- {
- Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
- }
- m_aAccessibleChildren.clear();
- }
-}
-
-// -----------------------------------------------------------------------------
-// XServiceInfo
-// -----------------------------------------------------------------------------
-
-sal_Bool OAccessibleMenuBaseComponent::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
-{
- Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
- const ::rtl::OUString* pNames = aNames.getConstArray();
- const ::rtl::OUString* pEnd = pNames + aNames.getLength();
- for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
- ;
-
- return pNames != pEnd;
-}
-
-// -----------------------------------------------------------------------------
-// XAccessible
-// -----------------------------------------------------------------------------
-
-Reference< XAccessibleContext > OAccessibleMenuBaseComponent::getAccessibleContext( ) throw (RuntimeException)
-{
- OExternalLockGuard aGuard( this );
-
- return this;
-}
-
-// -----------------------------------------------------------------------------
-// XAccessibleContext
-// -----------------------------------------------------------------------------
-
-Reference< XAccessibleStateSet > OAccessibleMenuBaseComponent::getAccessibleStateSet( ) throw (RuntimeException)
-{
- OExternalLockGuard aGuard( this );
-
- utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
- Reference< XAccessibleStateSet > xSet = pStateSetHelper;
-
- if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
- {
- FillAccessibleStateSet( *pStateSetHelper );
- }
- else
- {
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
- }
-
- return xSet;
-}
-
-// -----------------------------------------------------------------------------
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */