diff options
Diffstat (limited to 'chart2/source/controller/inc/AccessibleChartView.hxx')
-rw-r--r-- | chart2/source/controller/inc/AccessibleChartView.hxx | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/chart2/source/controller/inc/AccessibleChartView.hxx b/chart2/source/controller/inc/AccessibleChartView.hxx new file mode 100644 index 000000000000..2cc46825a5aa --- /dev/null +++ b/chart2/source/controller/inc/AccessibleChartView.hxx @@ -0,0 +1,155 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _CHART2_ACCESSIBLE_CHART_VIEW_HXX +#define _CHART2_ACCESSIBLE_CHART_VIEW_HXX + +#include "AccessibleBase.hxx" +#include "MutexContainer.hxx" +#include "ServiceMacros.hxx" +#include <cppuhelper/implbase2.hxx> +// header for class WeakReference +#include <cppuhelper/weakref.hxx> +#include <com/sun/star/accessibility/XAccessible.hpp> +#include <com/sun/star/frame/XModel.hpp> +#include <com/sun/star/lang/XInitialization.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <com/sun/star/view/XSelectionSupplier.hpp> +#include <com/sun/star/view/XSelectionChangeListener.hpp> +#include <com/sun/star/awt/XWindow.hpp> + +#include <boost/shared_ptr.hpp> + +namespace accessibility +{ +class IAccessibleViewForwarder; +} + +//............................................................................. +namespace chart +{ +//............................................................................. + +class ExplicitValueProvider; + +namespace impl +{ +typedef ::cppu::ImplInheritanceHelper2< + ::chart::AccessibleBase, + ::com::sun::star::lang::XInitialization, + ::com::sun::star::view::XSelectionChangeListener > + AccessibleChartView_Base; +} + +class AccessibleChartView : + public impl::AccessibleChartView_Base +{ +public: + AccessibleChartView( + const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XComponentContext >& xContext, SdrView* pView ); + virtual ~AccessibleChartView(); + + // ____ WeakComponentHelper (called from XComponent::dispose()) ____ + virtual void SAL_CALL disposing(); + + // ____ lang::XInitialization ____ + // 0: view::XSelectionSupplier offers notifications for selection changes and access to the selection itself + // 1: frame::XModel representing the chart model - offers access to object data + // 2: lang::XInterface representing the normal chart view - offers access to some extra object data + // 3: accessibility::XAccessible representing the parent accessible + // 4: awt::XWindow representing the view's window (is a vcl Window) + // all arguments are only valid until next initialization - don't keep them longer + virtual void SAL_CALL initialize( + const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) + throw (::com::sun::star::uno::Exception, + ::com::sun::star::uno::RuntimeException); + + // ____ view::XSelectionChangeListener ____ + virtual void SAL_CALL selectionChanged( const ::com::sun::star::lang::EventObject& aEvent ) throw (::com::sun::star::uno::RuntimeException); + + // ________ XEventListener ________ + virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException); + + // ________ XAccessibleContext ________ + virtual ::rtl::OUString SAL_CALL getAccessibleDescription() + throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent() + throw (::com::sun::star::uno::RuntimeException); + virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() + throw (::com::sun::star::uno::RuntimeException); + virtual ::rtl::OUString SAL_CALL getAccessibleName() + throw (::com::sun::star::uno::RuntimeException); + virtual sal_Int16 SAL_CALL getAccessibleRole() + throw (::com::sun::star::uno::RuntimeException); + + // ________ XAccessibleComponent ________ + virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds() throw (::com::sun::star::uno::RuntimeException); + virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen() throw (::com::sun::star::uno::RuntimeException); + +protected: + // ________ AccessibleChartElement ________ + virtual ::com::sun::star::awt::Point GetUpperLeftOnScreen() const; + +private: // methods + /** @return the result that m_xWindow->getPosSize() _should_ return. It + returns (0,0) as upper left corner. When calling + getAccessibleParent, you get the parent's parent, which contains + a decoration. Thus you have an offset of (currently) (2,2) + which isn't taken into account. + */ + virtual ::com::sun::star::awt::Rectangle GetWindowPosSize() const; + + ExplicitValueProvider* getExplicitValueProvider(); + +private: // members + ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XComponentContext> m_xContext; + ::com::sun::star::uno::WeakReference< + ::com::sun::star::view::XSelectionSupplier > m_xSelectionSupplier; + ::com::sun::star::uno::WeakReference< + ::com::sun::star::frame::XModel > m_xChartModel; + ::com::sun::star::uno::WeakReference< + ::com::sun::star::uno::XInterface > m_xChartView; + ::com::sun::star::uno::WeakReference< + ::com::sun::star::awt::XWindow > m_xWindow; + ::com::sun::star::uno::WeakReference< + ::com::sun::star::accessibility::XAccessible > m_xParent; + + ::boost::shared_ptr< ObjectHierarchy > m_spObjectHierarchy; + AccessibleUniqueId m_aCurrentSelectionOID; + SdrView* m_pSdrView; + ::accessibility::IAccessibleViewForwarder* m_pViewForwarder; + + //no default constructor + AccessibleChartView(); +}; + +//............................................................................. +} //namespace chart +//............................................................................. +#endif |