summaryrefslogtreecommitdiff
path: root/chart2/source/controller/inc/AccessibleBase.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'chart2/source/controller/inc/AccessibleBase.hxx')
-rw-r--r--chart2/source/controller/inc/AccessibleBase.hxx127
1 files changed, 28 insertions, 99 deletions
diff --git a/chart2/source/controller/inc/AccessibleBase.hxx b/chart2/source/controller/inc/AccessibleBase.hxx
index 88f4ef79ffb2..011bdfa48b88 100644
--- a/chart2/source/controller/inc/AccessibleBase.hxx
+++ b/chart2/source/controller/inc/AccessibleBase.hxx
@@ -23,24 +23,18 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XEventListener.hpp>
-#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
-#include <comphelper/accessibleeventnotifier.hxx>
+#include <comphelper/OAccessible.hxx>
+#include <cppuhelper/basemutex.hxx>
#include <cppuhelper/compbase.hxx>
-#include <rtl/ref.hxx>
#include <tools/color.hxx>
+#include <unotools/weakref.hxx>
+#include <vcl/window.hxx>
#include <map>
#include <vector>
#include <memory>
-#include <MutexContainer.hxx>
-
namespace com::sun::star::awt { class XWindow; }
-namespace com::sun::star::chart2 { class XChartDocument; }
-namespace com::sun::star::view { class XSelectionSupplier; }
-namespace utl { class AccessibleStateSetHelper; }
class SdrView;
@@ -54,7 +48,9 @@ namespace chart
{
class AccessibleBase;
+class ChartView;
class ObjectHierarchy;
+class ChartController;
typedef ObjectIdentifier AccessibleUniqueId;
@@ -62,10 +58,10 @@ struct AccessibleElementInfo
{
AccessibleUniqueId m_aOID;
- css::uno::WeakReference< css::chart2::XChartDocument > m_xChartDocument;
- css::uno::WeakReference< css::view::XSelectionSupplier > m_xSelectionSupplier;
- css::uno::WeakReference< css::uno::XInterface > m_xView;
- css::uno::WeakReference< css::awt::XWindow > m_xWindow;
+ unotools::WeakReference< ::chart::ChartModel > m_xChartDocument;
+ unotools::WeakReference< ::chart::ChartController > m_xChartController;
+ unotools::WeakReference< ::chart::ChartView > m_xView;
+ VclPtr<vcl::Window> m_pWindow;
std::shared_ptr< ObjectHierarchy > m_spObjectHierarchy;
@@ -74,23 +70,9 @@ struct AccessibleElementInfo
::accessibility::IAccessibleViewForwarder* m_pViewForwarder;
};
-namespace impl
-{
-typedef ::cppu::WeakComponentImplHelper<
- css::accessibility::XAccessible,
- css::accessibility::XAccessibleContext,
- css::accessibility::XAccessibleComponent,
- css::accessibility::XAccessibleEventBroadcaster,
- css::lang::XServiceInfo,
- css::lang::XEventListener
- > AccessibleBase_Base;
-}
-
/** Base class for all Chart Accessibility objects
*/
-class AccessibleBase :
- public MutexContainer,
- public impl::AccessibleBase_Base
+class AccessibleBase : public comphelper::OAccessible
{
public:
enum class EventType
@@ -99,7 +81,7 @@ public:
LOST_SELECTION
};
- AccessibleBase( const AccessibleElementInfo & rAccInfo,
+ AccessibleBase( AccessibleElementInfo aAccInfo,
bool bMayHaveChildren,
bool bAlwaysTransparent );
virtual ~AccessibleBase() override;
@@ -108,14 +90,6 @@ protected:
// for all calls to protected methods it is assumed that the mutex is locked
// unless calls outside via UNO, e.g. event notification, are done
- /** @param bThrowException if true, a DisposedException is thrown if the
- object is already disposed
- @return true, if the component is already disposed and bThrowException is false,
- false otherwise
- @throws css::lang::DisposedException
- */
- bool CheckDisposeState( bool bThrowException = true ) const;
-
/** Events coming from the core have to be processed in this methods. The
default implementation returns false, which indicates that the object is
not interested in the event. To react on events you have to implement
@@ -135,14 +109,14 @@ protected:
@throws css::uno::RuntimeException
*/
- void AddState( sal_Int16 aState );
+ void AddState( sal_Int64 aState );
/** Removes a state from the set if the set contains the state, otherwise
nothing is done.
@throws css::uno::RuntimeException
*/
- void RemoveState( sal_Int16 aState );
+ void RemoveState( sal_Int64 aState );
/** has to be overridden by derived classes that support child elements.
With this method a rescan is initiated that should result in a correct
@@ -183,17 +157,6 @@ protected:
*/
virtual css::awt::Point GetUpperLeftOnScreen() const;
- /** This method creates an AccessibleEventObject and sends it to all
- listeners that are currently listening to this object
-
- If bSendGlobally is true, the event is also broadcast via
- vcl::unohelper::NotifyAccessibleStateEventGlobally()
- */
- void BroadcastAccEvent( sal_Int16 nId,
- const css::uno::Any & rNew,
- const css::uno::Any & rOld,
- bool bSendGlobally = false ) const;
-
/** Removes all children from the internal lists and broadcasts child remove
events.
@@ -209,14 +172,14 @@ protected:
@throws css::uno::RuntimeException
*/
virtual css::uno::Reference< css::accessibility::XAccessible >
- ImplGetAccessibleChildById( sal_Int32 i ) const;
+ ImplGetAccessibleChildById( sal_Int64 i ) const;
/** Is called from getAccessibleChildCount(). Before this method is called,
an update of children is done if necessary.
@throws css::uno::RuntimeException
*/
- virtual sal_Int32 ImplGetAccessibleChildCount() const;
+ virtual sal_Int64 ImplGetAccessibleChildCount() const;
const AccessibleElementInfo& GetInfo() const { return m_aAccInfo;}
void SetInfo( const AccessibleElementInfo & rNewInfo );
@@ -225,16 +188,13 @@ protected:
// ________ WeakComponentImplHelper (XComponent::dispose) ________
virtual void SAL_CALL disposing() override;
- // ________ XAccessible ________
- virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override;
-
// ________ XAccessibleContext ________
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 i ) override;
+ getAccessibleChild( sal_Int64 i ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleParent() override;
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
/// @return AccessibleRole.SHAPE
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
// has to be implemented by derived classes
@@ -242,43 +202,22 @@ protected:
// throw (css::uno::RuntimeException);
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
getAccessibleRelationSet() override;
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
- getAccessibleStateSet() override;
+ virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
virtual css::lang::Locale SAL_CALL getLocale() override;
// has to be implemented by derived classes
// virtual OUString SAL_CALL getAccessibleDescription()
// throw (css::uno::RuntimeException);
+ // OAccessible
+ virtual css::awt::Rectangle implGetBounds() override;
+
// ________ XAccessibleComponent ________
- virtual sal_Bool SAL_CALL containsPoint(
- const css::awt::Point& aPoint ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
- // has to be defined in derived classes
- virtual css::awt::Rectangle SAL_CALL getBounds() override;
- virtual css::awt::Point SAL_CALL getLocation() override;
- virtual css::awt::Point SAL_CALL getLocationOnScreen() override;
- virtual css::awt::Size SAL_CALL getSize() override;
virtual void SAL_CALL grabFocus() override;
virtual sal_Int32 SAL_CALL getForeground() override;
virtual sal_Int32 SAL_CALL getBackground() override;
- // ________ XServiceInfo ________
- virtual OUString SAL_CALL getImplementationName() override;
- virtual sal_Bool SAL_CALL supportsService(
- const OUString& ServiceName ) override;
- virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
-
- // ________ XEventListener ________
- virtual void SAL_CALL disposing(
- const css::lang::EventObject& Source ) override;
-
- // ________ XAccessibleEventBroadcaster ________
- virtual void SAL_CALL addAccessibleEventListener(
- const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
- virtual void SAL_CALL removeAccessibleEventListener(
- const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override;
-
private:
enum eColorType
{
@@ -288,28 +227,20 @@ private:
Color getColor( eColorType eColType );
private:
- /** type of the vector containing the accessible children
- */
- typedef std::vector< css::uno::Reference< css::accessibility::XAccessible > > ChildListVectorType;
/** type of the hash containing a vector index for every AccessibleUniqueId
of the object in the child list
*/
- typedef std::map< ObjectIdentifier, css::uno::Reference< css::accessibility::XAccessible > > ChildOIDMap;
+ typedef std::map<ObjectIdentifier, rtl::Reference<AccessibleBase>> ChildOIDMap;
- bool m_bIsDisposed;
const bool m_bMayHaveChildren;
bool m_bChildrenInitialized;
- ChildListVectorType m_aChildList;
+ std::vector<rtl::Reference<AccessibleBase>> m_aChildList;
ChildOIDMap m_aChildOIDMap;
- ::comphelper::AccessibleEventNotifier::TClientId m_nEventNotifierId;
-
- /** Implementation helper for getAccessibleStateSet()
-
- Note: This member must come before m_aStateSet!
+ /** for getAccessibleStateSet()
*/
- rtl::Reference<::utl::AccessibleStateSetHelper> m_xStateSetHelper;
+ sal_Int64 m_nStateSet;
AccessibleElementInfo m_aAccInfo;
const bool m_bAlwaysTransparent;
@@ -317,10 +248,8 @@ private:
state is checked.
This variable is monitored by the solar mutex!
-
- Note: declared volatile to enable double-check-locking
*/
- volatile bool m_bStateSetInitialized;
+ bool m_bStateSetInitialized;
};
} // namespace chart