diff options
Diffstat (limited to 'chart2/source/controller/accessibility/AccessibleChartElement.cxx')
-rw-r--r-- | chart2/source/controller/accessibility/AccessibleChartElement.cxx | 126 |
1 files changed, 14 insertions, 112 deletions
diff --git a/chart2/source/controller/accessibility/AccessibleChartElement.cxx b/chart2/source/controller/accessibility/AccessibleChartElement.cxx index cbee2ddbb01a..b935193abdb1 100644 --- a/chart2/source/controller/accessibility/AccessibleChartElement.cxx +++ b/chart2/source/controller/accessibility/AccessibleChartElement.cxx @@ -18,28 +18,23 @@ */ #include "AccessibleChartElement.hxx" +#include <AccessibleTextHelper.hxx> #include <CharacterProperties.hxx> +#include <ChartModel.hxx> +#include <ChartController.hxx> #include <ObjectIdentifier.hxx> #include <ObjectNameProvider.hxx> -#include <servicenames.hxx> #include <com/sun/star/awt/XDevice.hpp> #include <com/sun/star/chart2/XTitle.hpp> -#include <com/sun/star/chart2/XChartDocument.hpp> #include <com/sun/star/beans/XMultiPropertySet.hpp> #include <com/sun/star/accessibility/AccessibleStateType.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/view/XSelectionSupplier.hpp> - -#include <tools/diagnose_ex.h> using namespace ::com::sun::star; using namespace ::com::sun::star::accessibility; using ::com::sun::star::uno::UNO_QUERY; using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; namespace chart { @@ -47,7 +42,7 @@ namespace chart AccessibleChartElement::AccessibleChartElement( const AccessibleElementInfo & rAccInfo, bool bMayHaveChildren ) : - impl::AccessibleChartElement_Base( rAccInfo, bMayHaveChildren, false/*bAlwaysTransparent*/ ), + AccessibleBase(rAccInfo, bMayHaveChildren, false/*bAlwaysTransparent*/), m_bHasText( false ) { AddState( AccessibleStateType::TRANSIENT ); @@ -55,7 +50,7 @@ AccessibleChartElement::AccessibleChartElement( AccessibleChartElement::~AccessibleChartElement() { - OSL_ASSERT( CheckDisposeState( false /* don't throw exceptions */ ) ); + OSL_ASSERT(!isAlive()); } // ________ protected ________ @@ -65,7 +60,7 @@ bool AccessibleChartElement::ImplUpdateChildren() bool bResult = false; Reference< chart2::XTitle > xTitle( ObjectIdentifier::getObjectPropertySet( - GetInfo().m_aOID.getObjectCID(), Reference< chart2::XChartDocument >( GetInfo().m_xChartDocument )), + GetInfo().m_aOID.getObjectCID(), GetInfo().m_xChartDocument ), uno::UNO_QUERY ); m_bHasText = xTitle.is(); @@ -85,38 +80,21 @@ void AccessibleChartElement::InitTextEdit() if( ! m_xTextHelper.is()) { // get hard reference - Reference< view::XSelectionSupplier > xSelSupp( GetInfo().m_xSelectionSupplier ); - // get factory from selection supplier (controller) - Reference< lang::XMultiServiceFactory > xFact( xSelSupp, uno::UNO_QUERY ); - if( xFact.is()) - { - m_xTextHelper.set( - xFact->createInstance( CHART_ACCESSIBLE_TEXT_SERVICE_NAME ), uno::UNO_QUERY ); - } + rtl::Reference< ::chart::ChartController > xChartController( GetInfo().m_xChartController ); + if( xChartController.is()) + m_xTextHelper = xChartController->createAccessibleTextContext(); } if( !m_xTextHelper.is()) return; - try - { - Reference< lang::XInitialization > xInit( m_xTextHelper, uno::UNO_QUERY_THROW ); - Sequence< uno::Any > aArgs( 3 ); - aArgs[0] <<= GetInfo().m_aOID.getObjectCID(); - aArgs[1] <<= Reference< XAccessible >( this ); - aArgs[2] <<= Reference< awt::XWindow >( GetInfo().m_xWindow ); - xInit->initialize( aArgs ); - } - catch( const uno::Exception & ) - { - DBG_UNHANDLED_EXCEPTION("chart2"); - } + m_xTextHelper->initialize(GetInfo().m_aOID.getObjectCID(), this, GetInfo().m_pWindow); } // Interfaces // ________ AccessibleBase::XAccessibleContext ________ -Reference< XAccessible > AccessibleChartElement::ImplGetAccessibleChildById( sal_Int32 i ) const +Reference< XAccessible > AccessibleChartElement::ImplGetAccessibleChildById( sal_Int64 i ) const { Reference< XAccessible > xResult; @@ -128,7 +106,7 @@ Reference< XAccessible > AccessibleChartElement::ImplGetAccessibleChildById( sal return xResult; } -sal_Int32 AccessibleChartElement::ImplGetAccessibleChildCount() const +sal_Int64 AccessibleChartElement::ImplGetAccessibleChildCount() const { if( m_bHasText ) { @@ -140,12 +118,6 @@ sal_Int32 AccessibleChartElement::ImplGetAccessibleChildCount() const return AccessibleBase::ImplGetAccessibleChildCount(); } -// ________ XServiceInfo ________ -OUString SAL_CALL AccessibleChartElement::getImplementationName() -{ - return "AccessibleChartElement"; -} - // ________ AccessibleChartElement::XAccessibleContext (override) ________ OUString SAL_CALL AccessibleChartElement::getAccessibleName() { @@ -160,83 +132,13 @@ OUString SAL_CALL AccessibleChartElement::getAccessibleDescription() } // ________ AccessibleChartElement::XAccessibleExtendedComponent ________ -Reference< awt::XFont > SAL_CALL AccessibleChartElement::getFont() -{ - CheckDisposeState(); - - Reference< awt::XFont > xFont; - Reference< awt::XDevice > xDevice( Reference< awt::XWindow >( GetInfo().m_xWindow ), uno::UNO_QUERY ); - - if( xDevice.is()) - { - Reference< beans::XMultiPropertySet > xObjProp( - ObjectIdentifier::getObjectPropertySet( - GetInfo().m_aOID.getObjectCID(), Reference< chart2::XChartDocument >( GetInfo().m_xChartDocument )), uno::UNO_QUERY ); - awt::FontDescriptor aDescr( - CharacterProperties::createFontDescriptorFromPropertySet( xObjProp )); - xFont = xDevice->getFont( aDescr ); - } - - return xFont; -} - -OUString SAL_CALL AccessibleChartElement::getTitledBorderText() -{ - return OUString(); -} OUString SAL_CALL AccessibleChartElement::getToolTipText() { - CheckDisposeState(); + ensureAlive(); return ObjectNameProvider::getHelpText( - GetInfo().m_aOID.getObjectCID(), Reference< chart2::XChartDocument >( GetInfo().m_xChartDocument )); -} - -// ________ XAccessibleComponent ________ -sal_Bool SAL_CALL AccessibleChartElement::containsPoint( const awt::Point& aPoint ) -{ - return AccessibleBase::containsPoint( aPoint ); -} - -Reference< XAccessible > SAL_CALL AccessibleChartElement::getAccessibleAtPoint( const awt::Point& aPoint ) -{ - return AccessibleBase::getAccessibleAtPoint( aPoint ); -} - -awt::Rectangle SAL_CALL AccessibleChartElement::getBounds() -{ - return AccessibleBase::getBounds(); -} - -awt::Point SAL_CALL AccessibleChartElement::getLocation() -{ - return AccessibleBase::getLocation(); -} - -awt::Point SAL_CALL AccessibleChartElement::getLocationOnScreen() -{ - return AccessibleBase::getLocationOnScreen(); -} - -awt::Size SAL_CALL AccessibleChartElement::getSize() -{ - return AccessibleBase::getSize(); -} - -void SAL_CALL AccessibleChartElement::grabFocus() -{ - return AccessibleBase::grabFocus(); -} - -sal_Int32 SAL_CALL AccessibleChartElement::getForeground() -{ - return AccessibleBase::getForeground(); -} - -sal_Int32 SAL_CALL AccessibleChartElement::getBackground() -{ - return AccessibleBase::getBackground(); + GetInfo().m_aOID.getObjectCID(), GetInfo().m_xChartDocument ); } } // namespace chart |