summaryrefslogtreecommitdiff
path: root/chart2/source/controller/accessibility/AccessibleChartElement.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'chart2/source/controller/accessibility/AccessibleChartElement.cxx')
-rw-r--r--chart2/source/controller/accessibility/AccessibleChartElement.cxx126
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