summaryrefslogtreecommitdiff
path: root/accessibility
diff options
context:
space:
mode:
Diffstat (limited to 'accessibility')
-rw-r--r--accessibility/Library_acc.mk4
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBox.hxx20
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxBase.hxx41
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx8
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxHeaderBar.hxx19
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxHeaderCell.hxx15
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxTable.hxx6
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxTableBase.hxx16
-rw-r--r--accessibility/inc/extended/AccessibleBrowseBoxTableCell.hxx13
-rw-r--r--accessibility/inc/extended/AccessibleGridControl.hxx25
-rw-r--r--accessibility/inc/extended/AccessibleGridControlBase.hxx48
-rw-r--r--accessibility/inc/extended/AccessibleGridControlHeader.hxx14
-rw-r--r--accessibility/inc/extended/AccessibleGridControlHeaderCell.hxx15
-rw-r--r--accessibility/inc/extended/AccessibleGridControlTable.hxx23
-rw-r--r--accessibility/inc/extended/AccessibleGridControlTableBase.hxx14
-rw-r--r--accessibility/inc/extended/AccessibleGridControlTableCell.hxx19
-rw-r--r--accessibility/inc/extended/AccessibleIconView.hxx30
-rw-r--r--accessibility/inc/extended/accessiblebrowseboxcell.hxx2
-rw-r--r--accessibility/inc/extended/accessibleeditbrowseboxcell.hxx12
-rw-r--r--accessibility/inc/extended/accessibleiconchoicectrl.hxx34
-rw-r--r--accessibility/inc/extended/accessibleiconchoicectrlentry.hxx17
-rw-r--r--accessibility/inc/extended/accessiblelistbox.hxx42
-rw-r--r--accessibility/inc/extended/accessiblelistboxentry.hxx29
-rw-r--r--accessibility/inc/extended/accessibletabbar.hxx32
-rw-r--r--accessibility/inc/extended/accessibletabbarpage.hxx34
-rw-r--r--accessibility/inc/extended/accessibletabbarpagelist.hxx55
-rw-r--r--accessibility/inc/extended/accessibletablistbox.hxx9
-rw-r--r--accessibility/inc/extended/accessibletablistboxtable.hxx14
-rw-r--r--accessibility/inc/extended/textwindowaccessibility.hxx35
-rw-r--r--accessibility/inc/helper/IComboListBoxHelper.hxx5
-rw-r--r--accessibility/inc/helper/listboxhelper.hxx6
-rw-r--r--accessibility/inc/pch/precompiled_acc.hxx42
-rw-r--r--accessibility/inc/standard/accessiblemenubasecomponent.hxx37
-rw-r--r--accessibility/inc/standard/accessiblemenucomponent.hxx34
-rw-r--r--accessibility/inc/standard/accessiblemenuitemcomponent.hxx8
-rw-r--r--accessibility/inc/standard/svtaccessiblenumericfield.hxx16
-rw-r--r--accessibility/inc/standard/vclxaccessiblebox.hxx58
-rw-r--r--accessibility/inc/standard/vclxaccessiblebutton.hxx22
-rw-r--r--accessibility/inc/standard/vclxaccessiblecheckbox.hxx20
-rw-r--r--accessibility/inc/standard/vclxaccessibleedit.hxx27
-rw-r--r--accessibility/inc/standard/vclxaccessiblefixedtext.hxx2
-rw-r--r--accessibility/inc/standard/vclxaccessibleheaderbar.hxx4
-rw-r--r--accessibility/inc/standard/vclxaccessibleheaderbaritem.hxx32
-rw-r--r--accessibility/inc/standard/vclxaccessiblelist.hxx49
-rw-r--r--accessibility/inc/standard/vclxaccessiblelistitem.hxx20
-rw-r--r--accessibility/inc/standard/vclxaccessiblemenu.hxx35
-rw-r--r--accessibility/inc/standard/vclxaccessiblemenubar.hxx2
-rw-r--r--accessibility/inc/standard/vclxaccessiblemenuitem.hxx25
-rw-r--r--accessibility/inc/standard/vclxaccessiblepopupmenu.hxx2
-rw-r--r--accessibility/inc/standard/vclxaccessibleradiobutton.hxx22
-rw-r--r--accessibility/inc/standard/vclxaccessiblescrollbar.hxx22
-rw-r--r--accessibility/inc/standard/vclxaccessiblestatusbar.hxx8
-rw-r--r--accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx37
-rw-r--r--accessibility/inc/standard/vclxaccessibletabcontrol.hxx37
-rw-r--r--accessibility/inc/standard/vclxaccessibletabpage.hxx38
-rw-r--r--accessibility/inc/standard/vclxaccessibletabpagewindow.hxx2
-rw-r--r--accessibility/inc/standard/vclxaccessibletextcomponent.hxx20
-rw-r--r--accessibility/inc/standard/vclxaccessibletextfield.hxx18
-rw-r--r--accessibility/inc/standard/vclxaccessibletoolbox.hxx35
-rw-r--r--accessibility/inc/standard/vclxaccessibletoolboxitem.hxx31
-rw-r--r--accessibility/inc/strings.hrc2
-rw-r--r--accessibility/inc/strings.hxx14
-rw-r--r--accessibility/source/extended/AccessibleBrowseBox.cxx48
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxBase.cxx62
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx23
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx27
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx44
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTable.cxx29
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx20
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx32
-rw-r--r--accessibility/source/extended/AccessibleGridControl.cxx92
-rw-r--r--accessibility/source/extended/AccessibleGridControlBase.cxx62
-rw-r--r--accessibility/source/extended/AccessibleGridControlHeader.cxx62
-rw-r--r--accessibility/source/extended/AccessibleGridControlHeaderCell.cxx55
-rw-r--r--accessibility/source/extended/AccessibleGridControlTable.cxx116
-rw-r--r--accessibility/source/extended/AccessibleGridControlTableBase.cxx42
-rw-r--r--accessibility/source/extended/AccessibleGridControlTableCell.cxx74
-rw-r--r--accessibility/source/extended/AccessibleIconView.cxx53
-rw-r--r--accessibility/source/extended/accessiblebrowseboxcell.cxx6
-rw-r--r--accessibility/source/extended/accessibleeditbrowseboxcell.cxx21
-rw-r--r--accessibility/source/extended/accessibleiconchoicectrl.cxx51
-rw-r--r--accessibility/source/extended/accessibleiconchoicectrlentry.cxx70
-rw-r--r--accessibility/source/extended/accessiblelistbox.cxx82
-rw-r--r--accessibility/source/extended/accessiblelistboxentry.cxx243
-rw-r--r--accessibility/source/extended/accessibletabbar.cxx77
-rw-r--r--accessibility/source/extended/accessibletabbarpage.cxx64
-rw-r--r--accessibility/source/extended/accessibletabbarpagelist.cxx137
-rw-r--r--accessibility/source/extended/accessibletablistbox.cxx6
-rw-r--r--accessibility/source/extended/accessibletablistboxtable.cxx33
-rw-r--r--accessibility/source/extended/textwindowaccessibility.cxx125
-rw-r--r--accessibility/source/helper/acc_factory.cxx67
-rw-r--r--accessibility/source/helper/characterattributeshelper.cxx27
-rw-r--r--accessibility/source/standard/accessiblemenubasecomponent.cxx183
-rw-r--r--accessibility/source/standard/accessiblemenucomponent.cxx56
-rw-r--r--accessibility/source/standard/accessiblemenuitemcomponent.cxx28
-rw-r--r--accessibility/source/standard/floatingwindowaccessible.cxx2
-rw-r--r--accessibility/source/standard/svtaccessiblenumericfield.cxx19
-rw-r--r--accessibility/source/standard/vclxaccessiblebox.cxx117
-rw-r--r--accessibility/source/standard/vclxaccessiblebutton.cxx47
-rw-r--r--accessibility/source/standard/vclxaccessiblecheckbox.cxx30
-rw-r--r--accessibility/source/standard/vclxaccessiblecombobox.cxx7
-rw-r--r--accessibility/source/standard/vclxaccessibledropdowncombobox.cxx7
-rw-r--r--accessibility/source/standard/vclxaccessibledropdownlistbox.cxx7
-rw-r--r--accessibility/source/standard/vclxaccessibleedit.cxx87
-rw-r--r--accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx4
-rw-r--r--accessibility/source/standard/vclxaccessiblefixedtext.cxx11
-rw-r--r--accessibility/source/standard/vclxaccessibleheaderbar.cxx13
-rw-r--r--accessibility/source/standard/vclxaccessibleheaderbaritem.cxx40
-rw-r--r--accessibility/source/standard/vclxaccessiblelist.cxx152
-rw-r--r--accessibility/source/standard/vclxaccessiblelistbox.cxx3
-rw-r--r--accessibility/source/standard/vclxaccessiblelistitem.cxx131
-rw-r--r--accessibility/source/standard/vclxaccessiblemenu.cxx39
-rw-r--r--accessibility/source/standard/vclxaccessiblemenubar.cxx7
-rw-r--r--accessibility/source/standard/vclxaccessiblemenuitem.cxx38
-rw-r--r--accessibility/source/standard/vclxaccessiblemenuseparator.cxx1
-rw-r--r--accessibility/source/standard/vclxaccessiblepopupmenu.cxx7
-rw-r--r--accessibility/source/standard/vclxaccessibleradiobutton.cxx25
-rw-r--r--accessibility/source/standard/vclxaccessiblescrollbar.cxx35
-rw-r--r--accessibility/source/standard/vclxaccessiblestatusbar.cxx86
-rw-r--r--accessibility/source/standard/vclxaccessiblestatusbaritem.cxx48
-rw-r--r--accessibility/source/standard/vclxaccessibletabcontrol.cxx130
-rw-r--r--accessibility/source/standard/vclxaccessibletabpage.cxx89
-rw-r--r--accessibility/source/standard/vclxaccessibletabpagewindow.cxx3
-rw-r--r--accessibility/source/standard/vclxaccessibletextcomponent.cxx28
-rw-r--r--accessibility/source/standard/vclxaccessibletextfield.cxx17
-rw-r--r--accessibility/source/standard/vclxaccessibletoolbox.cxx173
-rw-r--r--accessibility/source/standard/vclxaccessibletoolboxitem.cxx132
-rw-r--r--accessibility/util/acc.component26
128 files changed, 2274 insertions, 2781 deletions
diff --git a/accessibility/Library_acc.mk b/accessibility/Library_acc.mk
index 0926fee97e5d..1382e00019fa 100644
--- a/accessibility/Library_acc.mk
+++ b/accessibility/Library_acc.mk
@@ -9,7 +9,7 @@
$(eval $(call gb_Library_Library,acc))
-$(eval $(call gb_Library_set_plugin_for,acc,tk))
+$(eval $(call gb_Library_set_componentfile,acc,accessibility/util/acc,services))
$(eval $(call gb_Library_set_include,acc,\
$$(INCLUDE) \
@@ -33,6 +33,7 @@ $(eval $(call gb_Library_use_libraries,acc,\
sot \
svl \
svt \
+ tk \
tl \
utl \
vcl \
@@ -62,6 +63,7 @@ $(eval $(call gb_Library_add_exception_objects,acc,\
accessibility/source/extended/accessibleeditbrowseboxcell \
accessibility/source/extended/accessibleiconchoicectrl \
accessibility/source/extended/accessibleiconchoicectrlentry \
+ accessibility/source/extended/AccessibleIconView \
accessibility/source/extended/accessiblelistbox \
accessibility/source/extended/accessiblelistboxentry \
accessibility/source/extended/accessibletablistbox \
diff --git a/accessibility/inc/extended/AccessibleBrowseBox.hxx b/accessibility/inc/extended/AccessibleBrowseBox.hxx
index e2d5de3f2600..b7e912df6e92 100644
--- a/accessibility/inc/extended/AccessibleBrowseBox.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBox.hxx
@@ -21,7 +21,6 @@
#pragma once
#include <extended/AccessibleBrowseBoxBase.hxx>
-#include <cppuhelper/implbase.hxx>
#include <cppuhelper/weakref.hxx>
#include <vcl/accessibletableprovider.hxx>
#include <mutex>
@@ -62,12 +61,12 @@ protected:
// XAccessibleContext
/** @return The count of visible children. */
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return The XAccessible interface of the specified child. */
virtual css::uno::Reference<
css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
// XAccessibleComponent
@@ -143,7 +142,7 @@ protected:
virtual tools::Rectangle implGetBoundingBox() override;
/** @attention This method requires locked mutex's and a living object.
@return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
// internal helper methods
@@ -166,7 +165,7 @@ protected:
@return The XAccessible interface of the specified child. */
css::uno::Reference<
css::accessibility::XAccessible >
- implGetFixedChild( sal_Int32 nChildIndex );
+ implGetFixedChild( sal_Int64 nChildIndex );
/** This method creates and returns an accessible table.
@return An AccessibleBrowseBoxTable. */
@@ -192,9 +191,7 @@ private:
The instance holds its XAccessibleContext with a hard reference, while
the context holds this instance weak.
*/
-class AccessibleBrowseBoxAccess final :
- public cppu::WeakImplHelper<css::accessibility::XAccessible>,
- public ::vcl::IAccessibleBrowseBox
+class AccessibleBrowseBoxAccess final : public ::vcl::IAccessibleBrowseBox
{
private:
std::mutex m_aMutex;
@@ -206,7 +203,7 @@ private:
public:
AccessibleBrowseBoxAccess(
- const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > _xParent,
::vcl::IAccessibleTableProvider& _rBrowseBox
);
@@ -221,11 +218,6 @@ private:
SAL_CALL getAccessibleContext() override;
// IAccessibleBrowseBox
- virtual css::uno::Reference< css::accessibility::XAccessible >
- getMyself() override
- {
- return this;
- }
void dispose() override;
virtual bool isAlive() const override
{
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx b/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx
index 71cde0280ad2..d4ea1aabc07f 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxBase.hxx
@@ -26,10 +26,9 @@
#include <rtl/ustring.hxx>
#include <tools/gen.hxx>
#include <vcl/svapp.hxx>
-#include <cppuhelper/compbase5.hxx>
+#include <cppuhelper/compbase.hxx>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/basemutex.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/awt/XWindow.hpp>
#include <com/sun/star/accessibility/XAccessible.hpp>
@@ -43,17 +42,13 @@
namespace vcl { class Window; }
-namespace utl {
- class AccessibleStateSetHelper;
-}
-
namespace vcl {
class IAccessibleTableProvider;
}
namespace accessibility {
-typedef ::cppu::WeakAggComponentImplHelper5<
+typedef ::cppu::WeakComponentImplHelper<
css::accessibility::XAccessibleContext,
css::accessibility::XAccessibleComponent,
css::accessibility::XAccessibleEventBroadcaster,
@@ -80,9 +75,9 @@ public:
@param _xFocusWindow The window that gets all the focus events.
@param eObjType Object type */
AccessibleBrowseBoxBase(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > xParent,
::vcl::IAccessibleTableProvider& rBrowseBox,
- const css::uno::Reference< css::awt::XWindow >& _xFocusWindow,
+ css::uno::Reference< css::awt::XWindow > _xFocusWindow,
AccessibleBrowseBoxObjType eObjType );
/** Constructor sets specified name and description.
@@ -93,12 +88,12 @@ public:
@param rName The name of this object.
@param rDescription The description text of this object. */
AccessibleBrowseBoxBase(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > xParent,
::vcl::IAccessibleTableProvider& rBrowseBox,
- const css::uno::Reference< css::awt::XWindow >& _xFocusWindow,
+ css::uno::Reference< css::awt::XWindow > _xFocusWindow,
AccessibleBrowseBoxObjType eObjType,
- const OUString& rName,
- const OUString& rDescription );
+ OUString rName,
+ OUString rDescription );
protected:
virtual ~AccessibleBrowseBoxBase() override;
@@ -113,7 +108,7 @@ public:
virtual css::uno::Reference<css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
/** @return
The description of this object.
@@ -131,7 +126,7 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override;
/** @return The set of current states. */
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet() override;
+ virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
/** @return The parent's locale. */
virtual css::lang::Locale SAL_CALL getLocale() override;
@@ -246,15 +241,15 @@ protected:
/** Derived classes return the bounding box in screen coordinates.
@attention This method requires locked mutex's and a living object.
@return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() = 0;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() = 0;
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ /** Creates a bitset of states of the
current object. This method calls FillStateSet at the BrowseBox which
fills it with more states depending on the object type. Derived classes
may overwrite this method and add more states.
@attention This method requires locked mutex's.
- @return A filled AccessibleStateSetHelper. */
- virtual rtl::Reference<::utl::AccessibleStateSetHelper> implCreateStateSetHelper();
+ */
+ virtual sal_Int64 implCreateStateSet();
// internal helper methods
@@ -273,10 +268,7 @@ protected:
@return The bounding box (VCL rect.) in screen coordinates.
@throws css::lang::DisposedException
*/
- tools::Rectangle getBoundingBoxOnScreen();
-
- ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; }
- void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; }
+ AbsoluteScreenPixelRectangle getBoundingBoxOnScreen();
public:
/** @return The osl::Mutex member provided by the class BaseMutex. */
@@ -299,6 +291,9 @@ protected:
css::uno::Reference< css::awt::XWindow > m_xFocusWindow;
private:
+ ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; }
+ void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; }
+
/** Localized name. */
OUString maName;
/** Localized description text. */
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx b/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx
index 76c70344096c..dbc2fbd52aaf 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx
@@ -39,7 +39,7 @@ namespace accessibility
virtual ~AccessibleCheckBoxCell() override {}
- virtual rtl::Reference<::utl::AccessibleStateSetHelper> implCreateStateSetHelper() override;
+ virtual sal_Int64 implCreateStateSet() override;
public:
AccessibleCheckBoxCell(const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
@@ -59,10 +59,10 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual OUString SAL_CALL getImplementationName() override;
- virtual ::sal_Int32 SAL_CALL getAccessibleIndexInParent( ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override;
// XAccessibleValue
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxHeaderBar.hxx b/accessibility/inc/extended/AccessibleBrowseBoxHeaderBar.hxx
index 64d41cb6d2d9..d353b8c6018b 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxHeaderBar.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxHeaderBar.hxx
@@ -59,11 +59,10 @@ public:
The XAccessible interface of the specified child.
*/
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL
- getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
// XAccessibleComponent
@@ -116,10 +115,10 @@ public:
// XAccessibleSelection
/** Selects the specified child (row or column of the table). */
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return TRUE, if the specified child (row/column) is selected. */
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
/** Clears the complete selection. */
virtual void SAL_CALL clearAccessibleSelection() override;
@@ -128,14 +127,14 @@ public:
virtual void SAL_CALL selectAllAccessibleChildren() override;
/** @return The number of selected rows/columns. */
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount() override;
/** @return The specified selected row/column. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
/** Removes the specified row/column from the selection. */
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
// XInterface
@@ -164,7 +163,7 @@ private:
virtual tools::Rectangle implGetBoundingBox() override;
/** @attention This method requires locked mutex's and a living object.
@return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
/** @attention This method requires locked mutex's and a living object.
@return The count of used rows. */
@@ -191,7 +190,7 @@ private:
@return The absolute child index from the index of selected children.
@throws <type>IndexOutOfBoundsException</type>
If the specified index is invalid. */
- sal_Int32 implGetChildIndexFromSelectedIndex( sal_Int32 nSelectedChildIndex );
+ sal_Int64 implGetChildIndexFromSelectedIndex( sal_Int64 nSelectedChildIndex );
/** @attention This method requires locked mutex's and a living object.
@throws <type>IndexOutOfBoundsException</type>
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxHeaderCell.hxx b/accessibility/inc/extended/AccessibleBrowseBoxHeaderCell.hxx
index 1a895a045832..530e9f37f1e2 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxHeaderCell.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxHeaderCell.hxx
@@ -32,14 +32,14 @@ namespace accessibility
const css::uno::Reference< css::awt::XWindow >& _xFocusWindow,
AccessibleBrowseBoxObjType _eObjType);
/** @return The count of visible children. */
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return The XAccessible interface of the specified child. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
/** Grabs the focus to the BrowseBox. */
virtual void SAL_CALL grabFocus() override;
@@ -54,17 +54,14 @@ namespace accessibility
*/
virtual OUString SAL_CALL getImplementationName() override;
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+ /** Return a bitset of states of the current object.
*/
- rtl::Reference<::utl::AccessibleStateSetHelper> implCreateStateSetHelper() override;
+ sal_Int64 implCreateStateSet() override;
private:
virtual tools::Rectangle implGetBoundingBox() override;
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
};
}
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxTable.hxx b/accessibility/inc/extended/AccessibleBrowseBoxTable.hxx
index 78c5cc4a9a3d..8892ff384e9e 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxTable.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxTable.hxx
@@ -44,10 +44,10 @@ public:
/** @return The XAccessible interface of the specified child. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
// XAccessibleComponent
@@ -109,7 +109,7 @@ protected:
virtual tools::Rectangle implGetBoundingBox() override;
/** @attention This method requires locked mutex's and a living object.
@return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
// internal helper methods
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxTableBase.hxx b/accessibility/inc/extended/AccessibleBrowseBoxTableBase.hxx
index b482ab0d8b4f..422aa177ad48 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxTableBase.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxTableBase.hxx
@@ -59,7 +59,7 @@ public:
// XAccessibleContext
/** @return The count of visible children. */
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return The role of this object (a table). */
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
@@ -101,13 +101,13 @@ public:
getAccessibleSummary() override;
/** @return The child index of the specified cell. */
- virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) override;
/** @return The row index of the specified child cell. */
- virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) override;
+ virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int64 nChildIndex ) override;
/** @return The column index of the specified child cell. */
- virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) override;
+ virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int64 nChildIndex ) override;
/* Derived classes have to implement:
- getAccessibleRowDescription,
@@ -170,14 +170,14 @@ protected:
/** @attention This method requires locked mutex's and a living object.
@return The number of cells of the table. */
- sal_Int32 implGetChildCount() const;
+ sal_Int64 implGetChildCount() const;
/** @attention This method requires locked mutex's and a living object.
@return The row index of the specified cell index. */
- sal_Int32 implGetRow( sal_Int32 nChildIndex ) const;
+ sal_Int32 implGetRow( sal_Int64 nChildIndex ) const;
/** @attention This method requires locked mutex's and a living object.
@return The column index of the specified cell index. */
- sal_Int32 implGetColumn( sal_Int32 nChildIndex ) const;
+ sal_Int32 implGetColumn( sal_Int64 nChildIndex ) const;
/** @attention This method requires locked mutex's and a living object.
@return TRUE, if the specified row is selected. */
@@ -228,7 +228,7 @@ protected:
/** @attention This method requires locked mutex's and a living object.
@throws <type>IndexOutOfBoundsException</type>
If the specified child index is invalid. */
- void ensureIsValidIndex( sal_Int32 nChildIndex );
+ void ensureIsValidIndex( sal_Int64 nChildIndex );
};
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxTableCell.hxx b/accessibility/inc/extended/AccessibleBrowseBoxTableCell.hxx
index 2b7e28c7d48f..166b7f38035b 100644
--- a/accessibility/inc/extended/AccessibleBrowseBoxTableCell.hxx
+++ b/accessibility/inc/extended/AccessibleBrowseBoxTableCell.hxx
@@ -66,7 +66,7 @@ namespace accessibility
virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
/** @return
The name of this class.
@@ -76,20 +76,17 @@ namespace accessibility
/** @return
The count of visible children.
*/
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return
The XAccessible interface of the specified child.
*/
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+ /** Return a bitset of states of the current object.
*/
- rtl::Reference<::utl::AccessibleStateSetHelper> implCreateStateSetHelper() override;
+ sal_Int64 implCreateStateSet() override;
// XAccessible ------------------------------------------------------------
diff --git a/accessibility/inc/extended/AccessibleGridControl.hxx b/accessibility/inc/extended/AccessibleGridControl.hxx
index 6fa1a91b4919..a1f7815ce167 100644
--- a/accessibility/inc/extended/AccessibleGridControl.hxx
+++ b/accessibility/inc/extended/AccessibleGridControl.hxx
@@ -21,7 +21,6 @@
#include <extended/AccessibleGridControlBase.hxx>
#include <extended/AccessibleGridControlTable.hxx>
-#include <cppuhelper/implbase.hxx>
#include <cppuhelper/weakref.hxx>
#include <rtl/ref.hxx>
#include <vcl/accessibletable.hxx>
@@ -51,11 +50,11 @@ class AccessibleGridControl final : public AccessibleGridControlBase
// XAccessibleContext -----------------------------------------------------
/** @return The count of visible children. */
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return The XAccessible interface of the specified child. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return The role of this object (a table). */
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
@@ -111,7 +110,7 @@ private:
virtual tools::Rectangle implGetBoundingBox() override;
/** @attention This method requires locked mutex's and a living object.
@return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
// internal helper methods ------------------------------------------------
@@ -131,7 +130,7 @@ private:
@attention This method requires locked mutex's and a living object.
@return The XAccessible interface of the specified child. */
css::uno::Reference< css::accessibility::XAccessible >
- implGetFixedChild( sal_Int32 nChildIndex );
+ implGetFixedChild( sal_Int64 nChildIndex );
/** This method creates and returns an accessible table.
@return An AccessibleGridControlTable. */
@@ -149,11 +148,8 @@ private:
/** The header bar for columns (first row of the table). */
rtl::Reference<AccessibleGridControlHeader> m_xColumnHeaderBar;
- /** The table cell child. */
- rtl::Reference<AccessibleGridControlTableCell> m_xCell;
-
/** @return The count of visible children. */
- inline sal_Int32 implGetAccessibleChildCount();
+ inline sal_Int64 implGetAccessibleChildCount();
};
@@ -163,9 +159,7 @@ private:
the context holds this instance weak.</p>
*/
-class AccessibleGridControlAccess final :
- public ::cppu::WeakImplHelper< css::accessibility::XAccessible >
- ,public ::vcl::table::IAccessibleTableControl
+class AccessibleGridControlAccess final : public ::vcl::table::IAccessibleTableControl
{
private:
css::uno::Reference< css::accessibility::XAccessible > m_xParent;
@@ -174,7 +168,7 @@ private:
public:
AccessibleGridControlAccess(
- const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > _xParent,
::vcl::table::IAccessibleTable& _rTable
);
@@ -189,11 +183,6 @@ private:
SAL_CALL getAccessibleContext() override;
// IAccessibleTable
- virtual css::uno::Reference< css::accessibility::XAccessible >
- getMyself() override
- {
- return this;
- }
void DisposeAccessImpl() override;
virtual bool isAlive() const override
{
diff --git a/accessibility/inc/extended/AccessibleGridControlBase.hxx b/accessibility/inc/extended/AccessibleGridControlBase.hxx
index 361c8d4d59f6..186edc83797c 100644
--- a/accessibility/inc/extended/AccessibleGridControlBase.hxx
+++ b/accessibility/inc/extended/AccessibleGridControlBase.hxx
@@ -24,10 +24,9 @@
#include <rtl/ustring.hxx>
#include <rtl/ref.hxx>
#include <tools/gen.hxx>
-#include <cppuhelper/compbase4.hxx>
+#include <cppuhelper/compbase.hxx>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/basemutex.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
@@ -39,14 +38,10 @@
namespace vcl { class Window; }
-namespace utl {
- class AccessibleStateSetHelper;
-}
-
namespace accessibility {
-typedef ::cppu::WeakAggComponentImplHelper4<
+typedef ::cppu::WeakComponentImplHelper<
css::accessibility::XAccessibleContext,
css::accessibility::XAccessibleComponent,
css::accessibility::XAccessibleEventBroadcaster,
@@ -61,12 +56,12 @@ class AccessibleGridControlBase :
public AccessibleGridControlImplHelper
{
public:
- /** Constructor sets specified name and description.
+ /** Constructor.
@param rxParent XAccessible interface of the parent object.
@param rTable The Table control.
@param eObjType Type of accessible table control. */
AccessibleGridControlBase(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > xParent,
::vcl::table::IAccessibleTable& rTable,
::vcl::table::AccessibleTableControlObjType eObjType );
@@ -84,7 +79,7 @@ public:
getAccessibleParent() override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
/** @return
The description of this object.
@@ -103,8 +98,7 @@ public:
getAccessibleRelationSet() override;
/** @return The set of current states. */
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
- getAccessibleStateSet() override;
+ virtual sal_Int64 SAL_CALL getAccessibleStateSet() override;
/** @return The parent's locale. */
virtual css::lang::Locale SAL_CALL getLocale() override;
@@ -188,10 +182,8 @@ public:
inline ::vcl::table::AccessibleTableControlObjType getType() const;
/** Commits an event to all listeners. */
- void commitEvent(
- sal_Int16 nEventId,
- const css::uno::Any& rNewValue,
- const css::uno::Any& rOldValue );
+ virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue,
+ const css::uno::Any& rOldValue);
/** @return TRUE, if the object is not disposed or disposing. */
bool isAlive() const;
@@ -212,25 +204,21 @@ protected:
///** Derived classes return the bounding box in screen coordinates.
// @attention This method requires locked mutex's and a living object.
// @return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() = 0;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() = 0;
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ /** Creates a bitset of states of the
current object. This method calls FillStateSet at the GridControl which
fills it with more states depending on the object type. Derived classes
may overwrite this method and add more states.
@attention This method requires locked mutex's.
- @return A filled AccessibleStateSetHelper. */
- virtual rtl::Reference<::utl::AccessibleStateSetHelper> implCreateStateSetHelper();
+ */
+ virtual sal_Int64 implCreateStateSet();
// internal helper methods
/** @throws <type>DisposedException</type> If the object is not alive. */
void ensureIsAlive() const;
- /** Changes the name of the object (flat assignment, no notify).
- @attention This method requires a locked mutex. */
- inline void implSetName( const OUString& rName );
-
/** Locks all mutex's and calculates the bounding box relative to the
parent window.
@return The bounding box (VCL rect.) relative to the parent object.
@@ -241,7 +229,7 @@ protected:
// coordinates.
// @return The bounding box (VCL rect.) in screen coordinates. */
/// @throws css::lang::DisposedException
- tools::Rectangle getBoundingBoxOnScreen();
+ AbsoluteScreenPixelRectangle getBoundingBoxOnScreen();
::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; }
void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; }
@@ -257,10 +245,6 @@ protected:
::vcl::table::AccessibleTableControlObjType m_eObjType;
private:
- /** Localized name. */
- OUString m_aName;
- /** Localized description text. */
- OUString m_aDescription;
::comphelper::AccessibleEventNotifier::TClientId m_aClientId;
};
@@ -315,12 +299,6 @@ inline ::vcl::table::AccessibleTableControlObjType AccessibleGridControlBase::ge
return m_eObjType;
}
-inline void AccessibleGridControlBase::implSetName(
- const OUString& rName )
-{
- m_aName = rName;
-}
-
} // namespace accessibility
diff --git a/accessibility/inc/extended/AccessibleGridControlHeader.hxx b/accessibility/inc/extended/AccessibleGridControlHeader.hxx
index 63cef92cebec..7e1c3e7ab26b 100644
--- a/accessibility/inc/extended/AccessibleGridControlHeader.hxx
+++ b/accessibility/inc/extended/AccessibleGridControlHeader.hxx
@@ -33,8 +33,8 @@ class AccessibleGridControlHeader final : public AccessibleGridControlTableBase
public:
/** @param rxParent accessible parent control
@param rTable accessible table
- @param eObjType One of the two allowed types TCTYPE_ROWHEADERBAR or
- TCTYPE_COLUMNHEADERBAR. */
+ @param eObjType One of the two allowed types AccessibleTableControlObjType::ROWHEADERBAR or
+ AccessibleTableControlObjType::COLUMNHEADERBAR. */
AccessibleGridControlHeader(
const css::uno::Reference<
css::accessibility::XAccessible >& rxParent,
@@ -51,10 +51,10 @@ public:
The XAccessible interface of the specified child.
*/
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
// XAccessibleComponent
@@ -125,7 +125,7 @@ private:
virtual tools::Rectangle implGetBoundingBox() override;
/** @attention This method requires locked mutex's and a living object.
@return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
// internal helper methods
@@ -139,12 +139,12 @@ private:
inline bool AccessibleGridControlHeader::isRowBar() const
{
- return getType() == ::vcl::table::TCTYPE_ROWHEADERBAR;
+ return getType() == ::vcl::table::AccessibleTableControlObjType::ROWHEADERBAR;
}
inline bool AccessibleGridControlHeader::isColumnBar() const
{
- return getType() == ::vcl::table::TCTYPE_COLUMNHEADERBAR;
+ return getType() == ::vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR;
}
diff --git a/accessibility/inc/extended/AccessibleGridControlHeaderCell.hxx b/accessibility/inc/extended/AccessibleGridControlHeaderCell.hxx
index c9a0fde32032..6e78029a84fd 100644
--- a/accessibility/inc/extended/AccessibleGridControlHeaderCell.hxx
+++ b/accessibility/inc/extended/AccessibleGridControlHeaderCell.hxx
@@ -31,14 +31,14 @@ namespace accessibility
::vcl::table::IAccessibleTable& _rTable,
::vcl::table::AccessibleTableControlObjType _eObjType);
/** @return The count of visible children. */
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return The XAccessible interface of the specified child. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
/** Grabs the focus to the GridControl. */
virtual void SAL_CALL grabFocus() override;
@@ -64,17 +64,14 @@ namespace accessibility
*/
virtual OUString SAL_CALL getImplementationName() override;
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+ /** Return a bitset of states of the current object.
*/
- rtl::Reference<::utl::AccessibleStateSetHelper> implCreateStateSetHelper() override;
+ sal_Int64 implCreateStateSet() override;
private:
virtual tools::Rectangle implGetBoundingBox() override;
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
};
}
diff --git a/accessibility/inc/extended/AccessibleGridControlTable.hxx b/accessibility/inc/extended/AccessibleGridControlTable.hxx
index 73c4f6a19050..ef029ec4a71e 100644
--- a/accessibility/inc/extended/AccessibleGridControlTable.hxx
+++ b/accessibility/inc/extended/AccessibleGridControlTable.hxx
@@ -49,10 +49,10 @@ public:
/** @return The XAccessible interface of the specified child. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
// XAccessibleComponent
@@ -104,10 +104,10 @@ public:
// XAccessibleSelection
/** Selects the specified child (row or column of the table). */
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
/** @return TRUE, if the specified child (row/column) is selected. */
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
/** Clears the complete selection. */
virtual void SAL_CALL clearAccessibleSelection() override;
@@ -116,14 +116,14 @@ public:
virtual void SAL_CALL selectAllAccessibleChildren() override;
/** @return The number of selected rows/columns. */
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount() override;
/** @return The specified selected row/column. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
/** Removes the specified row/column from the selection. */
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
// XInterface
/** Queries for a new interface. */
@@ -139,8 +139,11 @@ public:
/** @return The name of this class. */
virtual OUString SAL_CALL getImplementationName() override;
- /**@return m_pCellVector*/
- std::vector< rtl::Reference<AccessibleGridControlTableCell> >& getCellVector() { return m_aCellVector;}
+ // XComponent
+ virtual void SAL_CALL dispose() override;
+
+ virtual void commitEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue,
+ const css::uno::Any& rOldValue) override;
private:
// internal virtual methods
@@ -150,7 +153,7 @@ private:
virtual tools::Rectangle implGetBoundingBox() override;
///** @attention This method requires locked mutex's and a living object.
// @return The bounding box (VCL rect.) in screen coordinates. */
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
//// internal helper methods
diff --git a/accessibility/inc/extended/AccessibleGridControlTableBase.hxx b/accessibility/inc/extended/AccessibleGridControlTableBase.hxx
index 6ef2737afb87..39de903ec855 100644
--- a/accessibility/inc/extended/AccessibleGridControlTableBase.hxx
+++ b/accessibility/inc/extended/AccessibleGridControlTableBase.hxx
@@ -55,7 +55,7 @@ public:
// XAccessibleContext
/** @return The count of visible children. */
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return The role of this object (a table). */
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
@@ -95,13 +95,13 @@ public:
getAccessibleSummary() override;
/** @return The child index of the specified cell. */
- virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn ) override;
/** @return The row index of the specified child cell. */
- virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex ) override;
+ virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int64 nChildIndex ) override;
/** @return The column index of the specified child cell. */
- virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex ) override;
+ virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int64 nChildIndex ) override;
/* Derived classes have to implement:
- getAccessibleRowDescription,
@@ -139,10 +139,10 @@ protected:
/** @attention This method requires locked mutex's and a living object.
@return The row index of the specified cell index. */
- sal_Int32 implGetRow( sal_Int32 nChildIndex ) const;
+ sal_Int32 implGetRow( sal_Int64 nChildIndex );
/** @attention This method requires locked mutex's and a living object.
@return The column index of the specified cell index. */
- sal_Int32 implGetColumn( sal_Int32 nChildIndex ) const;
+ sal_Int32 implGetColumn( sal_Int64 nChildIndex );
/** Fills a sequence with sorted indexes of completely selected rows.
@attention This method requires locked mutex's and a living object.
@@ -164,7 +164,7 @@ protected:
/** @attention This method requires locked mutex's and a living object.
@throws <type>IndexOutOfBoundsException</type>
If the specified child index is invalid. */
- void ensureIsValidIndex( sal_Int32 nChildIndex );
+ void ensureIsValidIndex( sal_Int64 nChildIndex );
};
diff --git a/accessibility/inc/extended/AccessibleGridControlTableCell.hxx b/accessibility/inc/extended/AccessibleGridControlTableCell.hxx
index 77077183b54b..f9f8c4f7f16e 100644
--- a/accessibility/inc/extended/AccessibleGridControlTableCell.hxx
+++ b/accessibility/inc/extended/AccessibleGridControlTableCell.hxx
@@ -40,6 +40,10 @@ namespace accessibility
// XAccessibleComponent
virtual void SAL_CALL grabFocus() override;
+ public:
+ // XAccessibleContext
+ virtual OUString SAL_CALL getAccessibleName() override;
+
protected:
AccessibleGridControlCell(
const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
@@ -70,7 +74,7 @@ namespace accessibility
virtual css::lang::Locale implGetLocale() override;
virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex ) override final;
virtual tools::Rectangle implGetBoundingBox() override;
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
public:
AccessibleGridControlTableCell( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
@@ -90,7 +94,7 @@ namespace accessibility
virtual void SAL_CALL release() noexcept override;
/** @return The index of this object among the parent's children. */
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
/** @return
The name of this class.
@@ -100,20 +104,17 @@ namespace accessibility
/** @return
The count of visible children.
*/
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return
The XAccessible interface of the specified child.
*/
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+ /** Return a bitset of states of the current object.
*/
- rtl::Reference<::utl::AccessibleStateSetHelper> implCreateStateSetHelper() override;
+ sal_Int64 implCreateStateSet() override;
// XAccessible ------------------------------------------------------------
diff --git a/accessibility/inc/extended/AccessibleIconView.hxx b/accessibility/inc/extended/AccessibleIconView.hxx
new file mode 100644
index 000000000000..d5ab5eafb198
--- /dev/null
+++ b/accessibility/inc/extended/AccessibleIconView.hxx
@@ -0,0 +1,30 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#pragma once
+
+#include <sal/config.h>
+
+#include "accessiblelistbox.hxx"
+
+namespace accessibility
+{
+class AccessibleIconView final : public AccessibleListBox
+{
+public:
+ AccessibleIconView(SvTreeListBox const& _rListBox,
+ const css::uno::Reference<css::accessibility::XAccessible>& _xParent);
+
+protected:
+ // VCLXAccessibleComponent
+ virtual void ProcessWindowEvent(const VclWindowEvent& rVclWindowEvent) override;
+};
+} // namespace accessibility
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/accessibility/inc/extended/accessiblebrowseboxcell.hxx b/accessibility/inc/extended/accessiblebrowseboxcell.hxx
index ba4654654a1f..4db205c1d77c 100644
--- a/accessibility/inc/extended/accessiblebrowseboxcell.hxx
+++ b/accessibility/inc/extended/accessiblebrowseboxcell.hxx
@@ -44,7 +44,7 @@ namespace accessibility
protected:
// AccessibleBrowseBoxBase overridables
virtual tools::Rectangle implGetBoundingBox() override;
- virtual tools::Rectangle implGetBoundingBoxOnScreen() override;
+ virtual AbsoluteScreenPixelRectangle implGetBoundingBoxOnScreen() override;
// XAccessibleComponent
virtual void SAL_CALL grabFocus() override;
diff --git a/accessibility/inc/extended/accessibleeditbrowseboxcell.hxx b/accessibility/inc/extended/accessibleeditbrowseboxcell.hxx
index ea42155fd0eb..615266637b32 100644
--- a/accessibility/inc/extended/accessibleeditbrowseboxcell.hxx
+++ b/accessibility/inc/extended/accessibleeditbrowseboxcell.hxx
@@ -62,12 +62,12 @@ namespace accessibility
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
sal_Int16 SAL_CALL getAccessibleRole() override;
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
@@ -105,9 +105,9 @@ namespace accessibility
public:
EditBrowseBoxTableCellAccess(
- const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
- const css::uno::Reference< css::accessibility::XAccessible >& _rxControlAccessible,
- const css::uno::Reference< css::awt::XWindow >& _rxFocusWindow,
+ css::uno::Reference< css::accessibility::XAccessible > _xParent,
+ css::uno::Reference< css::accessibility::XAccessible > _xControlAccessible,
+ css::uno::Reference< css::awt::XWindow > _xFocusWindow,
::vcl::IAccessibleTableProvider& _rBrowseBox,
sal_Int32 _nRowPos,
sal_uInt16 _nColPos
diff --git a/accessibility/inc/extended/accessibleiconchoicectrl.hxx b/accessibility/inc/extended/accessibleiconchoicectrl.hxx
index 836956fc4121..5ead84ee3466 100644
--- a/accessibility/inc/extended/accessibleiconchoicectrl.hxx
+++ b/accessibility/inc/extended/accessibleiconchoicectrl.hxx
@@ -20,7 +20,7 @@
#pragma once
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <vcl/vclevent.hxx>
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
@@ -30,13 +30,13 @@ class SvtIconChoiceCtrl;
namespace accessibility
{
- typedef ::cppu::ImplHelper2< css::accessibility::XAccessible
- , css::accessibility::XAccessibleSelection> AccessibleIconChoiceCtrl_BASE;
-
/** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry
*/
- class AccessibleIconChoiceCtrl final : public AccessibleIconChoiceCtrl_BASE
- ,public VCLXAccessibleComponent
+ class AccessibleIconChoiceCtrl final :
+ public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
+ css::accessibility::XAccessible,
+ css::accessibility::XAccessibleSelection>
{
css::uno::Reference< css::accessibility::XAccessible > m_xParent;
@@ -46,7 +46,7 @@ namespace accessibility
virtual void SAL_CALL disposing() override;
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
VclPtr< SvtIconChoiceCtrl > getCtrl() const;
@@ -60,12 +60,6 @@ namespace accessibility
AccessibleIconChoiceCtrl( SvtIconChoiceCtrl const & _rIconCtrl,
const css::uno::Reference< css::accessibility::XAccessible >& _xParent );
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
- // XInterface
- DECLARE_XINTERFACE()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
@@ -75,21 +69,21 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
// XAccessibleSelection
- void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
void SAL_CALL clearAccessibleSelection( ) override;
void SAL_CALL selectAllAccessibleChildren( ) override;
- sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
};
diff --git a/accessibility/inc/extended/accessibleiconchoicectrlentry.hxx b/accessibility/inc/extended/accessibleiconchoicectrlentry.hxx
index 915736e95c0e..b2430481e58c 100644
--- a/accessibility/inc/extended/accessibleiconchoicectrlentry.hxx
+++ b/accessibility/inc/extended/accessibleiconchoicectrlentry.hxx
@@ -23,12 +23,11 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/compbase8.hxx>
+#include <cppuhelper/compbase.hxx>
#include <cppuhelper/basemutex.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <tools/gen.hxx>
@@ -43,7 +42,7 @@ namespace accessibility
{
- typedef ::cppu::WeakAggComponentImplHelper8< css::accessibility::XAccessible
+ typedef ::cppu::WeakComponentImplHelper< css::accessibility::XAccessible
, css::accessibility::XAccessibleContext
, css::accessibility::XAccessibleComponent
, css::accessibility::XAccessibleEventBroadcaster
@@ -67,7 +66,7 @@ namespace accessibility
css::uno::Reference< css::accessibility::XAccessible > m_xParent;
tools::Rectangle GetBoundingBox_Impl() const;
- tools::Rectangle GetBoundingBoxOnScreen_Impl() const;
+ AbsoluteScreenPixelRectangle GetBoundingBoxOnScreen_Impl() const;
bool IsAlive_Impl() const;
bool IsShowing_Impl() const;
@@ -76,7 +75,7 @@ namespace accessibility
tools::Rectangle GetBoundingBox();
/// @throws css::lang::DisposedException
/// @throws css::uno::RuntimeException
- tools::Rectangle GetBoundingBoxOnScreen();
+ AbsoluteScreenPixelRectangle GetBoundingBoxOnScreen();
/// @throws css::lang::DisposedException
void EnsureIsAlive() const;
@@ -118,15 +117,15 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
diff --git a/accessibility/inc/extended/accessiblelistbox.hxx b/accessibility/inc/extended/accessiblelistbox.hxx
index 4f4104701709..55112facacbc 100644
--- a/accessibility/inc/extended/accessiblelistbox.hxx
+++ b/accessibility/inc/extended/accessiblelistbox.hxx
@@ -20,7 +20,7 @@
#pragma once
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <vcl/vclevent.hxx>
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
@@ -37,26 +37,24 @@ namespace accessibility
/** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry
*/
- class AccessibleListBox final :
- public cppu::ImplHelper2<
+ class AccessibleListBox :
+ public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
css::accessibility::XAccessible,
- css::accessibility::XAccessibleSelection>,
- public VCLXAccessibleComponent
+ css::accessibility::XAccessibleSelection>
{
css::uno::Reference< css::accessibility::XAccessible > m_xParent;
-
- virtual ~AccessibleListBox() override;
-
// OComponentHelper overridables
/** this function is called upon disposing the component */
virtual void SAL_CALL disposing() override;
+ protected:
// VCLXAccessibleComponent
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
+ private:
VclPtr< SvTreeListBox > getListBox() const;
void RemoveChildEntries(SvTreeListEntry*);
@@ -73,13 +71,9 @@ namespace accessibility
AccessibleListBox( SvTreeListBox const & _rListBox,
const css::uno::Reference< css::accessibility::XAccessible >& _xParent );
- rtl::Reference<AccessibleListBoxEntry> implGetAccessible(SvTreeListEntry & rEntry);
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
+ virtual ~AccessibleListBox() override;
- // XInterface
- DECLARE_XINTERFACE()
+ rtl::Reference<AccessibleListBoxEntry> implGetAccessible(SvTreeListEntry & rEntry);
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
@@ -90,28 +84,28 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
// XAccessibleSelection
- void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
void SAL_CALL clearAccessibleSelection( ) override;
void SAL_CALL selectAllAccessibleChildren( ) override;
- sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
private:
typedef std::unordered_map<SvTreeListEntry*, rtl::Reference<AccessibleListBoxEntry>> MAP_ENTRY;
MAP_ENTRY m_mapEntry;
- css::uno::Reference< css::accessibility::XAccessible > m_xFocusedChild;
+ rtl::Reference<AccessibleListBoxEntry> m_xFocusedEntry;
accessibility::AccessibleListBoxEntry* GetCurEventEntry( const VclWindowEvent& rVclWindowEvent );
diff --git a/accessibility/inc/extended/accessiblelistboxentry.hxx b/accessibility/inc/extended/accessiblelistboxentry.hxx
index 449803bc35b5..050dc948d9c4 100644
--- a/accessibility/inc/extended/accessiblelistboxentry.hxx
+++ b/accessibility/inc/extended/accessiblelistboxentry.hxx
@@ -24,17 +24,17 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-#include <cppuhelper/compbase9.hxx>
+#include <cppuhelper/compbase.hxx>
#include <cppuhelper/basemutex.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <vcl/toolkit/treelistentry.hxx>
#include <tools/gen.hxx>
+#include <unotools/weakref.hxx>
// forward ---------------------------------------------------------------
@@ -54,7 +54,7 @@ namespace accessibility
class AccessibleListBox;
// class AccessibleListBoxEntry ------------------------------------------
- typedef ::cppu::WeakAggComponentImplHelper9< css::accessibility::XAccessible
+ typedef ::cppu::WeakComponentImplHelper< css::accessibility::XAccessible
, css::accessibility::XAccessibleContext
, css::accessibility::XAccessibleComponent
, css::accessibility::XAccessibleEventBroadcaster
@@ -81,8 +81,7 @@ namespace accessibility
/// client id in the AccessibleEventNotifier queue
sal_uInt32 m_nClientId;
- css::uno::WeakReference<css::accessibility::XAccessible> m_wListBox;
- AccessibleListBox & m_rListBox;
+ unotools::WeakReference<AccessibleListBox> m_wListBox;
tools::Rectangle GetBoundingBox_Impl() const;
tools::Rectangle GetBoundingBoxOnScreen_Impl() const;
@@ -95,6 +94,8 @@ namespace accessibility
/// @throws css::lang::DisposedException
/// @throws css::uno::RuntimeException
tools::Rectangle GetBoundingBoxOnScreen();
+ /// @throws css::lang::IndexOutOfBoundsException
+ void CheckActionIndex(sal_Int32 nIndex);
/// @throws css::lang::DisposedException
void EnsureIsAlive() const;
@@ -142,15 +143,15 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
@@ -195,13 +196,13 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) override;
// XAccessibleSelection
- void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
void SAL_CALL clearAccessibleSelection( ) override;
void SAL_CALL selectAllAccessibleChildren( ) override;
- sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
// XAccessibleValue
virtual css::uno::Any SAL_CALL getCurrentValue( ) override;
diff --git a/accessibility/inc/extended/accessibletabbar.hxx b/accessibility/inc/extended/accessibletabbar.hxx
index 973bbbe2e474..b921fdb16719 100644
--- a/accessibility/inc/extended/accessibletabbar.hxx
+++ b/accessibility/inc/extended/accessibletabbar.hxx
@@ -21,15 +21,11 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <extended/accessibletabbarbase.hxx>
#include <vector>
-namespace utl {
-class AccessibleStateSetHelper;
-}
-
namespace accessibility
{
@@ -37,19 +33,17 @@ namespace accessibility
- typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessible,
- css::lang::XServiceInfo > AccessibleTabBar_BASE;
-
- class AccessibleTabBar final : public AccessibleTabBarBase,
- public AccessibleTabBar_BASE
+ class AccessibleTabBar final : public cppu::ImplInheritanceHelper<
+ AccessibleTabBarBase,
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo>
{
typedef std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
AccessibleChildren m_aAccessibleChildren;
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ void FillAccessibleStateSet( sal_Int64& rStateSet );
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
@@ -60,12 +54,6 @@ namespace accessibility
public:
AccessibleTabBar( TabBar* pTabBar );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
@@ -75,15 +63,15 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
diff --git a/accessibility/inc/extended/accessibletabbarpage.hxx b/accessibility/inc/extended/accessibletabbarpage.hxx
index 81bf83f24d68..052650c19de0 100644
--- a/accessibility/inc/extended/accessibletabbarpage.hxx
+++ b/accessibility/inc/extended/accessibletabbarpage.hxx
@@ -21,13 +21,9 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <extended/accessibletabbarbase.hxx>
-namespace utl {
-class AccessibleStateSetHelper;
-}
-
namespace accessibility
{
@@ -35,12 +31,10 @@ namespace accessibility
- typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessible,
- css::lang::XServiceInfo > AccessibleTabBarPage_BASE;
-
- class AccessibleTabBarPage final : public AccessibleTabBarBase,
- public AccessibleTabBarPage_BASE
+ class AccessibleTabBarPage final : public cppu::ImplInheritanceHelper<
+ AccessibleTabBarBase,
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo>
{
friend class AccessibleTabBarPageList;
@@ -60,9 +54,7 @@ namespace accessibility
void SetSelected( bool bSelected );
void SetPageText( const OUString& sPageText );
- sal_uInt16 GetPageId() const { return m_nPageId; }
-
- void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ void FillAccessibleStateSet( sal_Int64& rStateSet );
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
@@ -74,12 +66,6 @@ namespace accessibility
AccessibleTabBarPage( TabBar* pTabBar, sal_uInt16 nPageId,
const css::uno::Reference< css::accessibility::XAccessible >& rxParent );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
@@ -89,15 +75,15 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
diff --git a/accessibility/inc/extended/accessibletabbarpagelist.hxx b/accessibility/inc/extended/accessibletabbarpagelist.hxx
index 89a8c6310f95..b3045aa77c6f 100644
--- a/accessibility/inc/extended/accessibletabbarpagelist.hxx
+++ b/accessibility/inc/extended/accessibletabbarpagelist.hxx
@@ -22,32 +22,22 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/implbase.hxx>
#include <extended/accessibletabbarbase.hxx>
+#include <extended/accessibletabbarpage.hxx>
#include <vector>
-namespace utl {
-class AccessibleStateSetHelper;
-}
-
-
namespace accessibility
{
-
-
-
-
- typedef ::cppu::ImplHelper3<
- css::accessibility::XAccessible,
- css::accessibility::XAccessibleSelection,
- css::lang::XServiceInfo > AccessibleTabBarPageList_BASE;
-
- class AccessibleTabBarPageList final : public AccessibleTabBarBase,
- public AccessibleTabBarPageList_BASE
+ class AccessibleTabBarPageList final : public cppu::ImplInheritanceHelper<
+ AccessibleTabBarBase,
+ css::accessibility::XAccessible,
+ css::accessibility::XAccessibleSelection,
+ css::lang::XServiceInfo>
{
private:
- typedef std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
+ typedef std::vector< rtl::Reference< AccessibleTabBarPage > > AccessibleChildren;
AccessibleChildren m_aAccessibleChildren;
sal_Int32 m_nIndexInParent;
@@ -61,7 +51,7 @@ namespace accessibility
void MoveChild( sal_Int32 i, sal_Int32 j );
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ void FillAccessibleStateSet( sal_Int64& rStateSet );
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
@@ -72,12 +62,6 @@ namespace accessibility
public:
AccessibleTabBarPageList( TabBar* pTabBar, sal_Int32 nIndexInParent );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
@@ -87,15 +71,15 @@ namespace accessibility
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
@@ -110,13 +94,16 @@ namespace accessibility
virtual OUString SAL_CALL getToolTipText( ) override;
// XAccessibleSelection
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
virtual void SAL_CALL clearAccessibleSelection( ) override;
virtual void SAL_CALL selectAllAccessibleChildren( ) override;
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nChildIndex ) override;
+
+ private:
+ rtl::Reference< AccessibleTabBarPage > getAccessibleChildImpl( sal_Int64 i );
};
diff --git a/accessibility/inc/extended/accessibletablistbox.hxx b/accessibility/inc/extended/accessibletablistbox.hxx
index 17f30ce60fbe..b38c1c5ef59d 100644
--- a/accessibility/inc/extended/accessibletablistbox.hxx
+++ b/accessibility/inc/extended/accessibletablistbox.hxx
@@ -58,11 +58,11 @@ public:
// XAccessibleContext -----------------------------------------------------
/** @return The count of visible children. */
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override;
/** @return The XAccessible interface of the specified child. */
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- getAccessibleChild( sal_Int32 nChildIndex ) override;
+ getAccessibleChild( sal_Int64 nChildIndex ) override;
// XAccessibleContext
css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() override;
@@ -80,6 +80,11 @@ public:
return AccessibleBrowseBox::getHeaderBar( AccessibleBrowseBoxObjType::ColumnHeaderBar );
}
+ css::uno::Reference<css::accessibility::XAccessible> getTable() override
+ {
+ return implGetTable();
+ }
+
private:
/** dtor() */
virtual ~AccessibleTabListBox() override;
diff --git a/accessibility/inc/extended/accessibletablistboxtable.hxx b/accessibility/inc/extended/accessibletablistboxtable.hxx
index 73d5660b63a7..b2f2b4277aae 100644
--- a/accessibility/inc/extended/accessibletablistboxtable.hxx
+++ b/accessibility/inc/extended/accessibletablistboxtable.hxx
@@ -45,7 +45,7 @@ private:
// helpers ----------------------------------------------------------------
/** Throws an exception, if nIndex is not a valid child index. */
- void ensureValidIndex( sal_Int32 _nIndex ) const;
+ void ensureValidIndex( sal_Int64 _nIndex ) const;
/** Selects the specified row. */
void implSelectRow( sal_Int32 _nRow, bool _bSelect );
@@ -58,7 +58,7 @@ private:
sal_Int32 implGetSelRowCount() const;
/** Returns the row index from cell index. */
- sal_Int32 implGetRow( sal_Int32 _nIndex ) const
+ sal_Int32 implGetRow( sal_Int64 _nIndex ) const
{
auto nColCount = implGetColumnCount();
assert(nColCount != 0);
@@ -91,13 +91,13 @@ public:
virtual OUString SAL_CALL getImplementationName() override;
// XAccessibleSelection
- void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
void SAL_CALL clearAccessibleSelection( ) override;
void SAL_CALL selectAllAccessibleChildren( ) override;
- sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
};
diff --git a/accessibility/inc/extended/textwindowaccessibility.hxx b/accessibility/inc/extended/textwindowaccessibility.hxx
index 43e52384a536..52d5f2175761 100644
--- a/accessibility/inc/extended/textwindowaccessibility.hxx
+++ b/accessibility/inc/extended/textwindowaccessibility.hxx
@@ -36,9 +36,10 @@
#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
#include <toolkit/awt/vclxwindow.hxx>
#include <cppuhelper/basemutex.hxx>
-#include <cppuhelper/compbase7.hxx>
+#include <cppuhelper/compbase.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <rtl/ref.hxx>
+#include <unotools/weakref.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <queue>
@@ -91,31 +92,31 @@ private:
VclPtr<vcl::Window> m_pNotifier;
};
+class Paragraph;
+
class ParagraphInfo
{
public:
ParagraphInfo(::sal_Int32 nHeight): m_nHeight(nHeight) {}
- css::uno::WeakReference< css::accessibility::XAccessible > const &
+ unotools::WeakReference< Paragraph > const &
getParagraph() const { return m_xParagraph; }
::sal_Int32 getHeight() const { return m_nHeight; }
- void setParagraph(
- css::uno::Reference< css::accessibility::XAccessible > const &
- rParagraph) { m_xParagraph = rParagraph; }
+ void setParagraph( rtl::Reference< Paragraph > const & rParagraph)
+ { m_xParagraph = rParagraph.get(); }
void changeHeight(::sal_Int32 nHeight) { m_nHeight = nHeight; }
private:
- css::uno::WeakReference< css::accessibility::XAccessible >
- m_xParagraph;
+ unotools::WeakReference< Paragraph > m_xParagraph;
::sal_Int32 m_nHeight;
};
typedef std::vector< ParagraphInfo > Paragraphs;
-typedef ::cppu::WeakAggComponentImplHelper7<
+typedef ::cppu::WeakComponentImplHelper<
css::accessibility::XAccessible,
css::accessibility::XAccessibleContext,
css::accessibility::XAccessibleComponent,
@@ -132,7 +133,7 @@ class Paragraph final:
private cppu::BaseMutex, public ParagraphBase, private ::comphelper::OCommonAccessibleText
{
public:
- Paragraph(::rtl::Reference< Document > const & rDocument,
+ Paragraph(::rtl::Reference< Document > xDocument,
Paragraphs::size_type nNumber);
// Not thread-safe.
@@ -160,15 +161,15 @@ private:
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
SAL_CALL getAccessibleContext() override;
- 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;
virtual ::sal_Int16 SAL_CALL getAccessibleRole() override;
@@ -180,9 +181,7 @@ private:
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;
@@ -469,17 +468,17 @@ public:
retrieveParagraphRelationSet( Paragraph const * pParagraph );
private:
- 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;
+ SAL_CALL getAccessibleChild(sal_Int64 i) override;
virtual ::sal_Int16 SAL_CALL getAccessibleRole() override;
virtual css::uno::Reference< css::accessibility::XAccessible >
SAL_CALL getAccessibleAtPoint(css::awt::Point const & rPoint) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet ) override;
// ??? Will be called with both the external (Solar) and internal mutex
diff --git a/accessibility/inc/helper/IComboListBoxHelper.hxx b/accessibility/inc/helper/IComboListBoxHelper.hxx
index e786311fd0df..43d30aadab74 100644
--- a/accessibility/inc/helper/IComboListBoxHelper.hxx
+++ b/accessibility/inc/helper/IComboListBoxHelper.hxx
@@ -21,13 +21,14 @@
#include <com/sun/star/uno/Reference.hxx>
#include <rtl/ustring.hxx>
-#include <tools/wintypes.hxx>
+#include <vcl/wintypes.hxx>
#include <tools/long.hxx>
namespace com::sun::star::datatransfer::clipboard {
class XClipboard;
}
+class AbsoluteScreenPixelRectangle;
class Point;
namespace tools { class Rectangle; }
namespace vcl { class Window; }
@@ -41,7 +42,7 @@ namespace accessibility
virtual OUString GetEntry( sal_Int32 nPos ) const = 0;
virtual tools::Rectangle GetDropDownPosSizePixel( ) const = 0;
virtual tools::Rectangle GetBoundingRectangle( sal_uInt16 nItem ) const = 0;
- virtual tools::Rectangle GetWindowExtentsRelative() = 0;
+ virtual AbsoluteScreenPixelRectangle GetWindowExtentsAbsolute() = 0;
virtual bool IsEnabled() const = 0;
virtual bool IsEntryVisible( sal_Int32 nPos ) const = 0;
virtual sal_uInt16 GetDisplayLineCount() const = 0;
diff --git a/accessibility/inc/helper/listboxhelper.hxx b/accessibility/inc/helper/listboxhelper.hxx
index dfadf37aa015..4f1c5dde1e49 100644
--- a/accessibility/inc/helper/listboxhelper.hxx
+++ b/accessibility/inc/helper/listboxhelper.hxx
@@ -49,7 +49,7 @@ public:
virtual tools::Rectangle GetDropDownPosSizePixel() const override
{
- tools::Rectangle aTemp = m_aComboListBox.GetWindowExtentsRelative(nullptr);
+ AbsoluteScreenPixelRectangle aTemp = m_aComboListBox.GetWindowExtentsAbsolute();
tools::Rectangle aRet = m_aComboListBox.GetDropDownPosSizePixel();
aRet.Move(aTemp.Left(), aTemp.Top());
return aRet;
@@ -74,9 +74,9 @@ public:
return aRect;
}
- virtual tools::Rectangle GetWindowExtentsRelative() override
+ virtual AbsoluteScreenPixelRectangle GetWindowExtentsAbsolute() override
{
- return m_aComboListBox.GetWindowExtentsRelative( nullptr );
+ return m_aComboListBox.GetWindowExtentsAbsolute();
}
virtual bool IsEnabled() const override
diff --git a/accessibility/inc/pch/precompiled_acc.hxx b/accessibility/inc/pch/precompiled_acc.hxx
index 80dd38d70c30..c9589365ab4b 100644
--- a/accessibility/inc/pch/precompiled_acc.hxx
+++ b/accessibility/inc/pch/precompiled_acc.hxx
@@ -13,7 +13,7 @@
manual changes will be rewritten by the next run of update_pch.sh (which presumably
also fixes all possible problems, so it's usually better to use it).
- Generated on 2021-11-29 09:45:37 using:
+ Generated on 2023-07-19 09:19:19 using:
./bin/update_pch accessibility acc --cutoff=4 --exclude:system --include:module --include:local
If after updating build fails, use the following command to locate conflicting headers:
@@ -24,10 +24,7 @@
#if PCH_LEVEL >= 1
#include <algorithm>
#include <array>
-#include <assert.h>
-#include <atomic>
#include <cassert>
-#include <chrono>
#include <cmath>
#include <cstddef>
#include <cstdlib>
@@ -47,6 +44,7 @@
#include <numeric>
#include <optional>
#include <ostream>
+#include <span>
#include <stddef.h>
#include <string.h>
#include <string>
@@ -63,12 +61,11 @@
#include <osl/interlck.h>
#include <osl/mutex.h>
#include <osl/mutex.hxx>
-#include <osl/thread.h>
-#include <osl/time.h>
#include <rtl/alloc.h>
#include <rtl/instance.hxx>
#include <rtl/math.h>
#include <rtl/ref.hxx>
+#include <rtl/strbuf.h>
#include <rtl/strbuf.hxx>
#include <rtl/string.h>
#include <rtl/string.hxx>
@@ -92,6 +89,7 @@
#include <vcl/EnumContext.hxx>
#include <vcl/NotebookbarContextControl.hxx>
#include <vcl/Scanline.hxx>
+#include <vcl/WindowPosSize.hxx>
#include <vcl/accessibletable.hxx>
#include <vcl/accessibletableprovider.hxx>
#include <vcl/alpha.hxx>
@@ -101,22 +99,22 @@
#include <vcl/cairo.hxx>
#include <vcl/checksum.hxx>
#include <vcl/ctrl.hxx>
-#include <vcl/devicecoordinate.hxx>
#include <vcl/dllapi.h>
#include <vcl/dndhelp.hxx>
#include <vcl/dockwin.hxx>
-#include <vcl/errcode.hxx>
#include <vcl/event.hxx>
#include <vcl/fntstyle.hxx>
#include <vcl/font.hxx>
#include <vcl/gradient.hxx>
#include <vcl/idle.hxx>
#include <vcl/image.hxx>
+#include <vcl/kernarray.hxx>
#include <vcl/keycod.hxx>
#include <vcl/keycodes.hxx>
#include <vcl/mapmod.hxx>
#include <vcl/menu.hxx>
#include <vcl/metaactiontypes.hxx>
+#include <vcl/mnemonic.hxx>
#include <vcl/outdev.hxx>
#include <vcl/quickselectionengine.hxx>
#include <vcl/region.hxx>
@@ -135,14 +133,13 @@
#include <vcl/rendercontext/SystemTextColorFlags.hxx>
#include <vcl/salgtype.hxx>
#include <vcl/salnativewidgets.hxx>
-#include <vcl/scopedbitmapaccess.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
#include <vcl/syswin.hxx>
#include <vcl/task.hxx>
#include <vcl/textfilter.hxx>
#include <vcl/timer.hxx>
-#include <vcl/toolbox.hxx>
+#include <vcl/toolboxid.hxx>
#include <vcl/toolkit/lstbox.hxx>
#include <vcl/toolkit/treelist.hxx>
#include <vcl/toolkit/treelistbox.hxx>
@@ -157,25 +154,32 @@
#include <vcl/wall.hxx>
#include <vcl/window.hxx>
#include <vcl/windowstate.hxx>
+#include <vcl/wintypes.hxx>
#endif // PCH_LEVEL >= 2
#if PCH_LEVEL >= 3
#include <basegfx/basegfxdllapi.h>
#include <basegfx/color/bcolor.hxx>
+#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <basegfx/matrix/hommatrixtemplate.hxx>
#include <basegfx/numeric/ftools.hxx>
#include <basegfx/point/b2dpoint.hxx>
#include <basegfx/point/b2ipoint.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/range/Range2D.hxx>
#include <basegfx/range/b2drange.hxx>
#include <basegfx/range/basicrange.hxx>
+#include <basegfx/tuple/Size2D.hxx>
#include <basegfx/tuple/Tuple2D.hxx>
#include <basegfx/tuple/Tuple3D.hxx>
#include <basegfx/tuple/b2dtuple.hxx>
#include <basegfx/tuple/b2ituple.hxx>
#include <basegfx/tuple/b3dtuple.hxx>
#include <basegfx/utils/common.hxx>
+#include <basegfx/vector/b2dsize.hxx>
#include <basegfx/vector/b2dvector.hxx>
#include <basegfx/vector/b2enums.hxx>
+#include <basegfx/vector/b2isize.hxx>
#include <basegfx/vector/b2ivector.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
@@ -193,11 +197,11 @@
#include <com/sun/star/accessibility/XAccessibleExtendedComponent.hpp>
#include <com/sun/star/accessibility/XAccessibleKeyBinding.hpp>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
#include <com/sun/star/accessibility/XAccessibleTable.hpp>
#include <com/sun/star/accessibility/XAccessibleText.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
#include <com/sun/star/awt/DeviceInfo.hpp>
+#include <com/sun/star/awt/GradientStyle.hpp>
#include <com/sun/star/awt/Key.hpp>
#include <com/sun/star/awt/KeyGroup.hpp>
#include <com/sun/star/awt/KeyModifier.hpp>
@@ -239,7 +243,6 @@
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <com/sun/star/uno/Any.h>
#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Exception.hpp>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/RuntimeException.hpp>
@@ -258,26 +261,20 @@
#include <comphelper/accessibleeventnotifier.hxx>
#include <comphelper/accessiblekeybindinghelper.hxx>
#include <comphelper/accessibletexthelper.hxx>
-#include <comphelper/accimplaccess.hxx>
#include <comphelper/comphelperdllapi.h>
+#include <comphelper/errcode.hxx>
#include <comphelper/sequence.hxx>
#include <comphelper/servicehelper.hxx>
-#include <comphelper/solarmutex.hxx>
#include <comphelper/uno3.hxx>
#include <cppu/cppudllapi.h>
#include <cppu/unotype.hxx>
#include <cppuhelper/basemutex.hxx>
-#include <cppuhelper/compbase2.hxx>
-#include <cppuhelper/compbase4.hxx>
-#include <cppuhelper/compbase5.hxx>
+#include <cppuhelper/compbase.hxx>
#include <cppuhelper/compbase_ex.hxx>
#include <cppuhelper/cppuhelperdllapi.h>
#include <cppuhelper/implbase.hxx>
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <cppuhelper/implbase4.hxx>
-#include <cppuhelper/implbase5.hxx>
#include <cppuhelper/implbase_ex.hxx>
#include <cppuhelper/implbase_ex_post.hxx>
#include <cppuhelper/implbase_ex_pre.hxx>
@@ -292,7 +289,6 @@
#include <extended/AccessibleGridControlTableBase.hxx>
#include <extended/AccessibleGridControlTableCell.hxx>
#include <extended/accessiblebrowseboxcell.hxx>
-#include <extended/accessibletabbarbase.hxx>
#include <helper/accresmgr.hxx>
#include <helper/characterattributeshelper.hxx>
#include <i18nlangtag/lang.h>
@@ -300,7 +296,6 @@
#include <o3tl/cow_wrapper.hxx>
#include <o3tl/deleter.hxx>
#include <o3tl/safeint.hxx>
-#include <o3tl/span.hxx>
#include <o3tl/strong_int.hxx>
#include <o3tl/typed_flags_set.hxx>
#include <o3tl/underlyingenumvalue.hxx>
@@ -317,7 +312,6 @@
#include <svl/SfxBroadcaster.hxx>
#include <svl/hint.hxx>
#include <svl/svldllapi.h>
-#include <svtools/tabbar.hxx>
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
#include <toolkit/awt/vclxdevice.hxx>
#include <toolkit/awt/vclxwindows.hxx>
@@ -337,7 +331,6 @@
#include <tools/ref.hxx>
#include <tools/solar.h>
#include <tools/toolsdllapi.h>
-#include <tools/wintypes.hxx>
#include <typelib/typeclass.h>
#include <typelib/typedescription.h>
#include <typelib/uik.h>
@@ -345,7 +338,6 @@
#include <uno/data.h>
#include <uno/sequence2.h>
#include <unotools/accessiblerelationsethelper.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/fontdefs.hxx>
#include <unotools/unotoolsdllapi.h>
#endif // PCH_LEVEL >= 3
diff --git a/accessibility/inc/standard/accessiblemenubasecomponent.hxx b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
index d6f4713cc284..337ee0a80d00 100644
--- a/accessibility/inc/standard/accessiblemenubasecomponent.hxx
+++ b/accessibility/inc/standard/accessiblemenubasecomponent.hxx
@@ -23,7 +23,7 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/awt/Point.hpp>
#include <comphelper/accessiblecomponenthelper.hxx>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <tools/link.hxx>
#include <vcl/vclptr.hxx>
@@ -33,27 +33,21 @@ class Menu;
class VclSimpleEvent;
class VclMenuEvent;
-namespace utl {
-class AccessibleStateSetHelper;
-}
+class OAccessibleMenuItemComponent;
-
-
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessible,
- css::lang::XServiceInfo > OAccessibleMenuBaseComponent_BASE;
-
-class OAccessibleMenuBaseComponent : public comphelper::OAccessibleExtendedComponentHelper,
- public OAccessibleMenuBaseComponent_BASE
+class OAccessibleMenuBaseComponent : public cppu::ImplInheritanceHelper<
+ comphelper::OAccessibleExtendedComponentHelper,
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo>
{
friend class OAccessibleMenuItemComponent;
friend class VCLXAccessibleMenuItem;
friend class VCLXAccessibleMenu;
protected:
- typedef std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
+ typedef std::vector< rtl::Reference< OAccessibleMenuItemComponent > > AccessibleChildren;
- AccessibleChildren m_aAccessibleChildren;
+ AccessibleChildren m_aAccessibleChildren1;
VclPtr<Menu> m_pMenu;
bool m_bEnabled;
@@ -80,11 +74,12 @@ protected:
void UpdateSelected( sal_Int32 i, bool bSelected );
void UpdateChecked( sal_Int32 i, bool bChecked );
void UpdateAccessibleName( sal_Int32 i );
+ void UpdateItemRole(sal_Int32 i);
void UpdateItemText( sal_Int32 i );
- sal_Int32 GetChildCount() const;
+ sal_Int64 GetChildCount() const;
- css::uno::Reference< css::accessibility::XAccessible > GetChild( sal_Int32 i );
+ css::uno::Reference< css::accessibility::XAccessible > GetChild( sal_Int64 i );
css::uno::Reference< css::accessibility::XAccessible > GetChildAt( const css::awt::Point& rPoint );
void InsertChild( sal_Int32 i );
@@ -106,7 +101,7 @@ protected:
void ProcessMenuEvent( const VclMenuEvent& rVclMenuEvent );
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) = 0;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) = 0;
// XComponent
virtual void SAL_CALL disposing() override;
@@ -117,12 +112,6 @@ public:
void SetStates();
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
@@ -130,7 +119,7 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleStateSet( ) override;
};
diff --git a/accessibility/inc/standard/accessiblemenucomponent.hxx b/accessibility/inc/standard/accessiblemenucomponent.hxx
index f1559a46f062..90c89922654a 100644
--- a/accessibility/inc/standard/accessiblemenucomponent.hxx
+++ b/accessibility/inc/standard/accessiblemenucomponent.hxx
@@ -21,38 +21,30 @@
#include <standard/accessiblemenubasecomponent.hxx>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper1<
- css::accessibility::XAccessibleSelection > OAccessibleMenuComponent_BASE;
-
-class OAccessibleMenuComponent : public OAccessibleMenuBaseComponent,
- public OAccessibleMenuComponent_BASE
+class OAccessibleMenuComponent : public cppu::ImplInheritanceHelper<
+ OAccessibleMenuBaseComponent,
+ css::accessibility::XAccessibleSelection>
{
protected:
virtual bool IsEnabled() override;
virtual bool IsVisible() override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
- using OAccessibleMenuBaseComponent::OAccessibleMenuBaseComponent;
-
public:
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
+ OAccessibleMenuComponent( Menu* pMenu ): ImplInheritanceHelper(pMenu) {}
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
@@ -73,13 +65,13 @@ public:
virtual OUString SAL_CALL getToolTipText( ) override;
// XAccessibleSelection
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
virtual void SAL_CALL clearAccessibleSelection( ) override;
virtual void SAL_CALL selectAllAccessibleChildren( ) override;
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nChildIndex ) override;
};
diff --git a/accessibility/inc/standard/accessiblemenuitemcomponent.hxx b/accessibility/inc/standard/accessiblemenuitemcomponent.hxx
index cad61500d117..b6adebbde81e 100644
--- a/accessibility/inc/standard/accessiblemenuitemcomponent.hxx
+++ b/accessibility/inc/standard/accessiblemenuitemcomponent.hxx
@@ -48,7 +48,7 @@ protected:
virtual bool IsMenuHideDisabledEntries() override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
@@ -61,10 +61,10 @@ public:
virtual ~OAccessibleMenuItemComponent() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
diff --git a/accessibility/inc/standard/svtaccessiblenumericfield.hxx b/accessibility/inc/standard/svtaccessiblenumericfield.hxx
index fb3b30e594fb..29225a5c6072 100644
--- a/accessibility/inc/standard/svtaccessiblenumericfield.hxx
+++ b/accessibility/inc/standard/svtaccessiblenumericfield.hxx
@@ -19,24 +19,20 @@
#pragma once
-#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase.hxx>
+#include <vcl/vclevent.hxx>
+
#include <standard/vclxaccessibleedit.hxx>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-typedef ::cppu::ImplHelper1<css::accessibility::XAccessibleValue> SVTXAccessibleNumericField_BASE;
-
-class SVTXAccessibleNumericField final : public VCLXAccessibleEdit,
- public SVTXAccessibleNumericField_BASE
+class SVTXAccessibleNumericField final
+ : public cppu::ImplInheritanceHelper<VCLXAccessibleEdit, css::accessibility::XAccessibleValue>
{
public:
SVTXAccessibleNumericField(VCLXWindow* pVCLXindow);
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
+ virtual void ProcessWindowEvent(const VclWindowEvent& rVclWindowEvent) override;
// XAccessibleContext
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
diff --git a/accessibility/inc/standard/vclxaccessiblebox.hxx b/accessibility/inc/standard/vclxaccessiblebox.hxx
index e92ab2bb2c24..3825be0d4f22 100644
--- a/accessibility/inc/standard/vclxaccessiblebox.hxx
+++ b/accessibility/inc/standard/vclxaccessiblebox.hxx
@@ -24,23 +24,20 @@
#include <com/sun/star/accessibility/XAccessibleKeyBinding.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
-#include <cppuhelper/implbase3.hxx>
-
-
-typedef ::cppu::ImplHelper3<
- css::accessibility::XAccessible,
- css::accessibility::XAccessibleValue,
- css::accessibility::XAccessibleAction
- > VCLXAccessibleBox_BASE;
+#include <cppuhelper/implbase.hxx>
+class VCLXAccessibleList;
/** Base class for list- and combo boxes. This class manages the box'
children. The classed derived from this one have only to implement the
IsValid method and return the correct implementation name.
*/
class VCLXAccessibleBox
- : public VCLXAccessibleComponent,
- public VCLXAccessibleBox_BASE
+ : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
+ css::accessibility::XAccessible,
+ css::accessibility::XAccessibleValue,
+ css::accessibility::XAccessibleAction>
{
public:
enum BoxType {COMBOBOX, LISTBOX};
@@ -51,12 +48,6 @@ public:
*/
VCLXAccessibleBox (VCLXWindow* pVCLXindow, BoxType aType, bool bIsDropDownBox);
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
- // XInterface
- DECLARE_XINTERFACE()
-
// XAccessible
@@ -69,13 +60,13 @@ public:
actual list. The text field is not provided for non drop down list
boxes.
*/
- sal_Int32 SAL_CALL getAccessibleChildCount() final override;
+ sal_Int64 SAL_CALL getAccessibleChildCount() final override;
/** For drop down list boxes the text field is a not editable
VCLXAccessibleTextField, for combo boxes it is an
editable VCLXAccessibleEdit.
*/
css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
- getAccessibleChild (sal_Int32 i) override;
+ getAccessibleChild (sal_Int64 i) override;
/** The role is always AccessibleRole::COMBO_BOX.
*/
sal_Int16 SAL_CALL getAccessibleRole() override;
@@ -110,7 +101,22 @@ public:
virtual css::uno::Any SAL_CALL getMinimumValue( ) override;
virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override;
+
protected:
+ virtual ~VCLXAccessibleBox() override;
+
+ /** Returns true when the object is valid.
+ */
+ virtual bool IsValid() const = 0;
+
+ virtual void ProcessWindowChildEvent (const VclWindowEvent& rVclWindowEvent) override;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
+
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
+
+ sal_Int64 implGetAccessibleChildCount();
+
+private:
/** Specifies whether the box is a combo box or a list box. List boxes
have multi selection.
*/
@@ -124,8 +130,7 @@ protected:
m_xText;
/// The child that contains the items of this box.
- css::uno::Reference< css::accessibility::XAccessible>
- m_xList;
+ rtl::Reference<VCLXAccessibleList> m_xList;
/** This flag specifies whether an object has a text field as child
regardless of whether that child being currently instantiated or
@@ -140,19 +145,6 @@ protected:
same life time.
*/
bool m_bHasListChild;
-
- virtual ~VCLXAccessibleBox() override = default;
-
- /** Returns true when the object is valid.
- */
- virtual bool IsValid() const = 0;
-
- virtual void ProcessWindowChildEvent (const VclWindowEvent& rVclWindowEvent) override;
- virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent) override;
-
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
-
- sal_Int32 implGetAccessibleChildCount();
};
diff --git a/accessibility/inc/standard/vclxaccessiblebutton.hxx b/accessibility/inc/standard/vclxaccessiblebutton.hxx
index a786f8e0a778..460c90c67c41 100644
--- a/accessibility/inc/standard/vclxaccessiblebutton.hxx
+++ b/accessibility/inc/standard/vclxaccessiblebutton.hxx
@@ -24,31 +24,23 @@
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessibleAction,
- css::accessibility::XAccessibleValue > VCLXAccessibleButton_BASE;
-
-class VCLXAccessibleButton final : public VCLXAccessibleTextComponent,
- public VCLXAccessibleButton_BASE
+class VCLXAccessibleButton final : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleTextComponent,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue>
{
virtual ~VCLXAccessibleButton() override = default;
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
public:
- using VCLXAccessibleTextComponent::VCLXAccessibleTextComponent;
-
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
+ VCLXAccessibleButton( VCLXWindow* pVCLXWindow ): ImplInheritanceHelper(pVCLXWindow) {}
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessiblecheckbox.hxx b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
index f64f5ab980ea..dc7b0d3c353e 100644
--- a/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
+++ b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx
@@ -24,17 +24,15 @@
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessibleAction,
- css::accessibility::XAccessibleValue > VCLXAccessibleCheckBox_BASE;
-
-class VCLXAccessibleCheckBox final : public VCLXAccessibleTextComponent,
- public VCLXAccessibleCheckBox_BASE
+class VCLXAccessibleCheckBox final : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleTextComponent,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue>
{
private:
bool m_bChecked;
@@ -51,17 +49,11 @@ private:
void SetIndeterminate( bool bIndeterminate );
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
public:
VCLXAccessibleCheckBox( VCLXWindow* pVCLXindow );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
diff --git a/accessibility/inc/standard/vclxaccessibleedit.hxx b/accessibility/inc/standard/vclxaccessibleedit.hxx
index 2f2ee88cc29b..b3b6a239b9d7 100644
--- a/accessibility/inc/standard/vclxaccessibleedit.hxx
+++ b/accessibility/inc/standard/vclxaccessibleedit.hxx
@@ -24,17 +24,15 @@
#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessibleAction,
- css::accessibility::XAccessibleEditableText > VCLXAccessibleEdit_BASE;
-
-class VCLXAccessibleEdit : public VCLXAccessibleTextComponent,
- public VCLXAccessibleEdit_BASE
+class VCLXAccessibleEdit : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleTextComponent,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleEditableText>
{
friend class VCLXAccessibleBox;
@@ -45,7 +43,7 @@ protected:
virtual ~VCLXAccessibleEdit() override = default;
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
sal_Int16 implGetAccessibleRole();
// OCommonAccessibleText
@@ -55,19 +53,13 @@ protected:
public:
VCLXAccessibleEdit( VCLXWindow* pVCLXindow );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
// XAccessibleAction
@@ -104,6 +96,9 @@ public:
virtual sal_Bool SAL_CALL replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const OUString& sReplacement ) override;
virtual sal_Bool SAL_CALL setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const css::uno::Sequence< css::beans::PropertyValue >& aAttributeSet ) override;
virtual sal_Bool SAL_CALL setText( const OUString& sText ) override;
+
+private:
+ bool isEditable();
};
diff --git a/accessibility/inc/standard/vclxaccessiblefixedtext.hxx b/accessibility/inc/standard/vclxaccessiblefixedtext.hxx
index 0a79530f2f2b..bce6ef6ec163 100644
--- a/accessibility/inc/standard/vclxaccessiblefixedtext.hxx
+++ b/accessibility/inc/standard/vclxaccessiblefixedtext.hxx
@@ -25,7 +25,7 @@ class VCLXAccessibleFixedText final : public VCLXAccessibleTextComponent
{
virtual ~VCLXAccessibleFixedText() override = default;
- virtual void FillAccessibleStateSet(utl::AccessibleStateSetHelper& rStateSet) override;
+ virtual void FillAccessibleStateSet(sal_Int64& rStateSet) override;
public:
using VCLXAccessibleTextComponent::VCLXAccessibleTextComponent;
diff --git a/accessibility/inc/standard/vclxaccessibleheaderbar.hxx b/accessibility/inc/standard/vclxaccessibleheaderbar.hxx
index 9069f991b2cd..505e0f2859d8 100644
--- a/accessibility/inc/standard/vclxaccessibleheaderbar.hxx
+++ b/accessibility/inc/standard/vclxaccessibleheaderbar.hxx
@@ -34,9 +34,9 @@ public:
VCLXAccessibleHeaderBar(VCLXWindow* pVCLXindow);
// 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;
+ SAL_CALL getAccessibleChild(sal_Int64 i) override;
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
// XServiceInfo
diff --git a/accessibility/inc/standard/vclxaccessibleheaderbaritem.hxx b/accessibility/inc/standard/vclxaccessibleheaderbaritem.hxx
index c7a460770b98..563e86ff5252 100644
--- a/accessibility/inc/standard/vclxaccessibleheaderbaritem.hxx
+++ b/accessibility/inc/standard/vclxaccessibleheaderbaritem.hxx
@@ -21,7 +21,7 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <comphelper/accessiblecomponenthelper.hxx>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <vcl/vclptr.hxx>
@@ -29,27 +29,21 @@ class HeaderBar;
class VclSimpleEvent;
class VclWindowEvent;
-namespace utl {
-class AccessibleStateSetHelper;
-}
-
// ----------------------------------------------------
// class VCLXAccessibleHeaderBarItem
// ----------------------------------------------------
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessible,
- css::lang::XServiceInfo > VCLXAccessibleHeaderBarItem_BASE;
-
-class VCLXAccessibleHeaderBarItem final : public comphelper::OAccessibleExtendedComponentHelper,
- public VCLXAccessibleHeaderBarItem_BASE
+class VCLXAccessibleHeaderBarItem final : public cppu::ImplInheritanceHelper<
+ comphelper::OAccessibleExtendedComponentHelper,
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo>
{
private:
VclPtr<HeaderBar> m_pHeadBar;
sal_Int32 m_nIndexInParent;
- void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ void FillAccessibleStateSet( sal_Int64& rStateSet );
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
@@ -58,12 +52,6 @@ public:
VCLXAccessibleHeaderBarItem( HeaderBar* pHeadBar, sal_Int32 _nIndexInParent );
virtual ~VCLXAccessibleHeaderBarItem() override;
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
@@ -73,15 +61,15 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
diff --git a/accessibility/inc/standard/vclxaccessiblelist.hxx b/accessibility/inc/standard/vclxaccessiblelist.hxx
index 619fe23aada8..7bfb83c7e386 100644
--- a/accessibility/inc/standard/vclxaccessiblelist.hxx
+++ b/accessibility/inc/standard/vclxaccessiblelist.hxx
@@ -22,16 +22,10 @@
#include <memory>
#include <vector>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessible,
- css::accessibility::XAccessibleSelection
- > VCLXAccessibleList_BASE;
-
-typedef std::vector< css::uno::WeakReference< css::accessibility::XAccessible > >
- ListItems;
+class VCLXAccessibleListItem;
namespace accessibility
{
@@ -45,8 +39,10 @@ namespace accessibility
classes for selection.
*/
class VCLXAccessibleList final
- : public VCLXAccessibleComponent,
- public VCLXAccessibleList_BASE
+ : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
+ css::accessibility::XAccessible,
+ css::accessibility::XAccessibleSelection>
{
public:
enum BoxType {COMBOBOX, LISTBOX};
@@ -76,27 +72,21 @@ public:
*/
void UpdateSelection (std::u16string_view sTextOfSelectedItem);
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XAccessible
virtual css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
getAccessibleContext() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() override final;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount() override final;
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;
/** The index returned as index in parent is always the one set with the
SetIndexInParent() method.
*/
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
// XServiceInfo
@@ -106,13 +96,13 @@ public:
getSupportedServiceNames() override;
// XAccessibleSelection
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
virtual void SAL_CALL clearAccessibleSelection( ) override;
virtual void SAL_CALL selectAllAccessibleChildren( ) override;
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override;
bool IsInDropDown() const;
@@ -126,7 +116,7 @@ public:
private:
BoxType m_aBoxType;
std::unique_ptr<::accessibility::IComboListBoxHelper> m_pListBoxHelper;
- ListItems m_aAccessibleChildren;
+ std::vector<rtl::Reference<VCLXAccessibleListItem>> m_aAccessibleChildren;
sal_Int32 m_nVisibleLineCount;
/// Index in parent. This is settable from the outside.
sal_Int32 m_nIndexInParent;
@@ -139,25 +129,26 @@ private:
virtual ~VCLXAccessibleList() override = default;
- sal_Int32 implGetAccessibleChildCount();
+ sal_Int64 implGetAccessibleChildCount();
/** This function is called from the implementation helper during a
XComponent::dispose call. Free the list of items and the items themselves.
*/
virtual void SAL_CALL disposing() override;
+ void disposeChildren();
+
/** This method adds the states
AccessibleStateType::FOCUSABLE and possibly
AccessibleStateType::MULTI_SELECTABLE to the state set
of the base classes.
*/
- virtual void FillAccessibleStateSet (utl::AccessibleStateSetHelper& rStateSet) override;
+ virtual void FillAccessibleStateSet (sal_Int64& rStateSet) override;
/** Create the specified child and insert it into the list of children.
Sets the child's states.
*/
- css::uno::Reference< css::accessibility::XAccessible >
- CreateChild (sal_Int32 i);
+ rtl::Reference<VCLXAccessibleListItem> CreateChild (sal_Int32 i);
/** Call this method when the item list has been changed, i.e. items
have been deleted or inserted.
diff --git a/accessibility/inc/standard/vclxaccessiblelistitem.hxx b/accessibility/inc/standard/vclxaccessiblelistitem.hxx
index 4af3c5afd65e..83142b50ed6f 100644
--- a/accessibility/inc/standard/vclxaccessiblelistitem.hxx
+++ b/accessibility/inc/standard/vclxaccessiblelistitem.hxx
@@ -23,12 +23,10 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
#include <com/sun/star/accessibility/XAccessibleText.hpp>
#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/compbase6.hxx>
-#include <cppuhelper/basemutex.hxx>
+#include <comphelper/compbase.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <standard/vclxaccessiblelist.hxx>
@@ -43,7 +41,7 @@ namespace com::sun::star::awt {
// class VCLXAccessibleListItem ------------------------------------------
-typedef ::cppu::WeakAggComponentImplHelper6< css::accessibility::XAccessible
+typedef ::comphelper::WeakComponentImplHelper< css::accessibility::XAccessible
, css::accessibility::XAccessibleContext
, css::accessibility::XAccessibleComponent
, css::accessibility::XAccessibleEventBroadcaster
@@ -52,7 +50,7 @@ typedef ::cppu::WeakAggComponentImplHelper6< css::accessibility::XAccessible
/** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry
*/
-class VCLXAccessibleListItem final : public ::cppu::BaseMutex,
+class VCLXAccessibleListItem final :
public ::comphelper::OCommonAccessibleText,
public VCLXAccessibleListItem_BASE
{
@@ -70,7 +68,7 @@ private:
virtual ~VCLXAccessibleListItem() override = default;
/** this function is called upon disposing the component
*/
- virtual void SAL_CALL disposing() override;
+ virtual void disposing(std::unique_lock<std::mutex>& rGuard) override;
// OCommonAccessibleText
virtual OUString implGetText() override;
@@ -85,7 +83,7 @@ public:
is our parent accessible object
*/
VCLXAccessibleListItem(sal_Int32 _nIndexInParent,
- const rtl::Reference< VCLXAccessibleList >& _xParent);
+ rtl::Reference< VCLXAccessibleList > _xParent);
void NotifyAccessibleEvent( sal_Int16 _nEventId, const css::uno::Any& _aOldValue, const css::uno::Any& _aNewValue );
@@ -105,15 +103,15 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
diff --git a/accessibility/inc/standard/vclxaccessiblemenu.hxx b/accessibility/inc/standard/vclxaccessiblemenu.hxx
index 1bd7be7d1e77..ce7b3f0580de 100644
--- a/accessibility/inc/standard/vclxaccessiblemenu.hxx
+++ b/accessibility/inc/standard/vclxaccessiblemenu.hxx
@@ -22,50 +22,43 @@
#include <standard/vclxaccessiblemenuitem.hxx>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper1 <
- css::accessibility::XAccessibleSelection > VCLXAccessibleMenu_BASE;
-
-class VCLXAccessibleMenu final : public VCLXAccessibleMenuItem,
- public VCLXAccessibleMenu_BASE
+class VCLXAccessibleMenu final :
+ public cppu::ImplInheritanceHelper<
+ VCLXAccessibleMenuItem, css::accessibility::XAccessibleSelection>
{
virtual bool IsFocused() override;
virtual bool IsPopupMenuOpen() override;
- sal_Int32 implGetSelectedAccessibleChildCount();
+ sal_Int64 implGetSelectedAccessibleChildCount();
public:
- using VCLXAccessibleMenuItem::VCLXAccessibleMenuItem;
-
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
+ VCLXAccessibleMenu( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu = nullptr ):
+ ImplInheritanceHelper(pParent, nItemPos, pMenu) {}
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
// XAccessibleComponent
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
// XAccessibleSelection
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
virtual void SAL_CALL clearAccessibleSelection( ) override;
virtual void SAL_CALL selectAllAccessibleChildren( ) override;
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nChildIndex ) override;
// XAccessibleAction
virtual OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) override;
diff --git a/accessibility/inc/standard/vclxaccessiblemenubar.hxx b/accessibility/inc/standard/vclxaccessiblemenubar.hxx
index a81f0457f0be..c5b3984e0b7e 100644
--- a/accessibility/inc/standard/vclxaccessiblemenubar.hxx
+++ b/accessibility/inc/standard/vclxaccessiblemenubar.hxx
@@ -51,7 +51,7 @@ public:
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
// XAccessibleExtendedComponent
diff --git a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
index 646f87aa02c9..aa6a0afc814a 100644
--- a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
+++ b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
@@ -25,29 +25,28 @@
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-#include <cppuhelper/implbase3.hxx>
+#include <cppuhelper/implbase.hxx>
#include <comphelper/accessibletexthelper.hxx>
-typedef ::cppu::ImplHelper3<
- css::accessibility::XAccessibleText,
- css::accessibility::XAccessibleAction,
- css::accessibility::XAccessibleValue > VCLXAccessibleMenuItem_BASE;
-
-class VCLXAccessibleMenuItem : public OAccessibleMenuItemComponent,
- public ::comphelper::OCommonAccessibleText,
- public VCLXAccessibleMenuItem_BASE
+class VCLXAccessibleMenuItem : public cppu::ImplInheritanceHelper<
+ OAccessibleMenuItemComponent,
+ css::accessibility::XAccessibleText,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue>,
+ public ::comphelper::OCommonAccessibleText
{
protected:
virtual bool IsFocused() override;
virtual bool IsSelected() override;
+ bool IsCheckable();
virtual bool IsChecked() override;
virtual bool IsHighlighted() override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
// OCommonAccessibleText
virtual OUString implGetText() final override;
@@ -57,12 +56,6 @@ protected:
public:
VCLXAccessibleMenuItem( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu = nullptr );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
diff --git a/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx b/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx
index 2d4c486e677c..8e93af22d8d9 100644
--- a/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx
+++ b/accessibility/inc/standard/vclxaccessiblepopupmenu.hxx
@@ -33,7 +33,7 @@ public:
virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent() override;
virtual sal_Int16 SAL_CALL getAccessibleRole() override;
// XAccessibleExtendedComponent
diff --git a/accessibility/inc/standard/vclxaccessibleradiobutton.hxx b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
index a9b93b7ac67f..4e93579fa9c1 100644
--- a/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
+++ b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx
@@ -24,32 +24,24 @@
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessibleAction,
- css::accessibility::XAccessibleValue > VCLXAccessibleRadioButton_BASE;
-
-class VCLXAccessibleRadioButton final : public VCLXAccessibleTextComponent,
- public VCLXAccessibleRadioButton_BASE
+class VCLXAccessibleRadioButton final : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleTextComponent,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue>
{
virtual ~VCLXAccessibleRadioButton() override = default;
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
public:
- using VCLXAccessibleTextComponent::VCLXAccessibleTextComponent;
-
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
+ VCLXAccessibleRadioButton( VCLXWindow* pVCLXWindow ): ImplInheritanceHelper(pVCLXWindow) {}
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessiblescrollbar.hxx b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
index 0a9e0368ff8e..ffaa7f689a78 100644
--- a/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
+++ b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx
@@ -24,31 +24,23 @@
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessibleAction,
- css::accessibility::XAccessibleValue > VCLXAccessibleScrollBar_BASE;
-
-class VCLXAccessibleScrollBar final : public VCLXAccessibleComponent,
- public VCLXAccessibleScrollBar_BASE
+class VCLXAccessibleScrollBar final : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue>
{
virtual ~VCLXAccessibleScrollBar() override = default;
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
public:
- using VCLXAccessibleComponent::VCLXAccessibleComponent;
-
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
+ VCLXAccessibleScrollBar( VCLXWindow* pVCLXWindow ): ImplInheritanceHelper(pVCLXWindow) {}
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
diff --git a/accessibility/inc/standard/vclxaccessiblestatusbar.hxx b/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
index bae4ed9d0985..17f77af4fbb6 100644
--- a/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
+++ b/accessibility/inc/standard/vclxaccessiblestatusbar.hxx
@@ -26,12 +26,12 @@
#include <vector>
-
+class VCLXAccessibleStatusBarItem;
class VCLXAccessibleStatusBar final : public VCLXAccessibleComponent
{
private:
- typedef std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
+ typedef std::vector< rtl::Reference< VCLXAccessibleStatusBarItem > > AccessibleChildren;
AccessibleChildren m_aAccessibleChildren;
VclPtr<StatusBar> m_pStatusBar;
@@ -56,8 +56,8 @@ public:
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
// XAccessibleComponent
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
diff --git a/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx b/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
index 92c39dbd8501..9556f961d140 100644
--- a/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
+++ b/accessibility/inc/standard/vclxaccessiblestatusbaritem.hxx
@@ -23,25 +23,15 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <comphelper/accessibletexthelper.hxx>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <vcl/status.hxx>
#include <vcl/vclptr.hxx>
-namespace utl {
-class AccessibleStateSetHelper;
-}
-
-
-
-typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
-
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessible,
- css::lang::XServiceInfo > VCLXAccessibleStatusBarItem_BASE;
-
-class VCLXAccessibleStatusBarItem final : public AccessibleTextHelper_BASE,
- public VCLXAccessibleStatusBarItem_BASE
+class VCLXAccessibleStatusBarItem final : public cppu::ImplInheritanceHelper<
+ comphelper::OAccessibleTextHelper,
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo>
{
friend class VCLXAccessibleStatusBar;
@@ -58,9 +48,8 @@ private:
OUString GetItemName();
void SetItemText( const OUString& sItemText );
OUString GetItemText();
- sal_uInt16 GetItemId() const { return m_nItemId; }
- void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ void FillAccessibleStateSet( sal_Int64& rStateSet );
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
@@ -76,12 +65,6 @@ private:
public:
VCLXAccessibleStatusBarItem( StatusBar* pStatusBar, sal_uInt16 nItemId );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
@@ -91,15 +74,15 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int32) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild(sal_Int64) 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
diff --git a/accessibility/inc/standard/vclxaccessibletabcontrol.hxx b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
index 7511e03ebe2a..32565c6d80ad 100644
--- a/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
+++ b/accessibility/inc/standard/vclxaccessibletabcontrol.hxx
@@ -21,27 +21,26 @@
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <cppuhelper/implbase.hxx>
#include <vcl/tabctrl.hxx>
#include <vcl/vclptr.hxx>
#include <vector>
+class VCLXAccessibleTabPage;
-
-typedef ::cppu::ImplHelper1 <
- css::accessibility::XAccessibleSelection > VCLXAccessibleTabControl_BASE;
-
-class VCLXAccessibleTabControl final : public VCLXAccessibleComponent,
- public VCLXAccessibleTabControl_BASE
+class VCLXAccessibleTabControl final : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
+ css::accessibility::XAccessibleSelection>
{
private:
- typedef std::vector< css::uno::Reference< css::accessibility::XAccessible > > AccessibleChildren;
+ typedef std::vector< rtl::Reference< VCLXAccessibleTabPage > > AccessibleChildren;
AccessibleChildren m_aAccessibleChildren;
VclPtr<TabControl> m_pTabControl;
- css::uno::Reference< css::accessibility::XAccessible > implGetAccessibleChild( sal_Int32 i );
+ css::uno::Reference< css::accessibility::XAccessible > implGetAccessibleChild( sal_Int64 i );
bool implIsAccessibleChildSelected( sal_Int32 nChildIndex );
@@ -55,7 +54,7 @@ private:
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ) override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
// XComponent
virtual void SAL_CALL disposing() override;
@@ -63,30 +62,24 @@ private:
public:
VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
// XAccessibleSelection
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
virtual void SAL_CALL clearAccessibleSelection( ) override;
virtual void SAL_CALL selectAllAccessibleChildren( ) override;
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nChildIndex ) override;
};
diff --git a/accessibility/inc/standard/vclxaccessibletabpage.hxx b/accessibility/inc/standard/vclxaccessibletabpage.hxx
index 8e3c3c8f6c81..efdc75e2c677 100644
--- a/accessibility/inc/standard/vclxaccessibletabpage.hxx
+++ b/accessibility/inc/standard/vclxaccessibletabpage.hxx
@@ -23,27 +23,17 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <comphelper/accessibletexthelper.hxx>
-#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase.hxx>
#include <vcl/vclptr.hxx>
class TabControl;
-namespace utl {
-class AccessibleStateSetHelper;
-}
-
-
-
-typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
-
-typedef ::cppu::ImplHelper2<
- css::accessibility::XAccessible,
- css::lang::XServiceInfo > VCLXAccessibleTabPage_BASE;
-
-class VCLXAccessibleTabPage final : public AccessibleTextHelper_BASE,
- public VCLXAccessibleTabPage_BASE
+class VCLXAccessibleTabPage final : public cppu::ImplInheritanceHelper<
+ comphelper::OAccessibleTextHelper,
+ css::accessibility::XAccessible,
+ css::lang::XServiceInfo>
{
friend class VCLXAccessibleTabControl;
@@ -54,7 +44,7 @@ private:
bool m_bSelected;
OUString m_sPageText;
- sal_Int32 implGetAccessibleChildCount();
+ sal_Int64 implGetAccessibleChildCount();
bool IsFocused() const;
bool IsSelected() const;
@@ -68,7 +58,7 @@ private:
sal_uInt16 GetPageId() const { return m_nPageId; }
- void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ void FillAccessibleStateSet( sal_Int64& rStateSet );
// OCommonAccessibleComponent
virtual css::awt::Rectangle implGetBounds( ) override;
@@ -85,12 +75,6 @@ public:
VCLXAccessibleTabPage( TabControl* pTabControl, sal_uInt16 nPageId );
virtual ~VCLXAccessibleTabPage() override;
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) override;
@@ -100,15 +84,15 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleComponent
diff --git a/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx b/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
index 36254ceeca37..826aa8daad91 100644
--- a/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
+++ b/accessibility/inc/standard/vclxaccessibletabpagewindow.hxx
@@ -45,7 +45,7 @@ public:
// XAccessibleContext
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;
};
diff --git a/accessibility/inc/standard/vclxaccessibletextcomponent.hxx b/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
index 205af38d5660..3585dd778574 100644
--- a/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
+++ b/accessibility/inc/standard/vclxaccessibletextcomponent.hxx
@@ -22,19 +22,21 @@
#include <com/sun/star/accessibility/AccessibleScrollType.hpp>
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
#include <comphelper/accessibletexthelper.hxx>
+#include <cppuhelper/implbase.hxx>
-typedef ::cppu::ImplHelper1 <
- css::accessibility::XAccessibleText > VCLXAccessibleTextComponent_BASE;
-
-class VCLXAccessibleTextComponent : public VCLXAccessibleComponent,
- public ::comphelper::OCommonAccessibleText,
- public VCLXAccessibleTextComponent_BASE
+class VCLXAccessibleTextComponent : public cppu::ImplInheritanceHelper<
+ VCLXAccessibleComponent,
+ css::accessibility::XAccessibleText>,
+ public ::comphelper::OCommonAccessibleText
{
OUString m_sText;
+ // accessible name the object had when SetText was called last time
+ OUString m_sOldName;
+
protected:
void SetText( const OUString& sText );
@@ -51,12 +53,6 @@ protected:
public:
VCLXAccessibleTextComponent( VCLXWindow* pVCLXWindow );
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XAccessibleText
virtual sal_Int32 SAL_CALL getCaretPosition() override;
virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) override;
diff --git a/accessibility/inc/standard/vclxaccessibletextfield.hxx b/accessibility/inc/standard/vclxaccessibletextfield.hxx
index 5d29de76624d..b730bd107ea2 100644
--- a/accessibility/inc/standard/vclxaccessibletextfield.hxx
+++ b/accessibility/inc/standard/vclxaccessibletextfield.hxx
@@ -21,10 +21,7 @@
#include <standard/vclxaccessibletextcomponent.hxx>
-#include <cppuhelper/implbase1.hxx>
-
-typedef ::cppu::ImplHelper1< css::accessibility::XAccessible > VCLXAccessible_BASE;
-
+#include <cppuhelper/implbase.hxx>
/** This class represents non editable text fields. The object passed to
the constructor is expected to be a list (a ListBox to be
@@ -33,27 +30,20 @@ typedef ::cppu::ImplHelper1< css::accessibility::XAccessible > VCLXAccessible_BA
exported text changes.
*/
class VCLXAccessibleTextField final :
- public VCLXAccessibleTextComponent,
- public VCLXAccessible_BASE
+ public cppu::ImplInheritanceHelper<VCLXAccessibleTextComponent, css::accessibility::XAccessible>
{
public:
VCLXAccessibleTextField (VCLXWindow* pVCLXindow,
const css::uno::Reference< css::accessibility::XAccessible >& _xParent);
- // XInterface
- DECLARE_XINTERFACE()
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER()
-
// XAccessible
css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL
getAccessibleContext() override;
// XAccessibleContext
- sal_Int32 SAL_CALL getAccessibleChildCount() override;
+ sal_Int64 SAL_CALL getAccessibleChildCount() override;
css::uno::Reference< css::accessibility::XAccessible> SAL_CALL
- getAccessibleChild (sal_Int32 i) override;
+ getAccessibleChild (sal_Int64 i) override;
sal_Int16 SAL_CALL getAccessibleRole() override;
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
getAccessibleParent( ) override;
diff --git a/accessibility/inc/standard/vclxaccessibletoolbox.hxx b/accessibility/inc/standard/vclxaccessibletoolbox.hxx
index 89bf0a99a011..4918e511ba2a 100644
--- a/accessibility/inc/standard/vclxaccessibletoolbox.hxx
+++ b/accessibility/inc/standard/vclxaccessibletoolbox.hxx
@@ -22,18 +22,15 @@
#include <toolkit/awt/vclxaccessiblecomponent.hxx>
#include <vcl/toolbox.hxx>
#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <cppuhelper/implbase.hxx>
-
-
-typedef ::cppu::ImplHelper1 < css::accessibility::XAccessibleSelection > VCLXAccessibleToolBox_BASE;
-
-typedef std::map< sal_Int32, css::uno::Reference< css::accessibility::XAccessible > > ToolBoxItemsMap;
-
class VCLXAccessibleToolBoxItem;
class ToolBox;
-class VCLXAccessibleToolBox final : public VCLXAccessibleComponent, public VCLXAccessibleToolBox_BASE
+typedef std::map< sal_Int32, rtl::Reference< VCLXAccessibleToolBoxItem > > ToolBoxItemsMap;
+
+class VCLXAccessibleToolBox final : public cppu::ImplInheritanceHelper<VCLXAccessibleComponent, css::accessibility::XAccessibleSelection>
{
private:
ToolBoxItemsMap m_aAccessibleChildren;
@@ -51,11 +48,11 @@ private:
void UpdateCustomPopupItemp_Impl( vcl::Window* pWindow, bool bOpen );
void HandleSubToolBarEvent( const VclWindowEvent& rVclWindowEvent );
void ReleaseSubToolBox( ToolBox* _pSubToolBox );
- sal_Int32 implGetAccessibleChildCount();
+ sal_Int64 implGetAccessibleChildCount();
virtual ~VCLXAccessibleToolBox() override;
- virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) override;
+ virtual void FillAccessibleStateSet( sal_Int64& rStateSet ) override;
virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent ) override;
virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent ) override;
@@ -68,29 +65,23 @@ private:
public:
VCLXAccessibleToolBox( VCLXWindow* pVCLXWindow );
- // XInterface
- DECLARE_XINTERFACE( )
-
- // XTypeProvider
- DECLARE_XTYPEPROVIDER( )
-
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int64 i ) override;
virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override;
// XAccessibleSelection
- virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) override;
- virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) override;
+ virtual void SAL_CALL selectAccessibleChild( sal_Int64 nChildIndex ) override;
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int64 nChildIndex ) override;
virtual void SAL_CALL clearAccessibleSelection( ) override;
virtual void SAL_CALL selectAllAccessibleChildren( ) override;
- virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) override;
- virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) override;
+ virtual sal_Int64 SAL_CALL getSelectedAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex ) override;
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int64 nChildIndex ) override;
private:
void implReleaseToolboxItem(
diff --git a/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
index 6c60bf4a87c6..6fbfc1e55138 100644
--- a/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
+++ b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx
@@ -22,23 +22,20 @@
#include <com/sun/star/accessibility/XAccessible.hpp>
#include <com/sun/star/accessibility/XAccessibleAction.hpp>
#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
#include <com/sun/star/accessibility/XAccessibleValue.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <cppuhelper/implbase4.hxx>
+#include <cppuhelper/implbase.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <vcl/toolbox.hxx>
#include <vcl/vclptr.hxx>
-typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
-typedef ::cppu::ImplHelper4 < css::accessibility::XAccessible,
- css::accessibility::XAccessibleAction,
- css::accessibility::XAccessibleValue,
- css::lang::XServiceInfo > VCLXAccessibleToolBoxItem_BASE;
-
-class VCLXAccessibleToolBoxItem final : public AccessibleTextHelper_BASE,
- public VCLXAccessibleToolBoxItem_BASE
+class VCLXAccessibleToolBoxItem final : public cppu::ImplInheritanceHelper<
+ comphelper::OAccessibleTextHelper,
+ css::accessibility::XAccessible,
+ css::accessibility::XAccessibleAction,
+ css::accessibility::XAccessibleValue,
+ css::lang::XServiceInfo>
{
private:
OUString m_sOldName;
@@ -51,13 +48,14 @@ private:
bool m_bIndeterminate;
css::uno::Reference< css::accessibility::XAccessible > m_xChild;
- OUString GetText() const;
public:
sal_Int32 getIndexInParent() const { return m_nIndexInParent; }
void setIndexInParent( sal_Int32 _nNewIndex ) { m_nIndexInParent = _nNewIndex; }
private:
+ OUString implGetAccessibleName();
+
virtual ~VCLXAccessibleToolBoxItem() override;
virtual void SAL_CALL disposing() override;
@@ -87,8 +85,7 @@ public:
void ToggleEnableState();
// XInterface
- DECLARE_XINTERFACE( )
- DECLARE_XTYPEPROVIDER( )
+ css::uno::Any SAL_CALL queryInterface(css::uno::Type const & aType) override;
// XServiceInfo
virtual OUString SAL_CALL getImplementationName() override;
@@ -99,15 +96,15 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override;
// XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) override;
- virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleChildCount( ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL 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;
virtual sal_Int16 SAL_CALL getAccessibleRole( ) override;
virtual OUString SAL_CALL getAccessibleDescription( ) override;
virtual OUString SAL_CALL getAccessibleName( ) override;
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;
// XAccessibleText
virtual OUString SAL_CALL getText() override;
diff --git a/accessibility/inc/strings.hrc b/accessibility/inc/strings.hrc
index c9949dd4357d..7e51ade2d46d 100644
--- a/accessibility/inc/strings.hrc
+++ b/accessibility/inc/strings.hrc
@@ -19,7 +19,7 @@
#pragma once
-#define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(u8##String))
+#define NC_(Context, String) TranslateId(Context, u8##String)
#define RID_STR_ACC_NAME_BROWSEBUTTON NC_("RID_STR_ACC_NAME_BROWSEBUTTON", "Browse")
#define STR_SVT_ACC_ACTION_EXPAND NC_("STR_SVT_ACC_ACTION_EXPAND", "Expand" )
diff --git a/accessibility/inc/strings.hxx b/accessibility/inc/strings.hxx
index 85dcf7eb9279..6fd402a9ba06 100644
--- a/accessibility/inc/strings.hxx
+++ b/accessibility/inc/strings.hxx
@@ -11,13 +11,13 @@
#include <rtl/ustring.hxx>
-inline constexpr OUStringLiteral RID_STR_ACC_ACTION_CLICK = u"press";
-inline constexpr OUStringLiteral RID_STR_ACC_ACTION_TOGGLEPOPUP = u"togglePopup";
-inline constexpr OUStringLiteral RID_STR_ACC_ACTION_SELECT = u"select";
-inline constexpr OUStringLiteral RID_STR_ACC_ACTION_INCLINE = u"incrementLine";
-inline constexpr OUStringLiteral RID_STR_ACC_ACTION_DECLINE = u"decrementLine";
-inline constexpr OUStringLiteral RID_STR_ACC_ACTION_INCBLOCK = u"incrementBlock";
-inline constexpr OUStringLiteral RID_STR_ACC_ACTION_DECBLOCK = u"decrementBlock";
+inline constexpr OUString RID_STR_ACC_ACTION_CLICK = u"press"_ustr;
+inline constexpr OUString RID_STR_ACC_ACTION_TOGGLEPOPUP = u"togglePopup"_ustr;
+inline constexpr OUString RID_STR_ACC_ACTION_SELECT = u"select"_ustr;
+inline constexpr OUString RID_STR_ACC_ACTION_INCLINE = u"incrementLine"_ustr;
+inline constexpr OUString RID_STR_ACC_ACTION_DECLINE = u"decrementLine"_ustr;
+inline constexpr OUString RID_STR_ACC_ACTION_INCBLOCK = u"incrementBlock"_ustr;
+inline constexpr OUString RID_STR_ACC_ACTION_DECBLOCK = u"decrementBlock"_ustr;
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/accessibility/source/extended/AccessibleBrowseBox.cxx b/accessibility/source/extended/AccessibleBrowseBox.cxx
index 8c620b98260b..8408c0abe23a 100644
--- a/accessibility/source/extended/AccessibleBrowseBox.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBox.cxx
@@ -21,6 +21,7 @@
#include <extended/AccessibleBrowseBoxTable.hxx>
#include <extended/AccessibleBrowseBoxHeaderBar.hxx>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <utility>
#include <vcl/accessibletableprovider.hxx>
#include <toolkit/helper/convert.hxx>
#include <toolkit/helper/vclunohelper.hxx>
@@ -89,7 +90,7 @@ void SAL_CALL AccessibleBrowseBox::disposing()
// css::accessibility::XAccessibleContext
-sal_Int32 SAL_CALL AccessibleBrowseBox::getAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleBrowseBox::getAccessibleChildCount()
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -99,11 +100,14 @@ sal_Int32 SAL_CALL AccessibleBrowseBox::getAccessibleChildCount()
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
-AccessibleBrowseBox::getAccessibleChild( sal_Int32 nChildIndex )
+AccessibleBrowseBox::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
+ if (nChildIndex < 0 || nChildIndex >= getAccessibleChildCount())
+ throw lang::IndexOutOfBoundsException();
+
css::uno::Reference< css::accessibility::XAccessible > xRet;
if( nChildIndex >= 0 )
{
@@ -167,7 +171,7 @@ void SAL_CALL AccessibleBrowseBox::grabFocus()
OUString SAL_CALL AccessibleBrowseBox::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleBrowseBox";
+ return u"com.sun.star.comp.svtools.AccessibleBrowseBox"_ustr;
}
@@ -177,13 +181,13 @@ tools::Rectangle AccessibleBrowseBox::implGetBoundingBox()
{
vcl::Window* pParent = mpBrowseBox->GetAccessibleParentWindow();
OSL_ENSURE( pParent, "implGetBoundingBox - missing parent window" );
- return mpBrowseBox->GetWindowExtentsRelative( pParent );
+ return mpBrowseBox->GetWindowExtentsRelative( *pParent );
}
-tools::Rectangle AccessibleBrowseBox::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleBrowseBox::implGetBoundingBoxOnScreen()
{
- return mpBrowseBox->GetWindowExtentsRelative( nullptr );
+ return mpBrowseBox->GetWindowExtentsAbsolute();
}
// internal helper methods
@@ -200,29 +204,24 @@ css::uno::Reference< css::accessibility::XAccessible > AccessibleBrowseBox::impl
css::uno::Reference< css::accessibility::XAccessible >
AccessibleBrowseBox::implGetHeaderBar(AccessibleBrowseBoxObjType eObjType)
{
- css::uno::Reference< css::accessibility::XAccessible > xRet;
- rtl::Reference< AccessibleBrowseBoxHeaderBar >* pxMember = nullptr;
-
if( eObjType == AccessibleBrowseBoxObjType::RowHeaderBar )
- pxMember = &mxRowHeaderBar;
+ {
+ if (!mxRowHeaderBar.is())
+ mxRowHeaderBar = new AccessibleBrowseBoxHeaderBar(m_aCreator, *mpBrowseBox, eObjType);
+ return mxRowHeaderBar;
+ }
else if( eObjType == AccessibleBrowseBoxObjType::ColumnHeaderBar )
- pxMember = &mxColumnHeaderBar;
-
- if( pxMember )
{
- if( !pxMember->is() )
- {
- rtl::Reference<AccessibleBrowseBoxHeaderBar> pHeaderBar = new AccessibleBrowseBoxHeaderBar(
- m_aCreator, *mpBrowseBox, eObjType );
- *pxMember = pHeaderBar;
- }
- xRet = pxMember->get();
+ if (!mxColumnHeaderBar.is())
+ mxColumnHeaderBar = new AccessibleBrowseBoxHeaderBar(m_aCreator, *mpBrowseBox, eObjType);
+ return mxColumnHeaderBar;
}
- return xRet;
+
+ return css::uno::Reference<css::accessibility::XAccessible>();
}
css::uno::Reference< css::accessibility::XAccessible >
-AccessibleBrowseBox::implGetFixedChild( sal_Int32 nChildIndex )
+AccessibleBrowseBox::implGetFixedChild( sal_Int64 nChildIndex )
{
css::uno::Reference< css::accessibility::XAccessible > xRet;
switch( nChildIndex )
@@ -267,8 +266,8 @@ void AccessibleBrowseBox::commitHeaderBarEvent( sal_Int16 _nEventId,
// = AccessibleBrowseBoxAccess
-AccessibleBrowseBoxAccess::AccessibleBrowseBoxAccess( const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, ::vcl::IAccessibleTableProvider& _rBrowseBox )
- :m_xParent( _rxParent )
+AccessibleBrowseBoxAccess::AccessibleBrowseBoxAccess( css::uno::Reference< css::accessibility::XAccessible > _xParent, ::vcl::IAccessibleTableProvider& _rBrowseBox )
+ :m_xParent(std::move( _xParent ))
,m_rBrowseBox( _rBrowseBox )
{
}
@@ -288,6 +287,7 @@ void AccessibleBrowseBoxAccess::dispose()
m_xContext->dispose();
m_xContext.clear();
}
+ m_xParent.clear();
}
diff --git a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
index ee64200065d1..8d9a0577e638 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
@@ -19,6 +19,7 @@
#include <extended/AccessibleBrowseBoxBase.hxx>
#include <toolkit/helper/convert.hxx>
+#include <utility>
#include <vcl/accessibletableprovider.hxx>
#include <cppuhelper/supportsservice.hxx>
@@ -49,14 +50,14 @@ using namespace com::sun::star::accessibility::AccessibleStateType;
// Ctor/Dtor/disposing
AccessibleBrowseBoxBase::AccessibleBrowseBoxBase(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > xParent,
::vcl::IAccessibleTableProvider& rBrowseBox,
- const css::uno::Reference< css::awt::XWindow >& _xFocusWindow,
+ css::uno::Reference< css::awt::XWindow > _xFocusWindow,
AccessibleBrowseBoxObjType eObjType ) :
AccessibleBrowseBoxImplHelper( m_aMutex ),
- mxParent( rxParent ),
+ mxParent(std::move( xParent )),
mpBrowseBox( &rBrowseBox ),
- m_xFocusWindow(_xFocusWindow),
+ m_xFocusWindow(std::move(_xFocusWindow)),
maName( rBrowseBox.GetAccessibleObjectName( eObjType ) ),
maDescription( rBrowseBox.GetAccessibleObjectDescription( eObjType ) ),
meObjType( eObjType ),
@@ -67,18 +68,18 @@ AccessibleBrowseBoxBase::AccessibleBrowseBoxBase(
}
AccessibleBrowseBoxBase::AccessibleBrowseBoxBase(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > rxParent,
::vcl::IAccessibleTableProvider& rBrowseBox,
- const css::uno::Reference< css::awt::XWindow >& _xFocusWindow,
+ css::uno::Reference< css::awt::XWindow > _xFocusWindow,
AccessibleBrowseBoxObjType eObjType,
- const OUString& rName,
- const OUString& rDescription ) :
+ OUString rName,
+ OUString rDescription ) :
AccessibleBrowseBoxImplHelper( m_aMutex ),
- mxParent( rxParent ),
+ mxParent(std::move( rxParent )),
mpBrowseBox( &rBrowseBox ),
- m_xFocusWindow(_xFocusWindow),
- maName( rName ),
- maDescription( rDescription ),
+ m_xFocusWindow(std::move(_xFocusWindow)),
+ maName(std::move( rName )),
+ maDescription(std::move( rDescription )),
meObjType( eObjType ),
m_aClientId(0)
{
@@ -125,13 +126,13 @@ Reference< css::accessibility::XAccessible > SAL_CALL AccessibleBrowseBoxBase::g
return mxParent;
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleBrowseBoxBase::getAccessibleIndexInParent()
{
::osl::MutexGuard aGuard( getMutex() );
ensureIsAlive();
// -1 for child not found/no parent (according to specification)
- sal_Int32 nRet = -1;
+ sal_Int64 nRet = -1;
css::uno::Reference< uno::XInterface > xMeMyselfAndI( static_cast< css::accessibility::XAccessibleContext* >( this ), uno::UNO_QUERY );
@@ -144,8 +145,8 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getAccessibleIndexInParent()
{
css::uno::Reference< uno::XInterface > xChild;
- sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
- for( sal_Int32 nChild = 0; nChild < nChildCount; ++nChild )
+ sal_Int64 nChildCount = xParentContext->getAccessibleChildCount();
+ for( sal_Int64 nChild = 0; nChild < nChildCount; ++nChild )
{
xChild.set(xParentContext->getAccessibleChild( nChild ), css::uno::UNO_QUERY);
@@ -183,12 +184,12 @@ AccessibleBrowseBoxBase::getAccessibleRelationSet()
return new utl::AccessibleRelationSetHelper;
}
-Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
+sal_Int64 SAL_CALL
AccessibleBrowseBoxBase::getAccessibleStateSet()
{
SolarMethodGuard aGuard( getMutex() );
// don't check whether alive -> StateSet may contain DEFUNC
- return implCreateStateSetHelper();
+ return implCreateStateSet();
}
lang::Locale SAL_CALL AccessibleBrowseBoxBase::getLocale()
@@ -303,7 +304,7 @@ sal_Bool SAL_CALL AccessibleBrowseBoxBase::supportsService(
Sequence< OUString > SAL_CALL AccessibleBrowseBoxBase::getSupportedServiceNames()
{
- return { "com.sun.star.accessibility.AccessibleContext" };
+ return { u"com.sun.star.accessibility.AccessibleContext"_ustr };
}
// other public methods
@@ -354,23 +355,22 @@ bool AccessibleBrowseBoxBase::implIsShowing()
return bShowing;
}
-rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleBrowseBoxBase::implCreateStateSetHelper()
+sal_Int64 AccessibleBrowseBoxBase::implCreateStateSet()
{
- rtl::Reference<::utl::AccessibleStateSetHelper>
- pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( isAlive() )
{
// SHOWING done with mxParent
if( implIsShowing() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
// BrowseBox fills StateSet with states depending on object type
- mpBrowseBox->FillAccessibleStateSet( *pStateSetHelper, getType() );
+ mpBrowseBox->FillAccessibleStateSet( nStateSet, getType() );
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
// internal helper methods
@@ -399,12 +399,12 @@ tools::Rectangle AccessibleBrowseBoxBase::getBoundingBox()
return aRect;
}
-tools::Rectangle AccessibleBrowseBoxBase::getBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleBrowseBoxBase::getBoundingBoxOnScreen()
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
- tools::Rectangle aRect = implGetBoundingBoxOnScreen();
+ AbsoluteScreenPixelRectangle aRect = implGetBoundingBoxOnScreen();
if ( aRect.Left() == 0 && aRect.Top() == 0 && aRect.Right() == 0 && aRect.Bottom() == 0 )
{
SAL_WARN( "accessibility", "rectangle doesn't exist" );
@@ -422,11 +422,7 @@ void AccessibleBrowseBoxBase::commitEvent(
return;
// build an event object
- AccessibleEventObject aEvent;
- aEvent.Source = *this;
- aEvent.EventId = _nEventId;
- aEvent.OldValue = _rOldValue;
- aEvent.NewValue = _rNewValue;
+ AccessibleEventObject aEvent(*this, _nEventId, _rNewValue, _rOldValue, -1);
// let the notifier handle this event
diff --git a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
index 2b29547bad92..fa91719e78d5 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
@@ -27,7 +27,6 @@ namespace accessibility
{
using namespace com::sun::star::accessibility;
using namespace com::sun::star::uno;
- using namespace com::sun::star::accessibility::AccessibleEventId;
AccessibleCheckBoxCell::AccessibleCheckBoxCell(const Reference<XAccessible >& _rxParent,
vcl::IAccessibleTableProvider& _rBrowseBox,
@@ -52,18 +51,18 @@ namespace accessibility
return this;
}
- rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleCheckBoxCell::implCreateStateSetHelper()
+ sal_Int64 AccessibleCheckBoxCell::implCreateStateSet()
{
- rtl::Reference<::utl::AccessibleStateSetHelper> pStateSetHelper =
- AccessibleBrowseBoxCell::implCreateStateSetHelper();
+ sal_Int64 nStateSet = AccessibleBrowseBoxCell::implCreateStateSet();
if( isAlive() )
{
+ nStateSet |= AccessibleStateType::CHECKABLE;
mpBrowseBox->FillAccessibleStateSetForCell(
- *pStateSetHelper, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
+ nStateSet, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
if ( m_eState == TRISTATE_TRUE )
- pStateSetHelper->AddState( AccessibleStateType::CHECKED );
+ nStateSet |= AccessibleStateType::CHECKED;
}
- return pStateSetHelper;
+ return nStateSet;
}
// XAccessibleValue
@@ -124,27 +123,27 @@ namespace accessibility
}
// XAccessibleContext
- sal_Int32 SAL_CALL AccessibleCheckBoxCell::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleCheckBoxCell::getAccessibleChildCount( )
{
return 0;
}
- css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleCheckBoxCell::getAccessibleChild( sal_Int32 )
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleCheckBoxCell::getAccessibleChild( sal_Int64 )
{
throw css::lang::IndexOutOfBoundsException();
}
OUString SAL_CALL AccessibleCheckBoxCell::getImplementationName()
{
- return "com.sun.star.comp.svtools.TableCheckBoxCell";
+ return u"com.sun.star.comp.svtools.TableCheckBoxCell"_ustr;
}
- sal_Int32 SAL_CALL AccessibleCheckBoxCell::getAccessibleIndexInParent()
+ sal_Int64 SAL_CALL AccessibleCheckBoxCell::getAccessibleIndexInParent()
{
::osl::MutexGuard aGuard( getMutex() );
ensureIsAlive();
- return ( getRowPos() * mpBrowseBox->GetColumnCount() ) + getColumnPos();
+ return (static_cast<sal_Int64>(getRowPos()) * static_cast<sal_Int64>(mpBrowseBox->GetColumnCount())) + getColumnPos();
}
void AccessibleCheckBoxCell::SetChecked( bool _bChecked )
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
index 3d3541e4a19b..024e95d588cc 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
@@ -52,7 +52,7 @@ AccessibleBrowseBoxHeaderBar::~AccessibleBrowseBoxHeaderBar()
// XAccessibleContext ---------------------------------------------------------
Reference< XAccessible > SAL_CALL
-AccessibleBrowseBoxHeaderBar::getAccessibleChild( sal_Int32 nChildIndex )
+AccessibleBrowseBoxHeaderBar::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -61,7 +61,7 @@ AccessibleBrowseBoxHeaderBar::getAccessibleChild( sal_Int32 nChildIndex )
return implGetChild( nChildIndex, implToVCLColumnPos( nChildIndex ) );
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleIndexInParent()
{
return isRowBar() ? vcl::BBINDEX_ROWHEADERBAR : vcl::BBINDEX_COLUMNHEADERBAR;
}
@@ -192,7 +192,7 @@ sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleSelected(
// XAccessibleSelection -------------------------------------------------------
-void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAccessibleChild( sal_Int32 nChildIndex )
+void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAccessibleChild( sal_Int64 nChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -204,7 +204,7 @@ void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAccessibleChild( sal_Int32 nCh
implSelectColumn( implToVCLColumnPos( nChildIndex ), true );
}
-sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleChildSelected( sal_Int32 nChildIndex )
+sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
// using interface methods - no mutex
return isRowBar() ?
@@ -232,7 +232,7 @@ void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAllAccessibleChildren()
implSelectColumn( implToVCLColumnPos( 0 ), true );
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChildCount()
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -241,18 +241,19 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChildCount
}
Reference< XAccessible > SAL_CALL
-AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
// method may throw lang::IndexOutOfBoundsException
- sal_Int32 nIndex = implGetChildIndexFromSelectedIndex( nSelectedChildIndex );
+ sal_Int64 nIndex = implGetChildIndexFromSelectedIndex( nSelectedChildIndex );
+ assert(nIndex < std::numeric_limits<sal_Int32>::max());
return implGetChild( nIndex, implToVCLColumnPos( nIndex ) );
}
void SAL_CALL AccessibleBrowseBoxHeaderBar::deselectAccessibleChild(
- sal_Int32 nSelectedChildIndex )
+ sal_Int64 nSelectedChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -290,7 +291,7 @@ void SAL_CALL AccessibleBrowseBoxHeaderBar::release() noexcept
OUString SAL_CALL AccessibleBrowseBoxHeaderBar::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderBar";
+ return u"com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderBar"_ustr;
}
Sequence< sal_Int8 > SAL_CALL AccessibleBrowseBoxHeaderBar::getImplementationId()
@@ -305,9 +306,9 @@ tools::Rectangle AccessibleBrowseBoxHeaderBar::implGetBoundingBox()
return mpBrowseBox->calcHeaderRect(isColumnBar(), false);
}
-tools::Rectangle AccessibleBrowseBoxHeaderBar::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleBrowseBoxHeaderBar::implGetBoundingBoxOnScreen()
{
- return mpBrowseBox->calcHeaderRect(isColumnBar());
+ return AbsoluteScreenPixelRectangle(mpBrowseBox->calcHeaderRect(isColumnBar()));
}
sal_Int32 AccessibleBrowseBoxHeaderBar::implGetRowCount() const
@@ -332,8 +333,8 @@ Reference< XAccessible > AccessibleBrowseBoxHeaderBar::implGetChild(
mpBrowseBox->CreateAccessibleColumnHeader( nColumnPos );
}
-sal_Int32 AccessibleBrowseBoxHeaderBar::implGetChildIndexFromSelectedIndex(
- sal_Int32 nSelectedChildIndex )
+sal_Int64 AccessibleBrowseBoxHeaderBar::implGetChildIndexFromSelectedIndex(
+ sal_Int64 nSelectedChildIndex )
{
Sequence< sal_Int32 > aSelSeq;
if( isRowBar() )
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
index 81b3bfa4e7e4..87a9d2b7ab83 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
@@ -43,44 +43,40 @@ AccessibleBrowseBoxHeaderCell::AccessibleBrowseBoxHeaderCell(sal_Int32 _nColumnR
, m_nColumnRowId(_nColumnRowId)
{
}
-/** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+/** Return a bitset of states of the current object.
*/
-rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleBrowseBoxHeaderCell::implCreateStateSetHelper()
+sal_Int64 AccessibleBrowseBoxHeaderCell::implCreateStateSet()
{
SolarMethodGuard aGuard( getMutex() );
- rtl::Reference<::utl::AccessibleStateSetHelper>
- pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( isAlive() )
{
// SHOWING done with mxParent
if( implIsShowing() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
- mpBrowseBox->FillAccessibleStateSet( *pStateSetHelper, getType() );
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
- pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+ mpBrowseBox->FillAccessibleStateSet( nStateSet, getType() );
+ nStateSet |= AccessibleStateType::VISIBLE;
+ nStateSet |= AccessibleStateType::FOCUSABLE;
+ nStateSet |= AccessibleStateType::TRANSIENT;
+ nStateSet |= AccessibleStateType::SELECTABLE;
bool bSelected = isRowBarCell() ? mpBrowseBox->IsRowSelected(m_nColumnRowId) : mpBrowseBox->IsColumnSelected(m_nColumnRowId);
if ( bSelected )
- pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ nStateSet |= AccessibleStateType::SELECTED;
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
/** @return
The count of visible children.
*/
-sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChildCount()
{
return 0;
}
@@ -89,7 +85,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChildCount()
/** @return
The XAccessible interface of the specified child.
*/
-Reference<XAccessible > SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChild( sal_Int32 )
+Reference<XAccessible > SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChild( sal_Int64 )
{
throw IndexOutOfBoundsException();
}
@@ -112,7 +108,7 @@ void SAL_CALL AccessibleBrowseBoxHeaderCell::grabFocus()
*/
OUString SAL_CALL AccessibleBrowseBoxHeaderCell::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderCell";
+ return u"com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderCell"_ustr;
}
namespace
@@ -127,7 +123,7 @@ namespace
nCol = 0;
}
- tools::Rectangle aRet(_pBrowseBox->GetFieldRectPixelAbs( nRow , nCol, true, _bOnScreen));
+ tools::Rectangle aRet(_pBrowseBox->GetFieldRectPixel( nRow , nCol, true, _bOnScreen));
return tools::Rectangle(aRet.TopLeft() - Point(0,aRet.GetHeight()),aRet.GetSize());
}
}
@@ -138,16 +134,16 @@ tools::Rectangle AccessibleBrowseBoxHeaderCell::implGetBoundingBox()
}
-tools::Rectangle AccessibleBrowseBoxHeaderCell::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleBrowseBoxHeaderCell::implGetBoundingBoxOnScreen()
{
- return getRectangle(mpBrowseBox,m_nColumnRowId,true,isRowBarCell());
+ return AbsoluteScreenPixelRectangle(getRectangle(mpBrowseBox,m_nColumnRowId,true,isRowBarCell()));
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleIndexInParent()
{
::osl::MutexGuard aGuard( getMutex() );
ensureIsAlive();
- sal_Int32 nIndex = m_nColumnRowId;
+ sal_Int64 nIndex = m_nColumnRowId;
if ( mpBrowseBox->HasRowHeader() )
--nIndex;
return nIndex;
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTable.cxx b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
index d245c5155ba8..7046ed792507 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
@@ -49,7 +49,7 @@ AccessibleBrowseBoxTable::~AccessibleBrowseBoxTable()
// XAccessibleContext ---------------------------------------------------------
Reference< XAccessible > SAL_CALL
-AccessibleBrowseBoxTable::getAccessibleChild( sal_Int32 nChildIndex )
+AccessibleBrowseBoxTable::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -59,7 +59,7 @@ AccessibleBrowseBoxTable::getAccessibleChild( sal_Int32 nChildIndex )
implGetRow( nChildIndex ), static_cast<sal_Int16>(implGetColumn( nChildIndex )) );
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxTable::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleBrowseBoxTable::getAccessibleIndexInParent()
{
osl::MutexGuard aGuard( getMutex() );
ensureIsAlive();
@@ -185,7 +185,7 @@ sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleSelected(
OUString SAL_CALL AccessibleBrowseBoxTable::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleBrowseBoxTable";
+ return u"com.sun.star.comp.svtools.AccessibleBrowseBoxTable"_ustr;
}
// internal virtual methods ---------------------------------------------------
@@ -195,9 +195,9 @@ tools::Rectangle AccessibleBrowseBoxTable::implGetBoundingBox()
return mpBrowseBox->calcTableRect(false);
}
-tools::Rectangle AccessibleBrowseBoxTable::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleBrowseBoxTable::implGetBoundingBoxOnScreen()
{
- return mpBrowseBox->calcTableRect();
+ return AbsoluteScreenPixelRectangle(mpBrowseBox->calcTableRect());
}
// internal helper methods ----------------------------------------------------
@@ -205,19 +205,24 @@ tools::Rectangle AccessibleBrowseBoxTable::implGetBoundingBoxOnScreen()
Reference< XAccessibleTable > AccessibleBrowseBoxTable::implGetHeaderBar(
sal_Int32 nChildIndex )
{
+ assert(nChildIndex == vcl::BBINDEX_ROWHEADERBAR || nChildIndex == vcl::BBINDEX_COLUMNHEADERBAR);
+
Reference< XAccessible > xRet;
Reference< XAccessibleContext > xContext( mxParent, uno::UNO_QUERY );
if( xContext.is() )
{
- try
- {
- xRet = xContext->getAccessibleChild( nChildIndex );
- }
- catch (const lang::IndexOutOfBoundsException&)
+ if (nChildIndex == vcl::BBINDEX_COLUMNHEADERBAR || mpBrowseBox->HasRowHeader())
{
- OSL_FAIL( "implGetHeaderBar - wrong child index" );
+ try
+ {
+ xRet = xContext->getAccessibleChild( nChildIndex );
+ }
+ catch (const lang::IndexOutOfBoundsException&)
+ {
+ OSL_FAIL( "implGetHeaderBar - wrong child index" );
+ }
+ // RuntimeException goes to caller
}
- // RuntimeException goes to caller
}
return Reference< XAccessibleTable >( xRet, uno::UNO_QUERY );
}
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
index ebb6e06e099d..a1ae5a969dcb 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
@@ -47,7 +47,7 @@ AccessibleBrowseBoxTableBase::AccessibleBrowseBoxTableBase(
// XAccessibleContext ---------------------------------------------------------
-sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleChildCount()
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -107,16 +107,16 @@ Reference< XAccessible > SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleSum
return nullptr; // not supported
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleIndex(
+sal_Int64 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleIndex(
sal_Int32 nRow, sal_Int32 nColumn )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
ensureIsValidAddress( nRow, nColumn );
- return nRow * implGetColumnCount() + nColumn;
+ return static_cast<sal_Int64>(nRow) * static_cast<sal_Int64>(implGetColumnCount()) + nColumn;
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRow( sal_Int32 nChildIndex )
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRow( sal_Int64 nChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -124,7 +124,7 @@ sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRow( sal_Int32 nCh
return implGetRow( nChildIndex );
}
-sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumn( sal_Int32 nChildIndex )
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumn( sal_Int64 nChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -201,18 +201,18 @@ sal_uInt16 AccessibleBrowseBoxTableBase::implToVCLColumnPos( sal_Int32 nColumn )
return nVCLPos;
}
-sal_Int32 AccessibleBrowseBoxTableBase::implGetChildCount() const
+sal_Int64 AccessibleBrowseBoxTableBase::implGetChildCount() const
{
- return implGetRowCount() * implGetColumnCount();
+ return static_cast<sal_Int64>(implGetRowCount()) * static_cast<sal_Int64>(implGetColumnCount());
}
-sal_Int32 AccessibleBrowseBoxTableBase::implGetRow( sal_Int32 nChildIndex ) const
+sal_Int32 AccessibleBrowseBoxTableBase::implGetRow( sal_Int64 nChildIndex ) const
{
sal_Int32 nColumns = implGetColumnCount();
return nColumns ? (nChildIndex / nColumns) : 0;
}
-sal_Int32 AccessibleBrowseBoxTableBase::implGetColumn( sal_Int32 nChildIndex ) const
+sal_Int32 AccessibleBrowseBoxTableBase::implGetColumn( sal_Int64 nChildIndex ) const
{
sal_Int32 nColumns = implGetColumnCount();
return nColumns ? (nChildIndex % nColumns) : 0;
@@ -279,7 +279,7 @@ void AccessibleBrowseBoxTableBase::ensureIsValidAddress(
ensureIsValidColumn( nColumn );
}
-void AccessibleBrowseBoxTableBase::ensureIsValidIndex( sal_Int32 nChildIndex )
+void AccessibleBrowseBoxTableBase::ensureIsValidIndex( sal_Int64 nChildIndex )
{
if( nChildIndex >= implGetChildCount() )
throw lang::IndexOutOfBoundsException( "child index is invalid", *this );
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
index 13cdb63e24dd..7c77128aa237 100644
--- a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
@@ -29,9 +29,9 @@ namespace accessibility
namespace
{
/// @throws css::lang::IndexOutOfBoundsException
- void checkIndex_Impl( sal_Int32 _nIndex, const OUString& _sText )
+ void checkIndex_Impl( sal_Int32 _nIndex, std::u16string_view _sText )
{
- if ( _nIndex >= _sText.getLength() )
+ if ( _nIndex >= static_cast<sal_Int32>(_sText.size()) )
throw css::lang::IndexOutOfBoundsException();
}
@@ -41,7 +41,6 @@ namespace accessibility
}
}
using namespace ::com::sun::star::lang;
- using namespace utl;
using namespace comphelper;
using namespace ::com::sun::star::uno;
using ::com::sun::star::accessibility::XAccessible;
@@ -139,45 +138,42 @@ namespace accessibility
*/
OUString SAL_CALL AccessibleBrowseBoxTableCell::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleBrowseBoxTableCell";
+ return u"com.sun.star.comp.svtools.AccessibleBrowseBoxTableCell"_ustr;
}
/** @return The count of visible children. */
- sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleChildCount()
+ sal_Int64 SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleChildCount()
{
return 0;
}
/** @return The XAccessible interface of the specified child. */
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
- AccessibleBrowseBoxTableCell::getAccessibleChild( sal_Int32 )
+ AccessibleBrowseBoxTableCell::getAccessibleChild( sal_Int64 )
{
throw css::lang::IndexOutOfBoundsException();
}
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+ /** Return a bitset of states of the current object.
*/
- rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleBrowseBoxTableCell::implCreateStateSetHelper()
+ sal_Int64 AccessibleBrowseBoxTableCell::implCreateStateSet()
{
SolarMethodGuard aGuard(getMutex());
- rtl::Reference<::utl::AccessibleStateSetHelper> pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( isAlive() )
{
// SHOWING done with mxParent
if( implIsShowing() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
- mpBrowseBox->FillAccessibleStateSetForCell( *pStateSetHelper, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
+ mpBrowseBox->FillAccessibleStateSetForCell( nStateSet, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
@@ -193,12 +189,12 @@ namespace accessibility
// XAccessibleContext -----------------------------------------------------
- sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleIndexInParent()
+ sal_Int64 SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleIndexInParent()
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
- return /*vcl::BBINDEX_FIRSTCONTROL*/ m_nOffset + ( getRowPos() * mpBrowseBox->GetColumnCount() ) + getColumnPos();
+ return /*vcl::BBINDEX_FIRSTCONTROL*/ m_nOffset + (static_cast<sal_Int64>(getRowPos()) * static_cast<sal_Int64>(mpBrowseBox->GetColumnCount())) + getColumnPos();
}
sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getCaretPosition( )
diff --git a/accessibility/source/extended/AccessibleGridControl.cxx b/accessibility/source/extended/AccessibleGridControl.cxx
index c90cc0384b46..b2577ea588b3 100644
--- a/accessibility/source/extended/AccessibleGridControl.cxx
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -22,10 +22,9 @@
#include <extended/AccessibleGridControlHeader.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#include <com/sun/star/accessibility/AccessibleTableModelChange.hpp>
-#include <com/sun/star/accessibility/AccessibleTableModelChangeType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <toolkit/helper/convert.hxx>
+#include <utility>
#include <vcl/accessibletable.hxx>
#include <vcl/svapp.hxx>
@@ -42,7 +41,7 @@ using namespace ::vcl::table;
AccessibleGridControl::AccessibleGridControl(
const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, const css::uno::Reference< css::accessibility::XAccessible >& _rxCreator,
::vcl::table::IAccessibleTable& _rTable )
- : AccessibleGridControlBase( _rxParent, _rTable, TCTYPE_GRIDCONTROL ),
+ : AccessibleGridControlBase(_rxParent, _rTable, AccessibleTableControlObjType::GRIDCONTROL),
m_aCreator(_rxCreator)
{
}
@@ -59,11 +58,6 @@ void SAL_CALL AccessibleGridControl::disposing()
m_xTable->dispose();
m_xTable.clear();
}
- if ( m_xCell.is() )
- {
- m_xCell->dispose();
- m_xCell.clear();
- }
if ( m_xRowHeaderBar.is() )
{
m_xRowHeaderBar->dispose();
@@ -77,7 +71,7 @@ void SAL_CALL AccessibleGridControl::disposing()
AccessibleGridControlBase::disposing();
}
-sal_Int32 AccessibleGridControl::implGetAccessibleChildCount()
+sal_Int64 AccessibleGridControl::implGetAccessibleChildCount()
{
return m_aTable.GetAccessibleControlCount();
}
@@ -85,7 +79,7 @@ sal_Int32 AccessibleGridControl::implGetAccessibleChildCount()
// css::accessibility::XAccessibleContext ---------------------------------------------------------
-sal_Int32 SAL_CALL AccessibleGridControl::getAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleGridControl::getAccessibleChildCount()
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
@@ -94,7 +88,7 @@ sal_Int32 SAL_CALL AccessibleGridControl::getAccessibleChildCount()
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
-AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex )
+AccessibleGridControl::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
@@ -108,7 +102,8 @@ AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex )
{
if(!m_xColumnHeaderBar.is())
{
- m_xColumnHeaderBar = new AccessibleGridControlHeader(m_aCreator, m_aTable, vcl::table::TCTYPE_COLUMNHEADERBAR);
+ m_xColumnHeaderBar = new AccessibleGridControlHeader(m_aCreator, m_aTable,
+ vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR);
}
xChild = m_xColumnHeaderBar.get();
}
@@ -116,7 +111,8 @@ AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex )
{
if(!m_xRowHeaderBar.is())
{
- m_xRowHeaderBar = new AccessibleGridControlHeader(m_aCreator, m_aTable, vcl::table::TCTYPE_ROWHEADERBAR);
+ m_xRowHeaderBar = new AccessibleGridControlHeader(m_aCreator, m_aTable,
+ vcl::table::AccessibleTableControlObjType::ROWHEADERBAR);
}
xChild = m_xRowHeaderBar.get();
}
@@ -185,7 +181,7 @@ void SAL_CALL AccessibleGridControl::grabFocus()
OUString SAL_CALL AccessibleGridControl::getImplementationName()
{
- return "com.sun.star.accessibility.AccessibleGridControl";
+ return u"com.sun.star.accessibility.AccessibleGridControl"_ustr;
}
@@ -195,13 +191,13 @@ tools::Rectangle AccessibleGridControl::implGetBoundingBox()
{
vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
OSL_ENSURE( pParent, "implGetBoundingBox - missing parent window" );
- return m_aTable.GetWindowExtentsRelative( pParent );
+ return m_aTable.GetWindowExtentsRelative( *pParent );
}
-tools::Rectangle AccessibleGridControl::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleGridControl::implGetBoundingBoxOnScreen()
{
- return m_aTable.GetWindowExtentsRelative( nullptr );
+ return m_aTable.GetWindowExtentsAbsolute();
}
// internal helper methods ----------------------------------------------------
@@ -221,9 +217,9 @@ AccessibleGridControl::implGetHeaderBar( AccessibleTableControlObjType eObjType
css::uno::Reference< css::accessibility::XAccessible > xRet;
rtl::Reference< AccessibleGridControlHeader >* pxMember = nullptr;
- if( eObjType == TCTYPE_ROWHEADERBAR )
+ if (eObjType == AccessibleTableControlObjType::ROWHEADERBAR)
pxMember = &m_xRowHeaderBar;
- else if( eObjType == TCTYPE_COLUMNHEADERBAR )
+ else if (eObjType == AccessibleTableControlObjType::COLUMNHEADERBAR)
pxMember = &m_xColumnHeaderBar;
if( pxMember )
@@ -239,18 +235,18 @@ AccessibleGridControl::implGetHeaderBar( AccessibleTableControlObjType eObjType
}
css::uno::Reference< css::accessibility::XAccessible >
-AccessibleGridControl::implGetFixedChild( sal_Int32 nChildIndex )
+AccessibleGridControl::implGetFixedChild( sal_Int64 nChildIndex )
{
css::uno::Reference< css::accessibility::XAccessible > xRet;
switch( nChildIndex )
{
/** Child index of the column header bar (first row). */
case 0:
- xRet = implGetHeaderBar( TCTYPE_COLUMNHEADERBAR );
+ xRet = implGetHeaderBar(AccessibleTableControlObjType::COLUMNHEADERBAR);
break;
/** Child index of the row header bar ("handle column"). */
case 1:
- xRet = implGetHeaderBar( TCTYPE_ROWHEADERBAR );
+ xRet = implGetHeaderBar(AccessibleTableControlObjType::ROWHEADERBAR);
break;
/** Child index of the data table. */
case 2:
@@ -269,23 +265,18 @@ rtl::Reference<AccessibleGridControlTable> AccessibleGridControl::createAccessib
void AccessibleGridControl::commitCellEvent(sal_Int16 _nEventId,const Any& _rNewValue,const Any& _rOldValue)
{
- sal_Int32 nChildCount = implGetAccessibleChildCount();
+ sal_Int64 nChildCount = implGetAccessibleChildCount();
if(nChildCount != 0)
{
- for(sal_Int32 i=0;i<nChildCount;i++)
+ for(sal_Int64 i=0;i<nChildCount;i++)
{
css::uno::Reference< css::accessibility::XAccessible > xAccessible = getAccessibleChild(i);
if(css::uno::Reference< css::accessibility::XAccessible >(m_xTable) == xAccessible)
{
- std::vector< rtl::Reference<AccessibleGridControlTableCell> >& rCells =
- m_xTable->getCellVector();
- size_t nIndex = m_aTable.GetCurrentRow() * m_aTable.GetColumnCount()
- + m_aTable.GetCurrentColumn();
- if (nIndex < rCells.size() && rCells[nIndex])
- {
- m_xCell = rCells[nIndex];
- m_xCell->commitEvent( _nEventId, _rNewValue, _rOldValue );
- }
+ Reference<XAccessible> xCell = m_xTable->getAccessibleCellAt(
+ m_aTable.GetCurrentRow(), m_aTable.GetCurrentColumn());
+ AccessibleGridControlTableCell* pCell = static_cast<AccessibleGridControlTableCell*>(xCell.get());
+ pCell->commitEvent(_nEventId, _rNewValue, _rOldValue);
}
}
}
@@ -307,37 +298,10 @@ void AccessibleGridControl::commitTableEvent(sal_Int16 _nEventId,const Any& _rNe
const sal_Int32 nCurrentCol = m_aTable.GetCurrentColumn();
css::uno::Reference< css::accessibility::XAccessible > xChild;
if (nCurrentRow > -1 && nCurrentCol > -1)
- {
- sal_Int32 nColumnCount = m_aTable.GetColumnCount();
- xChild = m_xTable->getAccessibleChild(nCurrentRow * nColumnCount + nCurrentCol);
- }
+ xChild = m_xTable->getAccessibleCellAt(nCurrentRow, nCurrentCol);
+
m_xTable->commitEvent(_nEventId, Any(xChild),_rOldValue);
}
- else if(_nEventId == AccessibleEventId::TABLE_MODEL_CHANGED)
- {
- AccessibleTableModelChange aChange;
- if(_rNewValue >>= aChange)
- {
- if(aChange.Type == AccessibleTableModelChangeType::DELETE)
- {
- std::vector< rtl::Reference<AccessibleGridControlTableCell> >& rCells =
- m_xTable->getCellVector();
- int nColCount = m_aTable.GetColumnCount();
- // check valid index - entries are inserted lazily
- size_t const nStart = nColCount * aChange.FirstRow;
- size_t const nEnd = nColCount * aChange.LastRow;
- if (nStart < rCells.size())
- {
- m_xTable->getCellVector().erase(
- rCells.begin() + nStart,
- rCells.begin() + std::min(rCells.size(), nEnd));
- }
- m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
- }
- else
- m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
- }
- }
else
m_xTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
}
@@ -346,8 +310,8 @@ void AccessibleGridControl::commitTableEvent(sal_Int16 _nEventId,const Any& _rNe
AccessibleGridControlAccess::AccessibleGridControlAccess(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent, ::vcl::table::IAccessibleTable& rTable )
- : m_xParent( rxParent )
+ css::uno::Reference< css::accessibility::XAccessible > xParent, ::vcl::table::IAccessibleTable& rTable )
+ : m_xParent(std::move( xParent ))
, m_pTable( & rTable )
{
}
diff --git a/accessibility/source/extended/AccessibleGridControlBase.cxx b/accessibility/source/extended/AccessibleGridControlBase.cxx
index c118c70f7a32..a57946989e1b 100644
--- a/accessibility/source/extended/AccessibleGridControlBase.cxx
+++ b/accessibility/source/extended/AccessibleGridControlBase.cxx
@@ -19,6 +19,7 @@
#include <extended/AccessibleGridControlBase.hxx>
#include <toolkit/helper/convert.hxx>
+#include <utility>
#include <vcl/accessibletable.hxx>
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
@@ -47,15 +48,13 @@ using namespace com::sun::star::accessibility::AccessibleStateType;
AccessibleGridControlBase::AccessibleGridControlBase(
- const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+ css::uno::Reference< css::accessibility::XAccessible > xParent,
::vcl::table::IAccessibleTable& rTable,
::vcl::table::AccessibleTableControlObjType eObjType ) :
AccessibleGridControlImplHelper( m_aMutex ),
- m_xParent( rxParent ),
+ m_xParent(std::move( xParent )),
m_aTable( rTable),
m_eObjType( eObjType ),
- m_aName( rTable.GetAccessibleObjectName( eObjType, 0, 0 ) ),
- m_aDescription( rTable.GetAccessibleObjectDescription( eObjType ) ),
m_aClientId(0)
{
}
@@ -95,14 +94,14 @@ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleGridCo
return m_xParent;
}
-sal_Int32 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
{
SolarMutexGuard g;
ensureIsAlive();
// -1 for child not found/no parent (according to specification)
- sal_Int32 nRet = -1;
+ sal_Int64 nRet = -1;
css::uno::Reference< uno::XInterface > xMeMyselfAndI( static_cast< css::accessibility::XAccessibleContext* >( this ), uno::UNO_QUERY );
@@ -115,8 +114,8 @@ sal_Int32 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
{
css::uno::Reference< uno::XInterface > xChild;
- sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
- for( sal_Int32 nChild = 0; nChild < nChildCount; ++nChild )
+ sal_Int64 nChildCount = xParentContext->getAccessibleChildCount();
+ for( sal_Int64 nChild = 0; nChild < nChildCount; ++nChild )
{
xChild.set(xParentContext->getAccessibleChild( nChild ), css::uno::UNO_QUERY);
if ( xMeMyselfAndI.get() == xChild.get() )
@@ -135,7 +134,7 @@ OUString SAL_CALL AccessibleGridControlBase::getAccessibleDescription()
SolarMutexGuard g;
ensureIsAlive();
- return m_aDescription;
+ return m_aTable.GetAccessibleObjectDescription(m_eObjType);
}
OUString SAL_CALL AccessibleGridControlBase::getAccessibleName()
@@ -143,7 +142,7 @@ OUString SAL_CALL AccessibleGridControlBase::getAccessibleName()
SolarMutexGuard g;
ensureIsAlive();
- return m_aName;
+ return m_aTable.GetAccessibleObjectName(m_eObjType, 0, 0);
}
css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL
@@ -156,13 +155,13 @@ AccessibleGridControlBase::getAccessibleRelationSet()
return new utl::AccessibleRelationSetHelper;
}
-css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL
+sal_Int64 SAL_CALL
AccessibleGridControlBase::getAccessibleStateSet()
{
SolarMutexGuard aSolarGuard;
// don't check whether alive -> StateSet may contain DEFUNC
- return implCreateStateSetHelper();
+ return implCreateStateSet();
}
lang::Locale SAL_CALL AccessibleGridControlBase::getLocale()
@@ -261,7 +260,7 @@ sal_Bool SAL_CALL AccessibleGridControlBase::supportsService(
Sequence< OUString > SAL_CALL AccessibleGridControlBase::getSupportedServiceNames()
{
- return { "com.sun.star.accessibility.AccessibleContext" };
+ return { u"com.sun.star.accessibility.AccessibleContext"_ustr };
}
// internal virtual methods
@@ -279,22 +278,21 @@ bool AccessibleGridControlBase::implIsShowing()
return bShowing;
}
-rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleGridControlBase::implCreateStateSetHelper()
+sal_Int64 AccessibleGridControlBase::implCreateStateSet()
{
- rtl::Reference<::utl::AccessibleStateSetHelper>
- pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( isAlive() )
{
// SHOWING done with m_xParent
if( implIsShowing() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
// GridControl fills StateSet with states depending on object type
- m_aTable.FillAccessibleStateSet( *pStateSetHelper, getType() );
+ m_aTable.FillAccessibleStateSet( nStateSet, getType() );
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
- return pStateSetHelper;
+ nStateSet |= AccessibleStateType::DEFUNC;
+ return nStateSet;
}
// internal helper methods
@@ -323,11 +321,11 @@ tools::Rectangle AccessibleGridControlBase::getBoundingBox()
return aRect;
}
-tools::Rectangle AccessibleGridControlBase::getBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleGridControlBase::getBoundingBoxOnScreen()
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
- tools::Rectangle aRect = implGetBoundingBoxOnScreen();
+ AbsoluteScreenPixelRectangle aRect = implGetBoundingBoxOnScreen();
if ( aRect.Left() == 0 && aRect.Top() == 0 && aRect.Right() == 0 && aRect.Bottom() == 0 )
{
SAL_WARN( "accessibility", "rectangle doesn't exist" );
@@ -346,11 +344,7 @@ void AccessibleGridControlBase::commitEvent(
return;
// build an event object
- AccessibleEventObject aEvent;
- aEvent.Source = *this;
- aEvent.EventId = _nEventId;
- aEvent.OldValue = _rOldValue;
- aEvent.NewValue = _rNewValue;
+ AccessibleEventObject aEvent(*this, _nEventId, _rNewValue, _rOldValue, -1);
// let the notifier handle this event
@@ -363,21 +357,21 @@ sal_Int16 SAL_CALL AccessibleGridControlBase::getAccessibleRole()
sal_Int16 nRole = AccessibleRole::UNKNOWN;
switch ( m_eObjType )
{
- case TCTYPE_ROWHEADERCELL:
+ case AccessibleTableControlObjType::ROWHEADERCELL:
nRole = AccessibleRole::ROW_HEADER;
break;
- case TCTYPE_COLUMNHEADERCELL:
+ case AccessibleTableControlObjType::COLUMNHEADERCELL:
nRole = AccessibleRole::COLUMN_HEADER;
break;
- case TCTYPE_COLUMNHEADERBAR:
- case TCTYPE_ROWHEADERBAR:
- case TCTYPE_TABLE:
+ case AccessibleTableControlObjType::COLUMNHEADERBAR:
+ case AccessibleTableControlObjType::ROWHEADERBAR:
+ case AccessibleTableControlObjType::TABLE:
nRole = AccessibleRole::TABLE;
break;
- case TCTYPE_TABLECELL:
+ case AccessibleTableControlObjType::TABLECELL:
nRole = AccessibleRole::TABLE_CELL;
break;
- case TCTYPE_GRIDCONTROL:
+ case AccessibleTableControlObjType::GRIDCONTROL:
nRole = AccessibleRole::PANEL;
break;
}
diff --git a/accessibility/source/extended/AccessibleGridControlHeader.cxx b/accessibility/source/extended/AccessibleGridControlHeader.cxx
index 7c6c2df5925d..c6b278386b9b 100644
--- a/accessibility/source/extended/AccessibleGridControlHeader.cxx
+++ b/accessibility/source/extended/AccessibleGridControlHeader.cxx
@@ -51,7 +51,7 @@ AccessibleGridControlHeader::AccessibleGridControlHeader(
// XAccessibleContext ---------------------------------------------------------
Reference< XAccessible > SAL_CALL
-AccessibleGridControlHeader::getAccessibleChild( sal_Int32 nChildIndex )
+AccessibleGridControlHeader::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
@@ -59,26 +59,30 @@ AccessibleGridControlHeader::getAccessibleChild( sal_Int32 nChildIndex )
throw IndexOutOfBoundsException();
ensureIsAlive();
Reference< XAccessible > xChild;
- if(m_eObjType == vcl::table::TCTYPE_COLUMNHEADERBAR)
+ if (m_eObjType == vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, vcl::table::TCTYPE_COLUMNHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL);
xChild = pColHeaderCell;
}
- else if(m_eObjType == vcl::table::TCTYPE_ROWHEADERBAR)
+ else if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, vcl::table::TCTYPE_ROWHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::ROWHEADERCELL);
xChild = pRowHeaderCell;
}
return xChild;
}
-sal_Int32 SAL_CALL AccessibleGridControlHeader::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleGridControlHeader::getAccessibleIndexInParent()
{
- ensureIsAlive();
- if(m_eObjType == vcl::table::TCTYPE_ROWHEADERBAR && m_aTable.HasColHeader())
- return 1;
- else
- return 0;
+ SolarMutexGuard aSolarGuard;
+
+ ensureIsAlive();
+ if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR && m_aTable.HasColHeader())
+ return 1;
+ else
+ return 0;
}
// XAccessibleComponent -------------------------------------------------------
@@ -157,11 +161,15 @@ sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleColumnSelected( sal_I
{
return false;
}
-//not implemented
+
Reference< XAccessible > SAL_CALL AccessibleGridControlHeader::getAccessibleCellAt(
- sal_Int32 /*nRow*/, sal_Int32 /*nColumn*/ )
+ sal_Int32 nRow, sal_Int32 nColumn)
{
- return nullptr;
+ SolarMutexGuard g;
+
+ ensureIsAlive();
+ ensureIsValidAddress(nRow, nColumn);
+ return implGetChild(nRow, nColumn);
}
// not selectable
sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleSelected(
@@ -174,7 +182,7 @@ sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleSelected(
OUString SAL_CALL AccessibleGridControlHeader::getImplementationName()
{
- return "com.sun.star.accessibility.AccessibleGridControlHeader";
+ return u"com.sun.star.accessibility.AccessibleGridControlHeader"_ustr;
}
Sequence< sal_Int8 > SAL_CALL AccessibleGridControlHeader::getImplementationId()
@@ -187,23 +195,23 @@ Sequence< sal_Int8 > SAL_CALL AccessibleGridControlHeader::getImplementationId()
tools::Rectangle AccessibleGridControlHeader::implGetBoundingBox()
{
vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( pParent ) );
+ tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent ) );
tools::Rectangle aHeaderRect (m_aTable.calcHeaderRect(isColumnBar()));
if(isColumnBar())
- return tools::Rectangle(aGridRect.TopLeft(), Size(aGridRect.getWidth(),aHeaderRect.getHeight()));
+ return tools::Rectangle(aGridRect.TopLeft(), Size(aGridRect.getOpenWidth(),aHeaderRect.getOpenHeight()));
else
- return tools::Rectangle(aGridRect.TopLeft(), Size(aHeaderRect.getWidth(),aGridRect.getHeight()));
+ return tools::Rectangle(aGridRect.TopLeft(), Size(aHeaderRect.getOpenWidth(),aGridRect.getOpenHeight()));
}
-tools::Rectangle AccessibleGridControlHeader::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleGridControlHeader::implGetBoundingBoxOnScreen()
{
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( nullptr ) );
+ AbsoluteScreenPixelRectangle aGridRect( m_aTable.GetWindowExtentsAbsolute() );
tools::Rectangle aHeaderRect (m_aTable.calcHeaderRect(isColumnBar()));
if(isColumnBar())
- return tools::Rectangle(aGridRect.TopLeft(), Size(aGridRect.getWidth(),aHeaderRect.getHeight()));
+ return AbsoluteScreenPixelRectangle(aGridRect.TopLeft(), Size(aGridRect.getOpenWidth(),aHeaderRect.getOpenHeight()));
else
- return tools::Rectangle(aGridRect.TopLeft(), Size(aHeaderRect.getWidth(),aGridRect.getHeight()));
+ return AbsoluteScreenPixelRectangle(aGridRect.TopLeft(), Size(aHeaderRect.getOpenWidth(),aGridRect.getOpenHeight()));
}
// internal helper methods ----------------------------------------------------
@@ -211,14 +219,16 @@ Reference< XAccessible > AccessibleGridControlHeader::implGetChild(
sal_Int32 nRow, sal_uInt32 nColumnPos )
{
Reference< XAccessible > xChild;
- if(m_eObjType == vcl::table::TCTYPE_COLUMNHEADERBAR)
+ if (m_eObjType == vcl::table::AccessibleTableControlObjType::COLUMNHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nColumnPos, this, m_aTable, vcl::table::TCTYPE_COLUMNHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pColHeaderCell = new AccessibleGridControlHeaderCell(nColumnPos, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::COLUMNHEADERCELL);
xChild = pColHeaderCell;
}
- else if(m_eObjType == vcl::table::TCTYPE_ROWHEADERBAR)
+ else if (m_eObjType == vcl::table::AccessibleTableControlObjType::ROWHEADERBAR)
{
- rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nRow, this, m_aTable, vcl::table::TCTYPE_ROWHEADERCELL);
+ rtl::Reference<AccessibleGridControlHeaderCell> pRowHeaderCell = new AccessibleGridControlHeaderCell(nRow, this, m_aTable,
+ vcl::table::AccessibleTableControlObjType::ROWHEADERCELL);
xChild = pRowHeaderCell;
}
return xChild;
diff --git a/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx b/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
index 72333d3405c5..57baebd2df28 100644
--- a/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
+++ b/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
@@ -35,44 +35,44 @@ AccessibleGridControlHeaderCell::AccessibleGridControlHeaderCell(sal_Int32 _nCol
const Reference< XAccessible >& rxParent,
IAccessibleTable& rTable,
AccessibleTableControlObjType eObjType)
-: AccessibleGridControlCell( rxParent, rTable, _nColumnRowId, 0, eObjType)
+: AccessibleGridControlCell(rxParent, rTable,
+ (eObjType == AccessibleTableControlObjType::ROWHEADERCELL) ? _nColumnRowId : 0,
+ (eObjType == AccessibleTableControlObjType::ROWHEADERCELL) ? 0 : _nColumnRowId,
+ eObjType)
, m_nColumnRowId(_nColumnRowId)
{
+ assert(eObjType == AccessibleTableControlObjType::ROWHEADERCELL || eObjType == AccessibleTableControlObjType::COLUMNHEADERCELL);
}
-/** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+/** Return a bitset of states of the current object.
*/
-rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleGridControlHeaderCell::implCreateStateSetHelper()
+sal_Int64 AccessibleGridControlHeaderCell::implCreateStateSet()
{
- rtl::Reference<::utl::AccessibleStateSetHelper>
- pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( isAlive() )
{
// SHOWING done with mxParent
if( implIsShowing() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
- pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+ nStateSet |= AccessibleStateType::VISIBLE;
+ nStateSet |= AccessibleStateType::FOCUSABLE;
+ nStateSet |= AccessibleStateType::TRANSIENT;
+ nStateSet |= AccessibleStateType::SELECTABLE;
if ( m_aTable.IsRowSelected(m_nColumnRowId) )
- pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ nStateSet |= AccessibleStateType::SELECTED;
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
/** @return
The count of visible children.
*/
-sal_Int32 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleChildCount()
{
return 0;
}
@@ -81,7 +81,7 @@ sal_Int32 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleChildCount()
/** @return
The XAccessible interface of the specified child.
*/
-Reference<XAccessible > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleChild( sal_Int32 )
+Reference<XAccessible > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleChild( sal_Int64 )
{
throw IndexOutOfBoundsException();
}
@@ -123,16 +123,16 @@ void SAL_CALL AccessibleGridControlHeaderCell::grabFocus()
*/
OUString SAL_CALL AccessibleGridControlHeaderCell::getImplementationName()
{
- return "com.sun.star.accessibility.AccessibleGridControlHeaderCell";
+ return u"com.sun.star.accessibility.AccessibleGridControlHeaderCell"_ustr;
}
tools::Rectangle AccessibleGridControlHeaderCell::implGetBoundingBox()
{
vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( pParent ) );
+ tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent ) );
sal_Int32 nIndex = getAccessibleIndexInParent();
tools::Rectangle aCellRect;
- if(m_eObjType == TCTYPE_COLUMNHEADERCELL)
+ if (m_eObjType == AccessibleTableControlObjType::COLUMNHEADERCELL)
aCellRect = m_aTable.calcHeaderCellRect(true, nIndex);
else
aCellRect = m_aTable.calcHeaderCellRect(false, nIndex);
@@ -140,25 +140,24 @@ tools::Rectangle AccessibleGridControlHeaderCell::implGetBoundingBox()
}
-tools::Rectangle AccessibleGridControlHeaderCell::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleGridControlHeaderCell::implGetBoundingBoxOnScreen()
{
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( nullptr ) );
+ AbsoluteScreenPixelRectangle aGridRect( m_aTable.GetWindowExtentsAbsolute() );
sal_Int32 nIndex = getAccessibleIndexInParent();
tools::Rectangle aCellRect;
- if(m_eObjType == TCTYPE_COLUMNHEADERCELL)
+ if (m_eObjType == AccessibleTableControlObjType::COLUMNHEADERCELL)
aCellRect = m_aTable.calcHeaderCellRect(true, nIndex);
else
aCellRect = m_aTable.calcHeaderCellRect(false, nIndex);
- return tools::Rectangle(Point(aGridRect.Left()+aCellRect.Left(),aGridRect.Top()+aCellRect.Top()), aCellRect.GetSize());
+ return AbsoluteScreenPixelRectangle(AbsoluteScreenPixelPoint(aGridRect.Left()+aCellRect.Left(),aGridRect.Top()+aCellRect.Top()), aCellRect.GetSize());
}
-sal_Int32 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleIndexInParent()
{
SolarMutexGuard g;
ensureIsAlive();
- sal_Int32 nIndex = m_nColumnRowId;
- return nIndex;
+ return m_nColumnRowId;
}
} // namespace accessibility
diff --git a/accessibility/source/extended/AccessibleGridControlTable.cxx b/accessibility/source/extended/AccessibleGridControlTable.cxx
index 8938ba83a122..3b8f0138267e 100644
--- a/accessibility/source/extended/AccessibleGridControlTable.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTable.cxx
@@ -17,6 +17,9 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleTableModelChange.hpp>
+#include <com/sun/star/accessibility/AccessibleTableModelChangeType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <extended/AccessibleGridControlTable.hxx>
#include <extended/AccessibleGridControlTableCell.hxx>
@@ -41,34 +44,36 @@ namespace accessibility {
AccessibleGridControlTable::AccessibleGridControlTable(
const Reference< XAccessible >& rxParent,
IAccessibleTable& rTable) :
- AccessibleGridControlTableBase( rxParent, rTable, TCTYPE_TABLE )
+ AccessibleGridControlTableBase(rxParent, rTable, AccessibleTableControlObjType::TABLE)
{
}
// XAccessibleContext ---------------------------------------------------------
Reference< XAccessible > SAL_CALL
-AccessibleGridControlTable::getAccessibleChild( sal_Int32 nChildIndex )
+AccessibleGridControlTable::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
ensureIsValidIndex( nChildIndex );
- sal_Int32 nCount = getAccessibleChildCount();
+ sal_Int64 nCount = getAccessibleChildCount();
if(m_aCellVector.empty() || m_aCellVector.size() != static_cast<unsigned>(nCount))
{
+ assert(o3tl::make_unsigned(nCount) < m_aCellVector.max_size());
m_aCellVector.resize(nCount);
}
if(!m_aCellVector[nChildIndex].is())
{
- rtl::Reference<AccessibleGridControlTableCell> pCell = new AccessibleGridControlTableCell(this, m_aTable, nChildIndex/m_aTable.GetColumnCount(), nChildIndex%m_aTable.GetColumnCount());
- m_aCellVector[nChildIndex] = pCell;
+ m_aCellVector[nChildIndex].set(new AccessibleGridControlTableCell(this, m_aTable, nChildIndex/m_aTable.GetColumnCount(), nChildIndex%m_aTable.GetColumnCount()));
}
return m_aCellVector[nChildIndex];
}
-sal_Int32 SAL_CALL AccessibleGridControlTable::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL AccessibleGridControlTable::getAccessibleIndexInParent()
{
+ SolarMutexGuard aSolarGuard;
+
ensureIsAlive();
if(m_aTable.HasRowHeader() && m_aTable.HasColHeader())
return 0;
@@ -181,18 +186,8 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlTable::getAccessibleCellA
ensureIsAlive();
ensureIsValidAddress( nRow, nColumn );
- sal_Int32 nCount = getAccessibleChildCount();
- sal_Int32 nChildIndex = nRow*m_aTable.GetColumnCount() + nColumn;
- if(m_aCellVector.empty() || m_aCellVector.size() != static_cast<unsigned>(nCount))
- {
- m_aCellVector.resize(nCount);
- }
- if(!m_aCellVector[nChildIndex].is())
- {
- rtl::Reference<AccessibleGridControlTableCell> pCell = new AccessibleGridControlTableCell(this, m_aTable, nRow, nColumn);
- m_aCellVector[nChildIndex] = pCell;
- }
- return m_aCellVector[nChildIndex];
+ sal_Int64 nChildIndex = static_cast<sal_Int64>(nRow) * static_cast<sal_Int64>(m_aTable.GetColumnCount()) + nColumn;
+ return getAccessibleChild(nChildIndex);
}
sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleSelected(
@@ -205,7 +200,7 @@ sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleSelected(
//selection of single cells not possible, so if row is selected, the cell will be selected too
return isAccessibleRowSelected(nRow);
}
-void SAL_CALL AccessibleGridControlTable::selectAccessibleChild( sal_Int32 nChildIndex )
+void SAL_CALL AccessibleGridControlTable::selectAccessibleChild( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
@@ -215,7 +210,7 @@ void SAL_CALL AccessibleGridControlTable::selectAccessibleChild( sal_Int32 nChil
sal_Int32 nRow = nChildIndex / nColumns;
m_aTable.SelectRow( nRow, true );
}
-sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleChildSelected( sal_Int32 nChildIndex )
+sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
@@ -242,29 +237,35 @@ void SAL_CALL AccessibleGridControlTable::selectAllAccessibleChildren()
for(tools::Long i=0; i<m_aTable.GetRowCount(); i++)
selectedRowsRange[i]=i;
}
-sal_Int32 SAL_CALL AccessibleGridControlTable::getSelectedAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleGridControlTable::getSelectedAccessibleChildCount()
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
Sequence< sal_Int32 > selectedRows = getSelectedAccessibleRows();
sal_Int32 nColumns = m_aTable.GetColumnCount();
- return selectedRows.getLength()*nColumns;
+ return static_cast<sal_Int64>(selectedRows.getLength()) * static_cast<sal_Int64>(nColumns);
}
Reference< XAccessible > SAL_CALL
-AccessibleGridControlTable::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+AccessibleGridControlTable::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
- if(isAccessibleChildSelected(nSelectedChildIndex))
- return getAccessibleChild(nSelectedChildIndex);
- else
- return nullptr;
+ if (nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount())
+ throw lang::IndexOutOfBoundsException("Invalid index into selection", *this);
+
+ const sal_Int32 nColCount = getAccessibleColumnCount();
+ assert(nColCount > 0 && "Column count non-positive, but child count > 0");
+ const sal_Int32 nIndexInSelectedRowsSequence = nSelectedChildIndex / nColCount;
+ const Sequence<sal_Int32> aSelectedRows = getSelectedAccessibleRows();
+ const sal_Int32 nRowIndex = aSelectedRows[nIndexInSelectedRowsSequence];
+ const sal_Int32 nColIndex = nSelectedChildIndex % nColCount;
+ return getAccessibleCellAt(nRowIndex, nColIndex);
}
//not implemented yet, because only row selection possible
void SAL_CALL AccessibleGridControlTable::deselectAccessibleChild(
- sal_Int32 )
+ sal_Int64 )
{
SolarMutexGuard aSolarGuard;
@@ -292,7 +293,50 @@ void SAL_CALL AccessibleGridControlTable::release() noexcept
OUString SAL_CALL AccessibleGridControlTable::getImplementationName()
{
- return "com.sun.star.accessibility.AccessibleGridControlTable";
+ return u"com.sun.star.accessibility.AccessibleGridControlTable"_ustr;
+}
+
+void AccessibleGridControlTable::dispose()
+{
+ for (rtl::Reference<AccessibleGridControlTableCell>& rxCell : m_aCellVector)
+ {
+ if (rxCell.is())
+ {
+ rxCell->dispose();
+ rxCell.clear();
+ }
+ }
+
+ AccessibleGridControlTableBase::dispose();
+}
+
+void AccessibleGridControlTable::commitEvent(sal_Int16 nEventId, const css::uno::Any& rNewValue,
+ const css::uno::Any& rOldValue)
+{
+ if (nEventId == AccessibleEventId::TABLE_MODEL_CHANGED)
+ {
+ AccessibleTableModelChange aChange;
+ if (rNewValue >>= aChange)
+ {
+ assert(aChange.Type != AccessibleTableModelChangeType::COLUMNS_REMOVED);
+
+ if (aChange.Type == AccessibleTableModelChangeType::ROWS_REMOVED)
+ {
+ int nColCount = m_aTable.GetColumnCount();
+ // check valid index - entries are inserted lazily
+ size_t const nStart = nColCount * aChange.FirstRow;
+ size_t const nEnd = nColCount * aChange.LastRow;
+ if (nStart < m_aCellVector.size())
+ {
+ m_aCellVector.erase(
+ m_aCellVector.begin() + nStart,
+ m_aCellVector.begin() + std::min(m_aCellVector.size(), nEnd));
+ }
+ }
+ }
+ }
+
+ AccessibleGridControlBase::commitEvent(nEventId, rNewValue, rOldValue);
}
// internal virtual methods ---------------------------------------------------
@@ -301,7 +345,7 @@ tools::Rectangle AccessibleGridControlTable::implGetBoundingBox()
{
vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
DBG_ASSERT( pParent, "implGetBoundingBox - missing parent window" );
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( pParent ));
+ tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( *pParent ));
tools::Rectangle aTableRect( m_aTable.calcTableRect() );
tools::Long nX = aGridRect.Left() + aTableRect.Left();
tools::Long nY = aGridRect.Top() + aTableRect.Top();
@@ -311,15 +355,15 @@ tools::Rectangle AccessibleGridControlTable::implGetBoundingBox()
return aTable;
}
-tools::Rectangle AccessibleGridControlTable::implGetBoundingBoxOnScreen()
+AbsoluteScreenPixelRectangle AccessibleGridControlTable::implGetBoundingBoxOnScreen()
{
- tools::Rectangle aGridRect( m_aTable.GetWindowExtentsRelative( nullptr ));
+ tools::Rectangle aGridRect( m_aTable.GetWindowExtentsAbsolute());
tools::Rectangle aTableRect( m_aTable.calcTableRect() );
tools::Long nX = aGridRect.Left() + aTableRect.Left();
tools::Long nY = aGridRect.Top() + aTableRect.Top();
tools::Long nWidth = aGridRect.GetSize().Width()-aTableRect.Left();
tools::Long nHeight = aGridRect.GetSize().Height()-aTableRect.Top();
- tools::Rectangle aTable( Point( nX, nY ), Size( nWidth, nHeight ));
+ AbsoluteScreenPixelRectangle aTable( AbsoluteScreenPixelPoint( nX, nY ), AbsoluteScreenPixelSize( nWidth, nHeight ));
return aTable;
}
// internal helper methods ----------------------------------------------------
@@ -327,7 +371,11 @@ Reference< XAccessibleTable > AccessibleGridControlTable::implGetHeaderBar(
sal_Int32 nChildIndex )
{
Reference< XAccessible > xRet;
- Reference< XAccessibleContext > xContext( m_xParent, uno::UNO_QUERY );
+
+ if (!m_xParent.is())
+ return nullptr;
+
+ Reference<XAccessibleContext> xContext = m_xParent->getAccessibleContext();
if( xContext.is() )
{
try
diff --git a/accessibility/source/extended/AccessibleGridControlTableBase.cxx b/accessibility/source/extended/AccessibleGridControlTableBase.cxx
index 7ed42bc6b830..499a3cec23cb 100644
--- a/accessibility/source/extended/AccessibleGridControlTableBase.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTableBase.cxx
@@ -47,17 +47,17 @@ AccessibleGridControlTableBase::AccessibleGridControlTableBase(
// XAccessibleContext ---------------------------------------------------------
-sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleChildCount()
+sal_Int64 SAL_CALL AccessibleGridControlTableBase::getAccessibleChildCount()
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
- sal_Int32 nChildren = 0;
- if(m_eObjType == TCTYPE_ROWHEADERBAR)
+ sal_Int64 nChildren = 0;
+ if (m_eObjType == AccessibleTableControlObjType::ROWHEADERBAR)
nChildren = m_aTable.GetRowCount();
- else if(m_eObjType == TCTYPE_TABLE)
- nChildren = m_aTable.GetRowCount()*m_aTable.GetColumnCount();
- else if(m_eObjType == TCTYPE_COLUMNHEADERBAR)
+ else if (m_eObjType == AccessibleTableControlObjType::TABLE)
+ nChildren = static_cast<sal_Int64>(m_aTable.GetRowCount()) * static_cast<sal_Int64>(m_aTable.GetColumnCount());
+ else if (m_eObjType == AccessibleTableControlObjType::COLUMNHEADERBAR)
nChildren = m_aTable.GetColumnCount();
return nChildren;
}
@@ -77,6 +77,9 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRowCount()
SolarMutexGuard aSolarGuard;
ensureIsAlive();
+
+ if (m_eObjType == AccessibleTableControlObjType::COLUMNHEADERBAR)
+ return 1;
return m_aTable.GetRowCount();
}
@@ -85,6 +88,9 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnCount()
SolarMutexGuard aSolarGuard;
ensureIsAlive();
+
+ if (m_eObjType == AccessibleTableControlObjType::ROWHEADERBAR)
+ return 1;
return m_aTable.GetColumnCount();
}
@@ -124,17 +130,17 @@ Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleS
return nullptr; // not supported
}
-sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleIndex(
+sal_Int64 SAL_CALL AccessibleGridControlTableBase::getAccessibleIndex(
sal_Int32 nRow, sal_Int32 nColumn )
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
ensureIsValidAddress( nRow, nColumn );
- return nRow * m_aTable.GetColumnCount() + nColumn;
+ return static_cast<sal_Int64>(nRow) * static_cast<sal_Int64>(m_aTable.GetColumnCount()) + nColumn;
}
-sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRow( sal_Int32 nChildIndex )
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRow( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
@@ -143,7 +149,7 @@ sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRow( sal_Int32 n
return implGetRow( nChildIndex );
}
-sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumn( sal_Int32 nChildIndex )
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumn( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
@@ -187,15 +193,15 @@ Sequence< sal_Int8 > SAL_CALL AccessibleGridControlTableBase::getImplementationI
// internal helper methods ----------------------------------------------------
-sal_Int32 AccessibleGridControlTableBase::implGetRow( sal_Int32 nChildIndex ) const
+sal_Int32 AccessibleGridControlTableBase::implGetRow( sal_Int64 nChildIndex )
{
- sal_Int32 nColumns = m_aTable.GetColumnCount();
+ sal_Int32 nColumns = getAccessibleColumnCount();
return nColumns ? (nChildIndex / nColumns) : 0;
}
-sal_Int32 AccessibleGridControlTableBase::implGetColumn( sal_Int32 nChildIndex ) const
+sal_Int32 AccessibleGridControlTableBase::implGetColumn( sal_Int64 nChildIndex )
{
- sal_Int32 nColumns = m_aTable.GetColumnCount();
+ sal_Int32 nColumns = getAccessibleColumnCount();
return nColumns ? (nChildIndex % nColumns) : 0;
}
@@ -210,13 +216,13 @@ void AccessibleGridControlTableBase::implGetSelectedRows( Sequence< sal_Int32 >&
void AccessibleGridControlTableBase::ensureIsValidRow( sal_Int32 nRow )
{
- if( nRow >= m_aTable.GetRowCount() )
+ if (nRow >= getAccessibleRowCount())
throw lang::IndexOutOfBoundsException( "row index is invalid", *this );
}
void AccessibleGridControlTableBase::ensureIsValidColumn( sal_Int32 nColumn )
{
- if( nColumn >= m_aTable.GetColumnCount() )
+ if (nColumn >= getAccessibleColumnCount())
throw lang::IndexOutOfBoundsException( "column index is invalid", *this );
}
@@ -227,9 +233,9 @@ void AccessibleGridControlTableBase::ensureIsValidAddress(
ensureIsValidColumn( nColumn );
}
-void AccessibleGridControlTableBase::ensureIsValidIndex( sal_Int32 nChildIndex )
+void AccessibleGridControlTableBase::ensureIsValidIndex( sal_Int64 nChildIndex )
{
- if( nChildIndex >= m_aTable.GetRowCount()*m_aTable.GetColumnCount() )
+ if (nChildIndex >= static_cast<sal_Int64>(m_aTable.GetRowCount()) * static_cast<sal_Int64>(m_aTable.GetColumnCount()))
throw lang::IndexOutOfBoundsException( "child index is invalid", *this );
}
diff --git a/accessibility/source/extended/AccessibleGridControlTableCell.cxx b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
index cb38725dd225..63bb24304c71 100644
--- a/accessibility/source/extended/AccessibleGridControlTableCell.cxx
+++ b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
@@ -33,14 +33,13 @@ namespace accessibility
// FIXME this is a copy'n'paste from
// source/extended/AccessibleBrowseBoxTableCell.cxx, get rid of that...
/// @throws css::lang::IndexOutOfBoundsException
- void checkIndex_Impl( sal_Int32 _nIndex, const OUString& _sText )
+ void checkIndex_Impl( sal_Int32 _nIndex, std::u16string_view _sText )
{
- if ( _nIndex >= _sText.getLength() )
+ if ( _nIndex >= static_cast<sal_Int32>(_sText.size()) )
throw css::lang::IndexOutOfBoundsException();
}
}
using namespace ::com::sun::star::lang;
- using namespace utl;
using namespace comphelper;
using namespace ::com::sun::star::uno;
using ::com::sun::star::accessibility::XAccessible;
@@ -59,16 +58,10 @@ namespace accessibility
,m_nRowPos( _nRowPos )
,m_nColPos( _nColPos )
{
- // set accessible name here, because for that we need the position of the cell
- // and so the base class isn't capable of doing this
- OUString aAccName;
- if(_eType == TCTYPE_TABLECELL)
- aAccName = _rTable.GetAccessibleObjectName( TCTYPE_TABLECELL, _nRowPos, _nColPos );
- else if(_eType == TCTYPE_ROWHEADERCELL)
- aAccName = _rTable.GetAccessibleObjectName( TCTYPE_ROWHEADERCELL, _nRowPos, 0 );
- else if(_eType == TCTYPE_COLUMNHEADERCELL)
- aAccName = _rTable.GetAccessibleObjectName( TCTYPE_COLUMNHEADERCELL, 0, _nRowPos );
- implSetName( aAccName );
+ assert(((m_eObjType == AccessibleTableControlObjType::TABLECELL)
+ || ((m_eObjType == AccessibleTableControlObjType::ROWHEADERCELL) && _nColPos == 0)
+ || ((m_eObjType == AccessibleTableControlObjType::COLUMNHEADERCELL) && _nRowPos == 0))
+ && "Unhandled table cell type");
}
void SAL_CALL AccessibleGridControlCell::grabFocus()
@@ -78,6 +71,14 @@ namespace accessibility
m_aTable.GoToCell( m_nColPos, m_nRowPos );
}
+ OUString SAL_CALL AccessibleGridControlCell::getAccessibleName()
+ {
+ SolarMutexGuard g;
+
+ ensureIsAlive();
+ return m_aTable.GetAccessibleObjectName(m_eObjType, m_nRowPos, m_nColPos);
+ }
+
// implementation of a table cell
OUString AccessibleGridControlTableCell::implGetText()
{
@@ -101,7 +102,7 @@ namespace accessibility
::vcl::table::IAccessibleTable& _rTable,
sal_Int32 _nRowPos,
sal_uInt16 _nColPos)
- :AccessibleGridControlCell( _rxParent, _rTable, _nRowPos, _nColPos, TCTYPE_TABLECELL )
+ :AccessibleGridControlCell(_rxParent, _rTable, _nRowPos, _nColPos, AccessibleTableControlObjType::TABLECELL)
{
}
@@ -154,42 +155,39 @@ namespace accessibility
*/
OUString SAL_CALL AccessibleGridControlTableCell::getImplementationName()
{
- return "com.sun.star.accessibility.AccessibleGridControlTableCell";
+ return u"com.sun.star.accessibility.AccessibleGridControlTableCell"_ustr;
}
/** @return The count of visible children. */
- sal_Int32 SAL_CALL AccessibleGridControlTableCell::getAccessibleChildCount()
+ sal_Int64 SAL_CALL AccessibleGridControlTableCell::getAccessibleChildCount()
{
return 0;
}
/** @return The css::accessibility::XAccessible interface of the specified child. */
- css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleGridControlTableCell::getAccessibleChild( sal_Int32 )
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL AccessibleGridControlTableCell::getAccessibleChild( sal_Int64 )
{
throw css::lang::IndexOutOfBoundsException();
}
- /** Creates a new AccessibleStateSetHelper and fills it with states of the
- current object.
- @return
- A filled AccessibleStateSetHelper.
+ /** Return a bitset of states of the current object.
*/
- rtl::Reference<::utl::AccessibleStateSetHelper> AccessibleGridControlTableCell::implCreateStateSetHelper()
+ sal_Int64 AccessibleGridControlTableCell::implCreateStateSet()
{
- rtl::Reference<::utl::AccessibleStateSetHelper> pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if( isAlive() )
{
// SHOWING done with mxParent
if( implIsShowing() )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
- m_aTable.FillAccessibleStateSetForCell( *pStateSetHelper, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
+ m_aTable.FillAccessibleStateSetForCell( nStateSet, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
@@ -206,13 +204,13 @@ namespace accessibility
// css::accessibility::XAccessibleContext
- sal_Int32 SAL_CALL AccessibleGridControlTableCell::getAccessibleIndexInParent()
+ sal_Int64 SAL_CALL AccessibleGridControlTableCell::getAccessibleIndexInParent()
{
SolarMutexGuard aSolarGuard;
ensureIsAlive();
- return ( getRowPos() * m_aTable.GetColumnCount() ) + getColumnPos();
+ return (static_cast<sal_Int64>(getRowPos()) * static_cast<sal_Int64>(m_aTable.GetColumnCount())) + getColumnPos();
}
sal_Int32 SAL_CALL AccessibleGridControlTableCell::getCaretPosition( )
@@ -254,20 +252,14 @@ namespace accessibility
OUString SAL_CALL AccessibleGridControlTableCell::getSelectedText( )
{
- SolarMutexGuard aSolarGuard;
-
return OUString();
}
sal_Int32 SAL_CALL AccessibleGridControlTableCell::getSelectionStart( )
{
- SolarMutexGuard aSolarGuard;
-
return 0;
}
sal_Int32 SAL_CALL AccessibleGridControlTableCell::getSelectionEnd( )
{
- SolarMutexGuard aSolarGuard;
-
return 0;
}
sal_Bool SAL_CALL AccessibleGridControlTableCell::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
@@ -329,8 +321,8 @@ namespace accessibility
{
vcl::Window* pParent = m_aTable.GetAccessibleParentWindow();
DBG_ASSERT( pParent, "implGetBoundingBox - missing parent window" );
- tools::Rectangle aGridRect = m_aTable.GetWindowExtentsRelative( pParent );
- sal_Int32 nIndex = getAccessibleIndexInParent();
+ tools::Rectangle aGridRect = m_aTable.GetWindowExtentsRelative( *pParent );
+ sal_Int64 nIndex = getAccessibleIndexInParent();
tools::Rectangle aCellRect = m_aTable.calcCellRect(nIndex%m_aTable.GetColumnCount(), nIndex/m_aTable.GetColumnCount());
tools::Long nX = aGridRect.Left() + aCellRect.Left();
tools::Long nY = aGridRect.Top() + aCellRect.Top();
@@ -338,14 +330,14 @@ namespace accessibility
return aCell;
}
- tools::Rectangle AccessibleGridControlTableCell::implGetBoundingBoxOnScreen()
+ AbsoluteScreenPixelRectangle AccessibleGridControlTableCell::implGetBoundingBoxOnScreen()
{
- tools::Rectangle aGridRect = m_aTable.GetWindowExtentsRelative( nullptr );
- sal_Int32 nIndex = getAccessibleIndexInParent();
+ AbsoluteScreenPixelRectangle aGridRect = m_aTable.GetWindowExtentsAbsolute();
+ sal_Int64 nIndex = getAccessibleIndexInParent();
tools::Rectangle aCellRect = m_aTable.calcCellRect(nIndex%m_aTable.GetColumnCount(), nIndex/m_aTable.GetColumnCount());
tools::Long nX = aGridRect.Left() + aCellRect.Left();
tools::Long nY = aGridRect.Top() + aCellRect.Top();
- tools::Rectangle aCell( Point( nX, nY ), aCellRect.GetSize());
+ AbsoluteScreenPixelRectangle aCell( AbsoluteScreenPixelPoint( nX, nY ), aCellRect.GetSize());
return aCell;
}
}
diff --git a/accessibility/source/extended/AccessibleIconView.cxx b/accessibility/source/extended/AccessibleIconView.cxx
new file mode 100644
index 000000000000..6bc5c99e9243
--- /dev/null
+++ b/accessibility/source/extended/AccessibleIconView.cxx
@@ -0,0 +1,53 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+
+#include <toolkit/helper/convert.hxx>
+#include <vcl/event.hxx>
+
+#include <extended/AccessibleIconView.hxx>
+
+namespace accessibility
+{
+AccessibleIconView::AccessibleIconView(
+ SvTreeListBox const& _rListBox,
+ const css::uno::Reference<css::accessibility::XAccessible>& _xParent)
+ : AccessibleListBox(_rListBox, _xParent)
+{
+}
+
+void AccessibleIconView::ProcessWindowEvent(const VclWindowEvent& rVclWindowEvent)
+{
+ if (!isAlive())
+ return;
+
+ switch (rVclWindowEvent.GetId())
+ {
+ case VclEventId::WindowMouseMove:
+ if (MouseEvent* pMouseEvt = static_cast<MouseEvent*>(rVclWindowEvent.GetData()))
+ {
+ if (auto xChild = getAccessibleAtPoint(AWTPoint(pMouseEvt->GetPosPixel())))
+ {
+ // Allow announcing the element on mouse hover
+ css::uno::Any aNew(xChild);
+ NotifyAccessibleEvent(
+ css::accessibility::AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, {}, aNew);
+ }
+ }
+ break;
+ default:
+ AccessibleListBox::ProcessWindowEvent(rVclWindowEvent);
+ }
+}
+} // namespace accessibility
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/accessibility/source/extended/accessiblebrowseboxcell.cxx b/accessibility/source/extended/accessiblebrowseboxcell.cxx
index 4996b7eedcd2..07c62001418b 100644
--- a/accessibility/source/extended/accessiblebrowseboxcell.cxx
+++ b/accessibility/source/extended/accessiblebrowseboxcell.cxx
@@ -57,12 +57,12 @@ namespace accessibility
::tools::Rectangle AccessibleBrowseBoxCell::implGetBoundingBox()
{
- return mpBrowseBox->GetFieldRectPixelAbs( m_nRowPos, m_nColPos, false, false );
+ return mpBrowseBox->GetFieldRectPixel( m_nRowPos, m_nColPos, false, /*bOnScreen*/false );
}
- ::tools::Rectangle AccessibleBrowseBoxCell::implGetBoundingBoxOnScreen()
+ AbsoluteScreenPixelRectangle AccessibleBrowseBoxCell::implGetBoundingBoxOnScreen()
{
- return mpBrowseBox->GetFieldRectPixelAbs( m_nRowPos, m_nColPos, false );
+ return AbsoluteScreenPixelRectangle(mpBrowseBox->GetFieldRectPixel( m_nRowPos, m_nColPos, false, /*bOnScreen*/true ));
}
} // namespace accessibility
diff --git a/accessibility/source/extended/accessibleeditbrowseboxcell.cxx b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
index a582defcadd6..a61e86a4e2d7 100644
--- a/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
+++ b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
@@ -22,7 +22,8 @@
#include <extended/accessibleeditbrowseboxcell.hxx>
#include <comphelper/processfactory.hxx>
-#include <tools/diagnose_ex.h>
+#include <utility>
+#include <comphelper/diagnose_ex.hxx>
namespace accessibility
{
@@ -57,7 +58,7 @@ namespace accessibility
OUString SAL_CALL EditBrowseBoxTableCell::getImplementationName()
{
- return "com.sun.star.comp.svtools.TableCellProxy";
+ return u"com.sun.star.comp.svtools.TableCellProxy"_ustr;
}
IMPLEMENT_FORWARD_XINTERFACE2( EditBrowseBoxTableCell, AccessibleBrowseBoxCell, OAccessibleContextWrapperHelper )
@@ -122,7 +123,7 @@ namespace accessibility
return baseGetAccessibleRelationSet( );
}
- css::uno::Reference<css::accessibility::XAccessibleStateSet > SAL_CALL EditBrowseBoxTableCell::getAccessibleStateSet()
+ sal_Int64 SAL_CALL EditBrowseBoxTableCell::getAccessibleStateSet()
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -131,7 +132,7 @@ namespace accessibility
// TODO: shouldn't we add an ACTIVE here? Isn't the EditBrowseBoxTableCell always ACTIVE?
}
- sal_Int32 SAL_CALL EditBrowseBoxTableCell::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL EditBrowseBoxTableCell::getAccessibleChildCount( )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -139,7 +140,7 @@ namespace accessibility
return baseGetAccessibleChildCount();
}
- css::uno::Reference< css::accessibility::XAccessible > SAL_CALL EditBrowseBoxTableCell::getAccessibleChild( sal_Int32 i )
+ css::uno::Reference< css::accessibility::XAccessible > SAL_CALL EditBrowseBoxTableCell::getAccessibleChild( sal_Int64 i )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -180,12 +181,12 @@ namespace accessibility
// EditBrowseBoxTableCell
EditBrowseBoxTableCellAccess::EditBrowseBoxTableCellAccess(
- const css::uno::Reference< css::accessibility::XAccessible >& _rxParent, const css::uno::Reference< css::accessibility::XAccessible >& _rxControlAccessible,
- const css::uno::Reference< css::awt::XWindow >& _rxFocusWindow,
+ css::uno::Reference< css::accessibility::XAccessible > _xParent, css::uno::Reference< css::accessibility::XAccessible > _xControlAccessible,
+ css::uno::Reference< css::awt::XWindow > _xFocusWindow,
::vcl::IAccessibleTableProvider& _rBrowseBox, sal_Int32 _nRowPos, sal_uInt16 _nColPos )
- :m_xParent( _rxParent )
- ,m_xControlAccessible( _rxControlAccessible )
- ,m_xFocusWindow( _rxFocusWindow )
+ :m_xParent(std::move( _xParent ))
+ ,m_xControlAccessible(std::move( _xControlAccessible ))
+ ,m_xFocusWindow(std::move( _xFocusWindow ))
,m_pBrowseBox( &_rBrowseBox )
,m_nRowPos( _nRowPos )
,m_nColPos( _nColPos )
diff --git a/accessibility/source/extended/accessibleiconchoicectrl.cxx b/accessibility/source/extended/accessibleiconchoicectrl.cxx
index 9ad90c3879eb..33b15d5f54c8 100644
--- a/accessibility/source/extended/accessibleiconchoicectrl.cxx
+++ b/accessibility/source/extended/accessibleiconchoicectrl.cxx
@@ -23,7 +23,7 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <vcl/toolkit/ivctrl.hxx>
#include <cppuhelper/supportsservice.hxx>
@@ -43,14 +43,11 @@ namespace accessibility
// Ctor() and Dtor()
AccessibleIconChoiceCtrl::AccessibleIconChoiceCtrl( SvtIconChoiceCtrl const & _rIconCtrl, const Reference< XAccessible >& _xParent ) :
- VCLXAccessibleComponent( _rIconCtrl.GetWindowPeer() ),
+ ImplInheritanceHelper( _rIconCtrl.GetWindowPeer() ),
m_xParent ( _xParent )
{
}
- IMPLEMENT_FORWARD_XINTERFACE2(AccessibleIconChoiceCtrl, VCLXAccessibleComponent, AccessibleIconChoiceCtrl_BASE)
- IMPLEMENT_FORWARD_XTYPEPROVIDER2(AccessibleIconChoiceCtrl, VCLXAccessibleComponent, AccessibleIconChoiceCtrl_BASE)
-
void AccessibleIconChoiceCtrl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
{
if ( !isAlive() )
@@ -123,14 +120,14 @@ namespace accessibility
OUString SAL_CALL AccessibleIconChoiceCtrl::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleIconChoiceControl";
+ return u"com.sun.star.comp.svtools.AccessibleIconChoiceControl"_ustr;
}
Sequence< OUString > SAL_CALL AccessibleIconChoiceCtrl::getSupportedServiceNames()
{
- return {"com.sun.star.accessibility.AccessibleContext",
- "com.sun.star.accessibility.AccessibleComponent",
- "com.sun.star.awt.AccessibleIconChoiceControl"};
+ return {u"com.sun.star.accessibility.AccessibleContext"_ustr,
+ u"com.sun.star.accessibility.AccessibleComponent"_ustr,
+ u"com.sun.star.awt.AccessibleIconChoiceControl"_ustr};
}
sal_Bool SAL_CALL AccessibleIconChoiceCtrl::supportsService( const OUString& _rServiceName )
@@ -148,24 +145,26 @@ namespace accessibility
// XAccessibleContext
- sal_Int32 SAL_CALL AccessibleIconChoiceCtrl::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleIconChoiceCtrl::getAccessibleChildCount( )
{
::comphelper::OExternalLockGuard aGuard( this );
return getCtrl()->GetEntryCount();
}
- Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrl::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrl::getAccessibleChild( sal_Int64 i )
{
::comphelper::OExternalLockGuard aGuard( this );
+ if (i < 0 || i >= getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
VclPtr<SvtIconChoiceCtrl> pCtrl = getCtrl();
SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry(i);
if ( !pEntry )
throw RuntimeException("getAccessibleChild: Entry "
+ OUString::number(i) + " not found",
- static_cast<css::lang::XTypeProvider*>(
- static_cast<VCLXAccessibleComponent_BASE*>(this)));
+ getXWeak());
return new AccessibleIconChoiceCtrlEntry( *pCtrl, i, this );
}
@@ -203,10 +202,13 @@ namespace accessibility
// XAccessibleSelection
- void SAL_CALL AccessibleIconChoiceCtrl::selectAccessibleChild( sal_Int32 nChildIndex )
+ void SAL_CALL AccessibleIconChoiceCtrl::selectAccessibleChild( sal_Int64 nChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
+ if (nChildIndex < 0 || nChildIndex >= getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
VclPtr<SvtIconChoiceCtrl> pCtrl = getCtrl();
SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( nChildIndex );
if ( !pEntry )
@@ -215,10 +217,13 @@ namespace accessibility
pCtrl->SetCursor( pEntry );
}
- sal_Bool SAL_CALL AccessibleIconChoiceCtrl::isAccessibleChildSelected( sal_Int32 nChildIndex )
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrl::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
+ if (nChildIndex < 0 || nChildIndex >= getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
VclPtr<SvtIconChoiceCtrl> pCtrl = getCtrl();
SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( nChildIndex );
if ( !pEntry )
@@ -247,11 +252,11 @@ namespace accessibility
}
}
- sal_Int32 SAL_CALL AccessibleIconChoiceCtrl::getSelectedAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleIconChoiceCtrl::getSelectedAccessibleChildCount( )
{
::comphelper::OExternalLockGuard aGuard( this );
- sal_Int32 nSelCount = 0;
+ sal_Int64 nSelCount = 0;
VclPtr<SvtIconChoiceCtrl> pCtrl = getCtrl();
sal_Int32 nCount = pCtrl->GetEntryCount();
for ( sal_Int32 i = 0; i < nCount; ++i )
@@ -264,7 +269,7 @@ namespace accessibility
return nSelCount;
}
- Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrl::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrl::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
@@ -291,7 +296,7 @@ namespace accessibility
return xChild;
}
- void SAL_CALL AccessibleIconChoiceCtrl::deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
+ void SAL_CALL AccessibleIconChoiceCtrl::deselectAccessibleChild( sal_Int64 nSelectedChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
@@ -318,14 +323,14 @@ namespace accessibility
pCtrl->SetNoSelection();
}
- void AccessibleIconChoiceCtrl::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ void AccessibleIconChoiceCtrl::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
if ( isAlive() )
{
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
- rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS );
- rStateSet.AddState( AccessibleStateType::SELECTABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
+ rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
+ rStateSet |= AccessibleStateType::SELECTABLE;
}
}
diff --git a/accessibility/source/extended/accessibleiconchoicectrlentry.cxx b/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
index 5a995a94fc91..edab950a855e 100644
--- a/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
+++ b/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
@@ -26,7 +26,6 @@
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <toolkit/helper/convert.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <svtools/stringtransfer.hxx>
@@ -109,19 +108,15 @@ namespace accessibility
return aRect;
}
- tools::Rectangle AccessibleIconChoiceCtrlEntry::GetBoundingBoxOnScreen_Impl() const
+ AbsoluteScreenPixelRectangle AccessibleIconChoiceCtrlEntry::GetBoundingBoxOnScreen_Impl() const
{
- tools::Rectangle aRect;
SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry( m_nIndex );
- if ( pEntry )
- {
- aRect = m_pIconCtrl->GetBoundingBox( pEntry );
- Point aTopLeft = aRect.TopLeft();
- aTopLeft += m_pIconCtrl->GetWindowExtentsRelative( nullptr ).TopLeft();
- aRect = tools::Rectangle( aTopLeft, aRect.GetSize() );
- }
-
- return aRect;
+ if ( !pEntry )
+ return AbsoluteScreenPixelRectangle();
+ tools::Rectangle aRect = m_pIconCtrl->GetBoundingBox( pEntry );
+ AbsoluteScreenPixelPoint aTopLeft = m_pIconCtrl->GetWindowExtentsAbsolute().TopLeft();
+ aTopLeft += AbsoluteScreenPixelPoint(aRect.TopLeft());
+ return AbsoluteScreenPixelRectangle( aTopLeft, aRect.GetSize() );
}
bool AccessibleIconChoiceCtrlEntry::IsAlive_Impl() const
@@ -153,7 +148,7 @@ namespace accessibility
return GetBoundingBox_Impl();
}
- tools::Rectangle AccessibleIconChoiceCtrlEntry::GetBoundingBoxOnScreen()
+ AbsoluteScreenPixelRectangle AccessibleIconChoiceCtrlEntry::GetBoundingBoxOnScreen()
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
@@ -170,11 +165,10 @@ namespace accessibility
OUString AccessibleIconChoiceCtrlEntry::implGetText()
{
- OUString sRet;
SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry( m_nIndex );
- if ( pEntry )
- sRet = pEntry->GetDisplayText();
- return sRet;
+ if (pEntry)
+ return pEntry->GetDisplayText();
+ return OUString();
}
Locale AccessibleIconChoiceCtrlEntry::implGetLocale()
@@ -221,14 +215,14 @@ namespace accessibility
OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleIconChoiceControlEntry";
+ return u"com.sun.star.comp.svtools.AccessibleIconChoiceControlEntry"_ustr;
}
Sequence< OUString > SAL_CALL AccessibleIconChoiceCtrlEntry::getSupportedServiceNames()
{
- return {"com.sun.star.accessibility.AccessibleContext",
- "com.sun.star.accessibility.AccessibleComponent",
- "com.sun.star.awt.AccessibleIconChoiceControlEntry"};
+ return {u"com.sun.star.accessibility.AccessibleContext"_ustr,
+ u"com.sun.star.accessibility.AccessibleComponent"_ustr,
+ u"com.sun.star.awt.AccessibleIconChoiceControlEntry"_ustr};
}
sal_Bool SAL_CALL AccessibleIconChoiceCtrlEntry::supportsService( const OUString& _rServiceName )
@@ -246,12 +240,12 @@ namespace accessibility
// XAccessibleContext
- sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleChildCount( )
{
return 0; // no children
}
- Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleChild( sal_Int32 )
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleChild( sal_Int64 )
{
throw IndexOutOfBoundsException();
}
@@ -264,10 +258,8 @@ namespace accessibility
return m_xParent;
}
- sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleIndexInParent( )
+ sal_Int64 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleIndexInParent( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
-
return m_nIndex;
}
@@ -296,32 +288,32 @@ namespace accessibility
return new utl::AccessibleRelationSetHelper;
}
- Reference< XAccessibleStateSet > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleStateSet( )
+ sal_Int64 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleStateSet( )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( IsAlive_Impl() )
{
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+ nStateSet |= AccessibleStateType::TRANSIENT;
+ nStateSet |= AccessibleStateType::SELECTABLE;
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::SENSITIVE;
if ( IsShowing_Impl() )
{
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ nStateSet |= AccessibleStateType::SHOWING;
+ nStateSet |= AccessibleStateType::VISIBLE;
}
if ( m_pIconCtrl && m_pIconCtrl->GetCursor() == m_pIconCtrl->GetEntry( m_nIndex ) )
- pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ nStateSet |= AccessibleStateType::SELECTED;
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
Locale SAL_CALL AccessibleIconChoiceCtrlEntry::getLocale( )
@@ -627,8 +619,6 @@ namespace accessibility
sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleActionCount( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
-
// three actions supported
return ACCESSIBLE_ACTION_COUNT;
}
@@ -666,8 +656,6 @@ namespace accessibility
Reference< XAccessibleKeyBinding > AccessibleIconChoiceCtrlEntry::getAccessibleActionKeyBinding( sal_Int32 nIndex )
{
- ::osl::MutexGuard aGuard( m_aMutex );
-
Reference< XAccessibleKeyBinding > xRet;
checkActionIndex_Impl( nIndex );
// ... which key?
diff --git a/accessibility/source/extended/accessiblelistbox.cxx b/accessibility/source/extended/accessiblelistbox.cxx
index 462f28664086..fb800403a302 100644
--- a/accessibility/source/extended/accessiblelistbox.cxx
+++ b/accessibility/source/extended/accessiblelistbox.cxx
@@ -25,8 +25,8 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
namespace accessibility
@@ -45,7 +45,7 @@ namespace accessibility
AccessibleListBox::AccessibleListBox( SvTreeListBox const & _rListBox, const Reference< XAccessible >& _xParent ) :
- VCLXAccessibleComponent( _rListBox.GetWindowPeer() ),
+ ImplInheritanceHelper( _rListBox.GetWindowPeer() ),
m_xParent( _xParent )
{
}
@@ -59,8 +59,6 @@ namespace accessibility
dispose();
}
}
- IMPLEMENT_FORWARD_XINTERFACE2(AccessibleListBox, VCLXAccessibleComponent, ImplHelper2)
- IMPLEMENT_FORWARD_XTYPEPROVIDER2(AccessibleListBox, VCLXAccessibleComponent, ImplHelper2)
void AccessibleListBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
{
@@ -104,10 +102,9 @@ namespace accessibility
{
if ( getListBox() && getListBox()->HasFocus() )
{
- AccessibleListBoxEntry* pEntry =static_cast< AccessibleListBoxEntry* >(m_xFocusedChild.get());
- if (pEntry)
+ if (m_xFocusedEntry.is())
{
- pEntry->NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ m_xFocusedEntry->NotifyAccessibleEvent(AccessibleEventId::SELECTION_CHANGED, Any(), Any());
}
}
}
@@ -121,20 +118,18 @@ namespace accessibility
SvTreeListEntry* pEntry = static_cast< SvTreeListEntry* >( rVclWindowEvent.GetData() );
if ( pEntry )
{
- AccessibleListBoxEntry* pEntryFocus =static_cast< AccessibleListBoxEntry* >(m_xFocusedChild.get());
- if (pEntryFocus && pEntryFocus->GetSvLBoxEntry() == pEntry)
+ if (m_xFocusedEntry.is() && m_xFocusedEntry->GetSvLBoxEntry() == pEntry)
{
- aNewValue <<= m_xFocusedChild;
+ aNewValue <<= uno::Reference<XAccessible>(m_xFocusedEntry);;
NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, uno::Any(), aNewValue );
return ;
}
-
uno::Any aOldValue;
- aOldValue <<= m_xFocusedChild;
+ aOldValue <<= uno::Reference<XAccessible>(m_xFocusedEntry);;
- m_xFocusedChild.set(implGetAccessible(*pEntry));
+ m_xFocusedEntry = implGetAccessible(*pEntry);
- aNewValue <<= m_xFocusedChild;
+ aNewValue <<= uno::Reference<XAccessible>(m_xFocusedEntry);
NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
}
else
@@ -204,8 +199,7 @@ namespace accessibility
if ( !pEntry )
pEntry = getListBox()->GetCurEntry();
- AccessibleListBoxEntry* pEntryFocus =static_cast< AccessibleListBoxEntry* >(m_xFocusedChild.get());
- if (pEntryFocus && pEntry && pEntry != pEntryFocus->GetSvLBoxEntry())
+ if (m_xFocusedEntry.is() && pEntry && pEntry != m_xFocusedEntry->GetSvLBoxEntry())
{
AccessibleListBoxEntry *const pAccCurOptionEntry = implGetAccessible(*pEntry).get();
uno::Any aNewValue;
@@ -216,7 +210,7 @@ namespace accessibility
}
else
{
- return pEntryFocus;
+ return m_xFocusedEntry.get();
}
}
@@ -242,25 +236,6 @@ namespace accessibility
}
}
-
- void AccessibleListBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent )
- {
- switch ( rVclWindowEvent.GetId() )
- {
- case VclEventId::WindowShow:
- case VclEventId::WindowHide:
- {
- }
- break;
- default:
- {
- VCLXAccessibleComponent::ProcessWindowChildEvent( rVclWindowEvent );
- }
- break;
- }
- }
-
-
// XComponent
void SAL_CALL AccessibleListBox::disposing()
@@ -276,14 +251,14 @@ namespace accessibility
OUString SAL_CALL AccessibleListBox::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleTreeListBox";
+ return u"com.sun.star.comp.svtools.AccessibleTreeListBox"_ustr;
}
Sequence< OUString > SAL_CALL AccessibleListBox::getSupportedServiceNames()
{
- return {"com.sun.star.accessibility.AccessibleContext",
- "com.sun.star.accessibility.AccessibleComponent",
- "com.sun.star.awt.AccessibleTreeListBox"};
+ return {u"com.sun.star.accessibility.AccessibleContext"_ustr,
+ u"com.sun.star.accessibility.AccessibleComponent"_ustr,
+ u"com.sun.star.awt.AccessibleTreeListBox"_ustr};
}
sal_Bool SAL_CALL AccessibleListBox::supportsService( const OUString& _rServiceName )
@@ -301,7 +276,7 @@ namespace accessibility
// XAccessibleContext
- sal_Int32 SAL_CALL AccessibleListBox::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleListBox::getAccessibleChildCount( )
{
::comphelper::OExternalLockGuard aGuard( this );
@@ -313,7 +288,7 @@ namespace accessibility
return nCount;
}
- Reference< XAccessible > SAL_CALL AccessibleListBox::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > SAL_CALL AccessibleListBox::getAccessibleChild( sal_Int64 i )
{
::comphelper::OExternalLockGuard aGuard( this );
@@ -395,7 +370,7 @@ namespace accessibility
// XAccessibleSelection
- void SAL_CALL AccessibleListBox::selectAccessibleChild( sal_Int32 nChildIndex )
+ void SAL_CALL AccessibleListBox::selectAccessibleChild( sal_Int64 nChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
@@ -406,10 +381,13 @@ namespace accessibility
getListBox()->Select( pEntry );
}
- sal_Bool SAL_CALL AccessibleListBox::isAccessibleChildSelected( sal_Int32 nChildIndex )
+ sal_Bool SAL_CALL AccessibleListBox::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
+ if (nChildIndex < 0 || nChildIndex >= getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
SvTreeListEntry* pEntry = getListBox()->GetEntry( nChildIndex );
if ( !pEntry )
throw IndexOutOfBoundsException();
@@ -443,14 +421,14 @@ namespace accessibility
}
}
- sal_Int32 SAL_CALL AccessibleListBox::getSelectedAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleListBox::getSelectedAccessibleChildCount( )
{
::comphelper::OExternalLockGuard aGuard( this );
return getListBox()->GetSelectionCount();
}
- Reference< XAccessible > SAL_CALL AccessibleListBox::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ Reference< XAccessible > SAL_CALL AccessibleListBox::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
@@ -458,7 +436,7 @@ namespace accessibility
throw IndexOutOfBoundsException();
Reference< XAccessible > xChild;
- sal_Int32 nSelCount= 0;
+ sal_Int64 nSelCount= 0;
sal_Int32 nCount = getListBox()->GetLevelChildCount( nullptr );
for ( sal_Int32 i = 0; i < nCount; ++i )
{
@@ -479,7 +457,7 @@ namespace accessibility
return xChild;
}
- void SAL_CALL AccessibleListBox::deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
+ void SAL_CALL AccessibleListBox::deselectAccessibleChild( sal_Int64 nSelectedChildIndex )
{
::comphelper::OExternalLockGuard aGuard( this );
@@ -490,15 +468,15 @@ namespace accessibility
getListBox()->Select( pEntry, false );
}
- void AccessibleListBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ void AccessibleListBox::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
if ( getListBox() && isAlive() )
{
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
- rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
+ rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
if ( getListBox()->GetSelectionMode() == SelectionMode::Multiple )
- rStateSet.AddState( AccessibleStateType::MULTI_SELECTABLE );
+ rStateSet |= AccessibleStateType::MULTI_SELECTABLE;
}
}
diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx b/accessibility/source/extended/accessiblelistboxentry.cxx
index be1d98650324..a843b938b9a3 100644
--- a/accessibility/source/extended/accessiblelistboxentry.cxx
+++ b/accessibility/source/extended/accessiblelistboxentry.cxx
@@ -23,6 +23,7 @@
#include <svtools/stringtransfer.hxx>
#include <vcl/toolkit/svlbitm.hxx>
#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
@@ -31,27 +32,12 @@
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <toolkit/helper/convert.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <comphelper/accessibleeventnotifier.hxx>
#include <helper/accresmgr.hxx>
#include <strings.hrc>
-#define ACCESSIBLE_ACTION_COUNT 1
-
-namespace
-{
- /// @throws css::lang::IndexOutOfBoundsException
- void checkActionIndex_Impl( sal_Int32 _nIndex )
- {
- if ( _nIndex < 0 || _nIndex >= ACCESSIBLE_ACTION_COUNT )
- // only three actions
- throw css::lang::IndexOutOfBoundsException();
- }
-}
-
-
namespace accessibility
{
// class AccessibleListBoxEntry -----------------------------------------------------
@@ -74,7 +60,6 @@ namespace accessibility
, m_pSvLBoxEntry(&rEntry)
, m_nClientId( 0 )
, m_wListBox(&rListBox)
- , m_rListBox(rListBox)
{
m_pTreeListBox->AddEventListener( LINK( this, AccessibleListBoxEntry, WindowEventListener ) );
_rListBox.FillEntryPath( m_pSvLBoxEntry, m_aEntryPath );
@@ -100,6 +85,22 @@ namespace accessibility
switch ( rEvent.GetId() )
{
+ case VclEventId::CheckboxToggle:
+ {
+ // assert this object is represented as a checkbox on a11y layer (LABEL role is used for
+ // SvButtonState::Tristate, s. AccessibleListBoxEntry::getAccessibleRole)
+ assert(getAccessibleRole() == AccessibleRole::CHECK_BOX
+ || getAccessibleRole() == AccessibleRole::LABEL);
+ Any aOldValue;
+ Any aNewValue;
+ if (getAccessibleStateSet() & AccessibleStateType::CHECKED)
+ aNewValue <<= AccessibleStateType::CHECKED;
+ else
+ aOldValue <<= AccessibleStateType::CHECKED;
+
+ NotifyAccessibleEvent(AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue);
+ break;
+ }
case VclEventId::ObjectDying :
{
if ( m_pTreeListBox )
@@ -117,7 +118,7 @@ namespace accessibility
const css::uno::Any& _aNewValue )
{
Reference< uno::XInterface > xSource( *this );
- AccessibleEventObject aEventObj( xSource, _nEventId, _aNewValue, _aOldValue );
+ AccessibleEventObject aEventObj( xSource, _nEventId, _aNewValue, _aOldValue, -1 );
if (m_nClientId)
comphelper::AccessibleEventNotifier::addEvent( m_nClientId, aEventObj );
@@ -152,7 +153,7 @@ namespace accessibility
{
aRect = m_pTreeListBox->GetBoundingRect( pEntry );
Point aTopLeft = aRect.TopLeft();
- aTopLeft += m_pTreeListBox->GetWindowExtentsRelative( nullptr ).TopLeft();
+ aTopLeft += Point(m_pTreeListBox->GetWindowExtentsAbsolute().TopLeft());
aRect = tools::Rectangle( aTopLeft, aRect.GetSize() );
}
@@ -199,6 +200,12 @@ namespace accessibility
return GetBoundingBoxOnScreen_Impl();
}
+ void AccessibleListBoxEntry::CheckActionIndex(sal_Int32 nIndex)
+ {
+ if (nIndex < 0 || nIndex >= getAccessibleActionCount())
+ throw css::lang::IndexOutOfBoundsException();
+ }
+
void AccessibleListBoxEntry::EnsureIsAlive() const
{
if ( !IsAlive_Impl() )
@@ -207,11 +214,10 @@ namespace accessibility
OUString AccessibleListBoxEntry::implGetText()
{
- OUString sRet;
SvTreeListEntry* pEntry = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
- if ( pEntry )
- sRet = SvTreeListBox::SearchEntryTextWithHeadTitle( pEntry );
- return sRet;
+ if (pEntry)
+ return SvTreeListBox::SearchEntryTextWithHeadTitle(pEntry);
+ return OUString();
}
Locale AccessibleListBoxEntry::implGetLocale()
@@ -225,8 +231,6 @@ namespace accessibility
}
// XTypeProvider
-
-
Sequence< sal_Int8 > AccessibleListBoxEntry::getImplementationId()
{
return css::uno::Sequence<sal_Int8>();
@@ -262,14 +266,14 @@ namespace accessibility
OUString SAL_CALL AccessibleListBoxEntry::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleTreeListBoxEntry";
+ return u"com.sun.star.comp.svtools.AccessibleTreeListBoxEntry"_ustr;
}
Sequence< OUString > SAL_CALL AccessibleListBoxEntry::getSupportedServiceNames()
{
- return {"com.sun.star.accessibility.AccessibleContext",
- "com.sun.star.accessibility.AccessibleComponent",
- "com.sun.star.awt.AccessibleTreeListBoxEntry"};
+ return {u"com.sun.star.accessibility.AccessibleContext"_ustr,
+ u"com.sun.star.accessibility.AccessibleComponent"_ustr,
+ u"com.sun.star.awt.AccessibleTreeListBoxEntry"_ustr};
}
sal_Bool SAL_CALL AccessibleListBoxEntry::supportsService( const OUString& _rServiceName )
@@ -287,7 +291,7 @@ namespace accessibility
// XAccessibleContext
- sal_Int32 SAL_CALL AccessibleListBoxEntry::getAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleListBoxEntry::getAccessibleChildCount( )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
@@ -301,7 +305,7 @@ namespace accessibility
return nCount;
}
- Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getAccessibleChild( sal_Int64 i )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
@@ -311,45 +315,39 @@ namespace accessibility
if ( !pEntry )
throw IndexOutOfBoundsException();
- uno::Reference<XAccessible> xListBox(m_wListBox);
+ rtl::Reference<AccessibleListBox> xListBox(m_wListBox);
assert(xListBox.is());
- return m_rListBox.implGetAccessible(*pEntry);
+ return xListBox->implGetAccessible(*pEntry);
}
Reference< XAccessible > AccessibleListBoxEntry::implGetParentAccessible( ) const
{
Reference< XAccessible > xParent;
- if ( !xParent.is() )
- {
- OSL_ENSURE( m_aEntryPath.size(), "AccessibleListBoxEntry::getAccessibleParent: invalid path!" );
- if ( m_aEntryPath.size() == 1 )
- { // we're a top level entry
- // -> our parent is the tree listbox itself
- if ( m_pTreeListBox )
- xParent = m_pTreeListBox->GetAccessible( );
- }
- else
- { // we have an entry as parent -> get its accessible
-
- // shorten our access path by one
- std::deque< sal_Int32 > aParentPath( m_aEntryPath );
- aParentPath.pop_back();
-
- // get the entry for this shortened access path
- SvTreeListEntry* pParentEntry = m_pTreeListBox->GetEntryFromPath( aParentPath );
- OSL_ENSURE( pParentEntry, "AccessibleListBoxEntry::implGetParentAccessible: could not obtain a parent entry!" );
-
- if ( pParentEntry )
- pParentEntry = m_pTreeListBox->GetParent(pParentEntry);
- if ( pParentEntry )
- {
- uno::Reference<XAccessible> xListBox(m_wListBox);
- assert(xListBox.is());
- return m_rListBox.implGetAccessible(*pParentEntry);
- // the AccessibleListBoxEntry class will create its parent
- // when needed
- }
+ assert( m_aEntryPath.size() ); // invalid path
+ if ( m_aEntryPath.size() == 1 )
+ { // we're a top level entry
+ // -> our parent is the tree listbox itself
+ if ( m_pTreeListBox )
+ xParent = m_pTreeListBox->GetAccessible( );
+ }
+ else
+ { // we have an entry as parent -> get its accessible
+
+ // shorten our access path by one
+ std::deque< sal_Int32 > aParentPath( m_aEntryPath );
+ aParentPath.pop_back();
+
+ // get the entry for this shortened access path
+ SvTreeListEntry* pParentEntry = m_pTreeListBox->GetEntryFromPath( aParentPath );
+ assert(pParentEntry && "AccessibleListBoxEntry::implGetParentAccessible: could not obtain a parent entry!");
+ if ( pParentEntry )
+ {
+ rtl::Reference<AccessibleListBox> xListBox(m_wListBox);
+ assert(xListBox.is());
+ return xListBox->implGetAccessible(*pParentEntry);
+ // the AccessibleListBoxEntry class will create its parent
+ // when needed
}
}
@@ -366,7 +364,7 @@ namespace accessibility
return implGetParentAccessible( );
}
- sal_Int32 SAL_CALL AccessibleListBoxEntry::getAccessibleIndexInParent( )
+ sal_Int64 SAL_CALL AccessibleListBoxEntry::getAccessibleIndexInParent( )
{
::osl::MutexGuard aGuard( m_aMutex );
@@ -439,33 +437,12 @@ namespace accessibility
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- SvTreeListEntry* pEntry = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
if( getAccessibleRole() == AccessibleRole::TREE_ITEM )
{
return OUString();
}
- //want to count the real column number in the list box.
- sal_uInt16 iRealItemCount = 0;
- sal_uInt16 iCount = 0;
- sal_uInt16 iTotleItemCount = pEntry->ItemCount();
- while( iCount < iTotleItemCount )
- {
- const SvLBoxItem& rItem = pEntry->GetItem( iCount );
- if ( rItem.GetType() == SvLBoxItemType::String &&
- !static_cast<const SvLBoxString&>( rItem ).GetText().isEmpty() )
- {
- iRealItemCount++;
- }
- iCount++;
- }
- if(iRealItemCount<=1 )
- {
- return OUString();
- }
- else
- {
- return SvTreeListBox::SearchEntryTextWithHeadTitle( pEntry );
- }
+ return m_pTreeListBox->GetEntryAccessibleDescription(
+ m_pTreeListBox->GetEntryFromPath(m_aEntryPath));
}
OUString SAL_CALL AccessibleListBoxEntry::getAccessibleName( )
@@ -486,7 +463,7 @@ namespace accessibility
if ( xParent.is() )
{
rtl::Reference<utl::AccessibleRelationSetHelper> pRelationSetHelper = new utl::AccessibleRelationSetHelper;
- Sequence< Reference< XInterface > > aSequence { xParent };
+ Sequence<Reference<XAccessible>> aSequence { xParent };
pRelationSetHelper->AddRelation(
AccessibleRelation( AccessibleRelationType::NODE_CHILD_OF, aSequence ) );
xRelSet = pRelationSetHelper;
@@ -494,41 +471,41 @@ namespace accessibility
return xRelSet;
}
- Reference< XAccessibleStateSet > SAL_CALL AccessibleListBoxEntry::getAccessibleStateSet( )
+ sal_Int64 SAL_CALL AccessibleListBoxEntry::getAccessibleStateSet( )
{
::osl::MutexGuard aGuard( m_aMutex );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( IsAlive_Impl() )
{
switch(getAccessibleRole())
{
case AccessibleRole::LABEL:
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ nStateSet |= AccessibleStateType::TRANSIENT;
+ nStateSet |= AccessibleStateType::SELECTABLE;
+ nStateSet |= AccessibleStateType::ENABLED;
if (m_pTreeListBox->IsInplaceEditingEnabled())
- pStateSetHelper->AddState( AccessibleStateType::EDITABLE );
+ nStateSet |= AccessibleStateType::EDITABLE;
if (IsShowing_Impl())
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
break;
case AccessibleRole::CHECK_BOX:
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ nStateSet |= AccessibleStateType::TRANSIENT;
+ nStateSet |= AccessibleStateType::SELECTABLE;
+ nStateSet |= AccessibleStateType::ENABLED;
if (IsShowing_Impl())
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
break;
}
SvTreeListEntry *pEntry = m_pTreeListBox->GetEntryFromPath(m_aEntryPath);
if (pEntry)
- m_pTreeListBox->FillAccessibleEntryStateSet(pEntry, *pStateSetHelper);
+ m_pTreeListBox->FillAccessibleEntryStateSet(pEntry, nStateSet);
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
Locale SAL_CALL AccessibleListBoxEntry::getLocale( )
@@ -554,12 +531,12 @@ namespace accessibility
EnsureIsAlive();
SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry( VCLPoint( _aPoint ) );
if ( !pEntry )
- throw RuntimeException();
+ throw RuntimeException("AccessibleListBoxEntry::getAccessibleAtPoint - pEntry cannot be empty!");
Reference< XAccessible > xAcc;
- uno::Reference<XAccessible> xListBox(m_wListBox);
+ rtl::Reference<AccessibleListBox> xListBox(m_wListBox);
assert(xListBox.is());
- auto pAccEntry = m_rListBox.implGetAccessible(*pEntry);
+ auto pAccEntry = xListBox->implGetAccessible(*pEntry);
tools::Rectangle aRect = pAccEntry->GetBoundingBox_Impl();
if ( aRect.Contains( VCLPoint( _aPoint ) ) )
xAcc = pAccEntry.get();
@@ -749,7 +726,7 @@ namespace accessibility
return 0;
}
else
- return ACCESSIBLE_ACTION_COUNT;
+ return 1;
return 0;
}
@@ -759,7 +736,7 @@ namespace accessibility
::osl::MutexGuard aGuard( m_aMutex );
bool bRet = false;
- checkActionIndex_Impl( nIndex );
+ CheckActionIndex(nIndex);
EnsureIsAlive();
SvTreeFlags treeFlag = m_pTreeListBox->GetTreeFlags();
@@ -796,7 +773,7 @@ namespace accessibility
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
- checkActionIndex_Impl( nIndex );
+ CheckActionIndex(nIndex);
EnsureIsAlive();
SvTreeListEntry* pEntry = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
@@ -816,9 +793,10 @@ namespace accessibility
//Sometimes, a List or Tree may have both checkbox and label at the same time
return OUString();
}
- }else if( (nIndex == 1 && (treeFlag & SvTreeFlags::CHKBTN)) || nIndex == 0 )
+ }
+ else if( (nIndex == 1 && (treeFlag & SvTreeFlags::CHKBTN)) || nIndex == 0 )
{
- if( pEntry->HasChildren() || pEntry->HasChildrenOnDemand() )
+ if( pEntry && (pEntry->HasChildren() || pEntry->HasChildrenOnDemand()) )
return m_pTreeListBox->IsExpanded( pEntry ) ?
AccResId(STR_SVT_ACC_ACTION_COLLAPSE) :
AccResId(STR_SVT_ACC_ACTION_EXPAND);
@@ -830,23 +808,24 @@ namespace accessibility
Reference< XAccessibleKeyBinding > AccessibleListBoxEntry::getAccessibleActionKeyBinding( sal_Int32 nIndex )
{
- ::osl::MutexGuard aGuard( m_aMutex );
-
Reference< XAccessibleKeyBinding > xRet;
- checkActionIndex_Impl( nIndex );
+ CheckActionIndex(nIndex);
// ... which key?
return xRet;
}
// XAccessibleSelection
- void SAL_CALL AccessibleListBoxEntry::selectAccessibleChild( sal_Int32 nChildIndex )
+ void SAL_CALL AccessibleListBoxEntry::selectAccessibleChild( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
+ if (nChildIndex < 0 || nChildIndex >= getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
SvTreeListEntry* pEntry = GetRealChild(nChildIndex);
if ( !pEntry )
throw IndexOutOfBoundsException();
@@ -854,13 +833,16 @@ namespace accessibility
m_pTreeListBox->Select( pEntry );
}
- sal_Bool SAL_CALL AccessibleListBoxEntry::isAccessibleChildSelected( sal_Int32 nChildIndex )
+ sal_Bool SAL_CALL AccessibleListBoxEntry::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
+ if (nChildIndex < 0 || nChildIndex >= getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
SvTreeListEntry* pParent = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry( pParent, nChildIndex );
if ( !pEntry )
@@ -878,7 +860,7 @@ namespace accessibility
SvTreeListEntry* pParent = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
if ( !pParent )
- throw RuntimeException();
+ throw RuntimeException("AccessibleListBoxEntry::clearAccessibleSelection - pParent cannot be empty!");
sal_Int32 nCount = m_pTreeListBox->GetLevelChildCount( pParent );
for ( sal_Int32 i = 0; i < nCount; ++i )
{
@@ -897,7 +879,7 @@ namespace accessibility
SvTreeListEntry* pParent = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
if ( !pParent )
- throw RuntimeException();
+ throw RuntimeException("AccessibleListBoxEntry::selectAllAccessibleChildren - pParent cannot be empty!");
sal_Int32 nCount = m_pTreeListBox->GetLevelChildCount( pParent );
for ( sal_Int32 i = 0; i < nCount; ++i )
{
@@ -907,20 +889,20 @@ namespace accessibility
}
}
- sal_Int32 SAL_CALL AccessibleListBoxEntry::getSelectedAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleListBoxEntry::getSelectedAccessibleChildCount( )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
- sal_Int32 i, nSelCount = 0, nCount = 0;
+ sal_Int64 nSelCount = 0;
SvTreeListEntry* pParent = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
if ( !pParent )
- throw RuntimeException();
- nCount = m_pTreeListBox->GetLevelChildCount( pParent );
- for ( i = 0; i < nCount; ++i )
+ throw RuntimeException("AccessibleListBoxEntry::getSelectedAccessibleChildCount - pParent cannot be empty!");
+ sal_Int32 nCount = m_pTreeListBox->GetLevelChildCount( pParent );
+ for (sal_Int32 i = 0; i < nCount; ++i )
{
SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry( pParent, i );
if ( m_pTreeListBox->IsSelected( pEntry ) )
@@ -930,7 +912,7 @@ namespace accessibility
return nSelCount;
}
- Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
@@ -941,13 +923,13 @@ namespace accessibility
throw IndexOutOfBoundsException();
Reference< XAccessible > xChild;
- sal_Int32 i, nSelCount = 0, nCount = 0;
+ sal_Int64 nSelCount = 0;
SvTreeListEntry* pParent = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
if ( !pParent )
- throw RuntimeException();
- nCount = m_pTreeListBox->GetLevelChildCount( pParent );
- for ( i = 0; i < nCount; ++i )
+ throw RuntimeException("AccessibleListBoxEntry::getSelectedAccessibleChild - pParent cannot be empty!");
+ sal_Int32 nCount = m_pTreeListBox->GetLevelChildCount( pParent );
+ for (sal_Int32 i = 0; i < nCount; ++i )
{
SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry( pParent, i );
if ( m_pTreeListBox->IsSelected( pEntry ) )
@@ -955,9 +937,9 @@ namespace accessibility
if ( nSelCount == ( nSelectedChildIndex + 1 ) )
{
- uno::Reference<XAccessible> xListBox(m_wListBox);
+ rtl::Reference<AccessibleListBox> xListBox(m_wListBox);
assert(xListBox.is());
- xChild = m_rListBox.implGetAccessible(*pEntry).get();
+ xChild = xListBox->implGetAccessible(*pEntry).get();
break;
}
}
@@ -965,13 +947,16 @@ namespace accessibility
return xChild;
}
- void SAL_CALL AccessibleListBoxEntry::deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
+ void SAL_CALL AccessibleListBoxEntry::deselectAccessibleChild( sal_Int64 nSelectedChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( m_aMutex );
EnsureIsAlive();
+ if (nSelectedChildIndex < 0 || nSelectedChildIndex >= getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
SvTreeListEntry* pParent = m_pTreeListBox->GetEntryFromPath( m_aEntryPath );
SvTreeListEntry* pEntry = m_pTreeListBox->GetEntry( pParent, nSelectedChildIndex );
if ( !pEntry )
diff --git a/accessibility/source/extended/accessibletabbar.cxx b/accessibility/source/extended/accessibletabbar.cxx
index e983c1e47471..711d2a7b8c5c 100644
--- a/accessibility/source/extended/accessibletabbar.cxx
+++ b/accessibility/source/extended/accessibletabbar.cxx
@@ -24,12 +24,13 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/awt/XDevice.hpp>
-#include <com/sun/star/awt/XWindowPeer.hpp>
+#include <com/sun/star/awt/XVclWindowPeer.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <i18nlangtag/languagetag.hxx>
+#include <o3tl/safeint.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
#include <toolkit/awt/vclxfont.hxx>
@@ -50,7 +51,7 @@ namespace accessibility
AccessibleTabBar::AccessibleTabBar( TabBar* pTabBar )
- :AccessibleTabBarBase( pTabBar )
+ :ImplInheritanceHelper( pTabBar )
{
if ( m_pTabBar )
m_aAccessibleChildren.assign( m_pTabBar->GetAccessibleChildWindowCount() + 1, Reference< XAccessible >() );
@@ -112,29 +113,29 @@ namespace accessibility
}
- void AccessibleTabBar::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ void AccessibleTabBar::FillAccessibleStateSet( sal_Int64& rStateSet )
{
if ( !m_pTabBar )
return;
if ( m_pTabBar->IsEnabled() )
{
- rStateSet.AddState( AccessibleStateType::ENABLED );
- rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ rStateSet |= AccessibleStateType::ENABLED;
+ rStateSet |= AccessibleStateType::SENSITIVE;
}
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
if ( m_pTabBar->HasFocus() )
- rStateSet.AddState( AccessibleStateType::FOCUSED );
+ rStateSet |= AccessibleStateType::FOCUSED;
- rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet |= AccessibleStateType::VISIBLE;
if ( m_pTabBar->IsVisible() )
- rStateSet.AddState( AccessibleStateType::SHOWING );
+ rStateSet |= AccessibleStateType::SHOWING;
if ( m_pTabBar->GetStyle() & WB_SIZEABLE )
- rStateSet.AddState( AccessibleStateType::RESIZABLE );
+ rStateSet |= AccessibleStateType::RESIZABLE;
}
@@ -151,18 +152,6 @@ namespace accessibility
}
- // XInterface
-
-
- IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabBar, OAccessibleExtendedComponentHelper, AccessibleTabBar_BASE )
-
-
- // XTypeProvider
-
-
- IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabBar, OAccessibleExtendedComponentHelper, AccessibleTabBar_BASE )
-
-
// XComponent
@@ -186,7 +175,7 @@ namespace accessibility
OUString AccessibleTabBar::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleTabBar";
+ return u"com.sun.star.comp.svtools.AccessibleTabBar"_ustr;
}
@@ -198,7 +187,7 @@ namespace accessibility
Sequence< OUString > AccessibleTabBar::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleTabBar" };
+ return { u"com.sun.star.awt.AccessibleTabBar"_ustr };
}
@@ -216,7 +205,7 @@ namespace accessibility
// XAccessibleContext
- sal_Int32 AccessibleTabBar::getAccessibleChildCount()
+ sal_Int64 AccessibleTabBar::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -224,11 +213,11 @@ namespace accessibility
}
- Reference< XAccessible > AccessibleTabBar::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > AccessibleTabBar::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
throw IndexOutOfBoundsException();
Reference< XAccessible > xChild = m_aAccessibleChildren[i];
@@ -274,11 +263,11 @@ namespace accessibility
}
- sal_Int32 AccessibleTabBar::getAccessibleIndexInParent( )
+ sal_Int64 AccessibleTabBar::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
- sal_Int32 nIndexInParent = -1;
+ sal_Int64 nIndexInParent = -1;
if ( m_pTabBar )
{
vcl::Window* pParent = m_pTabBar->GetAccessibleParentWindow();
@@ -307,31 +296,26 @@ namespace accessibility
return AccessibleRole::PANEL;
}
-
OUString AccessibleTabBar::getAccessibleDescription( )
{
OExternalLockGuard aGuard( this );
- OUString sDescription;
- if ( m_pTabBar )
- sDescription = m_pTabBar->GetAccessibleDescription();
+ if (m_pTabBar)
+ return m_pTabBar->GetAccessibleDescription();
- return sDescription;
+ return OUString();
}
-
OUString AccessibleTabBar::getAccessibleName( )
{
OExternalLockGuard aGuard( this );
- OUString sName;
- if ( m_pTabBar )
- sName = m_pTabBar->GetAccessibleName();
+ if (m_pTabBar)
+ return m_pTabBar->GetAccessibleName();
- return sName;
+ return OUString();
}
-
Reference< XAccessibleRelationSet > AccessibleTabBar::getAccessibleRelationSet( )
{
OExternalLockGuard aGuard( this );
@@ -339,23 +323,22 @@ namespace accessibility
return new utl::AccessibleRelationSetHelper;
}
-
- Reference< XAccessibleStateSet > AccessibleTabBar::getAccessibleStateSet( )
+ sal_Int64 AccessibleTabBar::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- FillAccessibleStateSet( *pStateSetHelper );
+ FillAccessibleStateSet( nStateSet );
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
- return pStateSetHelper;
+ return nStateSet;
}
diff --git a/accessibility/source/extended/accessibletabbarpage.cxx b/accessibility/source/extended/accessibletabbarpage.cxx
index 197ad78d9777..5120b007d066 100644
--- a/accessibility/source/extended/accessibletabbarpage.cxx
+++ b/accessibility/source/extended/accessibletabbarpage.cxx
@@ -23,8 +23,8 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
@@ -46,7 +46,7 @@ namespace accessibility
AccessibleTabBarPage::AccessibleTabBarPage( TabBar* pTabBar, sal_uInt16 nPageId, const Reference< XAccessible >& rxParent )
- :AccessibleTabBarBase( pTabBar )
+ :ImplInheritanceHelper( pTabBar )
,m_nPageId( nPageId )
,m_xParent( rxParent )
{
@@ -135,23 +135,23 @@ namespace accessibility
}
- void AccessibleTabBarPage::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ void AccessibleTabBarPage::FillAccessibleStateSet( sal_Int64& rStateSet )
{
if ( IsEnabled() )
{
- rStateSet.AddState( AccessibleStateType::ENABLED );
- rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ rStateSet |= AccessibleStateType::ENABLED;
+ rStateSet |= AccessibleStateType::SENSITIVE;
}
- rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet |= AccessibleStateType::VISIBLE;
if ( IsShowing() )
- rStateSet.AddState( AccessibleStateType::SHOWING );
+ rStateSet |= AccessibleStateType::SHOWING;
- rStateSet.AddState( AccessibleStateType::SELECTABLE );
+ rStateSet |= AccessibleStateType::SELECTABLE;
if ( IsSelected() )
- rStateSet.AddState( AccessibleStateType::SELECTED );
+ rStateSet |= AccessibleStateType::SELECTED;
}
@@ -186,18 +186,6 @@ namespace accessibility
}
- // XInterface
-
-
- IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabBarPage, OAccessibleExtendedComponentHelper, AccessibleTabBarPage_BASE )
-
-
- // XTypeProvider
-
-
- IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabBarPage, OAccessibleExtendedComponentHelper, AccessibleTabBarPage_BASE )
-
-
// XComponent
@@ -213,7 +201,7 @@ namespace accessibility
OUString AccessibleTabBarPage::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleTabBarPage";
+ return u"com.sun.star.comp.svtools.AccessibleTabBarPage"_ustr;
}
@@ -225,7 +213,7 @@ namespace accessibility
Sequence< OUString > AccessibleTabBarPage::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleTabBarPage" };
+ return { u"com.sun.star.awt.AccessibleTabBarPage"_ustr };
}
@@ -243,13 +231,13 @@ namespace accessibility
// XAccessibleContext
- sal_Int32 AccessibleTabBarPage::getAccessibleChildCount()
+ sal_Int64 AccessibleTabBarPage::getAccessibleChildCount()
{
return 0;
}
- Reference< XAccessible > AccessibleTabBarPage::getAccessibleChild( sal_Int32 )
+ Reference< XAccessible > AccessibleTabBarPage::getAccessibleChild( sal_Int64 )
{
OExternalLockGuard aGuard( this );
@@ -265,36 +253,32 @@ namespace accessibility
}
- sal_Int32 AccessibleTabBarPage::getAccessibleIndexInParent( )
+ sal_Int64 AccessibleTabBarPage::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
- sal_Int32 nIndexInParent = -1;
+ sal_Int64 nIndexInParent = -1;
if ( m_pTabBar )
nIndexInParent = m_pTabBar->GetPagePos( m_nPageId );
return nIndexInParent;
}
-
sal_Int16 AccessibleTabBarPage::getAccessibleRole( )
{
return AccessibleRole::PAGE_TAB;
}
-
OUString AccessibleTabBarPage::getAccessibleDescription( )
{
OExternalLockGuard aGuard( this );
- OUString sDescription;
- if ( m_pTabBar )
- sDescription = m_pTabBar->GetHelpText( m_nPageId );
+ if (m_pTabBar)
+ return m_pTabBar->GetHelpText(m_nPageId);
- return sDescription;
+ return OUString();
}
-
OUString AccessibleTabBarPage::getAccessibleName( )
{
OExternalLockGuard aGuard( this );
@@ -302,7 +286,6 @@ namespace accessibility
return m_sPageText;
}
-
Reference< XAccessibleRelationSet > AccessibleTabBarPage::getAccessibleRelationSet( )
{
OExternalLockGuard aGuard( this );
@@ -310,23 +293,22 @@ namespace accessibility
return new utl::AccessibleRelationSetHelper;
}
-
- Reference< XAccessibleStateSet > AccessibleTabBarPage::getAccessibleStateSet( )
+ sal_Int64 AccessibleTabBarPage::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- FillAccessibleStateSet( *pStateSetHelper );
+ FillAccessibleStateSet( nStateSet );
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
- return pStateSetHelper;
+ return nStateSet;
}
diff --git a/accessibility/source/extended/accessibletabbarpagelist.cxx b/accessibility/source/extended/accessibletabbarpagelist.cxx
index 3c7f9976e0af..8ba5571155aa 100644
--- a/accessibility/source/extended/accessibletabbarpagelist.cxx
+++ b/accessibility/source/extended/accessibletabbarpagelist.cxx
@@ -19,13 +19,13 @@
#include <extended/accessibletabbarpagelist.hxx>
#include <svtools/tabbar.hxx>
-#include <extended/accessibletabbarpage.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <o3tl/safeint.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
@@ -47,24 +47,20 @@ namespace accessibility
AccessibleTabBarPageList::AccessibleTabBarPageList( TabBar* pTabBar, sal_Int32 nIndexInParent )
- :AccessibleTabBarBase( pTabBar )
+ :ImplInheritanceHelper( pTabBar )
,m_nIndexInParent( nIndexInParent )
{
if ( m_pTabBar )
- m_aAccessibleChildren.assign( m_pTabBar->GetPageCount(), Reference< XAccessible >() );
+ m_aAccessibleChildren.assign( m_pTabBar->GetPageCount(), rtl::Reference< AccessibleTabBarPage >() );
}
void AccessibleTabBarPageList::UpdateShowing( bool bShowing )
{
- for (const Reference<XAccessible>& xChild : m_aAccessibleChildren)
+ for (const rtl::Reference<AccessibleTabBarPage>& xChild : m_aAccessibleChildren)
{
if ( xChild.is() )
- {
- AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
- if ( pAccessibleTabBarPage )
- pAccessibleTabBarPage->SetShowing( bShowing );
- }
+ xChild->SetShowing( bShowing );
}
}
@@ -73,29 +69,24 @@ namespace accessibility
{
NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< AccessibleTabBarPage > xChild( m_aAccessibleChildren[i] );
if ( xChild.is() )
- {
- AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
- if ( pAccessibleTabBarPage )
- pAccessibleTabBarPage->SetSelected( bSelected );
- }
+ xChild->SetSelected( bSelected );
}
}
void AccessibleTabBarPageList::UpdatePageText( sal_Int32 i )
{
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
return;
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
+ if ( m_pTabBar )
{
- AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
- if ( pAccessibleTabBarPage && m_pTabBar )
+ rtl::Reference< AccessibleTabBarPage > pAccessibleTabBarPage( m_aAccessibleChildren[i] );
+ if ( pAccessibleTabBarPage.is() )
{
OUString sPageText = m_pTabBar->GetPageText( m_pTabBar->GetPageId( static_cast<sal_uInt16>(i) ) );
pAccessibleTabBarPage->SetPageText( sPageText );
@@ -106,11 +97,11 @@ namespace accessibility
void AccessibleTabBarPageList::InsertChild( sal_Int32 i )
{
- if ( i < 0 || i > static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) > m_aAccessibleChildren.size() )
return;
// insert entry in child list
- m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, rtl::Reference< AccessibleTabBarPage >() );
// send accessible child event
Reference< XAccessible > xChild( getAccessibleChild( i ) );
@@ -125,11 +116,11 @@ namespace accessibility
void AccessibleTabBarPageList::RemoveChild( sal_Int32 i )
{
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
return;
// get the accessible of the removed page
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< AccessibleTabBarPage > xChild( m_aAccessibleChildren[i] );
// remove entry in child list
m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
@@ -138,27 +129,25 @@ namespace accessibility
if ( xChild.is() )
{
Any aOldValue, aNewValue;
- aOldValue <<= xChild;
+ aOldValue <<= uno::Reference<XAccessible>(xChild);
NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
- Reference< XComponent > xComponent( xChild, UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
+ xChild->dispose();
}
}
void AccessibleTabBarPageList::MoveChild( sal_Int32 i, sal_Int32 j )
{
- if ( !(i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) &&
- j >= 0 && j <= static_cast<sal_Int32>(m_aAccessibleChildren.size())) )
+ if ( !(i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() &&
+ j >= 0 && o3tl::make_unsigned(j) <= m_aAccessibleChildren.size()) )
return;
if ( i < j )
--j;
// get the accessible of the moved page
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< AccessibleTabBarPage > xChild( m_aAccessibleChildren[i] );
// remove entry in child list at old position
m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
@@ -247,6 +236,8 @@ namespace accessibility
{
sal_uInt16 nPageId = static_cast<sal_uInt16>(reinterpret_cast<sal_IntPtr>(rVclWindowEvent.GetData()));
+ OExternalLockGuard aGuard( this );
+
if ( nPageId == TabBar::PAGE_NOT_FOUND )
{
for ( sal_Int32 i = m_aAccessibleChildren.size() - 1; i >= 0; --i )
@@ -254,17 +245,13 @@ namespace accessibility
}
else
{
- for ( sal_Int32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ for ( sal_Int64 i = 0, nCount = m_aAccessibleChildren.size(); i < nCount; ++i )
{
- Reference< XAccessible > xChild( getAccessibleChild( i ) );
- if ( xChild.is() )
+ sal_uInt16 nChildPageId = m_pTabBar->GetPageId( static_cast<sal_uInt16>(i) );
+ if (nPageId == nChildPageId)
{
- AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
- if ( pAccessibleTabBarPage && pAccessibleTabBarPage->GetPageId() == nPageId )
- {
- RemoveChild( i );
- break;
- }
+ RemoveChild( i );
+ break;
}
}
}
@@ -294,21 +281,21 @@ namespace accessibility
}
- void AccessibleTabBarPageList::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ void AccessibleTabBarPageList::FillAccessibleStateSet( sal_Int64& rStateSet )
{
if ( !m_pTabBar )
return;
if ( m_pTabBar->IsEnabled() )
{
- rStateSet.AddState( AccessibleStateType::ENABLED );
- rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ rStateSet |= AccessibleStateType::ENABLED;
+ rStateSet |= AccessibleStateType::SENSITIVE;
}
- rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet |= AccessibleStateType::VISIBLE;
if ( m_pTabBar->IsVisible() )
- rStateSet.AddState( AccessibleStateType::SHOWING );
+ rStateSet |= AccessibleStateType::SHOWING;
}
@@ -325,18 +312,6 @@ namespace accessibility
}
- // XInterface
-
-
- IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabBarPageList, OAccessibleExtendedComponentHelper, AccessibleTabBarPageList_BASE )
-
-
- // XTypeProvider
-
-
- IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabBarPageList, OAccessibleExtendedComponentHelper, AccessibleTabBarPageList_BASE )
-
-
// XComponent
@@ -345,9 +320,8 @@ namespace accessibility
AccessibleTabBarBase::disposing();
// dispose all children
- for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+ for (const rtl::Reference<AccessibleTabBarPage>& xComponent : m_aAccessibleChildren)
{
- Reference< XComponent > xComponent( i, UNO_QUERY );
if ( xComponent.is() )
xComponent->dispose();
}
@@ -360,7 +334,7 @@ namespace accessibility
OUString AccessibleTabBarPageList::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleTabBarPageList";
+ return u"com.sun.star.comp.svtools.AccessibleTabBarPageList"_ustr;
}
@@ -372,7 +346,7 @@ namespace accessibility
Sequence< OUString > AccessibleTabBarPageList::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleTabBarPageList" };
+ return { u"com.sun.star.awt.AccessibleTabBarPageList"_ustr };
}
@@ -390,7 +364,7 @@ namespace accessibility
// XAccessibleContext
- sal_Int32 AccessibleTabBarPageList::getAccessibleChildCount()
+ sal_Int64 AccessibleTabBarPageList::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -398,14 +372,19 @@ namespace accessibility
}
- Reference< XAccessible > AccessibleTabBarPageList::getAccessibleChild( sal_Int32 i )
+ Reference< XAccessible > AccessibleTabBarPageList::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
+ return getAccessibleChildImpl(i);
+ }
+
+ rtl::Reference< AccessibleTabBarPage > AccessibleTabBarPageList::getAccessibleChildImpl( sal_Int64 i )
+ {
if ( i < 0 || i >= getAccessibleChildCount() )
throw IndexOutOfBoundsException();
- Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ rtl::Reference< AccessibleTabBarPage > xChild = m_aAccessibleChildren[i];
if ( !xChild.is() )
{
if ( m_pTabBar )
@@ -435,7 +414,7 @@ namespace accessibility
}
- sal_Int32 AccessibleTabBarPageList::getAccessibleIndexInParent( )
+ sal_Int64 AccessibleTabBarPageList::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
@@ -469,22 +448,22 @@ namespace accessibility
}
- Reference< XAccessibleStateSet > AccessibleTabBarPageList::getAccessibleStateSet( )
+ sal_Int64 AccessibleTabBarPageList::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- FillAccessibleStateSet( *pStateSetHelper );
+ FillAccessibleStateSet( nStateSet );
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
- return pStateSetHelper;
+ return nStateSet;
}
@@ -506,7 +485,7 @@ namespace accessibility
Reference< XAccessible > xChild;
for ( size_t i = 0; i < m_aAccessibleChildren.size(); ++i )
{
- Reference< XAccessible > xAcc = getAccessibleChild( i );
+ rtl::Reference< AccessibleTabBarPage > xAcc = getAccessibleChildImpl( i );
if ( xAcc.is() )
{
Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );
@@ -602,7 +581,7 @@ namespace accessibility
// XAccessibleSelection
- void AccessibleTabBarPageList::selectAccessibleChild( sal_Int32 nChildIndex )
+ void AccessibleTabBarPageList::selectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -619,7 +598,7 @@ namespace accessibility
}
- sal_Bool AccessibleTabBarPageList::isAccessibleChildSelected( sal_Int32 nChildIndex )
+ sal_Bool AccessibleTabBarPageList::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -646,13 +625,13 @@ namespace accessibility
}
- sal_Int32 AccessibleTabBarPageList::getSelectedAccessibleChildCount( )
+ sal_Int64 AccessibleTabBarPageList::getSelectedAccessibleChildCount( )
{
return 1;
}
- Reference< XAccessible > AccessibleTabBarPageList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ Reference< XAccessible > AccessibleTabBarPageList::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -661,7 +640,7 @@ namespace accessibility
Reference< XAccessible > xChild;
- for ( sal_Int32 i = 0, j = 0, nCount = getAccessibleChildCount(); i < nCount; i++ )
+ for ( sal_Int64 i = 0, j = 0, nCount = getAccessibleChildCount(); i < nCount; i++ )
{
if ( isAccessibleChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
{
@@ -674,7 +653,7 @@ namespace accessibility
}
- void AccessibleTabBarPageList::deselectAccessibleChild( sal_Int32 nChildIndex )
+ void AccessibleTabBarPageList::deselectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
diff --git a/accessibility/source/extended/accessibletablistbox.cxx b/accessibility/source/extended/accessibletablistbox.cxx
index e34f1896f307..88bffdc1b4e5 100644
--- a/accessibility/source/extended/accessibletablistbox.cxx
+++ b/accessibility/source/extended/accessibletablistbox.cxx
@@ -71,7 +71,7 @@ namespace accessibility
// XAccessibleContext ---------------------------------------------------------
- sal_Int32 SAL_CALL AccessibleTabListBox::getAccessibleChildCount()
+ sal_Int64 SAL_CALL AccessibleTabListBox::getAccessibleChildCount()
{
return 2; // header and table
}
@@ -82,7 +82,7 @@ namespace accessibility
}
Reference< XAccessible > SAL_CALL
- AccessibleTabListBox::getAccessibleChild( sal_Int32 nChildIndex )
+ AccessibleTabListBox::getAccessibleChild( sal_Int64 nChildIndex )
{
SolarMethodGuard aGuard(getMutex());
ensureIsAlive();
@@ -100,7 +100,7 @@ namespace accessibility
xRet = implGetTable();
if ( !xRet.is() )
- throw RuntimeException();
+ throw RuntimeException("getAccessibleChild called with NULL xRet",getXWeak());
return xRet;
}
diff --git a/accessibility/source/extended/accessibletablistboxtable.cxx b/accessibility/source/extended/accessibletablistboxtable.cxx
index 14d48bcad280..1737be00ce47 100644
--- a/accessibility/source/extended/accessibletablistboxtable.cxx
+++ b/accessibility/source/extended/accessibletablistboxtable.cxx
@@ -202,16 +202,16 @@ namespace accessibility
}
// helpers --------------------------------------------------------------------
- void AccessibleTabListBoxTable::ensureValidIndex( sal_Int32 _nIndex ) const
+ void AccessibleTabListBoxTable::ensureValidIndex( sal_Int64 _nIndex ) const
{
- if ( ( _nIndex < 0 ) || ( _nIndex >= (implGetRowCount() * implGetColumnCount()) ) )
+ if ( ( _nIndex < 0 ) || ( _nIndex >= static_cast<sal_Int64>((implGetRowCount()) * static_cast<sal_Int64>(implGetColumnCount()))))
throw IndexOutOfBoundsException();
}
void AccessibleTabListBoxTable::implSelectRow( sal_Int32 _nRow, bool _bSelect )
{
if ( m_pTabListBox )
- m_pTabListBox->Select( m_pTabListBox->GetEntry( _nRow ), _bSelect );
+ m_pTabListBox->SelectRow(_nRow, _bSelect);
}
sal_Int32 AccessibleTabListBoxTable::implGetRowCount() const
@@ -237,10 +237,10 @@ namespace accessibility
SvTreeListEntry* pEntry = m_pTabListBox->FirstSelected();
while ( pEntry )
{
- ++nRow;
if ( nRow == nSelRow )
return m_pTabListBox->GetEntryPos( pEntry );
pEntry = m_pTabListBox->NextSelected( pEntry );
+ ++nRow;
}
}
@@ -256,12 +256,12 @@ namespace accessibility
OUString AccessibleTabListBoxTable::getImplementationName()
{
- return "com.sun.star.comp.svtools.AccessibleTabListBoxTable";
+ return u"com.sun.star.comp.svtools.AccessibleTabListBoxTable"_ustr;
}
// XAccessibleSelection
- void SAL_CALL AccessibleTabListBoxTable::selectAccessibleChild( sal_Int32 nChildIndex )
+ void SAL_CALL AccessibleTabListBoxTable::selectAccessibleChild( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
@@ -272,7 +272,7 @@ namespace accessibility
implSelectRow( implGetRow( nChildIndex ), true );
}
- sal_Bool SAL_CALL AccessibleTabListBoxTable::isAccessibleChildSelected( sal_Int32 nChildIndex )
+ sal_Bool SAL_CALL AccessibleTabListBoxTable::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
@@ -280,7 +280,7 @@ namespace accessibility
ensureIsAlive();
ensureValidIndex( nChildIndex );
- return m_pTabListBox && m_pTabListBox->IsSelected( m_pTabListBox->GetEntry( implGetRow( nChildIndex ) ) );
+ return m_pTabListBox && m_pTabListBox->IsRowSelected(implGetRow(nChildIndex));
}
void SAL_CALL AccessibleTabListBoxTable::clearAccessibleSelection( )
@@ -303,33 +303,34 @@ namespace accessibility
m_pTabListBox->SelectAll();
}
- sal_Int32 SAL_CALL AccessibleTabListBoxTable::getSelectedAccessibleChildCount( )
+ sal_Int64 SAL_CALL AccessibleTabListBoxTable::getSelectedAccessibleChildCount( )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
ensureIsAlive();
- return implGetColumnCount() * implGetSelRowCount();
+ return static_cast<sal_Int64>(implGetColumnCount()) * static_cast<sal_Int64>(implGetSelRowCount());
}
- Reference< XAccessible > SAL_CALL AccessibleTabListBoxTable::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ Reference< XAccessible > SAL_CALL AccessibleTabListBoxTable::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
ensureIsAlive();
- sal_Int32 nRows = implGetSelRowCount();
- if ( nRows == 0 )
+ const sal_Int32 nColCount = implGetColumnCount();
+
+ if (nColCount == 0)
throw IndexOutOfBoundsException();
- sal_Int32 nRow = implGetSelRow( nSelectedChildIndex % nRows );
- sal_Int32 nColumn = nSelectedChildIndex / nRows;
+ const sal_Int32 nRow = implGetSelRow(nSelectedChildIndex / nColCount);
+ const sal_Int32 nColumn = nSelectedChildIndex % nColCount;
return getAccessibleCellAt( nRow, nColumn );
}
- void SAL_CALL AccessibleTabListBoxTable::deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
+ void SAL_CALL AccessibleTabListBoxTable::deselectAccessibleChild( sal_Int64 nSelectedChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::MutexGuard aGuard( getMutex() );
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx b/accessibility/source/extended/textwindowaccessibility.cxx
index 4b37b1c78dd7..5cef04128d82 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -30,13 +30,14 @@
#include <com/sun/star/i18n/Boundary.hpp>
#include <cppuhelper/exc_hlp.hxx>
#include <extended/textwindowaccessibility.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/accessibleeventnotifier.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <utility>
#include <vcl/svapp.hxx>
#include <vcl/txtattr.hxx>
#include <vcl/window.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <toolkit/helper/convert.hxx>
#include <comphelper/sequence.hxx>
@@ -79,10 +80,10 @@ void WindowListenerGuard::endListening()
}
}
-Paragraph::Paragraph(::rtl::Reference< Document > const & rDocument,
+Paragraph::Paragraph(::rtl::Reference< Document > xDocument,
Paragraphs::size_type nNumber):
ParagraphBase(m_aMutex),
- m_xDocument(rDocument),
+ m_xDocument(std::move(xDocument)),
m_nNumber(nNumber),
m_nClientId(0)
{
@@ -117,8 +118,8 @@ void Paragraph::notifyEvent(::sal_Int16 nEventId,
{
if (m_nClientId)
comphelper::AccessibleEventNotifier::addEvent( m_nClientId, css::accessibility::AccessibleEventObject(
- static_cast< ::cppu::OWeakObject * >(this),
- nEventId, rNewValue, rOldValue) );
+ getXWeak(),
+ nEventId, rNewValue, rOldValue, -1) );
}
// virtual
@@ -130,7 +131,7 @@ Paragraph::getAccessibleContext()
}
// virtual
-::sal_Int32 SAL_CALL Paragraph::getAccessibleChildCount()
+sal_Int64 SAL_CALL Paragraph::getAccessibleChildCount()
{
checkDisposed();
return 0;
@@ -138,13 +139,13 @@ Paragraph::getAccessibleContext()
// virtual
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
-Paragraph::getAccessibleChild(::sal_Int32)
+Paragraph::getAccessibleChild(sal_Int64)
{
checkDisposed();
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Paragraph::getAccessibleChild",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
}
// virtual
@@ -156,7 +157,7 @@ Paragraph::getAccessibleParent()
}
// virtual
-::sal_Int32 SAL_CALL Paragraph::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL Paragraph::getAccessibleIndexInParent()
{
checkDisposed();
return m_xDocument->retrieveParagraphIndex(this);
@@ -192,15 +193,13 @@ SAL_CALL Paragraph::getAccessibleRelationSet()
}
// virtual
-css::uno::Reference< css::accessibility::XAccessibleStateSet >
-SAL_CALL Paragraph::getAccessibleStateSet()
+sal_Int64 SAL_CALL Paragraph::getAccessibleStateSet()
{
checkDisposed();
// FIXME Notification of changes (STATE_CHANGED) missing when
// m_rView.IsReadOnly() changes:
- return new ::utl::AccessibleStateSetHelper(
- m_xDocument->retrieveParagraphState(this));
+ return m_xDocument->retrieveParagraphState(this);
}
// virtual
@@ -559,7 +558,7 @@ css::accessibility::TextSegment SAL_CALL Paragraph::getTextAtLineWithCaret( )
throw css::lang::WrappedTargetRuntimeException(
"textwindowaccessibility.cxx:"
" Paragraph::getTextAtLineWithCaret",
- static_cast< css::uno::XWeak * >( this ), anyEx );
+ getXWeak(), anyEx );
}
}
@@ -584,7 +583,7 @@ void SAL_CALL Paragraph::addAccessibleEventListener(
{
aGuard.clear();
rListener->disposing(css::lang::EventObject(
- static_cast< ::cppu::OWeakObject * >(this)));
+ getXWeak()));
}
else
{
@@ -698,7 +697,7 @@ void Paragraph::checkDisposed()
if (!(rBHelper.bDisposed || rBHelper.bInDispose))
return;
throw css::lang::DisposedException(
- OUString(), static_cast< css::uno::XWeak * >(this));
+ OUString(), getXWeak());
}
Document::Document(::VCLXWindow * pVclXWindow, ::TextEngine & rEngine,
@@ -747,29 +746,21 @@ css::lang::Locale Document::retrieveLocale()
// happen that this Paragraph lies outside the range from m_aVisibleBegin
// to m_aVisibleEnd. In that case, it is neither VISIBLE nor SHOWING:
::sal_Int64 nState
- = (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::ENABLED)
- | (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::SENSITIVE)
- | (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::FOCUSABLE)
- | (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::MULTI_LINE);
+ = css::accessibility::AccessibleStateType::ENABLED
+ | css::accessibility::AccessibleStateType::SENSITIVE
+ | css::accessibility::AccessibleStateType::FOCUSABLE
+ | css::accessibility::AccessibleStateType::MULTI_LINE;
if (!m_rView.IsReadOnly())
- nState |= (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::EDITABLE);
+ nState |= css::accessibility::AccessibleStateType::EDITABLE;
Paragraphs::iterator aPara(m_xParagraphs->begin()
+ pParagraph->getNumber());
if (aPara >= m_aVisibleBegin && aPara < m_aVisibleEnd)
{
nState
- |= (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::VISIBLE)
- | (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::SHOWING);
+ |= css::accessibility::AccessibleStateType::VISIBLE
+ | css::accessibility::AccessibleStateType::SHOWING;
if (aPara == m_aFocused)
- nState |= (static_cast< ::sal_Int64 >(1)
- << css::accessibility::AccessibleStateType::FOCUSED);
+ nState |= css::accessibility::AccessibleStateType::FOCUSED;
}
return nState;
};
@@ -798,7 +789,7 @@ Document::retrieveParagraphBounds(Paragraph const * pParagraph,
Point aOrig(0, 0);
if (bAbsolute)
- aOrig = m_rView.GetWindow()->OutputToAbsoluteScreenPixel(aOrig);
+ aOrig = Point(m_rView.GetWindow()->OutputToAbsoluteScreenPixel(aOrig));
return css::awt::Rectangle(
static_cast< ::sal_Int32 >(aOrig.X()),
@@ -872,7 +863,7 @@ Document::retrieveCharacterBounds(Paragraph const * pParagraph,
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::retrieveCharacterAttributes",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
css::awt::Rectangle aBounds( 0, 0, 0, 0 );
if ( nIndex == nLength )
{
@@ -997,7 +988,7 @@ Document::retrieveCharacterAttributes(
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::retrieveCharacterAttributes",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
// retrieve run attributes
@@ -1090,7 +1081,7 @@ Document::retrieveRunAttributes(
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::retrieveRunAttributes",
- static_cast< css::uno::XWeak * >( this ) );
+ getXWeak() );
tPropValMap aRunAttrSeq;
retrieveRunAttributesImpl( pParagraph, Index, RequestedAttributes, aRunAttrSeq );
@@ -1125,7 +1116,7 @@ void Document::changeParagraphText(Paragraph const * pParagraph,
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::changeParagraphText",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
changeParagraphText(nNumber, static_cast< ::sal_uInt16 >(nBegin),
static_cast< ::sal_uInt16 >(nEnd), bCut, bPaste, rText);
// XXX numeric overflow (2x)
@@ -1145,7 +1136,7 @@ void Document::copyParagraphText(Paragraph const * pParagraph,
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::copyParagraphText",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
m_rView.SetSelection(
::TextSelection(::TextPaM(nNumber, nBegin),
::TextPaM(nNumber, nEnd)));
@@ -1168,7 +1159,7 @@ void Document::changeParagraphAttributes(
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::changeParagraphAttributes",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
// FIXME The new attributes are added to any attributes already set,
// they do not replace the old attributes as required by
@@ -1200,7 +1191,7 @@ void Document::changeParagraphSelection(Paragraph const * pParagraph,
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::changeParagraphSelection",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
m_rView.SetSelection(
::TextSelection(::TextPaM(nNumber, nBegin),
::TextPaM(nNumber, nEnd)));
@@ -1224,7 +1215,7 @@ Document::retrieveParagraphLineBoundary( Paragraph const * pParagraph,
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::retrieveParagraphLineBoundary",
- static_cast< css::uno::XWeak * >( this ) );
+ getXWeak() );
::sal_Int32 nLineStart = 0;
::sal_Int32 nLineEnd = 0;
::sal_uInt16 nLineCount = m_rEngine.GetLineCount( nNumber );
@@ -1262,7 +1253,7 @@ Document::retrieveParagraphBoundaryOfLine( Paragraph const * pParagraph,
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::retrieveParagraphBoundaryOfLine",
- static_cast< css::uno::XWeak * >( this ) );
+ getXWeak() );
::sal_Int32 nLineStart = 0;
::sal_Int32 nLineEnd = 0;
for ( ::sal_Int32 nLine = 0; nLine <= nLineNo; ++nLine )
@@ -1302,14 +1293,14 @@ Document::retrieveParagraphRelationSet( Paragraph const * pParagraph )
if ( aPara > m_aVisibleBegin && aPara < m_aVisibleEnd )
{
- css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > aSequence { getAccessibleChild( aPara - 1 ) };
+ css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> aSequence { getAccessibleChild(aPara - 1) };
css::accessibility::AccessibleRelation aRelation( css::accessibility::AccessibleRelationType::CONTENT_FLOWS_FROM, aSequence );
pRelationSetHelper->AddRelation( aRelation );
}
if ( aPara >= m_aVisibleBegin && aPara < m_aVisibleEnd -1 )
{
- css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > aSequence { getAccessibleChild( aPara + 1 ) };
+ css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> aSequence { getAccessibleChild(aPara + 1) };
css::accessibility::AccessibleRelation aRelation( css::accessibility::AccessibleRelationType::CONTENT_FLOWS_TO, aSequence );
pRelationSetHelper->AddRelation( aRelation );
}
@@ -1318,7 +1309,7 @@ Document::retrieveParagraphRelationSet( Paragraph const * pParagraph )
}
// virtual
-::sal_Int32 SAL_CALL Document::getAccessibleChildCount()
+sal_Int64 SAL_CALL Document::getAccessibleChildCount()
{
::comphelper::OExternalLockGuard aGuard(this);
init();
@@ -1327,7 +1318,7 @@ Document::retrieveParagraphRelationSet( Paragraph const * pParagraph )
// virtual
css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
-Document::getAccessibleChild(::sal_Int32 i)
+Document::getAccessibleChild(sal_Int64 i)
{
::comphelper::OExternalLockGuard aGuard(this);
init();
@@ -1335,7 +1326,7 @@ Document::getAccessibleChild(::sal_Int32 i)
throw css::lang::IndexOutOfBoundsException(
"textwindowaccessibility.cxx:"
" Document::getAccessibleChild",
- static_cast< css::uno::XWeak * >(this));
+ getXWeak());
return getAccessibleChild(m_aVisibleBegin
+ static_cast< Paragraphs::size_type >(i));
}
@@ -1368,18 +1359,18 @@ Document::getAccessibleAtPoint(css::awt::Point const & rPoint)
}
return nullptr;
}
-void Document::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void Document::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
if (!m_rView.IsReadOnly())
- rStateSet.AddState( css::accessibility::AccessibleStateType::EDITABLE );
+ rStateSet |= css::accessibility::AccessibleStateType::EDITABLE;
}
void Document::FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet )
{
if( getAccessibleParent()->getAccessibleContext()->getAccessibleRole() == css::accessibility::AccessibleRole::SCROLL_PANE )
{
- css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > aSequence { getAccessibleParent() };
+ css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> aSequence { getAccessibleParent() };
rRelationSet.AddRelation( css::accessibility::AccessibleRelation( css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
}
else
@@ -1532,7 +1523,7 @@ IMPL_LINK(Document, WindowEventHandler, ::VclWindowEvent&, rEvent, void)
if (!isAlive())
break;
//to enable the PARAGRAPH to get focus for multiline edit
- ::sal_Int32 count = getAccessibleChildCount();
+ sal_Int64 count = getAccessibleChildCount();
bool bEmpty = m_aFocused == m_aVisibleEnd && count == 1;
if ((m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd) || bEmpty)
{
@@ -1557,7 +1548,7 @@ IMPL_LINK(Document, WindowEventHandler, ::VclWindowEvent&, rEvent, void)
if (!isAlive())
break;
//to enable the PARAGRAPH to get focus for multiline edit
- ::sal_Int32 count = getAccessibleChildCount();
+ sal_Int64 count = getAccessibleChildCount();
bool bEmpty = m_aFocused == m_aVisibleEnd && count == 1;
if ((m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd) || bEmpty)
{
@@ -1588,8 +1579,7 @@ void Document::init()
m_xParagraphs->reserve(static_cast< Paragraphs::size_type >(nCount));
// numeric overflow is harmless here
for (::sal_uInt32 i = 0; i < nCount; ++i)
- m_xParagraphs->push_back(ParagraphInfo(static_cast< ::sal_Int32 >(
- m_rEngine.GetTextHeight(i))));
+ m_xParagraphs->emplace_back(m_rEngine.GetTextHeight(i));
// XXX numeric overflow
m_nViewOffset = static_cast< ::sal_Int32 >(
m_rView.GetStartDocPos().Y()); // XXX numeric overflow
@@ -1610,16 +1600,13 @@ void Document::init()
::rtl::Reference< Paragraph >
Document::getParagraph(Paragraphs::iterator const & rIt)
{
- return static_cast< Paragraph * >(
- css::uno::Reference< css::accessibility::XAccessible >(
- rIt->getParagraph()).get());
+ return rIt->getParagraph().get();
}
css::uno::Reference< css::accessibility::XAccessible >
Document::getAccessibleChild(Paragraphs::iterator const & rIt)
{
- css::uno::Reference< css::accessibility::XAccessible > xParagraph(
- rIt->getParagraph());
+ rtl::Reference< Paragraph > xParagraph(rIt->getParagraph());
if (!xParagraph.is())
{
xParagraph = new Paragraph(this, rIt - m_xParagraphs->begin());
@@ -1850,8 +1837,7 @@ void Document::handleParagraphNotifications()
xStrong;
if (bWasVisible)
xStrong = getAccessibleChild(aIt);
- css::uno::WeakReference<
- css::accessibility::XAccessible > xWeak(
+ unotools::WeakReference<Paragraph> xWeak(
aIt->getParagraph());
aIt = m_xParagraphs->erase(aIt);
@@ -1874,8 +1860,7 @@ void Document::handleParagraphNotifications()
css::uno::Any(xStrong),
css::uno::Any());
- css::uno::Reference< css::lang::XComponent > xComponent(
- xWeak.get(), css::uno::UNO_QUERY);
+ rtl::Reference< Paragraph > xComponent( xWeak.get() );
if (xComponent.is())
xComponent->dispose();
@@ -2082,7 +2067,7 @@ void Document::handleSelectionChangeNotification()
if (xParagraph.is())
{
//disable the first event when user types in empty field.
- ::sal_Int32 count = getAccessibleChildCount();
+ sal_Int64 count = getAccessibleChildCount();
bool bEmpty = count > 1;
//if (aIt != m_aFocused)
if (aIt != m_aFocused && bEmpty)
@@ -2097,9 +2082,9 @@ void Document::handleSelectionChangeNotification()
xParagraph->notifyEvent(
css::accessibility::AccessibleEventId::
CARET_CHANGED,
- css::uno::makeAny< ::sal_Int32 >(
+ css::uno::Any( ::sal_Int32 (
nNewLastPara == m_nSelectionLastPara
- ? m_nSelectionLastPos : 0),
+ ? m_nSelectionLastPos : 0)),
css::uno::Any(nNewLastPos));
}
}
@@ -2206,8 +2191,8 @@ void Document::disposeParagraphs()
{
for (auto const& paragraph : *m_xParagraphs)
{
- css::uno::Reference< css::lang::XComponent > xComponent(
- paragraph.getParagraph().get(), css::uno::UNO_QUERY);
+ rtl::Reference< Paragraph > xComponent(
+ paragraph.getParagraph().get() );
if (xComponent.is())
xComponent->dispose();
}
@@ -2216,7 +2201,7 @@ void Document::disposeParagraphs()
// static
css::uno::Any Document::mapFontColor(::Color const & rColor)
{
- return css::uno::makeAny(rColor.GetRGBColor());
+ return css::uno::Any(rColor.GetRGBColor());
// FIXME keep transparency?
}
diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx
index 53ed173c15b2..25622d1c7c22 100644
--- a/accessibility/source/helper/acc_factory.cxx
+++ b/accessibility/source/helper/acc_factory.cxx
@@ -20,6 +20,7 @@
#include <config_features.h>
#include <config_feature_desktop.h>
+#include <cppuhelper/supportsservice.hxx>
#include <toolkit/awt/vclxwindows.hxx>
#include <toolkit/helper/accessiblefactory.hxx>
#include <vcl/accessiblefactory.hxx>
@@ -46,6 +47,7 @@
#include <extended/accessibletablistbox.hxx>
#include <extended/AccessibleBrowseBox.hxx>
#include <extended/accessibleiconchoicectrl.hxx>
+#include <extended/AccessibleIconView.hxx>
#include <extended/accessibletabbar.hxx>
#include <extended/accessiblelistbox.hxx>
#include <extended/AccessibleBrowseBoxHeaderBar.hxx>
@@ -102,6 +104,8 @@ public:
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXEdit* _pXWindow ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXMultiLineEdit* _pXWindow ) override;
+ virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXComboBox* _pXWindow ) override;
virtual css::uno::Reference< css::accessibility::XAccessibleContext >
createAccessibleContext( VCLXToolBox* _pXWindow ) override;
@@ -121,13 +125,13 @@ public:
SvHeaderTabListBox& rBox
) const override;
- virtual vcl::IAccessibleBrowseBox*
+ virtual rtl::Reference<vcl::IAccessibleBrowseBox>
createAccessibleBrowseBox(
const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
vcl::IAccessibleTableProvider& _rBrowseBox
) const override;
- virtual IAccessibleTableControl*
+ virtual rtl::Reference<IAccessibleTableControl>
createAccessibleTableControl(
const css::uno::Reference< css::accessibility::XAccessible >& _rxParent,
IAccessibleTable& _rTable
@@ -156,6 +160,12 @@ public:
) const override;
virtual css::uno::Reference< css::accessibility::XAccessible >
+ createAccessibleIconView(
+ SvTreeListBox& _rListBox,
+ const css::uno::Reference< css::accessibility::XAccessible >& _xParent
+ ) const override;
+
+ virtual css::uno::Reference< css::accessibility::XAccessible >
createAccessibleBrowseBoxHeaderBar(
const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
vcl::IAccessibleTableProvider& _rOwningTable,
@@ -273,6 +283,11 @@ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLX
return new VCLXAccessibleEdit( _pXWindow );
}
+Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXMultiLineEdit* _pXWindow )
+{
+ return new VCLXAccessibleEdit( _pXWindow );
+}
+
Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXComboBox* _pXWindow )
{
bool bIsDropDownBox = false;
@@ -367,13 +382,13 @@ vcl::IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
return new AccessibleTabListBox( rxParent, rBox );
}
-vcl::IAccessibleBrowseBox* AccessibleFactory::createAccessibleBrowseBox(
+rtl::Reference<vcl::IAccessibleBrowseBox> AccessibleFactory::createAccessibleBrowseBox(
const Reference< XAccessible >& _rxParent, vcl::IAccessibleTableProvider& _rBrowseBox ) const
{
return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox );
}
-IAccessibleTableControl* AccessibleFactory::createAccessibleTableControl(
+rtl::Reference<IAccessibleTableControl> AccessibleFactory::createAccessibleTableControl(
const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable ) const
{
return new AccessibleGridControlAccess( _rxParent, _rTable );
@@ -407,6 +422,12 @@ Reference< XAccessible > AccessibleFactory::createAccessibleTreeListBox(
return new AccessibleListBox( _rListBox, _xParent );
}
+Reference< XAccessible > AccessibleFactory::createAccessibleIconView(
+ SvTreeListBox& _rListBox, const Reference< XAccessible >& _xParent ) const
+{
+ return new AccessibleIconView( _rListBox, _xParent );
+}
+
Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderBar(
const Reference< XAccessible >& rxParent, vcl::IAccessibleTableProvider& _rOwningTable,
AccessibleBrowseBoxObjType _eObjType ) const
@@ -451,6 +472,35 @@ Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
} // anonymous namespace
#if HAVE_FEATURE_DESKTOP
+
+/// anonymous implementation namespace
+namespace {
+
+class GetStandardAccessibleFactoryService:
+ public ::cppu::WeakImplHelper<
+ css::lang::XServiceInfo,
+ css::lang::XUnoTunnel>
+{
+public:
+ // css::lang::XServiceInfo:
+ virtual OUString SAL_CALL getImplementationName() override
+ { return "com.sun.star.accessibility.comp.GetStandardAccessibleFactoryService"; }
+ virtual sal_Bool SAL_CALL supportsService(const OUString & serviceName) override
+ { return cppu::supportsService(this, serviceName); }
+ virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
+ { return { "com.sun.star.accessibility.GetStandardAccessibleFactoryService" }; }
+
+ // XUnoTunnel
+ virtual sal_Int64 SAL_CALL getSomething( const ::css::uno::Sequence< ::sal_Int8 >& /*aIdentifier*/ ) override
+ {
+ ::toolkit::IAccessibleFactory* pFactory = new AccessibleFactory;
+ pFactory->acquire();
+ return reinterpret_cast<sal_Int64>(pFactory);
+ }
+};
+
+} // closing anonymous implementation namespace
+
/* this is the entry point to retrieve a factory for the toolkit-level Accessible/Contexts supplied
by this library
@@ -459,11 +509,12 @@ Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
*/
extern "C"
{
- SAL_DLLPUBLIC_EXPORT void* getStandardAccessibleFactory()
+ SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
+ com_sun_star_accessibility_GetStandardAccessibleFactoryService_get_implementation(
+ css::uno::XComponentContext *,
+ css::uno::Sequence<css::uno::Any> const &)
{
- ::toolkit::IAccessibleFactory* pFactory = new AccessibleFactory;
- pFactory->acquire();
- return pFactory;
+ return cppu::acquire(new GetStandardAccessibleFactoryService);
}
}
diff --git a/accessibility/source/helper/characterattributeshelper.cxx b/accessibility/source/helper/characterattributeshelper.cxx
index 9cbeaaee8a7c..7e2a2334bf57 100644
--- a/accessibility/source/helper/characterattributeshelper.cxx
+++ b/accessibility/source/helper/characterattributeshelper.cxx
@@ -19,6 +19,7 @@
#include <helper/characterattributeshelper.hxx>
#include <tools/gen.hxx>
+#include <vcl/unohelp.hxx>
#include <comphelper/sequence.hxx>
using namespace ::com::sun::star::uno;
@@ -27,19 +28,19 @@ using namespace ::com::sun::star::beans;
CharacterAttributesHelper::CharacterAttributesHelper( const vcl::Font& rFont, sal_Int32 nBackColor, sal_Int32 nColor )
{
- m_aAttributeMap.emplace( OUString( "CharBackColor" ), Any( nBackColor ) );
- m_aAttributeMap.emplace( OUString( "CharColor" ), Any( nColor ) );
- m_aAttributeMap.emplace( OUString( "CharFontCharSet" ), Any( static_cast<sal_Int16>(rFont.GetCharSet()) ) );
- m_aAttributeMap.emplace( OUString( "CharFontFamily" ), Any( static_cast<sal_Int16>(rFont.GetFamilyType()) ) );
- m_aAttributeMap.emplace( OUString( "CharFontName" ), Any( rFont.GetFamilyName() ) );
- m_aAttributeMap.emplace( OUString( "CharFontPitch" ), Any( static_cast<sal_Int16>(rFont.GetPitch()) ) );
- m_aAttributeMap.emplace( OUString( "CharFontStyleName" ), Any( rFont.GetStyleName() ) );
- m_aAttributeMap.emplace( OUString( "CharHeight" ), Any( static_cast<sal_Int16>(rFont.GetFontSize().Height()) ) );
- m_aAttributeMap.emplace( OUString( "CharScaleWidth" ), Any( static_cast<sal_Int16>(rFont.GetFontSize().Width()) ) );
- m_aAttributeMap.emplace( OUString( "CharStrikeout" ), Any( static_cast<sal_Int16>(rFont.GetStrikeout()) ) );
- m_aAttributeMap.emplace( OUString( "CharUnderline" ), Any( static_cast<sal_Int16>(rFont.GetUnderline()) ) );
- m_aAttributeMap.emplace( OUString( "CharWeight" ), Any( static_cast<float>(rFont.GetWeight()) ) );
- m_aAttributeMap.emplace( OUString( "CharPosture" ), Any( static_cast<sal_Int16>(rFont.GetItalic()) ) );
+ m_aAttributeMap.emplace( u"CharBackColor"_ustr, Any( nBackColor ) );
+ m_aAttributeMap.emplace( u"CharColor"_ustr, Any( nColor ) );
+ m_aAttributeMap.emplace( u"CharFontCharSet"_ustr, Any( static_cast<sal_Int16>(rFont.GetCharSet()) ) );
+ m_aAttributeMap.emplace( u"CharFontFamily"_ustr, Any( static_cast<sal_Int16>(rFont.GetFamilyType()) ) );
+ m_aAttributeMap.emplace( u"CharFontName"_ustr, Any( rFont.GetFamilyName() ) );
+ m_aAttributeMap.emplace( u"CharFontPitch"_ustr, Any( static_cast<sal_Int16>(rFont.GetPitch()) ) );
+ m_aAttributeMap.emplace( u"CharFontStyleName"_ustr, Any( rFont.GetStyleName() ) );
+ m_aAttributeMap.emplace( u"CharHeight"_ustr, Any( static_cast<sal_Int16>(rFont.GetFontSize().Height()) ) );
+ m_aAttributeMap.emplace( u"CharScaleWidth"_ustr, Any( static_cast<sal_Int16>(rFont.GetFontSize().Width()) ) );
+ m_aAttributeMap.emplace( u"CharStrikeout"_ustr, Any( static_cast<sal_Int16>(rFont.GetStrikeout()) ) );
+ m_aAttributeMap.emplace( u"CharUnderline"_ustr, Any( static_cast<sal_Int16>(rFont.GetUnderline()) ) );
+ m_aAttributeMap.emplace( u"CharWeight"_ustr, Any( static_cast<float>(rFont.GetWeight()) ) );
+ m_aAttributeMap.emplace( u"CharPosture"_ustr, Any( vcl::unohelper::ConvertFontSlant(rFont.GetItalic()) ) );
}
diff --git a/accessibility/source/standard/accessiblemenubasecomponent.cxx b/accessibility/source/standard/accessiblemenubasecomponent.cxx
index bce5968c7cfc..e5e390d59512 100644
--- a/accessibility/source/standard/accessiblemenubasecomponent.cxx
+++ b/accessibility/source/standard/accessiblemenubasecomponent.cxx
@@ -26,8 +26,9 @@
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <o3tl/safeint.hxx>
#include <vcl/menu.hxx>
#include <vcl/vclevent.hxx>
@@ -53,7 +54,7 @@ OAccessibleMenuBaseComponent::OAccessibleMenuBaseComponent( Menu* pMenu )
{
if ( m_pMenu )
{
- m_aAccessibleChildren.assign( m_pMenu->GetItemCount(), Reference< XAccessible >() );
+ m_aAccessibleChildren1.assign( m_pMenu->GetItemCount(), rtl::Reference< OAccessibleMenuItemComponent >() );
m_pMenu->AddEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
}
}
@@ -111,7 +112,7 @@ void OAccessibleMenuBaseComponent::SetEnabled( bool bEnabled )
if ( m_bEnabled == bEnabled )
return;
- sal_Int16 nStateType=AccessibleStateType::ENABLED;
+ sal_Int64 nStateType=AccessibleStateType::ENABLED;
if (IsMenuHideDisabledEntries())
{
nStateType = AccessibleStateType::VISIBLE;
@@ -195,30 +196,22 @@ void OAccessibleMenuBaseComponent::SetChecked( bool bChecked )
void OAccessibleMenuBaseComponent::UpdateEnabled( sal_Int32 i, bool bEnabled )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< OAccessibleMenuBaseComponent > xChild( m_aAccessibleChildren1[i] );
if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetEnabled( bEnabled );
- }
+ xChild->SetEnabled( bEnabled );
}
}
void OAccessibleMenuBaseComponent::UpdateFocused( sal_Int32 i, bool bFocused )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< OAccessibleMenuBaseComponent > xChild( m_aAccessibleChildren1[i] );
if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetFocused( bFocused );
- }
+ xChild->SetFocused( bFocused );
}
}
@@ -226,14 +219,10 @@ void OAccessibleMenuBaseComponent::UpdateFocused( sal_Int32 i, bool bFocused )
void OAccessibleMenuBaseComponent::UpdateVisible()
{
SetVisible( IsVisible() );
- for (const Reference<XAccessible>& xChild : m_aAccessibleChildren)
+ for (const rtl::Reference<OAccessibleMenuItemComponent>& xChild : m_aAccessibleChildren1)
{
if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetVisible( pComp->IsVisible() );
- }
+ xChild->SetVisible( xChild->IsVisible() );
}
}
@@ -242,39 +231,31 @@ void OAccessibleMenuBaseComponent::UpdateSelected( sal_Int32 i, bool bSelected )
{
NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< OAccessibleMenuBaseComponent > xChild( m_aAccessibleChildren1[i] );
if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetSelected( bSelected );
- }
+ xChild->SetSelected( bSelected );
}
}
void OAccessibleMenuBaseComponent::UpdateChecked( sal_Int32 i, bool bChecked )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< OAccessibleMenuBaseComponent > xChild( m_aAccessibleChildren1[i] );
if ( xChild.is() )
- {
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetChecked( bChecked );
- }
+ xChild->SetChecked( bChecked );
}
}
void OAccessibleMenuBaseComponent::UpdateAccessibleName( sal_Int32 i )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< OAccessibleMenuBaseComponent > xChild( m_aAccessibleChildren1[i] );
if ( xChild.is() )
{
OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xChild.get() );
@@ -284,37 +265,44 @@ void OAccessibleMenuBaseComponent::UpdateAccessibleName( sal_Int32 i )
}
}
+void OAccessibleMenuBaseComponent::UpdateItemRole(sal_Int32 i)
+{
+ if (i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren1.size())
+ return;
+
+ rtl::Reference<OAccessibleMenuItemComponent> xChild(m_aAccessibleChildren1[i]);
+ if (!xChild.is())
+ return;
+
+ xChild->NotifyAccessibleEvent(AccessibleEventId::ROLE_CHANGED, Any(), Any());
+}
void OAccessibleMenuBaseComponent::UpdateItemText( sal_Int32 i )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren1.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< OAccessibleMenuItemComponent > xChild( m_aAccessibleChildren1[i] );
if ( xChild.is() )
- {
- OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xChild.get() );
- if ( pComp )
- pComp->SetItemText( pComp->GetItemText() );
- }
+ xChild->SetItemText( xChild->GetItemText() );
}
}
-sal_Int32 OAccessibleMenuBaseComponent::GetChildCount() const
+sal_Int64 OAccessibleMenuBaseComponent::GetChildCount() const
{
- return m_aAccessibleChildren.size();
+ return m_aAccessibleChildren1.size();
}
-Reference< XAccessible > OAccessibleMenuBaseComponent::GetChild( sal_Int32 i )
+Reference< XAccessible > OAccessibleMenuBaseComponent::GetChild( sal_Int64 i )
{
- Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ rtl::Reference< OAccessibleMenuItemComponent > xChild = m_aAccessibleChildren1[i];
if ( !xChild.is() )
{
if ( m_pMenu )
{
// create a new child
- rtl::Reference<OAccessibleMenuBaseComponent> pChild;
+ rtl::Reference<OAccessibleMenuItemComponent> pChild;
if ( m_pMenu->GetItemType( static_cast<sal_uInt16>(i) ) == MenuItemType::SEPARATOR )
{
@@ -340,7 +328,7 @@ Reference< XAccessible > OAccessibleMenuBaseComponent::GetChild( sal_Int32 i )
xChild = pChild;
// insert into menu item list
- m_aAccessibleChildren[i] = xChild;
+ m_aAccessibleChildren1[i] = xChild;
}
}
@@ -351,7 +339,7 @@ Reference< XAccessible > OAccessibleMenuBaseComponent::GetChild( sal_Int32 i )
Reference< XAccessible > OAccessibleMenuBaseComponent::GetChildAt( const awt::Point& rPoint )
{
Reference< XAccessible > xChild;
- for ( sal_uInt32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ for ( sal_Int64 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
{
Reference< XAccessible > xAcc = getAccessibleChild( i );
if ( xAcc.is() )
@@ -376,25 +364,21 @@ Reference< XAccessible > OAccessibleMenuBaseComponent::GetChildAt( const awt::Po
void OAccessibleMenuBaseComponent::InsertChild( sal_Int32 i )
{
- if ( i > static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
- i = m_aAccessibleChildren.size();
-
if ( i < 0 )
return;
+ if ( o3tl::make_unsigned(i) > m_aAccessibleChildren1.size() )
+ i = m_aAccessibleChildren1.size();
+
// insert entry in child list
- m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+ m_aAccessibleChildren1.insert( m_aAccessibleChildren1.begin() + i, rtl::Reference< OAccessibleMenuItemComponent >() );
// update item position of accessible children
- for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; ++j )
+ for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren1.size(); j < nCount; ++j )
{
- Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
+ rtl::Reference< OAccessibleMenuItemComponent > xAcc( m_aAccessibleChildren1[j] );
if ( xAcc.is() )
- {
- OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xAcc.get() );
- if ( pComp )
- pComp->SetItemPos( static_cast<sal_uInt16>(j) );
- }
+ xAcc->SetItemPos( static_cast<sal_uInt16>(j) );
}
// send accessible child event
@@ -410,37 +394,31 @@ void OAccessibleMenuBaseComponent::InsertChild( sal_Int32 i )
void OAccessibleMenuBaseComponent::RemoveChild( sal_Int32 i )
{
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren1.size() )
return;
// keep the accessible of the removed item
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< OAccessibleMenuItemComponent > xChild( m_aAccessibleChildren1[i] );
// remove entry in child list
- m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+ m_aAccessibleChildren1.erase( m_aAccessibleChildren1.begin() + i );
// update item position of accessible children
- for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; ++j )
+ for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren1.size(); j < nCount; ++j )
{
- Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
+ rtl::Reference< OAccessibleMenuItemComponent > xAcc( m_aAccessibleChildren1[j] );
if ( xAcc.is() )
- {
- OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xAcc.get() );
- if ( pComp )
- pComp->SetItemPos( static_cast<sal_uInt16>(j) );
- }
+ xAcc->SetItemPos( static_cast<sal_uInt16>(j) );
}
// send accessible child event
if ( xChild.is() )
{
Any aOldValue, aNewValue;
- aOldValue <<= xChild;
+ aOldValue <<= uno::Reference<XAccessible>(xChild);
NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
- Reference< XComponent > xComponent( xChild, UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
+ xChild->dispose();
}
}
@@ -455,16 +433,12 @@ bool OAccessibleMenuBaseComponent::IsChildHighlighted()
{
bool bChildHighlighted = false;
- for (const Reference<XAccessible>& xChild : m_aAccessibleChildren)
+ for (const rtl::Reference<OAccessibleMenuItemComponent>& xChild : m_aAccessibleChildren1)
{
- if ( xChild.is() )
+ if ( xChild.is() && xChild->IsHighlighted() )
{
- OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
- if ( pComp && pComp->IsHighlighted() )
- {
- bChildHighlighted = true;
- break;
- }
+ bChildHighlighted = true;
+ break;
}
}
@@ -585,6 +559,11 @@ void OAccessibleMenuBaseComponent::ProcessMenuEvent( const VclMenuEvent& rVclMen
UpdateAccessibleName( nItemPos );
}
break;
+ case VclEventId::MenuItemRoleChanged:
+ {
+ UpdateItemRole(nItemPos);
+ }
+ break;
case VclEventId::MenuItemTextChanged:
{
UpdateAccessibleName( nItemPos );
@@ -610,13 +589,12 @@ void OAccessibleMenuBaseComponent::ProcessMenuEvent( const VclMenuEvent& rVclMen
m_pMenu = nullptr;
// dispose all menu items
- for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+ for (const rtl::Reference<OAccessibleMenuItemComponent>& xComponent : m_aAccessibleChildren1)
{
- Reference< XComponent > xComponent( i, UNO_QUERY );
if ( xComponent.is() )
xComponent->dispose();
}
- m_aAccessibleChildren.clear();
+ m_aAccessibleChildren1.clear();
}
}
break;
@@ -628,18 +606,6 @@ void OAccessibleMenuBaseComponent::ProcessMenuEvent( const VclMenuEvent& rVclMen
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleMenuBaseComponent, OAccessibleExtendedComponentHelper, OAccessibleMenuBaseComponent_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleMenuBaseComponent, OAccessibleExtendedComponentHelper, OAccessibleMenuBaseComponent_BASE )
-
-
// XComponent
@@ -655,13 +621,12 @@ void OAccessibleMenuBaseComponent::disposing()
m_pMenu = nullptr;
// dispose all menu items
- for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+ for (const rtl::Reference<OAccessibleMenuItemComponent>& xComponent : m_aAccessibleChildren1)
{
- Reference< XComponent > xComponent( i, UNO_QUERY );
if ( xComponent.is() )
xComponent->dispose();
}
- m_aAccessibleChildren.clear();
+ m_aAccessibleChildren1.clear();
}
@@ -688,22 +653,22 @@ Reference< XAccessibleContext > OAccessibleMenuBaseComponent::getAccessibleConte
// XAccessibleContext
-Reference< XAccessibleStateSet > OAccessibleMenuBaseComponent::getAccessibleStateSet( )
+sal_Int64 OAccessibleMenuBaseComponent::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- FillAccessibleStateSet( *pStateSetHelper );
+ FillAccessibleStateSet( nStateSet );
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
- return pStateSetHelper;
+ return nStateSet;
}
diff --git a/accessibility/source/standard/accessiblemenucomponent.cxx b/accessibility/source/standard/accessiblemenucomponent.cxx
index be9b1e6f453e..9d86f0246a42 100644
--- a/accessibility/source/standard/accessiblemenucomponent.cxx
+++ b/accessibility/source/standard/accessiblemenucomponent.cxx
@@ -25,9 +25,9 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/awt/XDevice.hpp>
-#include <com/sun/star/awt/XWindowPeer.hpp>
+#include <com/sun/star/awt/XVclWindowPeer.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
@@ -61,26 +61,26 @@ bool OAccessibleMenuComponent::IsVisible()
}
-void OAccessibleMenuComponent::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void OAccessibleMenuComponent::FillAccessibleStateSet( sal_Int64& rStateSet )
{
if ( IsEnabled() )
{
- rStateSet.AddState( AccessibleStateType::ENABLED );
- rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ rStateSet |= AccessibleStateType::ENABLED;
+ rStateSet |= AccessibleStateType::SENSITIVE;
}
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
if ( IsFocused() )
- rStateSet.AddState( AccessibleStateType::FOCUSED );
+ rStateSet |= AccessibleStateType::FOCUSED;
if ( IsVisible() )
{
- rStateSet.AddState( AccessibleStateType::VISIBLE );
- rStateSet.AddState( AccessibleStateType::SHOWING );
+ rStateSet |= AccessibleStateType::VISIBLE;
+ rStateSet |= AccessibleStateType::SHOWING;
}
- rStateSet.AddState( AccessibleStateType::OPAQUE );
+ rStateSet |= AccessibleStateType::OPAQUE;
}
@@ -97,7 +97,7 @@ awt::Rectangle OAccessibleMenuComponent::implGetBounds()
if ( pWindow )
{
// get bounding rectangle of the window in screen coordinates
- tools::Rectangle aRect = pWindow->GetWindowExtentsRelative( nullptr );
+ AbsoluteScreenPixelRectangle aRect = pWindow->GetWindowExtentsAbsolute();
aBounds = AWTRectangle( aRect );
// get position of the accessible parent in screen coordinates
@@ -121,22 +121,10 @@ awt::Rectangle OAccessibleMenuComponent::implGetBounds()
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleMenuComponent, OAccessibleMenuBaseComponent, OAccessibleMenuComponent_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleMenuComponent, OAccessibleMenuBaseComponent, OAccessibleMenuComponent_BASE )
-
-
// XAccessibleContext
-sal_Int32 OAccessibleMenuComponent::getAccessibleChildCount()
+sal_Int64 OAccessibleMenuComponent::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -144,7 +132,7 @@ sal_Int32 OAccessibleMenuComponent::getAccessibleChildCount()
}
-Reference< XAccessible > OAccessibleMenuComponent::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > OAccessibleMenuComponent::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
@@ -246,7 +234,7 @@ awt::Point OAccessibleMenuComponent::getLocationOnScreen( )
vcl::Window* pWindow = m_pMenu->GetWindow();
if ( pWindow )
{
- tools::Rectangle aRect = pWindow->GetWindowExtentsRelative( nullptr );
+ AbsoluteScreenPixelRectangle aRect = pWindow->GetWindowExtentsAbsolute();
aPos = AWTPoint( aRect.TopLeft() );
}
}
@@ -335,7 +323,7 @@ OUString OAccessibleMenuComponent::getToolTipText( )
// XAccessibleSelection
-void OAccessibleMenuComponent::selectAccessibleChild( sal_Int32 nChildIndex )
+void OAccessibleMenuComponent::selectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -346,7 +334,7 @@ void OAccessibleMenuComponent::selectAccessibleChild( sal_Int32 nChildIndex )
}
-sal_Bool OAccessibleMenuComponent::isAccessibleChildSelected( sal_Int32 nChildIndex )
+sal_Bool OAccessibleMenuComponent::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -371,13 +359,13 @@ void OAccessibleMenuComponent::selectAllAccessibleChildren( )
}
-sal_Int32 OAccessibleMenuComponent::getSelectedAccessibleChildCount( )
+sal_Int64 OAccessibleMenuComponent::getSelectedAccessibleChildCount( )
{
OExternalLockGuard aGuard( this );
- sal_Int32 nRet = 0;
+ sal_Int64 nRet = 0;
- for ( sal_Int32 i = 0, nCount = GetChildCount(); i < nCount; i++ )
+ for ( sal_Int64 i = 0, nCount = GetChildCount(); i < nCount; i++ )
{
if ( IsChildSelected( i ) )
++nRet;
@@ -387,7 +375,7 @@ sal_Int32 OAccessibleMenuComponent::getSelectedAccessibleChildCount( )
}
-Reference< XAccessible > OAccessibleMenuComponent::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+Reference< XAccessible > OAccessibleMenuComponent::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -396,7 +384,7 @@ Reference< XAccessible > OAccessibleMenuComponent::getSelectedAccessibleChild( s
Reference< XAccessible > xChild;
- for ( sal_Int32 i = 0, j = 0, nCount = GetChildCount(); i < nCount; i++ )
+ for ( sal_Int64 i = 0, j = 0, nCount = GetChildCount(); i < nCount; i++ )
{
if ( IsChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
{
@@ -409,7 +397,7 @@ Reference< XAccessible > OAccessibleMenuComponent::getSelectedAccessibleChild( s
}
-void OAccessibleMenuComponent::deselectAccessibleChild( sal_Int32 nChildIndex )
+void OAccessibleMenuComponent::deselectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
diff --git a/accessibility/source/standard/accessiblemenuitemcomponent.cxx b/accessibility/source/standard/accessiblemenuitemcomponent.cxx
index e61c7452e9ec..d6b8b209a7d0 100644
--- a/accessibility/source/standard/accessiblemenuitemcomponent.cxx
+++ b/accessibility/source/standard/accessiblemenuitemcomponent.cxx
@@ -26,18 +26,18 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/accessibletexthelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
#include <vcl/menu.hxx>
+#include <vcl/mnemonic.hxx>
#include <vcl/settings.hxx>
#include <i18nlangtag/languagetag.hxx>
using namespace ::com::sun::star::accessibility;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star;
using namespace ::comphelper;
@@ -180,7 +180,7 @@ OUString OAccessibleMenuItemComponent::GetAccessibleName()
sName = m_pParent->GetAccessibleName( nItemId );
if ( sName.isEmpty() )
sName = m_pParent->GetItemText( nItemId );
- sName = OutputDevice::GetNonMnemonicString( sName );
+ sName = removeMnemonicFromString( sName );
#if defined(_WIN32)
if ( m_pParent->GetAccelKey( nItemId ).GetName().getLength() )
sName += "\t" + m_pParent->GetAccelKey(nItemId).GetName();
@@ -206,28 +206,28 @@ OUString OAccessibleMenuItemComponent::GetItemText()
{
OUString sText;
if ( m_pParent )
- sText = OutputDevice::GetNonMnemonicString( m_pParent->GetItemText( m_pParent->GetItemId( m_nItemPos ) ) );
+ sText = removeMnemonicFromString( m_pParent->GetItemText( m_pParent->GetItemId( m_nItemPos ) ) );
return sText;
}
-void OAccessibleMenuItemComponent::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void OAccessibleMenuItemComponent::FillAccessibleStateSet( sal_Int64& rStateSet )
{
bool bEnabled = IsEnabled();
if ( bEnabled )
{
- rStateSet.AddState( AccessibleStateType::ENABLED );
- rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ rStateSet |= AccessibleStateType::ENABLED;
+ rStateSet |= AccessibleStateType::SENSITIVE;
}
if ( IsVisible() )
{
- rStateSet.AddState( AccessibleStateType::SHOWING );
+ rStateSet |= AccessibleStateType::SHOWING;
if( !IsMenuHideDisabledEntries() || bEnabled )
- rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet |= AccessibleStateType::VISIBLE;
}
- rStateSet.AddState( AccessibleStateType::OPAQUE );
+ rStateSet |= AccessibleStateType::OPAQUE;
}
@@ -247,7 +247,7 @@ awt::Rectangle OAccessibleMenuItemComponent::implGetBounds()
vcl::Window* pWindow = m_pParent->GetWindow();
if ( pWindow )
{
- tools::Rectangle aRect = pWindow->GetWindowExtentsRelative( nullptr );
+ AbsoluteScreenPixelRectangle aRect = pWindow->GetWindowExtentsAbsolute();
awt::Point aWindowScreenLoc = AWTPoint( aRect.TopLeft() );
// get position of accessible parent in screen coordinates
@@ -287,7 +287,7 @@ void SAL_CALL OAccessibleMenuItemComponent::disposing()
// XAccessibleContext
-sal_Int32 OAccessibleMenuItemComponent::getAccessibleChildCount()
+sal_Int64 OAccessibleMenuItemComponent::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -295,7 +295,7 @@ sal_Int32 OAccessibleMenuItemComponent::getAccessibleChildCount()
}
-Reference< XAccessible > OAccessibleMenuItemComponent::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > OAccessibleMenuItemComponent::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
@@ -314,7 +314,7 @@ Reference< XAccessible > OAccessibleMenuItemComponent::getAccessibleParent( )
}
-sal_Int32 OAccessibleMenuItemComponent::getAccessibleIndexInParent( )
+sal_Int64 OAccessibleMenuItemComponent::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
diff --git a/accessibility/source/standard/floatingwindowaccessible.cxx b/accessibility/source/standard/floatingwindowaccessible.cxx
index aa5ef41f6c79..ebfd0c506905 100644
--- a/accessibility/source/standard/floatingwindowaccessible.cxx
+++ b/accessibility/source/standard/floatingwindowaccessible.cxx
@@ -36,7 +36,7 @@ void FloatingWindowAccessible::FillAccessibleRelationSet(utl::AccessibleRelation
vcl::Window* pParentWindow = pWindow->GetParent();
if( pParentWindow )
{
- uno::Sequence< uno::Reference< uno::XInterface > > aSequence { pParentWindow->GetAccessible() };
+ uno::Sequence<uno::Reference<css::accessibility::XAccessible>> aSequence { pParentWindow->GetAccessible() };
rRelationSet.AddRelation( AccessibleRelation( AccessibleRelationType::SUB_WINDOW_OF, aSequence ) );
}
}
diff --git a/accessibility/source/standard/svtaccessiblenumericfield.cxx b/accessibility/source/standard/svtaccessiblenumericfield.cxx
index 729966eb8fef..f3192d4212f0 100644
--- a/accessibility/source/standard/svtaccessiblenumericfield.cxx
+++ b/accessibility/source/standard/svtaccessiblenumericfield.cxx
@@ -18,25 +18,30 @@
*/
#include <standard/svtaccessiblenumericfield.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <toolkit/awt/vclxwindows.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
using namespace ::com::sun::star::accessibility;
using namespace ::comphelper;
SVTXAccessibleNumericField::SVTXAccessibleNumericField(VCLXWindow* pVCLWindow)
- : VCLXAccessibleEdit(pVCLWindow)
+ : ImplInheritanceHelper(pVCLWindow)
{
}
-// XInterface
-IMPLEMENT_FORWARD_XINTERFACE2(SVTXAccessibleNumericField, VCLXAccessibleTextComponent,
- SVTXAccessibleNumericField_BASE)
+void SVTXAccessibleNumericField::ProcessWindowEvent(const VclWindowEvent& rVclWindowEvent)
+{
+ VCLXAccessibleEdit::ProcessWindowEvent(rVclWindowEvent);
-// XTypeProvider
-IMPLEMENT_FORWARD_XTYPEPROVIDER2(SVTXAccessibleNumericField, VCLXAccessibleTextComponent,
- SVTXAccessibleNumericField_BASE)
+ if (rVclWindowEvent.GetId() == VclEventId::EditModify)
+ {
+ css::uno::Any aNewValue = getCurrentValue();
+ NotifyAccessibleEvent(AccessibleEventId::VALUE_CHANGED, css::uno::Any(), aNewValue);
+ }
+}
sal_Int16 SVTXAccessibleNumericField::getAccessibleRole() { return AccessibleRole::SPIN_BOX; }
diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx b/accessibility/source/standard/vclxaccessiblebox.cxx
index ce81c254c59a..43b9967ed51a 100644
--- a/accessibility/source/standard/vclxaccessiblebox.cxx
+++ b/accessibility/source/standard/vclxaccessiblebox.cxx
@@ -22,7 +22,6 @@
#include <standard/vclxaccessibleedit.hxx>
#include <standard/vclxaccessiblelist.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
@@ -39,7 +38,7 @@ using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
VCLXAccessibleBox::VCLXAccessibleBox (VCLXWindow* pVCLWindow, BoxType aType, bool bIsDropDownBox)
- : VCLXAccessibleComponent (pVCLWindow),
+ : ImplInheritanceHelper (pVCLWindow),
m_aBoxType (aType),
m_bIsDropDownBox (bIsDropDownBox)
{
@@ -53,6 +52,8 @@ VCLXAccessibleBox::VCLXAccessibleBox (VCLXWindow* pVCLWindow, BoxType aType, boo
m_bHasTextChild = true;
}
+VCLXAccessibleBox::~VCLXAccessibleBox() {}
+
void VCLXAccessibleBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent )
{
uno::Any aOldValue, aNewValue;
@@ -69,26 +70,26 @@ void VCLXAccessibleBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindo
if (m_aBoxType==COMBOBOX)
{
VclPtr< ComboBox > pComboBox = GetAs< ComboBox >();
- if ( ( pComboBox != nullptr ) && ( pChildWindow != nullptr ) )
- if (pChildWindow == pComboBox->GetSubEdit())
+ if (pComboBox && pChildWindow && pChildWindow == pComboBox->GetSubEdit()
+ && m_xText.is())
+ {
+ if (rVclWindowEvent.GetId() == VclEventId::WindowShow)
+ {
+ // Instantiate text field.
+ getAccessibleChild (0);
+ aNewValue <<= m_xText;
+ }
+ else
{
- if (rVclWindowEvent.GetId() == VclEventId::WindowShow)
- {
- // Instantiate text field.
- getAccessibleChild (0);
- aNewValue <<= m_xText;
- }
- else
- {
- // Release text field.
- aOldValue <<= m_xText;
- m_xText = nullptr;
- }
- // Tell the listeners about the new/removed child.
- NotifyAccessibleEvent (
- AccessibleEventId::CHILD,
- aOldValue, aNewValue);
+ // Release text field.
+ aOldValue <<= m_xText;
+ m_xText = nullptr;
}
+ // Tell the listeners about the new/removed child.
+ NotifyAccessibleEvent (
+ AccessibleEventId::CHILD,
+ aOldValue, aNewValue);
+ }
}
}
@@ -107,15 +108,13 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
case VclEventId::ListboxSelect:
{
// Forward the call to the list child.
- VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
- if ( pList == nullptr )
+ if (!m_xList.is())
{
getAccessibleChild ( m_bHasTextChild ? 1 : 0 );
- pList = static_cast<VCLXAccessibleList*>(m_xList.get());
}
- if ( pList != nullptr )
+ if (m_xList.is())
{
- pList->ProcessWindowEvent (rVclWindowEvent, m_bIsDropDownBox);
+ m_xList->ProcessWindowEvent(rVclWindowEvent, m_bIsDropDownBox);
#if defined(_WIN32)
if (m_bIsDropDownBox)
{
@@ -127,30 +126,26 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
}
case VclEventId::DropdownOpen:
{
- VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
- if ( pList == nullptr )
+ if (!m_xList.is())
{
getAccessibleChild ( m_bHasTextChild ? 1 : 0 );
- pList = static_cast<VCLXAccessibleList*>(m_xList.get());
}
- if ( pList != nullptr )
+ if (m_xList.is())
{
- pList->ProcessWindowEvent (rVclWindowEvent);
- pList->HandleDropOpen();
+ m_xList->ProcessWindowEvent(rVclWindowEvent);
+ m_xList->HandleDropOpen();
}
break;
}
case VclEventId::DropdownClose:
{
- VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
- if ( pList == nullptr )
+ if (!m_xList.is())
{
getAccessibleChild ( m_bHasTextChild ? 1 : 0 );
- pList = static_cast<VCLXAccessibleList*>(m_xList.get());
}
- if ( pList != nullptr )
+ if (m_xList.is())
{
- pList->ProcessWindowEvent (rVclWindowEvent);
+ m_xList->ProcessWindowEvent(rVclWindowEvent);
}
VclPtr<vcl::Window> pWindow = GetWindow();
if( pWindow && (pWindow->HasFocus() || pWindow->HasChildPathFocus()) )
@@ -163,8 +158,7 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
}
case VclEventId::ComboboxSelect:
{
- VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
- if (pList != nullptr && m_xText.is())
+ if (m_xList.is() && m_xText.is())
{
Reference<XAccessibleText> xText (m_xText->getAccessibleContext(), UNO_QUERY);
if ( xText.is() )
@@ -172,7 +166,7 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
OUString sText = xText->getSelectedText();
if ( sText.isEmpty() )
sText = xText->getText();
- pList->UpdateSelection_Acc(sText, m_bIsDropDownBox);
+ m_xList->UpdateSelection_Acc(sText, m_bIsDropDownBox);
#if defined(_WIN32)
if (m_bIsDropDownBox || m_aBoxType==COMBOBOX)
NotifyAccessibleEvent(AccessibleEventId::VALUE_CHANGED, Any(), Any());
@@ -192,14 +186,12 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
case VclEventId::ComboboxItemRemoved:
{
// Forward the call to the list child.
- VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
- if ( pList == nullptr )
+ if (!m_xList.is())
{
getAccessibleChild ( m_bHasTextChild ? 1 : 0 );
- pList = static_cast<VCLXAccessibleList*>(m_xList.get());
}
- if ( pList != nullptr )
- pList->ProcessWindowEvent (rVclWindowEvent);
+ if (m_xList.is())
+ m_xList->ProcessWindowEvent(rVclWindowEvent);
break;
}
@@ -210,8 +202,7 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
// the same VCL object as this box does. In case of the
// combobox, however, we have to help by providing the list with
// the text of the currently selected item.
- VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
- if (pList != nullptr && m_xText.is())
+ if (m_xList.is() && m_xText.is())
{
Reference<XAccessibleText> xText (m_xText->getAccessibleContext(), UNO_QUERY);
if ( xText.is() )
@@ -219,7 +210,7 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
OUString sText = xText->getSelectedText();
if ( sText.isEmpty() )
sText = xText->getText();
- pList->UpdateSelection (sText);
+ m_xList->UpdateSelection(sText);
}
}
break;
@@ -247,9 +238,6 @@ void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEven
}
}
-IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleBox, VCLXAccessibleComponent, VCLXAccessibleBox_BASE)
-IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleBox, VCLXAccessibleComponent, VCLXAccessibleBox_BASE)
-
//===== XAccessible =========================================================
Reference< XAccessibleContext > SAL_CALL VCLXAccessibleBox::getAccessibleContext( )
@@ -261,7 +249,7 @@ Reference< XAccessibleContext > SAL_CALL VCLXAccessibleBox::getAccessibleContext
//===== XAccessibleContext ==================================================
-sal_Int32 VCLXAccessibleBox::getAccessibleChildCount()
+sal_Int64 VCLXAccessibleBox::getAccessibleChildCount()
{
SolarMutexGuard aSolarGuard;
::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
@@ -269,12 +257,12 @@ sal_Int32 VCLXAccessibleBox::getAccessibleChildCount()
return implGetAccessibleChildCount();
}
-sal_Int32 VCLXAccessibleBox::implGetAccessibleChildCount()
+sal_Int64 VCLXAccessibleBox::implGetAccessibleChildCount()
{
// Usually a box has a text field and a list of items as its children.
// Non drop down list boxes have no text field. Additionally check
// whether the object is valid.
- sal_Int32 nCount = 0;
+ sal_Int64 nCount = 0;
if (IsValid())
nCount += (m_bHasTextChild?1:0) + (m_bHasListChild?1:0);
else
@@ -289,7 +277,7 @@ sal_Int32 VCLXAccessibleBox::implGetAccessibleChildCount()
return nCount;
}
-Reference<XAccessible> SAL_CALL VCLXAccessibleBox::getAccessibleChild (sal_Int32 i)
+Reference<XAccessible> SAL_CALL VCLXAccessibleBox::getAccessibleChild (sal_Int64 i)
{
SolarMutexGuard aSolarGuard;
::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
@@ -305,11 +293,10 @@ Reference<XAccessible> SAL_CALL VCLXAccessibleBox::getAccessibleChild (sal_Int32
// List.
if ( ! m_xList.is())
{
- rtl::Reference<VCLXAccessibleList> pList = new VCLXAccessibleList ( GetVCLXWindow(),
+ m_xList = new VCLXAccessibleList(GetVCLXWindow(),
(m_aBoxType == LISTBOX ? VCLXAccessibleList::LISTBOX : VCLXAccessibleList::COMBOBOX),
this);
- pList->SetIndexInParent (i);
- m_xList = pList;
+ m_xList->SetIndexInParent(i);
}
xChild = m_xList;
}
@@ -376,7 +363,7 @@ sal_Bool SAL_CALL VCLXAccessibleBox::doAccessibleAction (sal_Int32 nIndex)
("VCLXAccessibleBox::doAccessibleAction: index "
+ OUString::number(nIndex) + " not among 0.."
+ OUString::number(getAccessibleActionCount())),
- static_cast<OWeakObject*>(this));
+ getXWeak());
if (m_aBoxType == COMBOBOX)
{
@@ -445,13 +432,11 @@ Any VCLXAccessibleBox::getCurrentValue( )
}
if (m_aBoxType == LISTBOX && m_bIsDropDownBox && m_xList.is() )
{
-
- VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
- if(pList->IsInDropDown())
+ if (m_xList->IsInDropDown())
{
- if(pList->getSelectedAccessibleChildCount()>0)
+ if (m_xList->getSelectedAccessibleChildCount() > 0)
{
- Reference<XAccessibleContext> xName (pList->getSelectedAccessibleChild(sal_Int32(0)), UNO_QUERY);
+ Reference<XAccessibleContext> xName (m_xList->getSelectedAccessibleChild(sal_Int64(0)), UNO_QUERY);
if(xName.is())
{
aAny <<= xName->getAccessibleName();
@@ -492,7 +477,7 @@ Any VCLXAccessibleBox::getMinimumIncrement( )
}
// Set the INDETERMINATE state when there is no selected item for combobox
-void VCLXAccessibleBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleBox::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleComponent::FillAccessibleStateSet(rStateSet);
if (m_aBoxType == COMBOBOX )
@@ -508,7 +493,7 @@ void VCLXAccessibleBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& r
nEntryCount = pComboBox->GetEntryCount();
}
if ( sText.isEmpty() && nEntryCount > 0 )
- rStateSet.AddState(AccessibleStateType::INDETERMINATE);
+ rStateSet |= AccessibleStateType::INDETERMINATE;
}
else if (m_aBoxType == LISTBOX && m_bIsDropDownBox)
{
@@ -517,7 +502,7 @@ void VCLXAccessibleBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& r
{
sal_Int32 nSelectedEntryCount = pListBox->GetSelectedEntryCount();
if ( nSelectedEntryCount == 0)
- rStateSet.AddState(AccessibleStateType::INDETERMINATE);
+ rStateSet |= AccessibleStateType::INDETERMINATE;
}
}
}
diff --git a/accessibility/source/standard/vclxaccessiblebutton.cxx b/accessibility/source/standard/vclxaccessiblebutton.cxx
index d5ffb68bbf2e..7ede9e02c808 100644
--- a/accessibility/source/standard/vclxaccessiblebutton.cxx
+++ b/accessibility/source/standard/vclxaccessiblebutton.cxx
@@ -21,7 +21,7 @@
#include <helper/accresmgr.hxx>
#include <strings.hrc>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/accessiblekeybindinghelper.hxx>
#include <com/sun/star/awt/KeyModifier.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
@@ -36,7 +36,6 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
using namespace ::comphelper;
@@ -68,7 +67,7 @@ void VCLXAccessibleButton::ProcessWindowEvent( const VclWindowEvent& rVclWindowE
}
-void VCLXAccessibleButton::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleButton::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
@@ -76,50 +75,41 @@ void VCLXAccessibleButton::FillAccessibleStateSet( utl::AccessibleStateSetHelper
if ( !pButton )
return;
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
+
+ if (pButton->isToggleButton())
+ rStateSet |= AccessibleStateType::CHECKABLE;
if ( pButton->GetState() == TRISTATE_TRUE )
- rStateSet.AddState( AccessibleStateType::CHECKED );
+ rStateSet |= AccessibleStateType::CHECKED;
if ( pButton->IsPressed() )
- rStateSet.AddState( AccessibleStateType::PRESSED );
+ rStateSet |= AccessibleStateType::PRESSED;
// IA2 CWS: if the button has a popup menu, it should has the state EXPANDABLE
if( pButton->GetType() == WindowType::MENUBUTTON )
{
- rStateSet.AddState( AccessibleStateType::EXPANDABLE );
+ rStateSet |= AccessibleStateType::EXPANDABLE;
}
if( pButton->GetStyle() & WB_DEFBUTTON )
{
- rStateSet.AddState( AccessibleStateType::DEFAULT );
+ rStateSet |= AccessibleStateType::DEFAULT;
}
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleButton, VCLXAccessibleTextComponent, VCLXAccessibleButton_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleButton, VCLXAccessibleTextComponent, VCLXAccessibleButton_BASE )
-
-
// XServiceInfo
OUString VCLXAccessibleButton::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleButton";
+ return u"com.sun.star.comp.toolkit.AccessibleButton"_ustr;
}
Sequence< OUString > VCLXAccessibleButton::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleButton" };
+ return { u"com.sun.star.awt.AccessibleButton"_ustr };
}
@@ -179,7 +169,18 @@ sal_Bool VCLXAccessibleButton::doAccessibleAction ( sal_Int32 nIndex )
VclPtr< PushButton > pButton = GetAs< PushButton >();
if ( pButton )
- pButton->Click();
+ {
+ if (pButton->isToggleButton())
+ {
+ // PushButton::Click doesn't toggle when it's a toggle button
+ pButton->Check(!pButton->IsChecked());
+ pButton->Toggle();
+ }
+ else
+ {
+ pButton->Click();
+ }
+ }
return true;
}
diff --git a/accessibility/source/standard/vclxaccessiblecheckbox.cxx b/accessibility/source/standard/vclxaccessiblecheckbox.cxx
index 20cf2138bc06..018878714e8a 100644
--- a/accessibility/source/standard/vclxaccessiblecheckbox.cxx
+++ b/accessibility/source/standard/vclxaccessiblecheckbox.cxx
@@ -23,7 +23,7 @@
#include <helper/accresmgr.hxx>
#include <strings.hrc>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/accessiblekeybindinghelper.hxx>
#include <com/sun/star/awt/KeyModifier.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
@@ -37,7 +37,6 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
using namespace ::comphelper;
@@ -46,7 +45,7 @@ using namespace ::comphelper;
VCLXAccessibleCheckBox::VCLXAccessibleCheckBox( VCLXWindow* pVCLWindow )
- :VCLXAccessibleTextComponent( pVCLWindow )
+ :ImplInheritanceHelper( pVCLWindow )
{
m_bChecked = IsChecked();
m_bIndeterminate = IsIndeterminate();
@@ -123,44 +122,33 @@ void VCLXAccessibleCheckBox::ProcessWindowEvent( const VclWindowEvent& rVclWindo
}
-void VCLXAccessibleCheckBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleCheckBox::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::CHECKABLE;
+ rStateSet |= AccessibleStateType::FOCUSABLE;
if ( IsChecked() )
- rStateSet.AddState( AccessibleStateType::CHECKED );
+ rStateSet |= AccessibleStateType::CHECKED;
if ( IsIndeterminate() )
- rStateSet.AddState( AccessibleStateType::INDETERMINATE );
+ rStateSet |= AccessibleStateType::INDETERMINATE;
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleCheckBox, VCLXAccessibleTextComponent, VCLXAccessibleCheckBox_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleCheckBox, VCLXAccessibleTextComponent, VCLXAccessibleCheckBox_BASE )
-
-
// XServiceInfo
OUString VCLXAccessibleCheckBox::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleCheckBox";
+ return u"com.sun.star.comp.toolkit.AccessibleCheckBox"_ustr;
}
Sequence< OUString > VCLXAccessibleCheckBox::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleCheckBox" };
+ return { u"com.sun.star.awt.AccessibleCheckBox"_ustr };
}
diff --git a/accessibility/source/standard/vclxaccessiblecombobox.cxx b/accessibility/source/standard/vclxaccessiblecombobox.cxx
index e537f7199eaa..8b239996599d 100644
--- a/accessibility/source/standard/vclxaccessiblecombobox.cxx
+++ b/accessibility/source/standard/vclxaccessiblecombobox.cxx
@@ -18,12 +18,11 @@
*/
#include <standard/vclxaccessiblecombobox.hxx>
+#include <comphelper/sequence.hxx>
#include <vcl/window.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::accessibility;
VCLXAccessibleComboBox::VCLXAccessibleComboBox (VCLXWindow* pVCLWindow)
@@ -41,14 +40,14 @@ bool VCLXAccessibleComboBox::IsValid() const
OUString VCLXAccessibleComboBox::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleComboBox";
+ return u"com.sun.star.comp.toolkit.AccessibleComboBox"_ustr;
}
Sequence< OUString > VCLXAccessibleComboBox::getSupportedServiceNames()
{
return comphelper::concatSequences(VCLXAccessibleBox::getSupportedServiceNames(),
- Sequence<OUString>{"com.sun.star.accessibility.AccessibleComboBox"});
+ Sequence<OUString>{u"com.sun.star.accessibility.AccessibleComboBox"_ustr});
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx b/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
index 97fcebb04a2b..903e704b92bf 100644
--- a/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
+++ b/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
@@ -19,14 +19,13 @@
#include <standard/vclxaccessibledropdowncombobox.hxx>
+#include <comphelper/sequence.hxx>
#include <toolkit/awt/vclxwindow.hxx>
#include <vcl/vclevent.hxx>
using namespace ::com::sun::star;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::accessibility;
VCLXAccessibleDropDownComboBox::VCLXAccessibleDropDownComboBox (VCLXWindow* pVCLWindow)
@@ -60,14 +59,14 @@ void VCLXAccessibleDropDownComboBox::ProcessWindowEvent (const VclWindowEvent& r
OUString VCLXAccessibleDropDownComboBox::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleDropDownComboBox";
+ return u"com.sun.star.comp.toolkit.AccessibleDropDownComboBox"_ustr;
}
Sequence< OUString > VCLXAccessibleDropDownComboBox::getSupportedServiceNames()
{
return comphelper::concatSequences(VCLXAccessibleBox::getSupportedServiceNames(),
- Sequence<OUString>{"com.sun.star.accessibility.AccessibleDropDownComboBox"});
+ Sequence<OUString>{u"com.sun.star.accessibility.AccessibleDropDownComboBox"_ustr});
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx b/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
index 641c1bdc4b3f..5d1c206f1737 100644
--- a/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
+++ b/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
@@ -18,12 +18,11 @@
*/
#include <standard/vclxaccessibledropdownlistbox.hxx>
+#include <comphelper/sequence.hxx>
#include <toolkit/awt/vclxwindow.hxx>
using namespace ::com::sun::star;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::accessibility;
VCLXAccessibleDropDownListBox::VCLXAccessibleDropDownListBox (VCLXWindow* pVCLWindow)
@@ -39,13 +38,13 @@ bool VCLXAccessibleDropDownListBox::IsValid() const
// XServiceInfo
OUString VCLXAccessibleDropDownListBox::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleDropDownListBox";
+ return u"com.sun.star.comp.toolkit.AccessibleDropDownListBox"_ustr;
}
Sequence< OUString > VCLXAccessibleDropDownListBox::getSupportedServiceNames()
{
return comphelper::concatSequences(VCLXAccessibleBox::getSupportedServiceNames(),
- Sequence<OUString>{"com.sun.star.accessibility.AccessibleDropDownListBox"});
+ Sequence<OUString>{u"com.sun.star.accessibility.AccessibleDropDownListBox"_ustr});
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/source/standard/vclxaccessibleedit.cxx b/accessibility/source/standard/vclxaccessibleedit.cxx
index 87cfcdb62f30..5943b4c8c745 100644
--- a/accessibility/source/standard/vclxaccessibleedit.cxx
+++ b/accessibility/source/standard/vclxaccessibleedit.cxx
@@ -22,16 +22,17 @@
#include <toolkit/awt/vclxwindows.hxx>
#include <toolkit/helper/convert.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <com/sun/star/accessibility/AccessibleTextType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/string.hxx>
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
+#include <vcl/mnemonic.hxx>
#include <vcl/settings.hxx>
#include <vcl/toolkit/edit.hxx>
#include <vcl/toolkit/vclmedit.hxx>
@@ -55,7 +56,7 @@ using namespace ::comphelper;
VCLXAccessibleEdit::VCLXAccessibleEdit( VCLXWindow* pVCLWindow )
- :VCLXAccessibleTextComponent( pVCLWindow )
+ :ImplInheritanceHelper( pVCLWindow )
{
m_nCaretPosition = getCaretPosition();
}
@@ -103,17 +104,22 @@ void VCLXAccessibleEdit::ProcessWindowEvent( const VclWindowEvent& rVclWindowEve
}
-void VCLXAccessibleEdit::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleEdit::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
- VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
- if ( pVCLXEdit )
+ VCLXWindow* pVCLXWindow = GetVCLXWindow();
+ if (pVCLXWindow)
{
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
- rStateSet.AddState( AccessibleStateType::SINGLE_LINE );
- if ( pVCLXEdit->isEditable() )
- rStateSet.AddState( AccessibleStateType::EDITABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
+
+ if (GetWindow() && GetWindow()->GetType() == WindowType::MULTILINEEDIT)
+ rStateSet |= AccessibleStateType::MULTI_LINE;
+ else
+ rStateSet |= AccessibleStateType::SINGLE_LINE;
+
+ if (isEditable())
+ rStateSet |= AccessibleStateType::EDITABLE;
}
}
@@ -128,14 +134,14 @@ OUString VCLXAccessibleEdit::implGetText()
VclPtr< Edit > pEdit = GetAs< Edit >();
if ( pEdit )
{
- aText = OutputDevice::GetNonMnemonicString( pEdit->GetText() );
+ aText = removeMnemonicFromString( pEdit->GetText() );
if ( implGetAccessibleRole() == AccessibleRole::PASSWORD_TEXT )
{
sal_Unicode cEchoChar = pEdit->GetEchoChar();
if ( !cEchoChar )
cEchoChar = '*';
- OUStringBuffer sTmp;
+ OUStringBuffer sTmp(aText.getLength());
aText = comphelper::string::padToLength(sTmp, aText.getLength(),
cEchoChar).makeStringAndClear();
}
@@ -147,47 +153,35 @@ OUString VCLXAccessibleEdit::implGetText()
void VCLXAccessibleEdit::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
{
- awt::Selection aSelection;
- VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
- if ( pVCLXEdit )
- aSelection = pVCLXEdit->getSelection();
+ Selection aSelection;
+ VclPtr<Edit> pEdit = GetAs<Edit>();
+ if (pEdit)
+ aSelection = pEdit->GetSelection();
- nStartIndex = aSelection.Min;
- nEndIndex = aSelection.Max;
+ nStartIndex = aSelection.Min();
+ nEndIndex = aSelection.Max();
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleEdit, VCLXAccessibleTextComponent, VCLXAccessibleEdit_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleEdit, VCLXAccessibleTextComponent, VCLXAccessibleEdit_BASE )
-
-
// XServiceInfo
OUString VCLXAccessibleEdit::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleEdit";
+ return u"com.sun.star.comp.toolkit.AccessibleEdit"_ustr;
}
Sequence< OUString > VCLXAccessibleEdit::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleEdit" };
+ return { u"com.sun.star.awt.AccessibleEdit"_ustr };
}
// XAccessibleContext
-sal_Int32 VCLXAccessibleEdit::getAccessibleChildCount()
+sal_Int64 VCLXAccessibleEdit::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -195,7 +189,7 @@ sal_Int32 VCLXAccessibleEdit::getAccessibleChildCount()
}
-Reference< XAccessible > VCLXAccessibleEdit::getAccessibleChild( sal_Int32 )
+Reference< XAccessible > VCLXAccessibleEdit::getAccessibleChild( sal_Int64 )
{
throw IndexOutOfBoundsException();
}
@@ -426,11 +420,10 @@ sal_Bool VCLXAccessibleEdit::setSelection( sal_Int32 nStartIndex, sal_Int32 nEnd
if ( !implIsValidRange( nStartIndex, nEndIndex, sText.getLength() ) )
throw IndexOutOfBoundsException();
- VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
VclPtr< Edit > pEdit = GetAs< Edit >();
- if ( pVCLXEdit && pEdit && pEdit->IsEnabled() )
+ if (pEdit && pEdit->IsEnabled())
{
- pVCLXEdit->setSelection( awt::Selection( nStartIndex, nEndIndex ) );
+ pEdit->SetSelection(Selection(nStartIndex, nEndIndex));
bReturn = true;
}
@@ -562,10 +555,12 @@ sal_Bool VCLXAccessibleEdit::replaceText( sal_Int32 nStartIndex, sal_Int32 nEndI
sal_Int32 nMinIndex = std::min( nStartIndex, nEndIndex );
sal_Int32 nMaxIndex = std::max( nStartIndex, nEndIndex );
- VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
- if ( pVCLXEdit && pVCLXEdit->isEditable() )
+
+ if (isEditable())
{
- pVCLXEdit->setText( sText.replaceAt( nMinIndex, nMaxIndex - nMinIndex, sReplacement ) );
+ VclPtr<Edit> pEdit = GetAs<Edit>();
+ assert(pEdit);
+ pEdit->SetText(sText.replaceAt(nMinIndex, nMaxIndex - nMinIndex, sReplacement));
sal_Int32 nIndex = nMinIndex + sReplacement.getLength();
setSelection( nIndex, nIndex );
bReturn = true;
@@ -592,17 +587,23 @@ sal_Bool VCLXAccessibleEdit::setText( const OUString& sText )
bool bReturn = false;
- VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
- if ( pVCLXEdit && pVCLXEdit->isEditable() )
+ if (isEditable())
{
- pVCLXEdit->setText( sText );
+ VclPtr<Edit> pEdit = GetAs<Edit>();
+ assert(pEdit);
+ pEdit->SetText(sText);
sal_Int32 nSize = sText.getLength();
- pVCLXEdit->setSelection( awt::Selection( nSize, nSize ) );
+ pEdit->SetSelection(Selection(nSize, nSize) );
bReturn = true;
}
return bReturn;
}
+bool VCLXAccessibleEdit::isEditable()
+{
+ VclPtr<Edit> pEdit = GetAs<Edit>();
+ return pEdit && !pEdit->IsReadOnly() && pEdit->IsEnabled();
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx b/accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx
index 9e2874365210..ee51ad89cddf 100644
--- a/accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx
+++ b/accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx
@@ -27,12 +27,12 @@ using namespace ::com::sun::star;
OUString VCLXAccessibleFixedHyperlink::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleFixedHyperlink";
+ return u"com.sun.star.comp.toolkit.AccessibleFixedHyperlink"_ustr;
}
uno::Sequence<OUString> VCLXAccessibleFixedHyperlink::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleFixedHyperlink" };
+ return { u"com.sun.star.awt.AccessibleFixedHyperlink"_ustr };
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/source/standard/vclxaccessiblefixedtext.cxx b/accessibility/source/standard/vclxaccessiblefixedtext.cxx
index b62faded5580..0bef3f3b9ffe 100644
--- a/accessibility/source/standard/vclxaccessiblefixedtext.cxx
+++ b/accessibility/source/standard/vclxaccessiblefixedtext.cxx
@@ -19,36 +19,33 @@
#include <standard/vclxaccessiblefixedtext.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <vcl/window.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
// VCLXAccessibleFixedText
-void VCLXAccessibleFixedText::FillAccessibleStateSet(utl::AccessibleStateSetHelper& rStateSet)
+void VCLXAccessibleFixedText::FillAccessibleStateSet(sal_Int64& rStateSet)
{
VCLXAccessibleTextComponent::FillAccessibleStateSet(rStateSet);
if (GetWindow() && GetWindow()->GetStyle() & WB_WORDBREAK)
- rStateSet.AddState(AccessibleStateType::MULTI_LINE);
+ rStateSet |= AccessibleStateType::MULTI_LINE;
}
// XServiceInfo
OUString VCLXAccessibleFixedText::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleFixedText";
+ return u"com.sun.star.comp.toolkit.AccessibleFixedText"_ustr;
}
Sequence<OUString> VCLXAccessibleFixedText::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleFixedText" };
+ return { u"com.sun.star.awt.AccessibleFixedText"_ustr };
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/source/standard/vclxaccessibleheaderbar.cxx b/accessibility/source/standard/vclxaccessibleheaderbar.cxx
index de5208b351de..2c8ad658b1ab 100644
--- a/accessibility/source/standard/vclxaccessibleheaderbar.cxx
+++ b/accessibility/source/standard/vclxaccessibleheaderbar.cxx
@@ -28,11 +28,8 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
-using namespace ::comphelper;
VCLXAccessibleHeaderBar::VCLXAccessibleHeaderBar(VCLXWindow* pVCLWindow)
: VCLXAccessibleComponent(pVCLWindow)
@@ -46,28 +43,28 @@ VCLXAccessibleHeaderBar::~VCLXAccessibleHeaderBar() {}
OUString VCLXAccessibleHeaderBar::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleHeaderBar";
+ return u"com.sun.star.comp.toolkit.AccessibleHeaderBar"_ustr;
}
Sequence<OUString> VCLXAccessibleHeaderBar::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleHeaderBar" };
+ return { u"com.sun.star.awt.AccessibleHeaderBar"_ustr };
}
// =======XAccessibleContext=======
-sal_Int32 SAL_CALL VCLXAccessibleHeaderBar::getAccessibleChildCount()
+sal_Int64 SAL_CALL VCLXAccessibleHeaderBar::getAccessibleChildCount()
{
SolarMutexGuard g;
- sal_Int32 nCount = 0;
+ sal_Int64 nCount = 0;
if (m_pHeadBar)
nCount = m_pHeadBar->GetItemCount();
return nCount;
}
css::uno::Reference<css::accessibility::XAccessible>
- SAL_CALL VCLXAccessibleHeaderBar::getAccessibleChild(sal_Int32 i)
+ SAL_CALL VCLXAccessibleHeaderBar::getAccessibleChild(sal_Int64 i)
{
SolarMutexGuard g;
diff --git a/accessibility/source/standard/vclxaccessibleheaderbaritem.cxx b/accessibility/source/standard/vclxaccessibleheaderbaritem.cxx
index 5c9bf5c9ad58..d3463f5cdae7 100644
--- a/accessibility/source/standard/vclxaccessibleheaderbaritem.cxx
+++ b/accessibility/source/standard/vclxaccessibleheaderbaritem.cxx
@@ -23,9 +23,9 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
@@ -52,19 +52,19 @@ VCLXAccessibleHeaderBarItem::~VCLXAccessibleHeaderBarItem()
{
}
-void VCLXAccessibleHeaderBarItem::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleHeaderBarItem::FillAccessibleStateSet( sal_Int64& rStateSet )
{
if ( m_pHeadBar )
{
if ( m_pHeadBar->IsEnabled() )
- rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet |= AccessibleStateType::ENABLED;
if ( m_pHeadBar->IsVisible() )
{
- rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet |= AccessibleStateType::VISIBLE;
}
- rStateSet.AddState( AccessibleStateType::SELECTABLE );
- rStateSet.AddState( AccessibleStateType::RESIZABLE );
+ rStateSet |= AccessibleStateType::SELECTABLE;
+ rStateSet |= AccessibleStateType::RESIZABLE;
}
}
@@ -81,18 +81,6 @@ awt::Rectangle VCLXAccessibleHeaderBarItem::implGetBounds()
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleHeaderBarItem, OAccessibleExtendedComponentHelper, VCLXAccessibleHeaderBarItem_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleHeaderBarItem, OAccessibleExtendedComponentHelper, VCLXAccessibleHeaderBarItem_BASE )
-
-
// XServiceInfo
OUString VCLXAccessibleHeaderBarItem::getImplementationName()
{
@@ -119,13 +107,13 @@ Reference< XAccessibleContext > VCLXAccessibleHeaderBarItem::getAccessibleContex
// XAccessibleContext
-sal_Int32 VCLXAccessibleHeaderBarItem::getAccessibleChildCount()
+sal_Int64 VCLXAccessibleHeaderBarItem::getAccessibleChildCount()
{
return 0;
}
-Reference< XAccessible > VCLXAccessibleHeaderBarItem::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > VCLXAccessibleHeaderBarItem::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
@@ -150,7 +138,7 @@ Reference< XAccessible > VCLXAccessibleHeaderBarItem::getAccessibleParent()
}
-sal_Int32 VCLXAccessibleHeaderBarItem::getAccessibleIndexInParent()
+sal_Int64 VCLXAccessibleHeaderBarItem::getAccessibleIndexInParent()
{
OExternalLockGuard aGuard( this );
return m_nIndexInParent - 1;
@@ -188,22 +176,22 @@ Reference< XAccessibleRelationSet > VCLXAccessibleHeaderBarItem::getAccessibleRe
}
-Reference< XAccessibleStateSet > VCLXAccessibleHeaderBarItem::getAccessibleStateSet( )
+sal_Int64 VCLXAccessibleHeaderBarItem::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- FillAccessibleStateSet( *pStateSetHelper );
+ FillAccessibleStateSet( nStateSet );
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
- return pStateSetHelper;
+ return nStateSet;
}
diff --git a/accessibility/source/standard/vclxaccessiblelist.cxx b/accessibility/source/standard/vclxaccessiblelist.cxx
index 353312e6bbae..c001b59c42fc 100644
--- a/accessibility/source/standard/vclxaccessiblelist.cxx
+++ b/accessibility/source/standard/vclxaccessiblelist.cxx
@@ -22,12 +22,13 @@
#include <helper/listboxhelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/sequence.hxx>
+#include <comphelper/types.hxx>
#include <o3tl/safeint.hxx>
#include <vcl/svapp.hxx>
#include <vcl/toolkit/combobox.hxx>
@@ -37,14 +38,13 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
using namespace ::accessibility;
namespace
{
/// @throws css::lang::IndexOutOfBoundsException
- void checkSelection_Impl( sal_Int32 _nIndex, const IComboListBoxHelper& _rListBox, bool bSelected )
+ void checkSelection_Impl( sal_Int64 _nIndex, const IComboListBoxHelper& _rListBox, bool bSelected )
{
sal_Int32 nCount = bSelected ? _rListBox.GetSelectedEntryCount()
: _rListBox.GetEntryCount();
@@ -55,7 +55,7 @@ namespace
VCLXAccessibleList::VCLXAccessibleList (VCLXWindow* pVCLWindow, BoxType aBoxType,
const Reference< XAccessible >& _xParent)
- : VCLXAccessibleComponent (pVCLWindow),
+ : ImplInheritanceHelper (pVCLWindow),
m_aBoxType (aBoxType),
m_nVisibleLineCount (0),
m_nIndexInParent (DEFAULT_INDEX_IN_PARENT),
@@ -107,14 +107,24 @@ void SAL_CALL VCLXAccessibleList::disposing()
{
VCLXAccessibleComponent::disposing();
+ disposeChildren();
+ m_pListBoxHelper.reset();
+}
+
+void VCLXAccessibleList::disposeChildren()
+{
// Dispose all items in the list.
- m_aAccessibleChildren.clear();
+ for (rtl::Reference<VCLXAccessibleListItem>& rxChild : m_aAccessibleChildren)
+ {
+ if (rxChild.is())
+ rxChild->dispose();
+ }
- m_pListBoxHelper.reset();
+ m_aAccessibleChildren.clear();
}
-void VCLXAccessibleList::FillAccessibleStateSet (utl::AccessibleStateSetHelper& rStateSet)
+void VCLXAccessibleList::FillAccessibleStateSet (sal_Int64& rStateSet)
{
SolarMutexGuard aSolarGuard;
@@ -124,8 +134,8 @@ void VCLXAccessibleList::FillAccessibleStateSet (utl::AccessibleStateSetHelper&
&& (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN
&& !m_pListBoxHelper->IsInDropDown() )
{
- rStateSet.RemoveState (AccessibleStateType::VISIBLE);
- rStateSet.RemoveState (AccessibleStateType::SHOWING);
+ rStateSet &= ~AccessibleStateType::VISIBLE;
+ rStateSet &= ~AccessibleStateType::SHOWING;
m_bVisible = false;
}
@@ -135,10 +145,10 @@ void VCLXAccessibleList::FillAccessibleStateSet (utl::AccessibleStateSetHelper&
if ( m_pListBoxHelper )
{
if ( m_pListBoxHelper->IsMultiSelectionEnabled() )
- rStateSet.AddState( AccessibleStateType::MULTI_SELECTABLE);
- rStateSet.AddState (AccessibleStateType::FOCUSABLE);
+ rStateSet |= AccessibleStateType::MULTI_SELECTABLE;
+ rStateSet |= AccessibleStateType::FOCUSABLE;
// All children are transient.
- rStateSet.AddState (AccessibleStateType::MANAGES_DESCENDANTS);
+ rStateSet |= AccessibleStateType::MANAGES_DESCENDANTS;
}
}
@@ -151,23 +161,22 @@ void VCLXAccessibleList::notifyVisibleStates(bool _bSetNew )
(_bSetNew ? aNewValue : aOldValue ) <<= AccessibleStateType::SHOWING;
NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
- ListItems::iterator aIter = m_aAccessibleChildren.begin();
+ auto aIter = m_aAccessibleChildren.begin();
UpdateVisibleLineCount();
// adjust the index inside the VCLXAccessibleListItem
for ( ; aIter != m_aAccessibleChildren.end(); )
{
- Reference< XAccessible > xHold = *aIter;
- if (!xHold.is())
+ rtl::Reference<VCLXAccessibleListItem> xChild = *aIter;
+ if (!xChild.is())
{
aIter = m_aAccessibleChildren.erase(aIter);
}
else
{
- VCLXAccessibleListItem* pItem = static_cast<VCLXAccessibleListItem*>(xHold.get());
const sal_Int32 nTopEntry = m_pListBoxHelper ? m_pListBoxHelper->GetTopEntry() : 0;
const sal_Int32 nPos = static_cast<sal_Int32>(aIter - m_aAccessibleChildren.begin());
bool bVisible = ( nPos>=nTopEntry && nPos<( nTopEntry + m_nVisibleLineCount ) );
- pItem->SetVisible( m_bVisible && bVisible );
+ xChild->SetVisible(m_bVisible && bVisible);
++aIter;
}
@@ -206,26 +215,24 @@ void VCLXAccessibleList::UpdateSelection_Impl_Acc(bool bHasDropDownList)
{
sal_Int32 i=0;
m_nCurSelectedPos = LISTBOX_ENTRY_NOTFOUND;
- for ( const auto& rChild : m_aAccessibleChildren )
+ for (const rtl::Reference<VCLXAccessibleListItem>& rxChild : m_aAccessibleChildren)
{
- Reference< XAccessible > xHold = rChild;
- if ( xHold.is() )
+ if (rxChild.is())
{
- VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >( xHold.get() );
// Retrieve the item's index from the list entry.
bool bNowSelected = m_pListBoxHelper->IsEntryPosSelected (i);
if (bNowSelected)
m_nCurSelectedPos = i;
- if ( bNowSelected && !pItem->IsSelected() )
+ if (bNowSelected && !rxChild->IsSelected())
{
- xNewAcc = rChild;
+ xNewAcc = rxChild;
aNewValue <<= xNewAcc;
}
- else if ( pItem->IsSelected() )
+ else if (rxChild->IsSelected())
m_nLastSelectedPos = i;
- pItem->SetSelected( bNowSelected );
+ rxChild->SetSelected(bNowSelected);
}
else
{ // it could happen that a child was not created before
@@ -248,6 +255,12 @@ void VCLXAccessibleList::UpdateSelection_Impl_Acc(bool bHasDropDownList)
}
}
+ // since an active descendant is the UI element with keyboard focus, only send
+ // ACTIVE_DESCENDANT_CHANGED if the listbox/combobox has focus
+ vcl::Window* pWindow = GetWindow();
+ assert(pWindow);
+ const bool bFocused = pWindow->HasChildPathFocus();
+
if (m_aBoxType == COMBOBOX)
{
//VCLXAccessibleDropDownComboBox
@@ -256,10 +269,13 @@ void VCLXAccessibleList::UpdateSelection_Impl_Acc(bool bHasDropDownList)
{
if ( aNewValue.hasValue() || aOldValue.hasValue() )
{
- NotifyAccessibleEvent(
- AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
- aOldValue,
- aNewValue );
+ if (bFocused)
+ {
+ NotifyAccessibleEvent(
+ AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+ aOldValue,
+ aNewValue );
+ }
NotifyListItem(aNewValue);
}
@@ -274,10 +290,13 @@ void VCLXAccessibleList::UpdateSelection_Impl_Acc(bool bHasDropDownList)
{
if ( aNewValue.hasValue() || aOldValue.hasValue() )
{
- NotifyAccessibleEvent(
- AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
- aOldValue,
- aNewValue );
+ if (bFocused)
+ {
+ NotifyAccessibleEvent(
+ AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+ aOldValue,
+ aNewValue );
+ }
NotifyListItem(aNewValue);
}
@@ -330,7 +349,7 @@ void VCLXAccessibleList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEve
if ( nPos == LISTBOX_ENTRY_NOTFOUND )
nPos = m_pListBoxHelper->GetTopEntry();
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- aNewValue <<= CreateChild(nPos);
+ aNewValue <<= uno::Reference<XAccessible>(CreateChild(nPos));
NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
aOldValue,
aNewValue );
@@ -399,7 +418,7 @@ void VCLXAccessibleList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEve
if ( nPos == LISTBOX_ENTRY_NOTFOUND )
nPos = m_pListBoxHelper->GetTopEntry();
if ( nPos != LISTBOX_ENTRY_NOTFOUND )
- aNewValue <<= CreateChild(nPos);
+ aNewValue <<= Reference<XAccessible>(CreateChild(nPos));
NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
aOldValue,
aNewValue );
@@ -420,7 +439,7 @@ void VCLXAccessibleList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEve
{
if (m_pListBoxHelper && (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) != WB_DROPDOWN)
{
- uno::Sequence< uno::Reference< uno::XInterface > > aSequence { pBox->GetAccessible() };
+ uno::Sequence<uno::Reference<css::accessibility::XAccessible>> aSequence { pBox->GetAccessible() };
rRelationSet.AddRelation( com::sun::star::accessibility::AccessibleRelation( com::sun::star::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
}
}
@@ -453,9 +472,9 @@ void VCLXAccessibleList::UpdateSelection (std::u16string_view sTextOfSelectedIte
}
-Reference<XAccessible> VCLXAccessibleList::CreateChild (sal_Int32 nPos)
+rtl::Reference<VCLXAccessibleListItem> VCLXAccessibleList::CreateChild(sal_Int32 nPos)
{
- Reference<XAccessible> xChild;
+ rtl::Reference<VCLXAccessibleListItem> xChild;
if ( o3tl::make_unsigned(nPos) >= m_aAccessibleChildren.size() )
{
@@ -484,14 +503,13 @@ Reference<XAccessible> VCLXAccessibleList::CreateChild (sal_Int32 nPos)
bNowSelected = m_pListBoxHelper->IsEntryPosSelected(nPos);
if (bNowSelected)
m_nCurSelectedPos = nPos;
- VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >(xChild.get());
- pItem->SetSelected( bNowSelected );
+ xChild->SetSelected(bNowSelected);
// Set the child's VISIBLE state.
UpdateVisibleLineCount();
const sal_Int32 nTopEntry = m_pListBoxHelper ? m_pListBoxHelper->GetTopEntry() : 0;
bool bVisible = ( nPos>=nTopEntry && nPos<( nTopEntry + m_nVisibleLineCount ) );
- pItem->SetVisible( m_bVisible && bVisible );
+ xChild->SetVisible(m_bVisible && bVisible);
}
return xChild;
@@ -500,16 +518,12 @@ Reference<XAccessible> VCLXAccessibleList::CreateChild (sal_Int32 nPos)
void VCLXAccessibleList::HandleChangedItemList()
{
- m_aAccessibleChildren.clear();
+ disposeChildren();
NotifyAccessibleEvent (
AccessibleEventId::INVALIDATE_ALL_CHILDREN,
Any(), Any());
}
-
-IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleList, VCLXAccessibleComponent, VCLXAccessibleList_BASE)
-IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleList, VCLXAccessibleComponent, VCLXAccessibleList_BASE)
-
// XAccessible
Reference<XAccessibleContext> SAL_CALL
@@ -521,14 +535,14 @@ Reference<XAccessibleContext> SAL_CALL
// XAccessibleContext
-sal_Int32 SAL_CALL VCLXAccessibleList::getAccessibleChildCount()
+sal_Int64 SAL_CALL VCLXAccessibleList::getAccessibleChildCount()
{
SolarMutexGuard aSolarGuard;
::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
return implGetAccessibleChildCount();
}
-sal_Int32 VCLXAccessibleList::implGetAccessibleChildCount()
+sal_Int64 VCLXAccessibleList::implGetAccessibleChildCount()
{
sal_Int32 nCount = 0;
if ( m_pListBoxHelper )
@@ -537,7 +551,7 @@ sal_Int32 VCLXAccessibleList::implGetAccessibleChildCount()
return nCount;
}
-Reference<XAccessible> SAL_CALL VCLXAccessibleList::getAccessibleChild (sal_Int32 i)
+Reference<XAccessible> SAL_CALL VCLXAccessibleList::getAccessibleChild (sal_Int64 i)
{
SolarMutexGuard aSolarGuard;
::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
@@ -547,7 +561,7 @@ Reference<XAccessible> SAL_CALL VCLXAccessibleList::getAccessibleChild (sal_Int3
Reference< XAccessible > xChild;
// search for the child
- if ( i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
xChild = CreateChild (i);
else
{
@@ -566,7 +580,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleList::getAccessibleParent( )
return m_xParent;
}
-sal_Int32 SAL_CALL VCLXAccessibleList::getAccessibleIndexInParent()
+sal_Int64 SAL_CALL VCLXAccessibleList::getAccessibleIndexInParent()
{
if (m_nIndexInParent != DEFAULT_INDEX_IN_PARENT)
return m_nIndexInParent;
@@ -624,14 +638,14 @@ void VCLXAccessibleList::UpdateEntryRange_Impl()
for (sal_Int32 i = nBegin; (i <= nEnd); ++i)
{
bool bVisible = ( i >= nTop && i < ( nTop + m_nVisibleLineCount ) );
- Reference< XAccessible > xHold;
+ rtl::Reference<VCLXAccessibleListItem> xChild;
if ( o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
- xHold = m_aAccessibleChildren[i];
+ xChild = m_aAccessibleChildren[i];
else if ( bVisible )
- xHold = CreateChild(i);
+ xChild = CreateChild(i);
- if ( xHold.is() )
- static_cast< VCLXAccessibleListItem* >( xHold.get() )->SetVisible( m_bVisible && bVisible );
+ if (xChild.is())
+ xChild->SetVisible(m_bVisible && bVisible);
}
}
@@ -668,26 +682,24 @@ void VCLXAccessibleList::UpdateSelection_Impl(sal_Int32)
{
sal_Int32 i=0;
m_nCurSelectedPos = LISTBOX_ENTRY_NOTFOUND;
- for ( const auto& rChild : m_aAccessibleChildren )
+ for (const rtl::Reference<VCLXAccessibleListItem>& rxChild : m_aAccessibleChildren)
{
- Reference< XAccessible > xHold = rChild;
- if ( xHold.is() )
+ if (rxChild.is())
{
- VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >( xHold.get() );
// Retrieve the item's index from the list entry.
bool bNowSelected = m_pListBoxHelper->IsEntryPosSelected (i);
if (bNowSelected)
m_nCurSelectedPos = i;
- if ( bNowSelected && !pItem->IsSelected() )
+ if (bNowSelected && !rxChild->IsSelected())
{
- xNewAcc = rChild;
+ xNewAcc = rxChild;
aNewValue <<= xNewAcc;
}
- else if ( pItem->IsSelected() )
+ else if (rxChild->IsSelected())
m_nLastSelectedPos = i;
- pItem->SetSelected( bNowSelected );
+ rxChild->SetSelected(bNowSelected);
}
else
{ // it could happen that a child was not created before
@@ -724,7 +736,7 @@ void VCLXAccessibleList::UpdateSelection_Impl(sal_Int32)
// XAccessibleSelection
-void SAL_CALL VCLXAccessibleList::selectAccessibleChild( sal_Int32 nChildIndex )
+void SAL_CALL VCLXAccessibleList::selectAccessibleChild( sal_Int64 nChildIndex )
{
bool bNotify = false;
@@ -749,7 +761,7 @@ void SAL_CALL VCLXAccessibleList::selectAccessibleChild( sal_Int32 nChildIndex )
UpdateSelection_Impl();
}
-sal_Bool SAL_CALL VCLXAccessibleList::isAccessibleChildSelected( sal_Int32 nChildIndex )
+sal_Bool SAL_CALL VCLXAccessibleList::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
@@ -808,18 +820,18 @@ void SAL_CALL VCLXAccessibleList::selectAllAccessibleChildren( )
UpdateSelection_Impl();
}
-sal_Int32 SAL_CALL VCLXAccessibleList::getSelectedAccessibleChildCount( )
+sal_Int64 SAL_CALL VCLXAccessibleList::getSelectedAccessibleChildCount( )
{
SolarMutexGuard aSolarGuard;
::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
- sal_Int32 nCount = 0;
+ sal_Int64 nCount = 0;
if ( m_pListBoxHelper )
nCount = m_pListBoxHelper->GetSelectedEntryCount();
return nCount;
}
-Reference< XAccessible > SAL_CALL VCLXAccessibleList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+Reference< XAccessible > SAL_CALL VCLXAccessibleList::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
SolarMutexGuard aSolarGuard;
::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
@@ -833,7 +845,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleList::getSelectedAccessibleChild
return nullptr;
}
-void SAL_CALL VCLXAccessibleList::deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
+void SAL_CALL VCLXAccessibleList::deselectAccessibleChild( sal_Int64 nSelectedChildIndex )
{
bool bNotify = false;
diff --git a/accessibility/source/standard/vclxaccessiblelistbox.cxx b/accessibility/source/standard/vclxaccessiblelistbox.cxx
index 4b5ed9377442..591eada5112a 100644
--- a/accessibility/source/standard/vclxaccessiblelistbox.cxx
+++ b/accessibility/source/standard/vclxaccessiblelistbox.cxx
@@ -18,12 +18,11 @@
*/
#include <standard/vclxaccessiblelistbox.hxx>
+#include <comphelper/sequence.hxx>
#include <toolkit/awt/vclxwindow.hxx>
using namespace ::com::sun::star;
-using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::accessibility;
VCLXAccessibleListBox::VCLXAccessibleListBox (VCLXWindow* pVCLWindow)
: VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::LISTBOX, false)
diff --git a/accessibility/source/standard/vclxaccessiblelistitem.cxx b/accessibility/source/standard/vclxaccessiblelistitem.cxx
index dea8682c127e..31b889ebc3b5 100644
--- a/accessibility/source/standard/vclxaccessiblelistitem.cxx
+++ b/accessibility/source/standard/vclxaccessiblelistitem.cxx
@@ -29,11 +29,11 @@
#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <cppuhelper/supportsservice.hxx>
+#include <utility>
#include <vcl/svapp.hxx>
#include <vcl/toolkit/lstbox.hxx>
#include <vcl/unohelp2.hxx>
#include <vcl/settings.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <comphelper/accessibleeventnotifier.hxx>
#include <i18nlangtag/languagetag.hxx>
@@ -41,9 +41,9 @@
namespace
{
/// @throws css::lang::IndexOutOfBoundsException
- void checkIndex_Impl( sal_Int32 _nIndex, const OUString& _sText )
+ void checkIndex_Impl( sal_Int32 _nIndex, std::u16string_view _sText )
{
- if ( _nIndex < 0 || _nIndex > _sText.getLength() )
+ if ( _nIndex < 0 || _nIndex > static_cast<sal_Int32>(_sText.size()) )
throw css::lang::IndexOutOfBoundsException();
}
}
@@ -59,13 +59,12 @@ using namespace ::com::sun::star;
// Ctor() and Dtor()
-VCLXAccessibleListItem::VCLXAccessibleListItem(sal_Int32 _nIndexInParent, const rtl::Reference< VCLXAccessibleList >& _xParent)
- : VCLXAccessibleListItem_BASE(m_aMutex)
- , m_nIndexInParent(_nIndexInParent)
+VCLXAccessibleListItem::VCLXAccessibleListItem(sal_Int32 _nIndexInParent, rtl::Reference< VCLXAccessibleList > _xParent)
+ : m_nIndexInParent(_nIndexInParent)
, m_bSelected(false)
, m_bVisible(false)
, m_nClientId(0)
- , m_xParent(_xParent)
+ , m_xParent(std::move(_xParent))
{
assert(m_xParent.is());
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent->getListBoxHelper();
@@ -142,26 +141,25 @@ Sequence< sal_Int8 > VCLXAccessibleListItem::getImplementationId()
// XComponent
-void SAL_CALL VCLXAccessibleListItem::disposing()
+void VCLXAccessibleListItem::disposing(std::unique_lock<std::mutex>& rGuard)
{
- comphelper::AccessibleEventNotifier::TClientId nId( 0 );
- Reference< XInterface > xEventSource;
- {
- ::osl::MutexGuard aGuard( m_aMutex );
-
- VCLXAccessibleListItem_BASE::disposing();
- m_sEntryText.clear();
- m_xParent = nullptr;
+ VCLXAccessibleListItem_BASE::disposing(rGuard);
- nId = m_nClientId;
- m_nClientId = 0;
- if ( nId )
- xEventSource = *this;
- }
+ m_sEntryText.clear();
+ m_xParent = nullptr;
+ comphelper::AccessibleEventNotifier::TClientId nId = m_nClientId;
+ m_nClientId = 0;
+ Reference< XInterface > xEventSource;
+ if ( nId )
+ xEventSource = *this;
// Send a disposing to all listeners.
if ( nId )
- comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this );
+ {
+ rGuard.unlock();
+ comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this );
+ rGuard.lock();
+ }
}
// XServiceInfo
@@ -192,26 +190,25 @@ Reference< XAccessibleContext > SAL_CALL VCLXAccessibleListItem::getAccessibleCo
// XAccessibleContext
-sal_Int32 SAL_CALL VCLXAccessibleListItem::getAccessibleChildCount( )
+sal_Int64 SAL_CALL VCLXAccessibleListItem::getAccessibleChildCount( )
{
return 0;
}
-Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleChild( sal_Int32 )
+Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleChild( sal_Int64 )
{
return Reference< XAccessible >();
}
Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleParent( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return m_xParent;
}
-sal_Int32 SAL_CALL VCLXAccessibleListItem::getAccessibleIndexInParent( )
+sal_Int64 SAL_CALL VCLXAccessibleListItem::getAccessibleIndexInParent( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
return m_nIndexInParent;
}
@@ -229,7 +226,7 @@ OUString SAL_CALL VCLXAccessibleListItem::getAccessibleDescription( )
OUString SAL_CALL VCLXAccessibleListItem::getAccessibleName( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
// entry text == accessible name
return m_sEntryText;
@@ -240,42 +237,42 @@ Reference< XAccessibleRelationSet > SAL_CALL VCLXAccessibleListItem::getAccessib
return new utl::AccessibleRelationSetHelper;
}
-Reference< XAccessibleStateSet > SAL_CALL VCLXAccessibleListItem::getAccessibleStateSet( )
+sal_Int64 SAL_CALL VCLXAccessibleListItem::getAccessibleStateSet( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
- if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ if ( !m_bDisposed )
{
- pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ nStateSet |= AccessibleStateType::TRANSIENT;
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr;
if (pListBoxHelper && pListBoxHelper->IsEnabled())
{
- pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+ nStateSet |= AccessibleStateType::SELECTABLE;
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::SENSITIVE;
}
if ( m_bSelected )
- pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ nStateSet |= AccessibleStateType::SELECTED;
if ( m_bVisible )
{
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::VISIBLE;
+ nStateSet |= AccessibleStateType::SHOWING;
}
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
Locale SAL_CALL VCLXAccessibleListItem::getLocale( )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return implGetLocale();
}
@@ -285,7 +282,7 @@ Locale SAL_CALL VCLXAccessibleListItem::getLocale( )
sal_Bool SAL_CALL VCLXAccessibleListItem::containsPoint( const awt::Point& _aPoint )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
bool bInside = false;
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr;
@@ -306,7 +303,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleAtPoint(
awt::Rectangle SAL_CALL VCLXAccessibleListItem::getBounds( )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
awt::Rectangle aRect;
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr;
@@ -319,7 +316,7 @@ awt::Rectangle SAL_CALL VCLXAccessibleListItem::getBounds( )
awt::Point SAL_CALL VCLXAccessibleListItem::getLocation( )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
Point aPoint(0,0);
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr;
@@ -334,7 +331,7 @@ awt::Point SAL_CALL VCLXAccessibleListItem::getLocation( )
awt::Point SAL_CALL VCLXAccessibleListItem::getLocationOnScreen( )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
Point aPoint(0,0);
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr;
@@ -342,7 +339,7 @@ awt::Point SAL_CALL VCLXAccessibleListItem::getLocationOnScreen( )
{
tools::Rectangle aRect = pListBoxHelper->GetBoundingRectangle(static_cast<sal_uInt16>(m_nIndexInParent));
aPoint = aRect.TopLeft();
- aPoint += pListBoxHelper->GetWindowExtentsRelative().TopLeft();
+ aPoint += Point(pListBoxHelper->GetWindowExtentsAbsolute().TopLeft());
}
return AWTPoint( aPoint );
}
@@ -350,7 +347,7 @@ awt::Point SAL_CALL VCLXAccessibleListItem::getLocationOnScreen( )
awt::Size SAL_CALL VCLXAccessibleListItem::getSize( )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
Size aSize;
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr;
@@ -375,7 +372,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getCaretPosition()
sal_Bool SAL_CALL VCLXAccessibleListItem::setCaretPosition( sal_Int32 nIndex )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
if ( !implIsValidRange( nIndex, nIndex, m_sEntryText.getLength() ) )
throw IndexOutOfBoundsException();
@@ -386,7 +383,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setCaretPosition( sal_Int32 nIndex )
sal_Unicode SAL_CALL VCLXAccessibleListItem::getCharacter( sal_Int32 nIndex )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return OCommonAccessibleText::implGetCharacter( m_sEntryText, nIndex );
}
@@ -394,7 +391,7 @@ sal_Unicode SAL_CALL VCLXAccessibleListItem::getCharacter( sal_Int32 nIndex )
Sequence< PropertyValue > SAL_CALL VCLXAccessibleListItem::getCharacterAttributes( sal_Int32 nIndex, const Sequence< OUString >& )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
if ( !implIsValidIndex( nIndex, m_sEntryText.getLength() ) )
throw IndexOutOfBoundsException();
@@ -405,7 +402,7 @@ Sequence< PropertyValue > SAL_CALL VCLXAccessibleListItem::getCharacterAttribute
awt::Rectangle SAL_CALL VCLXAccessibleListItem::getCharacterBounds( sal_Int32 nIndex )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
if ( !implIsValidIndex( nIndex, m_sEntryText.getLength() ) )
throw IndexOutOfBoundsException();
@@ -425,8 +422,7 @@ awt::Rectangle SAL_CALL VCLXAccessibleListItem::getCharacterBounds( sal_Int32 nI
sal_Int32 SAL_CALL VCLXAccessibleListItem::getCharacterCount()
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return m_sEntryText.getLength();
}
@@ -434,7 +430,7 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getCharacterCount()
sal_Int32 SAL_CALL VCLXAccessibleListItem::getIndexAtPoint( const awt::Point& aPoint )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
sal_Int32 nIndex = -1;
::accessibility::IComboListBoxHelper* pListBoxHelper = m_xParent.is() ? m_xParent->getListBoxHelper() : nullptr;
@@ -453,32 +449,22 @@ sal_Int32 SAL_CALL VCLXAccessibleListItem::getIndexAtPoint( const awt::Point& aP
OUString SAL_CALL VCLXAccessibleListItem::getSelectedText()
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
return OUString();
}
sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionStart()
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
return 0;
}
sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionEnd()
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
-
return 0;
}
sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
if ( !implIsValidRange( nStartIndex, nEndIndex, m_sEntryText.getLength() ) )
throw IndexOutOfBoundsException();
@@ -488,8 +474,7 @@ sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, s
OUString SAL_CALL VCLXAccessibleListItem::getText()
{
- SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return m_sEntryText;
}
@@ -497,7 +482,7 @@ OUString SAL_CALL VCLXAccessibleListItem::getText()
OUString SAL_CALL VCLXAccessibleListItem::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return OCommonAccessibleText::implGetTextRange( m_sEntryText, nStartIndex, nEndIndex );
}
@@ -505,7 +490,7 @@ OUString SAL_CALL VCLXAccessibleListItem::getTextRange( sal_Int32 nStartIndex, s
css::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return OCommonAccessibleText::getTextAtIndex( nIndex, aTextType );
}
@@ -513,7 +498,7 @@ css::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextAtIndex(
css::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return OCommonAccessibleText::getTextBeforeIndex( nIndex, aTextType );
}
@@ -521,7 +506,7 @@ css::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBeforeIn
css::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
return OCommonAccessibleText::getTextBehindIndex( nIndex, aTextType );
}
@@ -529,7 +514,7 @@ css::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBehindIn
sal_Bool SAL_CALL VCLXAccessibleListItem::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_aMutex );
+ std::unique_lock aGuard( m_aMutex );
checkIndex_Impl( nStartIndex, m_sEntryText );
checkIndex_Impl( nEndIndex, m_sEntryText );
diff --git a/accessibility/source/standard/vclxaccessiblemenu.cxx b/accessibility/source/standard/vclxaccessiblemenu.cxx
index a7e31094b668..5ba208d2f368 100644
--- a/accessibility/source/standard/vclxaccessiblemenu.cxx
+++ b/accessibility/source/standard/vclxaccessiblemenu.cxx
@@ -21,6 +21,7 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <vcl/menu.hxx>
@@ -60,37 +61,25 @@ bool VCLXAccessibleMenu::IsPopupMenuOpen()
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleMenu, VCLXAccessibleMenuItem, VCLXAccessibleMenu_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleMenu, VCLXAccessibleMenuItem, VCLXAccessibleMenu_BASE )
-
-
// XServiceInfo
OUString VCLXAccessibleMenu::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleMenu";
+ return u"com.sun.star.comp.toolkit.AccessibleMenu"_ustr;
}
Sequence< OUString > VCLXAccessibleMenu::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleMenu" };
+ return { u"com.sun.star.awt.AccessibleMenu"_ustr };
}
// XAccessibleContext
-sal_Int32 VCLXAccessibleMenu::getAccessibleChildCount( )
+sal_Int64 VCLXAccessibleMenu::getAccessibleChildCount( )
{
OExternalLockGuard aGuard( this );
@@ -98,7 +87,7 @@ sal_Int32 VCLXAccessibleMenu::getAccessibleChildCount( )
}
-Reference< XAccessible > VCLXAccessibleMenu::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > VCLXAccessibleMenu::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
@@ -131,7 +120,7 @@ Reference< XAccessible > VCLXAccessibleMenu::getAccessibleAtPoint( const awt::Po
// XAccessibleSelection
-void VCLXAccessibleMenu::selectAccessibleChild( sal_Int32 nChildIndex )
+void VCLXAccessibleMenu::selectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -142,7 +131,7 @@ void VCLXAccessibleMenu::selectAccessibleChild( sal_Int32 nChildIndex )
}
-sal_Bool VCLXAccessibleMenu::isAccessibleChildSelected( sal_Int32 nChildIndex )
+sal_Bool VCLXAccessibleMenu::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -167,18 +156,18 @@ void VCLXAccessibleMenu::selectAllAccessibleChildren( )
}
-sal_Int32 VCLXAccessibleMenu::getSelectedAccessibleChildCount( )
+sal_Int64 VCLXAccessibleMenu::getSelectedAccessibleChildCount( )
{
OExternalLockGuard aGuard( this );
return implGetSelectedAccessibleChildCount();
}
-sal_Int32 VCLXAccessibleMenu::implGetSelectedAccessibleChildCount( )
+sal_Int64 VCLXAccessibleMenu::implGetSelectedAccessibleChildCount( )
{
- sal_Int32 nRet = 0;
+ sal_Int64 nRet = 0;
- for ( sal_Int32 i = 0, nCount = GetChildCount(); i < nCount; i++ )
+ for ( sal_Int64 i = 0, nCount = GetChildCount(); i < nCount; i++ )
{
if ( IsChildSelected( i ) )
++nRet;
@@ -187,7 +176,7 @@ sal_Int32 VCLXAccessibleMenu::implGetSelectedAccessibleChildCount( )
return nRet;
}
-Reference< XAccessible > VCLXAccessibleMenu::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+Reference< XAccessible > VCLXAccessibleMenu::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -196,7 +185,7 @@ Reference< XAccessible > VCLXAccessibleMenu::getSelectedAccessibleChild( sal_Int
Reference< XAccessible > xChild;
- for ( sal_Int32 i = 0, j = 0, nCount = GetChildCount(); i < nCount; i++ )
+ for ( sal_Int64 i = 0, j = 0, nCount = GetChildCount(); i < nCount; i++ )
{
if ( IsChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
{
@@ -209,7 +198,7 @@ Reference< XAccessible > VCLXAccessibleMenu::getSelectedAccessibleChild( sal_Int
}
-void VCLXAccessibleMenu::deselectAccessibleChild( sal_Int32 nChildIndex )
+void VCLXAccessibleMenu::deselectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
diff --git a/accessibility/source/standard/vclxaccessiblemenubar.cxx b/accessibility/source/standard/vclxaccessiblemenubar.cxx
index 27a02607b225..c54f376fe056 100644
--- a/accessibility/source/standard/vclxaccessiblemenubar.cxx
+++ b/accessibility/source/standard/vclxaccessiblemenubar.cxx
@@ -20,6 +20,7 @@
#include <standard/vclxaccessiblemenubar.hxx>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
#include <vcl/menu.hxx>
@@ -66,7 +67,7 @@ bool VCLXAccessibleMenuBar::IsFocused()
IMPL_LINK( VCLXAccessibleMenuBar, WindowEventListener, VclWindowEvent&, rEvent, void )
{
- OSL_ENSURE( rEvent.GetWindow(), "VCLXAccessibleMenuBar::WindowEventListener: no window!" );
+ assert( rEvent.GetWindow() );
if ( !rEvent.GetWindow()->IsAccessibilityEventsSuppressed() || ( rEvent.GetId() == VclEventId::ObjectDying ) )
{
ProcessWindowEvent( rEvent );
@@ -134,11 +135,11 @@ Sequence< OUString > VCLXAccessibleMenuBar::getSupportedServiceNames()
// XAccessibleContext
-sal_Int32 VCLXAccessibleMenuBar::getAccessibleIndexInParent( )
+sal_Int64 VCLXAccessibleMenuBar::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
- sal_Int32 nIndexInParent = -1;
+ sal_Int64 nIndexInParent = -1;
if ( m_pMenu )
{
diff --git a/accessibility/source/standard/vclxaccessiblemenuitem.cxx b/accessibility/source/standard/vclxaccessiblemenuitem.cxx
index 96e31c0074b1..03bdc88c93c5 100644
--- a/accessibility/source/standard/vclxaccessiblemenuitem.cxx
+++ b/accessibility/source/standard/vclxaccessiblemenuitem.cxx
@@ -20,6 +20,7 @@
#include <standard/vclxaccessiblemenuitem.hxx>
#include <toolkit/helper/convert.hxx>
#include <helper/characterattributeshelper.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/accessiblekeybindinghelper.hxx>
#include <com/sun/star/awt/KeyModifier.hpp>
@@ -28,7 +29,6 @@
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
#include <comphelper/sequence.hxx>
#include <i18nlangtag/languagetag.hxx>
#include <vcl/event.hxx>
@@ -50,7 +50,7 @@ using namespace ::comphelper;
VCLXAccessibleMenuItem::VCLXAccessibleMenuItem( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu )
- :OAccessibleMenuItemComponent( pParent, nItemPos, pMenu )
+ :ImplInheritanceHelper( pParent, nItemPos, pMenu )
{
}
@@ -66,6 +66,14 @@ bool VCLXAccessibleMenuItem::IsSelected()
return IsHighlighted();
}
+bool VCLXAccessibleMenuItem::IsCheckable()
+{
+ if (!m_pParent)
+ return false;
+
+ const sal_uInt16 nItemId = m_pParent->GetItemId(m_nItemPos);
+ return m_pParent->IsItemCheckable(nItemId);
+}
bool VCLXAccessibleMenuItem::IsChecked()
{
@@ -93,22 +101,24 @@ bool VCLXAccessibleMenuItem::IsHighlighted()
}
-void VCLXAccessibleMenuItem::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleMenuItem::FillAccessibleStateSet( sal_Int64& rStateSet )
{
OAccessibleMenuItemComponent::FillAccessibleStateSet( rStateSet );
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
if ( IsFocused() )
- rStateSet.AddState( AccessibleStateType::FOCUSED );
+ rStateSet |= AccessibleStateType::FOCUSED;
- rStateSet.AddState( AccessibleStateType::SELECTABLE );
+ rStateSet |= AccessibleStateType::SELECTABLE;
if ( IsSelected() )
- rStateSet.AddState( AccessibleStateType::SELECTED );
+ rStateSet |= AccessibleStateType::SELECTED;
+ if (IsCheckable())
+ rStateSet |= AccessibleStateType::CHECKABLE;
if ( IsChecked() )
- rStateSet.AddState( AccessibleStateType::CHECKED );
+ rStateSet |= AccessibleStateType::CHECKED;
}
@@ -134,18 +144,6 @@ void VCLXAccessibleMenuItem::implGetSelection( sal_Int32& nStartIndex, sal_Int32
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleMenuItem, OAccessibleMenuItemComponent, VCLXAccessibleMenuItem_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleMenuItem, OAccessibleMenuItemComponent, VCLXAccessibleMenuItem_BASE )
-
-
// XServiceInfo
diff --git a/accessibility/source/standard/vclxaccessiblemenuseparator.cxx b/accessibility/source/standard/vclxaccessiblemenuseparator.cxx
index 50a70df01f61..bbb73977f7c9 100644
--- a/accessibility/source/standard/vclxaccessiblemenuseparator.cxx
+++ b/accessibility/source/standard/vclxaccessiblemenuseparator.cxx
@@ -24,7 +24,6 @@
using namespace ::com::sun::star::accessibility;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star;
-using namespace ::comphelper;
VCLXAccessibleMenuSeparator::VCLXAccessibleMenuSeparator(Menu* pParent, sal_uInt16 nItemPos)
: OAccessibleMenuItemComponent(pParent, nItemPos, nullptr)
diff --git a/accessibility/source/standard/vclxaccessiblepopupmenu.cxx b/accessibility/source/standard/vclxaccessiblepopupmenu.cxx
index ad3e7441e3e1..d8b840eee784 100644
--- a/accessibility/source/standard/vclxaccessiblepopupmenu.cxx
+++ b/accessibility/source/standard/vclxaccessiblepopupmenu.cxx
@@ -20,6 +20,7 @@
#include <standard/vclxaccessiblepopupmenu.hxx>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
@@ -41,20 +42,20 @@ bool VCLXAccessiblePopupMenu::IsFocused()
OUString VCLXAccessiblePopupMenu::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessiblePopupMenu";
+ return u"com.sun.star.comp.toolkit.AccessiblePopupMenu"_ustr;
}
Sequence< OUString > VCLXAccessiblePopupMenu::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessiblePopupMenu" };
+ return { u"com.sun.star.awt.AccessiblePopupMenu"_ustr };
}
// XAccessibleContext
-sal_Int32 VCLXAccessiblePopupMenu::getAccessibleIndexInParent( )
+sal_Int64 VCLXAccessiblePopupMenu::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
diff --git a/accessibility/source/standard/vclxaccessibleradiobutton.cxx b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
index c1a23ede2ede..3d66b799db0d 100644
--- a/accessibility/source/standard/vclxaccessibleradiobutton.cxx
+++ b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
@@ -22,8 +22,9 @@
#include <toolkit/awt/vclxwindows.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/accessiblekeybindinghelper.hxx>
+#include <comphelper/sequence.hxx>
#include <com/sun/star/awt/KeyModifier.hpp>
#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
@@ -38,7 +39,6 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
using namespace ::comphelper;
@@ -81,7 +81,7 @@ void VCLXAccessibleRadioButton::FillAccessibleRelationSet( utl::AccessibleRelati
std::vector< VclPtr<RadioButton> > aGroup(pRadioButton->GetRadioButtonGroup());
if (!aGroup.empty())
{
- std::vector< Reference< XInterface > > aVec;
+ std::vector<Reference<css::accessibility::XAccessible>> aVec;
aVec.reserve(aGroup.size());
std::transform(aGroup.begin(), aGroup.end(), std::back_inserter(aVec),
[](const VclPtr<RadioButton>& rxItem) { return rxItem->GetAccessible(); });
@@ -91,32 +91,21 @@ void VCLXAccessibleRadioButton::FillAccessibleRelationSet( utl::AccessibleRelati
}
-void VCLXAccessibleRadioButton::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleRadioButton::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
VCLXRadioButton* pVCLXRadioButton = static_cast< VCLXRadioButton* >( GetVCLXWindow() );
if ( pVCLXRadioButton )
{
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::CHECKABLE;
+ rStateSet |= AccessibleStateType::FOCUSABLE;
if ( pVCLXRadioButton->getState() )
- rStateSet.AddState( AccessibleStateType::CHECKED );
+ rStateSet |= AccessibleStateType::CHECKED;
}
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleRadioButton, VCLXAccessibleTextComponent, VCLXAccessibleRadioButton_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleRadioButton, VCLXAccessibleTextComponent, VCLXAccessibleRadioButton_BASE )
-
-
// XServiceInfo
diff --git a/accessibility/source/standard/vclxaccessiblescrollbar.cxx b/accessibility/source/standard/vclxaccessiblescrollbar.cxx
index 9ddb5e12a8c3..7ffc11da3390 100644
--- a/accessibility/source/standard/vclxaccessiblescrollbar.cxx
+++ b/accessibility/source/standard/vclxaccessiblescrollbar.cxx
@@ -23,12 +23,12 @@
#include <helper/accresmgr.hxx>
#include <strings.hrc>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/awt/ScrollBarOrientation.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <vcl/scrbar.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
+#include <vcl/toolkit/scrbar.hxx>
#include <vcl/vclevent.hxx>
#include <strings.hxx>
@@ -36,7 +36,6 @@ using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::awt;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
using namespace ::comphelper;
@@ -59,7 +58,7 @@ void VCLXAccessibleScrollBar::ProcessWindowEvent( const VclWindowEvent& rVclWind
}
-void VCLXAccessibleScrollBar::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleScrollBar::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
@@ -69,37 +68,25 @@ void VCLXAccessibleScrollBar::FillAccessibleStateSet( utl::AccessibleStateSetHel
// IA2 CWS: scroll bar should not have FOCUSABLE state.
// rStateSet.AddState( AccessibleStateType::FOCUSABLE );
if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::HORIZONTAL )
- rStateSet.AddState( AccessibleStateType::HORIZONTAL );
+ rStateSet |= AccessibleStateType::HORIZONTAL;
else if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::VERTICAL )
- rStateSet.AddState( AccessibleStateType::VERTICAL );
+ rStateSet |= AccessibleStateType::VERTICAL;
}
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleScrollBar, VCLXAccessibleComponent, VCLXAccessibleScrollBar_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleScrollBar, VCLXAccessibleComponent, VCLXAccessibleScrollBar_BASE )
-
-
// XServiceInfo
OUString VCLXAccessibleScrollBar::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleScrollBar";
+ return u"com.sun.star.comp.toolkit.AccessibleScrollBar"_ustr;
}
Sequence< OUString > VCLXAccessibleScrollBar::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleScrollBar" };
+ return { u"com.sun.star.awt.AccessibleScrollBar"_ustr };
}
@@ -154,10 +141,10 @@ OUString VCLXAccessibleScrollBar::getAccessibleActionDescription ( sal_Int32 nIn
switch ( nIndex )
{
- case 0: sDescription = OUString(RID_STR_ACC_ACTION_DECLINE); break;
- case 1: sDescription = OUString(RID_STR_ACC_ACTION_INCLINE); break;
- case 2: sDescription = OUString(RID_STR_ACC_ACTION_DECBLOCK); break;
- case 3: sDescription = OUString(RID_STR_ACC_ACTION_INCBLOCK); break;
+ case 0: sDescription = RID_STR_ACC_ACTION_DECLINE; break;
+ case 1: sDescription = RID_STR_ACC_ACTION_INCLINE; break;
+ case 2: sDescription = RID_STR_ACC_ACTION_DECBLOCK; break;
+ case 3: sDescription = RID_STR_ACC_ACTION_INCBLOCK; break;
default: break;
}
diff --git a/accessibility/source/standard/vclxaccessiblestatusbar.cxx b/accessibility/source/standard/vclxaccessiblestatusbar.cxx
index bd70676f58cc..bbf19b4416a5 100644
--- a/accessibility/source/standard/vclxaccessiblestatusbar.cxx
+++ b/accessibility/source/standard/vclxaccessiblestatusbar.cxx
@@ -22,6 +22,8 @@
#include <toolkit/helper/convert.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
+#include <o3tl/safeint.hxx>
#include <vcl/status.hxx>
#include <vcl/vclevent.hxx>
@@ -41,68 +43,56 @@ VCLXAccessibleStatusBar::VCLXAccessibleStatusBar( VCLXWindow* pVCLXWindow )
m_pStatusBar = GetAs<StatusBar>();
if ( m_pStatusBar )
- m_aAccessibleChildren.assign( m_pStatusBar->GetItemCount(), Reference< XAccessible >() );
+ m_aAccessibleChildren.assign( m_pStatusBar->GetItemCount(), rtl::Reference< VCLXAccessibleStatusBarItem >() );
}
void VCLXAccessibleStatusBar::UpdateShowing( sal_Int32 i, bool bShowing )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
- if ( pVCLXAccessibleStatusBarItem )
- pVCLXAccessibleStatusBarItem->SetShowing( bShowing );
- }
+ rtl::Reference< VCLXAccessibleStatusBarItem > pVCLXAccessibleStatusBarItem( m_aAccessibleChildren[i] );
+ if ( pVCLXAccessibleStatusBarItem )
+ pVCLXAccessibleStatusBarItem->SetShowing( bShowing );
}
}
void VCLXAccessibleStatusBar::UpdateItemName( sal_Int32 i )
{
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
return;
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
+ rtl::Reference< VCLXAccessibleStatusBarItem > pVCLXAccessibleStatusBarItem( m_aAccessibleChildren[i] );
+ if ( pVCLXAccessibleStatusBarItem.is() )
{
- VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
- if ( pVCLXAccessibleStatusBarItem )
- {
- OUString sItemName = pVCLXAccessibleStatusBarItem->GetItemName();
- pVCLXAccessibleStatusBarItem->SetItemName( sItemName );
- }
+ OUString sItemName = pVCLXAccessibleStatusBarItem->GetItemName();
+ pVCLXAccessibleStatusBarItem->SetItemName( sItemName );
}
}
void VCLXAccessibleStatusBar::UpdateItemText( sal_Int32 i )
{
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
return;
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
+ rtl::Reference< VCLXAccessibleStatusBarItem > pVCLXAccessibleStatusBarItem( m_aAccessibleChildren[i] );
+ if ( pVCLXAccessibleStatusBarItem.is() )
{
- VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
- if ( pVCLXAccessibleStatusBarItem )
- {
- OUString sItemText = pVCLXAccessibleStatusBarItem->GetItemText();
- pVCLXAccessibleStatusBarItem->SetItemText( sItemText );
- }
+ OUString sItemText = pVCLXAccessibleStatusBarItem->GetItemText();
+ pVCLXAccessibleStatusBarItem->SetItemText( sItemText );
}
}
void VCLXAccessibleStatusBar::InsertChild( sal_Int32 i )
{
- if ( i < 0 || i > static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) > m_aAccessibleChildren.size() )
return;
// insert entry in child list
- m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, rtl::Reference< VCLXAccessibleStatusBarItem >() );
// send accessible child event
Reference< XAccessible > xChild( getAccessibleChild( i ) );
@@ -117,7 +107,7 @@ void VCLXAccessibleStatusBar::InsertChild( sal_Int32 i )
void VCLXAccessibleStatusBar::RemoveChild( sal_Int32 i )
{
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
return;
// get the accessible of the removed page
@@ -158,18 +148,16 @@ void VCLXAccessibleStatusBar::ProcessWindowEvent( const VclWindowEvent& rVclWind
{
if ( m_pStatusBar )
{
+ OExternalLockGuard aGuard( this );
+
sal_uInt16 nItemId = static_cast<sal_uInt16>(reinterpret_cast<sal_IntPtr>(rVclWindowEvent.GetData()));
- for ( sal_Int32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ for ( sal_Int64 i = 0, nCount = m_aAccessibleChildren.size(); i < nCount; ++i )
{
- Reference< XAccessible > xChild( getAccessibleChild( i ) );
- if ( xChild.is() )
+ sal_uInt16 nChildItemId = m_pStatusBar->GetItemId( static_cast<sal_uInt16>(i) );
+ if ( nChildItemId == nItemId )
{
- VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
- if ( pVCLXAccessibleStatusBarItem && pVCLXAccessibleStatusBarItem->GetItemId() == nItemId )
- {
- RemoveChild( i );
- break;
- }
+ RemoveChild( i );
+ break;
}
}
}
@@ -219,9 +207,8 @@ void VCLXAccessibleStatusBar::ProcessWindowEvent( const VclWindowEvent& rVclWind
m_pStatusBar = nullptr;
// dispose all children
- for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+ for (const rtl::Reference<VCLXAccessibleStatusBarItem>& xComponent : m_aAccessibleChildren)
{
- Reference< XComponent > xComponent( i, UNO_QUERY );
if ( xComponent.is() )
xComponent->dispose();
}
@@ -250,9 +237,8 @@ void VCLXAccessibleStatusBar::disposing()
m_pStatusBar = nullptr;
// dispose all children
- for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+ for (const rtl::Reference<VCLXAccessibleStatusBarItem>& xComponent : m_aAccessibleChildren)
{
- Reference< XComponent > xComponent( i, UNO_QUERY );
if ( xComponent.is() )
xComponent->dispose();
}
@@ -265,20 +251,20 @@ void VCLXAccessibleStatusBar::disposing()
OUString VCLXAccessibleStatusBar::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleStatusBar";
+ return u"com.sun.star.comp.toolkit.AccessibleStatusBar"_ustr;
}
Sequence< OUString > VCLXAccessibleStatusBar::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleStatusBar" };
+ return { u"com.sun.star.awt.AccessibleStatusBar"_ustr };
}
// XAccessibleContext
-sal_Int32 VCLXAccessibleStatusBar::getAccessibleChildCount()
+sal_Int64 VCLXAccessibleStatusBar::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -286,14 +272,14 @@ sal_Int32 VCLXAccessibleStatusBar::getAccessibleChildCount()
}
-Reference< XAccessible > VCLXAccessibleStatusBar::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > VCLXAccessibleStatusBar::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
- if ( i < 0 || i >= static_cast<sal_Int32> (m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
throw IndexOutOfBoundsException();
- Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ rtl::Reference< VCLXAccessibleStatusBarItem > xChild = m_aAccessibleChildren[i];
if ( !xChild.is() )
{
if ( m_pStatusBar )
@@ -323,7 +309,7 @@ Reference< XAccessible > VCLXAccessibleStatusBar::getAccessibleAtPoint( const aw
{
sal_uInt16 nItemId = m_pStatusBar->GetItemId( VCLPoint( rPoint ) );
sal_Int32 nItemPos = m_pStatusBar->GetItemPos( nItemId );
- if ( nItemPos >= 0 && nItemPos < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( nItemPos >= 0 && o3tl::make_unsigned(nItemPos) < m_aAccessibleChildren.size() )
xChild = getAccessibleChild( nItemPos );
}
diff --git a/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx b/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
index 8406742060ac..db5e6cf140fe 100644
--- a/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
+++ b/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
@@ -27,8 +27,8 @@
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <vcl/ctrl.hxx>
#include <vcl/svapp.hxx>
@@ -128,15 +128,15 @@ OUString VCLXAccessibleStatusBarItem::GetItemText()
}
-void VCLXAccessibleStatusBarItem::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleStatusBarItem::FillAccessibleStateSet( sal_Int64& rStateSet )
{
- rStateSet.AddState( AccessibleStateType::ENABLED );
- rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ rStateSet |= AccessibleStateType::ENABLED;
+ rStateSet |= AccessibleStateType::SENSITIVE;
- rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet |= AccessibleStateType::VISIBLE;
if ( IsShowing() )
- rStateSet.AddState( AccessibleStateType::SHOWING );
+ rStateSet |= AccessibleStateType::SHOWING;
}
@@ -176,24 +176,12 @@ void VCLXAccessibleStatusBarItem::implGetSelection( sal_Int32& nStartIndex, sal_
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleStatusBarItem, AccessibleTextHelper_BASE, VCLXAccessibleStatusBarItem_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleStatusBarItem, AccessibleTextHelper_BASE, VCLXAccessibleStatusBarItem_BASE )
-
-
// XComponent
void VCLXAccessibleStatusBarItem::disposing()
{
- AccessibleTextHelper_BASE::disposing();
+ comphelper::OAccessibleTextHelper::disposing();
m_pStatusBar = nullptr;
m_sItemName.clear();
@@ -206,7 +194,7 @@ void VCLXAccessibleStatusBarItem::disposing()
OUString VCLXAccessibleStatusBarItem::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleStatusBarItem";
+ return u"com.sun.star.comp.toolkit.AccessibleStatusBarItem"_ustr;
}
@@ -218,7 +206,7 @@ sal_Bool VCLXAccessibleStatusBarItem::supportsService( const OUString& rServiceN
Sequence< OUString > VCLXAccessibleStatusBarItem::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleStatusBarItem" };
+ return { u"com.sun.star.awt.AccessibleStatusBarItem"_ustr };
}
@@ -236,7 +224,7 @@ Reference< XAccessibleContext > VCLXAccessibleStatusBarItem::getAccessibleContex
// XAccessibleContext
-sal_Int32 VCLXAccessibleStatusBarItem::getAccessibleChildCount()
+sal_Int64 VCLXAccessibleStatusBarItem::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -244,7 +232,7 @@ sal_Int32 VCLXAccessibleStatusBarItem::getAccessibleChildCount()
}
-Reference< XAccessible > VCLXAccessibleStatusBarItem::getAccessibleChild( sal_Int32 )
+Reference< XAccessible > VCLXAccessibleStatusBarItem::getAccessibleChild( sal_Int64 )
{
throw IndexOutOfBoundsException();
}
@@ -262,11 +250,11 @@ Reference< XAccessible > VCLXAccessibleStatusBarItem::getAccessibleParent( )
}
-sal_Int32 VCLXAccessibleStatusBarItem::getAccessibleIndexInParent( )
+sal_Int64 VCLXAccessibleStatusBarItem::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
- sal_Int32 nIndexInParent = -1;
+ sal_Int64 nIndexInParent = -1;
if ( m_pStatusBar )
nIndexInParent = m_pStatusBar->GetItemPos( m_nItemId );
@@ -310,22 +298,22 @@ Reference< XAccessibleRelationSet > VCLXAccessibleStatusBarItem::getAccessibleRe
}
-Reference< XAccessibleStateSet > VCLXAccessibleStatusBarItem::getAccessibleStateSet( )
+sal_Int64 VCLXAccessibleStatusBarItem::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- FillAccessibleStateSet( *pStateSetHelper );
+ FillAccessibleStateSet( nStateSet );
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
- return pStateSetHelper;
+ return nStateSet;
}
diff --git a/accessibility/source/standard/vclxaccessibletabcontrol.cxx b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
index 20e2ff120cc3..4be0e3b12378 100644
--- a/accessibility/source/standard/vclxaccessibletabcontrol.cxx
+++ b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
@@ -24,8 +24,8 @@
#include <com/sun/star/accessibility/AccessibleRole.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <o3tl/safeint.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <vcl/tabctrl.hxx>
#include <vcl/tabpage.hxx>
#include <vcl/vclevent.hxx>
@@ -42,7 +42,7 @@ using namespace ::comphelper;
VCLXAccessibleTabControl::VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow )
- :VCLXAccessibleComponent( pVCLXWindow )
+ :ImplInheritanceHelper( pVCLXWindow )
{
m_pTabControl = GetAs<TabControl>();
if (!m_pTabControl)
@@ -52,76 +52,60 @@ VCLXAccessibleTabControl::VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow )
m_pTabControl.clear();
return;
}
- m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), Reference< XAccessible >() );
+ m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), rtl::Reference< VCLXAccessibleTabPage >() );
}
void VCLXAccessibleTabControl::UpdateFocused()
{
- for (const Reference<XAccessible>& xChild : m_aAccessibleChildren)
+ for (const rtl::Reference<VCLXAccessibleTabPage>& pVCLXAccessibleTabPage : m_aAccessibleChildren)
{
- if ( xChild.is() )
- {
- VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
- if ( pVCLXAccessibleTabPage )
- pVCLXAccessibleTabPage->SetFocused( pVCLXAccessibleTabPage->IsFocused() );
- }
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->SetFocused( pVCLXAccessibleTabPage->IsFocused() );
}
}
void VCLXAccessibleTabControl::UpdateSelected( sal_Int32 i, bool bSelected )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
- if ( pVCLXAccessibleTabPage )
- pVCLXAccessibleTabPage->SetSelected( bSelected );
- }
+ rtl::Reference< VCLXAccessibleTabPage > pVCLXAccessibleTabPage( m_aAccessibleChildren[i] );
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->SetSelected( bSelected );
}
}
void VCLXAccessibleTabControl::UpdatePageText( sal_Int32 i )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
- if ( pVCLXAccessibleTabPage )
- pVCLXAccessibleTabPage->SetPageText( pVCLXAccessibleTabPage->GetPageText() );
- }
+ rtl::Reference< VCLXAccessibleTabPage > pVCLXAccessibleTabPage( m_aAccessibleChildren[i] );
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->SetPageText( pVCLXAccessibleTabPage->GetPageText() );
}
}
void VCLXAccessibleTabControl::UpdateTabPage( sal_Int32 i, bool bNew )
{
- if ( i >= 0 && i < static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i >= 0 && o3tl::make_unsigned(i) < m_aAccessibleChildren.size() )
{
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
- if ( xChild.is() )
- {
- VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
- if ( pVCLXAccessibleTabPage )
- pVCLXAccessibleTabPage->Update( bNew );
- }
+ rtl::Reference< VCLXAccessibleTabPage > pVCLXAccessibleTabPage( m_aAccessibleChildren[i] );
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->Update( bNew );
}
}
void VCLXAccessibleTabControl::InsertChild( sal_Int32 i )
{
- if ( i < 0 || i > static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) > m_aAccessibleChildren.size() )
return;
// insert entry in child list
- m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, rtl::Reference< VCLXAccessibleTabPage >() );
// send accessible child event
Reference< XAccessible > xChild( getAccessibleChild( i ) );
@@ -136,11 +120,11 @@ void VCLXAccessibleTabControl::InsertChild( sal_Int32 i )
void VCLXAccessibleTabControl::RemoveChild( sal_Int32 i )
{
- if ( i < 0 || i >= static_cast<sal_Int32>(m_aAccessibleChildren.size()) )
+ if ( i < 0 || o3tl::make_unsigned(i) >= m_aAccessibleChildren.size() )
return;
// get the accessible of the removed page
- Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ rtl::Reference< VCLXAccessibleTabPage > xChild( m_aAccessibleChildren[i] );
// remove entry in child list
m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
@@ -149,12 +133,10 @@ void VCLXAccessibleTabControl::RemoveChild( sal_Int32 i )
if ( xChild.is() )
{
Any aOldValue, aNewValue;
- aOldValue <<= xChild;
+ aOldValue <<= uno::Reference<XAccessible>(xChild);
NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
- Reference< XComponent > xComponent( xChild, UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
+ xChild->dispose();
}
}
@@ -199,18 +181,14 @@ void VCLXAccessibleTabControl::ProcessWindowEvent( const VclWindowEvent& rVclWin
{
if ( m_pTabControl )
{
+ OExternalLockGuard aGuard( this );
sal_uInt16 nPageId = static_cast<sal_uInt16>(reinterpret_cast<sal_IntPtr>(rVclWindowEvent.GetData()));
- for ( sal_Int32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ for ( sal_Int64 i = 0, nCount = m_aAccessibleChildren.size(); i < nCount; ++i )
{
- Reference< XAccessible > xChild( getAccessibleChild( i ) );
- if ( xChild.is() )
+ if ( m_aAccessibleChildren[i] && m_aAccessibleChildren[i]->GetPageId() == nPageId )
{
- VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
- if ( pVCLXAccessibleTabPage && pVCLXAccessibleTabPage->GetPageId() == nPageId )
- {
- RemoveChild( i );
- break;
- }
+ RemoveChild( i );
+ break;
}
}
}
@@ -235,11 +213,10 @@ void VCLXAccessibleTabControl::ProcessWindowEvent( const VclWindowEvent& rVclWin
m_pTabControl = nullptr;
// dispose all tab pages
- for (const Reference<XAccessible>& i : m_aAccessibleChildren)
+ for (const rtl::Reference<VCLXAccessibleTabPage>& i : m_aAccessibleChildren)
{
- Reference< XComponent > xComponent( i, UNO_QUERY );
- if ( xComponent.is() )
- xComponent->dispose();
+ if (i.is())
+ i->dispose();
}
m_aAccessibleChildren.clear();
}
@@ -282,27 +259,15 @@ void VCLXAccessibleTabControl::ProcessWindowChildEvent( const VclWindowEvent& rV
}
-void VCLXAccessibleTabControl::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleTabControl::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
if ( m_pTabControl )
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleTabControl, VCLXAccessibleComponent, VCLXAccessibleTabControl_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleTabControl, VCLXAccessibleComponent, VCLXAccessibleTabControl_BASE )
-
-
// XComponent
@@ -316,12 +281,9 @@ void VCLXAccessibleTabControl::disposing()
m_pTabControl = nullptr;
// dispose all tab pages
- for (const Reference<XAccessible>& i : m_aAccessibleChildren)
- {
- Reference< XComponent > xComponent( i, UNO_QUERY );
+ for (const rtl::Reference<VCLXAccessibleTabPage>& xComponent : m_aAccessibleChildren)
if ( xComponent.is() )
xComponent->dispose();
- }
m_aAccessibleChildren.clear();
}
@@ -331,20 +293,20 @@ void VCLXAccessibleTabControl::disposing()
OUString VCLXAccessibleTabControl::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleTabControl";
+ return u"com.sun.star.comp.toolkit.AccessibleTabControl"_ustr;
}
Sequence< OUString > VCLXAccessibleTabControl::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleTabControl" };
+ return { u"com.sun.star.awt.AccessibleTabControl"_ustr };
}
// XAccessibleContext
-sal_Int32 VCLXAccessibleTabControl::getAccessibleChildCount()
+sal_Int64 VCLXAccessibleTabControl::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
@@ -352,7 +314,7 @@ sal_Int32 VCLXAccessibleTabControl::getAccessibleChildCount()
}
-Reference< XAccessible > VCLXAccessibleTabControl::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > VCLXAccessibleTabControl::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
@@ -362,9 +324,9 @@ Reference< XAccessible > VCLXAccessibleTabControl::getAccessibleChild( sal_Int32
return implGetAccessibleChild( i );
}
-Reference< XAccessible > VCLXAccessibleTabControl::implGetAccessibleChild( sal_Int32 i )
+Reference< XAccessible > VCLXAccessibleTabControl::implGetAccessibleChild( sal_Int64 i )
{
- Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ rtl::Reference< VCLXAccessibleTabPage > xChild = m_aAccessibleChildren[i];
if ( !xChild.is() )
{
sal_uInt16 nPageId = m_pTabControl ? m_pTabControl->GetPageId(static_cast<sal_uInt16>(i)) : 0;
@@ -400,7 +362,7 @@ OUString VCLXAccessibleTabControl::getAccessibleName( )
// XAccessibleSelection
-void VCLXAccessibleTabControl::selectAccessibleChild( sal_Int32 nChildIndex )
+void VCLXAccessibleTabControl::selectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -412,7 +374,7 @@ void VCLXAccessibleTabControl::selectAccessibleChild( sal_Int32 nChildIndex )
}
-sal_Bool VCLXAccessibleTabControl::isAccessibleChildSelected( sal_Int32 nChildIndex )
+sal_Bool VCLXAccessibleTabControl::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -444,7 +406,7 @@ void VCLXAccessibleTabControl::selectAllAccessibleChildren( )
}
-sal_Int32 VCLXAccessibleTabControl::getSelectedAccessibleChildCount( )
+sal_Int64 VCLXAccessibleTabControl::getSelectedAccessibleChildCount( )
{
OExternalLockGuard aGuard( this );
@@ -452,7 +414,7 @@ sal_Int32 VCLXAccessibleTabControl::getSelectedAccessibleChildCount( )
}
-Reference< XAccessible > VCLXAccessibleTabControl::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+Reference< XAccessible > VCLXAccessibleTabControl::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -474,7 +436,7 @@ Reference< XAccessible > VCLXAccessibleTabControl::getSelectedAccessibleChild( s
}
-void VCLXAccessibleTabControl::deselectAccessibleChild( sal_Int32 nChildIndex )
+void VCLXAccessibleTabControl::deselectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
diff --git a/accessibility/source/standard/vclxaccessibletabpage.cxx b/accessibility/source/standard/vclxaccessibletabpage.cxx
index 8dd5a24199f7..dad454ab0021 100644
--- a/accessibility/source/standard/vclxaccessibletabpage.cxx
+++ b/accessibility/source/standard/vclxaccessibletabpage.cxx
@@ -27,9 +27,10 @@
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
+#include <vcl/mnemonic.hxx>
#include <vcl/svapp.hxx>
#include <vcl/unohelp2.hxx>
#include <vcl/tabctrl.hxx>
@@ -133,7 +134,7 @@ OUString VCLXAccessibleTabPage::GetPageText()
{
OUString sText;
if ( m_pTabControl )
- sText = OutputDevice::GetNonMnemonicString( m_pTabControl->GetPageText( m_nPageId ) );
+ sText = removeMnemonicFromString( m_pTabControl->GetPageText( m_nPageId ) );
return sText;
}
@@ -161,24 +162,24 @@ void VCLXAccessibleTabPage::Update( bool bNew )
}
-void VCLXAccessibleTabPage::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleTabPage::FillAccessibleStateSet( sal_Int64& rStateSet )
{
- rStateSet.AddState( AccessibleStateType::ENABLED );
- rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ rStateSet |= AccessibleStateType::ENABLED;
+ rStateSet |= AccessibleStateType::SENSITIVE;
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
if ( IsFocused() )
- rStateSet.AddState( AccessibleStateType::FOCUSED );
+ rStateSet |= AccessibleStateType::FOCUSED;
- rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet |= AccessibleStateType::VISIBLE;
- rStateSet.AddState( AccessibleStateType::SHOWING );
+ rStateSet |= AccessibleStateType::SHOWING;
- rStateSet.AddState( AccessibleStateType::SELECTABLE );
+ rStateSet |= AccessibleStateType::SELECTABLE;
if ( IsSelected() )
- rStateSet.AddState( AccessibleStateType::SELECTED );
+ rStateSet |= AccessibleStateType::SELECTED;
}
@@ -218,24 +219,12 @@ void VCLXAccessibleTabPage::implGetSelection( sal_Int32& nStartIndex, sal_Int32&
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleTabPage, AccessibleTextHelper_BASE, VCLXAccessibleTabPage_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleTabPage, AccessibleTextHelper_BASE, VCLXAccessibleTabPage_BASE )
-
-
// XComponent
void VCLXAccessibleTabPage::disposing()
{
- AccessibleTextHelper_BASE::disposing();
+ comphelper::OAccessibleTextHelper::disposing();
m_pTabControl = nullptr;
m_sPageText.clear();
@@ -247,7 +236,7 @@ void VCLXAccessibleTabPage::disposing()
OUString VCLXAccessibleTabPage::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleTabPage";
+ return u"com.sun.star.comp.toolkit.AccessibleTabPage"_ustr;
}
@@ -259,7 +248,7 @@ sal_Bool VCLXAccessibleTabPage::supportsService( const OUString& rServiceName )
Sequence< OUString > VCLXAccessibleTabPage::getSupportedServiceNames()
{
- return { "com.sun.star.awt.AccessibleTabPage" };
+ return { u"com.sun.star.awt.AccessibleTabPage"_ustr };
}
@@ -277,15 +266,15 @@ Reference< XAccessibleContext > VCLXAccessibleTabPage::getAccessibleContext( )
// XAccessibleContext
-sal_Int32 VCLXAccessibleTabPage::getAccessibleChildCount()
+sal_Int64 VCLXAccessibleTabPage::getAccessibleChildCount()
{
OExternalLockGuard aGuard( this );
return implGetAccessibleChildCount();
}
-sal_Int32 VCLXAccessibleTabPage::implGetAccessibleChildCount()
+sal_Int64 VCLXAccessibleTabPage::implGetAccessibleChildCount()
{
- sal_Int32 nCount = 0;
+ sal_Int64 nCount = 0;
if ( m_pTabControl )
{
TabPage* pTabPage = m_pTabControl->GetTabPage( m_nPageId );
@@ -297,7 +286,7 @@ sal_Int32 VCLXAccessibleTabPage::implGetAccessibleChildCount()
}
-Reference< XAccessible > VCLXAccessibleTabPage::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > VCLXAccessibleTabPage::getAccessibleChild( sal_Int64 i )
{
OExternalLockGuard aGuard( this );
@@ -328,11 +317,11 @@ Reference< XAccessible > VCLXAccessibleTabPage::getAccessibleParent( )
}
-sal_Int32 VCLXAccessibleTabPage::getAccessibleIndexInParent( )
+sal_Int64 VCLXAccessibleTabPage::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
- sal_Int32 nIndexInParent = -1;
+ sal_Int64 nIndexInParent = -1;
if ( m_pTabControl )
nIndexInParent = m_pTabControl->GetPagePos( m_nPageId );
@@ -376,22 +365,22 @@ Reference< XAccessibleRelationSet > VCLXAccessibleTabPage::getAccessibleRelation
}
-Reference< XAccessibleStateSet > VCLXAccessibleTabPage::getAccessibleStateSet( )
+sal_Int64 VCLXAccessibleTabPage::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- FillAccessibleStateSet( *pStateSetHelper );
+ FillAccessibleStateSet( nStateSet );
}
else
{
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
}
- return pStateSetHelper;
+ return nStateSet;
}
@@ -411,7 +400,7 @@ Reference< XAccessible > VCLXAccessibleTabPage::getAccessibleAtPoint( const awt:
OExternalLockGuard aGuard( this );
Reference< XAccessible > xChild;
- for ( sal_uInt32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ for ( sal_Int64 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
{
Reference< XAccessible > xAcc = getAccessibleChild( i );
if ( xAcc.is() )
@@ -597,7 +586,7 @@ awt::Rectangle VCLXAccessibleTabPage::getCharacterBounds( sal_Int32 nIndex )
if ( m_pTabControl )
{
tools::Rectangle aPageRect = m_pTabControl->GetTabBounds( m_nPageId );
- tools::Rectangle aCharRect = m_pTabControl->GetCharacterBounds( m_nPageId, nIndex );
+ tools::Rectangle aCharRect; // m_pTabControl->GetCharacterBounds( m_nPageId, nIndex );
aCharRect.Move( -aPageRect.Left(), -aPageRect.Top() );
aBounds = AWTRectangle( aCharRect );
}
@@ -606,21 +595,21 @@ awt::Rectangle VCLXAccessibleTabPage::getCharacterBounds( sal_Int32 nIndex )
}
-sal_Int32 VCLXAccessibleTabPage::getIndexAtPoint( const awt::Point& aPoint )
+sal_Int32 VCLXAccessibleTabPage::getIndexAtPoint( const awt::Point& /*aPoint*/ )
{
OExternalLockGuard aGuard( this );
sal_Int32 nIndex = -1;
- if ( m_pTabControl )
- {
- sal_uInt16 nPageId = 0;
- tools::Rectangle aPageRect = m_pTabControl->GetTabBounds( m_nPageId );
- Point aPnt( VCLPoint( aPoint ) );
- aPnt += aPageRect.TopLeft();
- sal_Int32 nI = m_pTabControl->GetIndexForPoint( aPnt, nPageId );
- if ( nI != -1 && m_nPageId == nPageId )
- nIndex = nI;
- }
+// if ( m_pTabControl )
+// {
+// sal_uInt16 nPageId = 0;
+// tools::Rectangle aPageRect = m_pTabControl->GetTabBounds( m_nPageId );
+// Point aPnt( VCLPoint( aPoint ) );
+// aPnt += aPageRect.TopLeft();
+// sal_Int32 nI = m_pTabControl->GetIndexForPoint( aPnt, nPageId );
+// if ( nI != -1 && m_nPageId == nPageId )
+// nIndex = nI;
+// }
return nIndex;
}
diff --git a/accessibility/source/standard/vclxaccessibletabpagewindow.cxx b/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
index c8408d24be97..dea12aed6fb0 100644
--- a/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
+++ b/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
@@ -18,6 +18,7 @@
*/
#include <standard/vclxaccessibletabpagewindow.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <toolkit/helper/convert.hxx>
#include <vcl/tabctrl.hxx>
#include <vcl/tabpage.hxx>
@@ -122,7 +123,7 @@ Reference< XAccessible > VCLXAccessibleTabPageWindow::getAccessibleParent( )
}
-sal_Int32 VCLXAccessibleTabPageWindow::getAccessibleIndexInParent( )
+sal_Int64 VCLXAccessibleTabPageWindow::getAccessibleIndexInParent( )
{
OExternalLockGuard aGuard( this );
diff --git a/accessibility/source/standard/vclxaccessibletextcomponent.cxx b/accessibility/source/standard/vclxaccessibletextcomponent.cxx
index c5dba0df978a..f876f0b9ed38 100644
--- a/accessibility/source/standard/vclxaccessibletextcomponent.cxx
+++ b/accessibility/source/standard/vclxaccessibletextcomponent.cxx
@@ -25,7 +25,9 @@
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <vcl/window.hxx>
+#include <vcl/mnemonic.hxx>
#include <vcl/svapp.hxx>
#include <vcl/unohelp2.hxx>
#include <vcl/ctrl.hxx>
@@ -43,11 +45,11 @@ using namespace ::comphelper;
VCLXAccessibleTextComponent::VCLXAccessibleTextComponent( VCLXWindow* pVCLXWindow )
- :VCLXAccessibleComponent( pVCLXWindow )
+ :ImplInheritanceHelper( pVCLXWindow )
{
VclPtr<vcl::Window> pWindow = GetWindow();
if ( pWindow )
- m_sText = OutputDevice::GetNonMnemonicString( pWindow->GetText() );
+ m_sText = removeMnemonicFromString( pWindow->GetText() );
}
@@ -59,6 +61,14 @@ void VCLXAccessibleTextComponent::SetText( const OUString& sText )
m_sText = sText;
NotifyAccessibleEvent( AccessibleEventId::TEXT_CHANGED, aOldValue, aNewValue );
}
+
+ // check whether accessible name has also changed, since text is (often) used as name as well
+ const OUString sName = getAccessibleName();
+ if (sName != m_sOldName)
+ {
+ NotifyAccessibleEvent(AccessibleEventId::NAME_CHANGED, Any(m_sOldName), Any(sName));
+ m_sOldName = sName;
+ }
}
@@ -86,7 +96,7 @@ OUString VCLXAccessibleTextComponent::implGetText()
OUString aText;
VclPtr<vcl::Window> pWindow = GetWindow();
if ( pWindow )
- aText = OutputDevice::GetNonMnemonicString( pWindow->GetText() );
+ aText = removeMnemonicFromString( pWindow->GetText() );
return aText;
}
@@ -116,18 +126,6 @@ void VCLXAccessibleTextComponent::disposing()
}
-// XInterface
-
-
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleTextComponent, VCLXAccessibleComponent, VCLXAccessibleTextComponent_BASE )
-
-
-// XTypeProvider
-
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleTextComponent, VCLXAccessibleComponent, VCLXAccessibleTextComponent_BASE )
-
-
// XAccessibleText
diff --git a/accessibility/source/standard/vclxaccessibletextfield.cxx b/accessibility/source/standard/vclxaccessibletextfield.cxx
index c94e46e3d5ed..4f43656419b0 100644
--- a/accessibility/source/standard/vclxaccessibletextfield.cxx
+++ b/accessibility/source/standard/vclxaccessibletextfield.cxx
@@ -18,6 +18,7 @@
*/
#include <standard/vclxaccessibletextfield.hxx>
+#include <comphelper/sequence.hxx>
#include <vcl/toolkit/lstbox.hxx>
#include <com/sun/star/accessibility/AccessibleRole.hpp>
@@ -26,12 +27,11 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::accessibility;
VCLXAccessibleTextField::VCLXAccessibleTextField (VCLXWindow* pVCLWindow, const Reference< XAccessible >& _xParent) :
- VCLXAccessibleTextComponent (pVCLWindow),
+ ImplInheritanceHelper (pVCLWindow),
m_xParent( _xParent )
{
@@ -48,9 +48,6 @@ OUString VCLXAccessibleTextField::implGetText()
return aText;
}
-IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleTextField, VCLXAccessibleTextComponent, VCLXAccessible_BASE)
-IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleTextField, VCLXAccessibleTextComponent, VCLXAccessible_BASE)
-
// XAccessible
@@ -63,13 +60,13 @@ Reference<XAccessibleContext> SAL_CALL
// XAccessibleContext
-sal_Int32 SAL_CALL VCLXAccessibleTextField::getAccessibleChildCount()
+sal_Int64 SAL_CALL VCLXAccessibleTextField::getAccessibleChildCount()
{
return 0;
}
-Reference<XAccessible> SAL_CALL VCLXAccessibleTextField::getAccessibleChild (sal_Int32)
+Reference<XAccessible> SAL_CALL VCLXAccessibleTextField::getAccessibleChild (sal_Int64)
{
throw IndexOutOfBoundsException();
}
@@ -77,8 +74,6 @@ Reference<XAccessible> SAL_CALL VCLXAccessibleTextField::getAccessibleChild (sal
sal_Int16 SAL_CALL VCLXAccessibleTextField::getAccessibleRole()
{
- ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
-
return AccessibleRole::TEXT;
}
@@ -94,14 +89,14 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleTextField::getAccessibleParent(
OUString VCLXAccessibleTextField::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleTextField";
+ return u"com.sun.star.comp.toolkit.AccessibleTextField"_ustr;
}
Sequence< OUString > VCLXAccessibleTextField::getSupportedServiceNames()
{
return comphelper::concatSequences(VCLXAccessibleTextComponent::getSupportedServiceNames(),
- Sequence<OUString>{"com.sun.star.accessibility.AccessibleTextField"});
+ Sequence<OUString>{u"com.sun.star.accessibility.AccessibleTextField"_ustr});
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/accessibility/source/standard/vclxaccessibletoolbox.cxx b/accessibility/source/standard/vclxaccessibletoolbox.cxx
index 50a600e3cbef..9094ce357b6b 100644
--- a/accessibility/source/standard/vclxaccessibletoolbox.cxx
+++ b/accessibility/source/standard/vclxaccessibletoolbox.cxx
@@ -22,14 +22,13 @@
#include <standard/vclxaccessibletoolboxitem.hxx>
#include <toolkit/helper/convert.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <o3tl/safeint.hxx>
#include <vcl/toolbox.hxx>
#include <vcl/vclevent.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <comphelper/accessiblewrapper.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/servicehelper.hxx>
@@ -65,38 +64,26 @@ namespace
,m_nIndexInParent(_nIndexInParent)
{
}
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) override;
+ virtual sal_Int64 SAL_CALL getAccessibleIndexInParent( ) override;
};
- sal_Int32 SAL_CALL OToolBoxWindowItemContext::getAccessibleIndexInParent( )
+ sal_Int64 SAL_CALL OToolBoxWindowItemContext::getAccessibleIndexInParent( )
{
- ::osl::MutexGuard aGuard( m_aMutex );
return m_nIndexInParent;
}
// = OToolBoxWindowItem
- typedef ::cppu::ImplHelper1 < XUnoTunnel
- > OToolBoxWindowItem_Base;
-
/** XAccessible implementation for a toolbox item which is represented by a VCL Window
*/
- class OToolBoxWindowItem
- :public OAccessibleWrapper
- ,public OToolBoxWindowItem_Base
+ class OToolBoxWindowItem : public OAccessibleWrapper
{
private:
sal_Int32 m_nIndexInParent;
public:
- sal_Int32 getIndexInParent() const { return m_nIndexInParent; }
- void setIndexInParent( sal_Int32 _nNewIndex ) { m_nIndexInParent = _nNewIndex; }
-
- static Sequence< sal_Int8 > getUnoTunnelId();
-
- public:
OToolBoxWindowItem(sal_Int32 _nIndexInParent,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,
const css::uno::Reference< css::accessibility::XAccessible >& _rxInnerAccessible,
@@ -110,45 +97,24 @@ namespace
}
protected:
- // XInterface
- DECLARE_XINTERFACE( )
- DECLARE_XTYPEPROVIDER( )
-
// OAccessibleWrapper
virtual rtl::Reference<OAccessibleContextWrapper> createAccessibleContext(
const css::uno::Reference< css::accessibility::XAccessibleContext >& _rxInnerContext
) override;
-
- // XUnoTunnel
- virtual sal_Int64 SAL_CALL getSomething( const Sequence< sal_Int8 >& aIdentifier ) override;
};
- IMPLEMENT_FORWARD_XINTERFACE2( OToolBoxWindowItem, OAccessibleWrapper, OToolBoxWindowItem_Base )
- IMPLEMENT_FORWARD_XTYPEPROVIDER2( OToolBoxWindowItem, OAccessibleWrapper, OToolBoxWindowItem_Base )
-
rtl::Reference<OAccessibleContextWrapper> OToolBoxWindowItem::createAccessibleContext(
const Reference< XAccessibleContext >& _rxInnerContext )
{
return new OToolBoxWindowItemContext( m_nIndexInParent, getComponentContext(), _rxInnerContext, this, getParent() );
}
-
- Sequence< sal_Int8 > OToolBoxWindowItem::getUnoTunnelId()
- {
- static const comphelper::UnoIdInit implId;
- return implId.getSeq();
- }
-
- sal_Int64 SAL_CALL OToolBoxWindowItem::getSomething( const Sequence< sal_Int8 >& _rId )
- {
- return comphelper::getSomethingImpl(_rId, this);
- }
}
// VCLXAccessibleToolBox
VCLXAccessibleToolBox::VCLXAccessibleToolBox( VCLXWindow* pVCLXWindow ) :
- VCLXAccessibleComponent( pVCLXWindow )
+ ImplInheritanceHelper( pVCLXWindow )
{
}
@@ -167,7 +133,7 @@ VCLXAccessibleToolBoxItem* VCLXAccessibleToolBox::GetItem_Impl( ToolBox::ImplToo
//TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
// returns only toolbox buttons, not windows
if ( aIter != m_aAccessibleChildren.end() && aIter->second.is())
- pItem = static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ pItem = aIter->second.get();
}
return pItem;
@@ -203,8 +169,7 @@ void VCLXAccessibleToolBox::UpdateFocus_Impl()
if ( rxChild.is() )
{
- VCLXAccessibleToolBoxItem* pItem =
- static_cast< VCLXAccessibleToolBoxItem* >( rxChild.get() );
+ VCLXAccessibleToolBoxItem* pItem = rxChild.get();
if ( pItem->HasFocus() && nItemId != nHighlightItemId )
{
// reset the old focused item
@@ -233,8 +198,7 @@ void VCLXAccessibleToolBox::ReleaseFocus_Impl( ToolBox::ImplToolItems::size_type
//TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
if ( aIter != m_aAccessibleChildren.end() && aIter->second.is() )
{
- VCLXAccessibleToolBoxItem* pItem =
- static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ VCLXAccessibleToolBoxItem* pItem = aIter->second.get();
if ( pItem->HasFocus() )
pItem->SetFocus( false );
}
@@ -254,8 +218,7 @@ void VCLXAccessibleToolBox::UpdateChecked_Impl( ToolBox::ImplToolItems::size_typ
{
ToolBoxItemId nItemId = pToolBox->GetItemId( rPos );
- VCLXAccessibleToolBoxItem* pItem =
- static_cast< VCLXAccessibleToolBoxItem* >( rxChild.get() );
+ VCLXAccessibleToolBoxItem* pItem = rxChild.get();
pItem->SetChecked( pToolBox->IsItemChecked( nItemId ) );
if ( nItemId == nFocusId )
pFocusItem = pItem;
@@ -277,8 +240,7 @@ void VCLXAccessibleToolBox::UpdateIndeterminate_Impl( ToolBox::ImplToolItems::si
//TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
if ( aIter != m_aAccessibleChildren.end() && aIter->second.is() )
{
- VCLXAccessibleToolBoxItem* pItem =
- static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ VCLXAccessibleToolBoxItem* pItem = aIter->second.get();
if ( pItem )
pItem->SetIndeterminate( pToolBox->GetItemState( nItemId ) == TRISTATE_INDET );
}
@@ -287,26 +249,17 @@ void VCLXAccessibleToolBox::UpdateIndeterminate_Impl( ToolBox::ImplToolItems::si
void VCLXAccessibleToolBox::implReleaseToolboxItem( ToolBoxItemsMap::iterator const & _rMapPos,
bool _bNotifyRemoval )
{
- Reference< XAccessible > xItemAcc( _rMapPos->second );
+ rtl::Reference<VCLXAccessibleToolBoxItem> xItemAcc(_rMapPos->second);
if ( !xItemAcc.is() )
return;
if ( _bNotifyRemoval )
{
- NotifyAccessibleEvent( AccessibleEventId::CHILD, Any( xItemAcc ), Any() );
+ NotifyAccessibleEvent(AccessibleEventId::CHILD, Any(Reference<XAccessible>(xItemAcc)), Any());
}
- auto pWindowItem = comphelper::getFromUnoTunnel<OToolBoxWindowItem>(xItemAcc);
- if ( !pWindowItem )
- {
- static_cast< VCLXAccessibleToolBoxItem* >( xItemAcc.get() )->ReleaseToolBox();
- ::comphelper::disposeComponent( xItemAcc );
- }
- else
- {
- Reference< XAccessibleContext > xContext( pWindowItem->getContextNoCreate() );
- ::comphelper::disposeComponent( xContext );
- }
+ xItemAcc->ReleaseToolBox();
+ xItemAcc->dispose();
}
void VCLXAccessibleToolBox::UpdateItem_Impl( ToolBox::ImplToolItems::size_type _nPos)
@@ -326,24 +279,12 @@ void VCLXAccessibleToolBox::UpdateItem_Impl( ToolBox::ImplToolItems::size_type _
//TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
while ( m_aAccessibleChildren.end() != aIndexAdjust )
{
- Reference< XAccessible > xItemAcc( aIndexAdjust->second );
-
- auto pWindowItem = comphelper::getFromUnoTunnel<OToolBoxWindowItem>(xItemAcc);
- if ( !pWindowItem )
+ rtl::Reference<VCLXAccessibleToolBoxItem> xItem(aIndexAdjust->second);
+ if (xItem.is())
{
- VCLXAccessibleToolBoxItem* pItem = static_cast< VCLXAccessibleToolBoxItem* >( xItemAcc.get() );
- if ( pItem )
- {
- sal_Int32 nIndex = pItem->getIndexInParent( );
- nIndex++;
- pItem->setIndexInParent( nIndex );
- }
- }
- else
- {
- sal_Int32 nIndex = pWindowItem->getIndexInParent( );
+ sal_Int32 nIndex = xItem->getIndexInParent();
nIndex++;
- pWindowItem->setIndexInParent( nIndex );
+ xItem->setIndexInParent(nIndex);
}
++aIndexAdjust;
@@ -351,7 +292,7 @@ void VCLXAccessibleToolBox::UpdateItem_Impl( ToolBox::ImplToolItems::size_type _
// TODO: we should make this dependent on the existence of event listeners
// with the current implementation, we always create accessible object
- Any aNewChild( getAccessibleChild( static_cast<sal_Int32>(_nPos) ) );
+ Any aNewChild( getAccessibleChild( static_cast<sal_Int64>(_nPos) ) );
//TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), aNewChild );
}
@@ -375,8 +316,7 @@ void VCLXAccessibleToolBox::UpdateAllItems_Impl()
for ( i = 0; i < nCount; ++i )
{
Any aNewValue;
- aNewValue <<= getAccessibleChild( static_cast<sal_Int32>(i) );
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
+ aNewValue <<= getAccessibleChild(i);
NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), aNewValue );
}
}
@@ -396,8 +336,7 @@ void VCLXAccessibleToolBox::UpdateCustomPopupItemp_Impl( vcl::Window* pWindow, b
Reference< XAccessible > xChild( pWindow->GetAccessible() );
if( xChild.is() )
{
- Reference< XAccessible > xChildItem( getAccessibleChild( static_cast< sal_Int32 >( pToolBox->GetItemPos( nDownItem ) ) ) );
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
+ Reference< XAccessible > xChildItem( getAccessibleChild(pToolBox->GetItemPos(nDownItem)));
VCLXAccessibleToolBoxItem* pItem = static_cast< VCLXAccessibleToolBoxItem* >( xChildItem.get() );
pItem->SetChild( xChild );
@@ -437,7 +376,6 @@ void VCLXAccessibleToolBox::HandleSubToolBarEvent( const VclWindowEvent& rVclWin
ToolBox::ImplToolItems::size_type nIndex = pToolBox->GetItemPos( nCurItemId );
Reference< XAccessible > xItem = getAccessibleChild( nIndex );
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
if ( xItem.is() )
{
Reference< XAccessible > xChild = pChildWindow->GetAccessible();
@@ -459,7 +397,6 @@ void VCLXAccessibleToolBox::ReleaseSubToolBox( ToolBox* _pSubToolBox )
return; // not found
Reference< XAccessible > xItem = getAccessibleChild( nIndex );
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
if ( !xItem.is() )
return;
@@ -473,18 +410,18 @@ void VCLXAccessibleToolBox::ReleaseSubToolBox( ToolBox* _pSubToolBox )
}
}
-void VCLXAccessibleToolBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+void VCLXAccessibleToolBox::FillAccessibleStateSet( sal_Int64& rStateSet )
{
VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
VclPtr< ToolBox > pToolBox = GetAs< ToolBox >();
if ( pToolBox )
{
- rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet |= AccessibleStateType::FOCUSABLE;
if ( pToolBox->IsHorizontal() )
- rStateSet.AddState( AccessibleStateType::HORIZONTAL );
+ rStateSet |= AccessibleStateType::HORIZONTAL;
else
- rStateSet.AddState( AccessibleStateType::VERTICAL );
+ rStateSet |= AccessibleStateType::VERTICAL;
}
}
@@ -559,7 +496,6 @@ void VCLXAccessibleToolBox::ProcessWindowEvent( const VclWindowEvent& rVclWindow
Any aNewValue;
aNewValue <<= getAccessibleChild(nPos);
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), aNewValue );
break;
}
@@ -630,12 +566,6 @@ void VCLXAccessibleToolBox::ProcessWindowChildEvent( const VclWindowEvent& rVclW
}
}
-// XInterface
-IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleToolBox, VCLXAccessibleComponent, VCLXAccessibleToolBox_BASE )
-
-// XTypeProvider
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleToolBox, VCLXAccessibleComponent, VCLXAccessibleToolBox_BASE )
-
// XComponent
void SAL_CALL VCLXAccessibleToolBox::disposing()
{
@@ -653,34 +583,33 @@ void SAL_CALL VCLXAccessibleToolBox::disposing()
// XServiceInfo
OUString VCLXAccessibleToolBox::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleToolBox";
+ return u"com.sun.star.comp.toolkit.AccessibleToolBox"_ustr;
}
Sequence< OUString > VCLXAccessibleToolBox::getSupportedServiceNames()
{
return comphelper::concatSequences(VCLXAccessibleComponent::getSupportedServiceNames(),
- Sequence<OUString>{"com.sun.star.accessibility.AccessibleToolBox"});
+ Sequence<OUString>{u"com.sun.star.accessibility.AccessibleToolBox"_ustr});
}
// XAccessibleContext
-sal_Int32 SAL_CALL VCLXAccessibleToolBox::getAccessibleChildCount( )
+sal_Int64 SAL_CALL VCLXAccessibleToolBox::getAccessibleChildCount( )
{
comphelper::OExternalLockGuard aGuard( this );
return implGetAccessibleChildCount();
}
- sal_Int32 VCLXAccessibleToolBox::implGetAccessibleChildCount( )
+ sal_Int64 VCLXAccessibleToolBox::implGetAccessibleChildCount( )
{
- sal_Int32 nCount = 0;
+ sal_Int64 nCount = 0;
VclPtr< ToolBox > pToolBox = GetAs< ToolBox >();
if ( pToolBox )
nCount = pToolBox->GetItemCount();
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
return nCount;
}
-Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleChild( sal_Int64 i )
{
comphelper::OExternalLockGuard aGuard( this );
@@ -688,7 +617,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleChild( sal
if ( (!pToolBox) || i < 0 || o3tl::make_unsigned(i) >= pToolBox->GetItemCount() )
throw IndexOutOfBoundsException();
- Reference< XAccessible > xChild;
+ rtl::Reference< VCLXAccessibleToolBoxItem > xChild;
// search for the child
ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.find(i);
if ( m_aAccessibleChildren.end() == aIter )
@@ -697,21 +626,25 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleChild( sal
ToolBoxItemId nHighlightItemId = pToolBox->GetHighlightItemId();
vcl::Window* pItemWindow = pToolBox->GetItemWindow( nItemId );
// not found -> create a new child
- rtl::Reference<VCLXAccessibleToolBoxItem> pChild = new VCLXAccessibleToolBoxItem( pToolBox, i );
- Reference< XAccessible> xParent = pChild;
+ xChild = new VCLXAccessibleToolBoxItem( pToolBox, i );
if ( pItemWindow )
{
- xChild = new OToolBoxWindowItem(0,::comphelper::getProcessComponentContext(),pItemWindow->GetAccessible(),xParent);
- pItemWindow->SetAccessible(xChild);
- pChild->SetChild( xChild );
+ Reference< XAccessible> xParent = xChild;
+ auto const xInnerAcc(pItemWindow->GetAccessible());
+ if (xInnerAcc) // else child is being disposed - avoid crashing
+ {
+ rtl::Reference<OToolBoxWindowItem> xChild2(new OToolBoxWindowItem(0,
+ ::comphelper::getProcessComponentContext(), xInnerAcc, xParent));
+ pItemWindow->SetAccessible(xChild2);
+ xChild->SetChild( xChild2 );
+ }
}
- xChild = pChild;
if ( nHighlightItemId > ToolBoxItemId(0) && nItemId == nHighlightItemId )
- pChild->SetFocus( true );
+ xChild->SetFocus( true );
if ( pToolBox->IsItemChecked( nItemId ) )
- pChild->SetChecked( true );
+ xChild->SetChecked( true );
if ( pToolBox->GetItemState( nItemId ) == TRISTATE_INDET )
- pChild->SetIndeterminate( true );
+ xChild->SetIndeterminate( true );
m_aAccessibleChildren.emplace( i, xChild );
}
else
@@ -733,7 +666,6 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleAtPoint( c
ToolBox::ImplToolItems::size_type nItemPos = pToolBox->GetItemPos( VCLPoint( _rPoint ) );
if ( nItemPos != ToolBox::ITEM_NOTFOUND )
xAccessible = getAccessibleChild( nItemPos );
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
}
return xAccessible;
@@ -753,7 +685,6 @@ Reference< XAccessible > VCLXAccessibleToolBox::GetItemWindowAccessible( const V
vcl::Window* pItemWindow = pToolBox->GetItemWindow( nItemId );
if ( pItemWindow == pChildWindow )
xReturn = getAccessibleChild(i);
- //TODO: ToolBox::ImplToolItems::size_type -> sal_Int32!
}
}
return xReturn;
@@ -769,7 +700,7 @@ Reference< XAccessible > VCLXAccessibleToolBox::GetChildAccessible( const VclWin
}
// XAccessibleSelection
-void VCLXAccessibleToolBox::selectAccessibleChild( sal_Int32 nChildIndex )
+void VCLXAccessibleToolBox::selectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
@@ -780,7 +711,7 @@ void VCLXAccessibleToolBox::selectAccessibleChild( sal_Int32 nChildIndex )
pToolBox->ChangeHighlight( nChildIndex );
}
-sal_Bool VCLXAccessibleToolBox::isAccessibleChildSelected( sal_Int32 nChildIndex )
+sal_Bool VCLXAccessibleToolBox::isAccessibleChildSelected( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
VclPtr< ToolBox > pToolBox = GetAs< ToolBox >();
@@ -806,11 +737,11 @@ void VCLXAccessibleToolBox::selectAllAccessibleChildren( )
// intentionally empty. makes no sense for a toolbox
}
-sal_Int32 VCLXAccessibleToolBox::getSelectedAccessibleChildCount( )
+sal_Int64 VCLXAccessibleToolBox::getSelectedAccessibleChildCount( )
{
OExternalLockGuard aGuard( this );
- sal_Int32 nRet = 0;
+ sal_Int64 nRet = 0;
VclPtr< ToolBox > pToolBox = GetAs< ToolBox >();
if (pToolBox)
{
@@ -828,7 +759,7 @@ sal_Int32 VCLXAccessibleToolBox::getSelectedAccessibleChildCount( )
return nRet;
}
-Reference< XAccessible > VCLXAccessibleToolBox::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+Reference< XAccessible > VCLXAccessibleToolBox::getSelectedAccessibleChild( sal_Int64 nSelectedChildIndex )
{
OExternalLockGuard aGuard( this );
if ( nSelectedChildIndex != 0 )
@@ -839,7 +770,7 @@ Reference< XAccessible > VCLXAccessibleToolBox::getSelectedAccessibleChild( sal_
if (pToolBox)
{
ToolBoxItemId nHighlightItemId = pToolBox->GetHighlightItemId();
- for ( sal_Int32 i = 0, nCount = pToolBox->GetItemCount(); i < nCount; i++ )
+ for (ToolBox::ImplToolItems::size_type i = 0, nCount = pToolBox->GetItemCount(); i < nCount; i++ )
{
if ( nHighlightItemId == pToolBox->GetItemId( i ) )
{
@@ -855,7 +786,7 @@ Reference< XAccessible > VCLXAccessibleToolBox::getSelectedAccessibleChild( sal_
return xChild;
}
-void VCLXAccessibleToolBox::deselectAccessibleChild( sal_Int32 nChildIndex )
+void VCLXAccessibleToolBox::deselectAccessibleChild( sal_Int64 nChildIndex )
{
OExternalLockGuard aGuard( this );
if ( nChildIndex < 0 || nChildIndex >= implGetAccessibleChildCount() )
diff --git a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
index dd2a4462854d..b8e489c9f610 100644
--- a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
+++ b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
@@ -29,13 +29,13 @@
#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
+#include <comphelper/accessiblecontexthelper.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <vcl/svapp.hxx>
#include <vcl/toolbox.hxx>
#include <vcl/unohelp2.hxx>
#include <vcl/help.hxx>
#include <vcl/settings.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
#include <unotools/accessiblerelationsethelper.hxx>
#include <strings.hxx>
#include <sal/log.hxx>
@@ -67,9 +67,9 @@ VCLXAccessibleToolBoxItem::VCLXAccessibleToolBoxItem( ToolBox* _pToolBox, sal_In
m_bIndeterminate( false )
{
- OSL_ENSURE( m_pToolBox, "invalid toolbox" );
+ assert( m_pToolBox );
m_nItemId = m_pToolBox->GetItemId( m_nIndexInParent );
- m_sOldName = GetText();
+ m_sOldName = implGetAccessibleName();
m_bIsChecked = m_pToolBox->IsItemChecked( m_nItemId );
m_bIndeterminate = ( m_pToolBox->GetItemState( m_nItemId ) == TRISTATE_INDET );
ToolBoxItemType eType = m_pToolBox->GetItemType( m_nIndexInParent );
@@ -114,33 +114,6 @@ VCLXAccessibleToolBoxItem::~VCLXAccessibleToolBoxItem()
{
}
-OUString VCLXAccessibleToolBoxItem::GetText() const
-{
- OUString sRet;
- // no text for separators and spaces
- if ( m_pToolBox && m_nItemId > ToolBoxItemId(0) )
- {
- sRet = m_pToolBox->GetItemText( m_nItemId );
- if (sRet.isEmpty())
- {
- sRet = m_pToolBox->GetQuickHelpText( m_nItemId );
- if (sRet.isEmpty())
- {
- vcl::Window* pItemWindow = m_pToolBox->GetItemWindow( m_nItemId );
- if ( m_nRole == AccessibleRole::PANEL && pItemWindow && pItemWindow->GetAccessible().is() &&
- pItemWindow->GetAccessible()->getAccessibleContext().is() )
- {
- OUString sWinText = pItemWindow->GetAccessible()->getAccessibleContext()->getAccessibleName();
- if (!sWinText.isEmpty())
- sRet = sWinText;
- }
- }
- }
-
- }
- return sRet;
-}
-
void VCLXAccessibleToolBoxItem::SetFocus( bool _bFocus )
{
if ( m_bHasFocus != _bFocus )
@@ -189,7 +162,7 @@ void VCLXAccessibleToolBoxItem::SetIndeterminate( bool _bIndeterminate )
void VCLXAccessibleToolBoxItem::NameChanged()
{
- OUString sNewName = implGetText();
+ OUString sNewName = implGetAccessibleName();
if ( sNewName != m_sOldName )
{
Any aOldValue, aNewValue;
@@ -242,7 +215,11 @@ awt::Rectangle VCLXAccessibleToolBoxItem::implGetBounds( )
OUString VCLXAccessibleToolBoxItem::implGetText()
{
- return GetText();
+ // no text for separators and spaces
+ if (!m_pToolBox || m_nItemId <= ToolBoxItemId(0))
+ return OUString();
+
+ return m_pToolBox->GetItemText(m_nItemId);
}
Locale VCLXAccessibleToolBoxItem::implGetLocale()
@@ -258,7 +235,6 @@ void VCLXAccessibleToolBoxItem::implGetSelection( sal_Int32& nStartIndex, sal_In
// XInterface
-IMPLEMENT_FORWARD_REFCOUNT( VCLXAccessibleToolBoxItem, AccessibleTextHelper_BASE )
Any SAL_CALL VCLXAccessibleToolBoxItem::queryInterface( const Type& _rType )
{
// #i33611# - toolbox buttons without text don't support XAccessibleText
@@ -266,21 +242,14 @@ Any SAL_CALL VCLXAccessibleToolBoxItem::queryInterface( const Type& _rType )
&& ( !m_pToolBox || m_pToolBox->GetButtonType() == ButtonType::SYMBOLONLY ) )
return Any();
- css::uno::Any aReturn = AccessibleTextHelper_BASE::queryInterface( _rType );
- if ( !aReturn.hasValue() )
- aReturn = VCLXAccessibleToolBoxItem_BASE::queryInterface( _rType );
- return aReturn;
+ return ImplInheritanceHelper::queryInterface( _rType );
}
-// XTypeProvider
-
-IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleToolBoxItem, AccessibleTextHelper_BASE, VCLXAccessibleToolBoxItem_BASE )
-
// XComponent
void SAL_CALL VCLXAccessibleToolBoxItem::disposing()
{
- AccessibleTextHelper_BASE::disposing();
+ comphelper::OAccessibleTextHelper::disposing();
m_pToolBox = nullptr;
}
@@ -288,7 +257,7 @@ void SAL_CALL VCLXAccessibleToolBoxItem::disposing()
OUString VCLXAccessibleToolBoxItem::getImplementationName()
{
- return "com.sun.star.comp.toolkit.AccessibleToolBoxItem";
+ return u"com.sun.star.comp.toolkit.AccessibleToolBoxItem"_ustr;
}
sal_Bool VCLXAccessibleToolBoxItem::supportsService( const OUString& rServiceName )
@@ -298,10 +267,10 @@ sal_Bool VCLXAccessibleToolBoxItem::supportsService( const OUString& rServiceNam
Sequence< OUString > VCLXAccessibleToolBoxItem::getSupportedServiceNames()
{
- return {"com.sun.star.accessibility.AccessibleContext",
- "com.sun.star.accessibility.AccessibleComponent",
- "com.sun.star.accessibility.AccessibleExtendedComponent",
- "com.sun.star.accessibility.AccessibleToolBoxItem"};
+ return {u"com.sun.star.accessibility.AccessibleContext"_ustr,
+ u"com.sun.star.accessibility.AccessibleComponent"_ustr,
+ u"com.sun.star.accessibility.AccessibleExtendedComponent"_ustr,
+ u"com.sun.star.accessibility.AccessibleToolBoxItem"_ustr};
}
// XAccessible
@@ -313,14 +282,14 @@ Reference< XAccessibleContext > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibl
// XAccessibleContext
-sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleChildCount( )
+sal_Int64 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleChildCount( )
{
OContextEntryGuard aGuard( this );
return m_xChild.is() ? 1 : 0;
}
-Reference< XAccessible > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleChild( sal_Int32 i )
+Reference< XAccessible > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleChild( sal_Int64 i )
{
OContextEntryGuard aGuard( this );
@@ -338,7 +307,7 @@ Reference< XAccessible > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleParent
return m_pToolBox->GetAccessible();
}
-sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleIndexInParent( )
+sal_Int64 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleIndexInParent( )
{
OContextEntryGuard aGuard( this );
@@ -369,12 +338,33 @@ OUString SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleDescription( )
}
}
+OUString VCLXAccessibleToolBoxItem::implGetAccessibleName()
+{
+ OUString sRet = m_pToolBox->GetAccessibleName(m_nItemId);
+ if (!sRet.isEmpty())
+ return sRet;
+
+ sRet = implGetText();
+ if (!sRet.isEmpty())
+ return sRet;
+
+ sRet = m_pToolBox->GetQuickHelpText( m_nItemId );
+ if (!sRet.isEmpty())
+ return sRet;
+
+ vcl::Window* pItemWindow = m_pToolBox->GetItemWindow( m_nItemId );
+ if ( m_nRole == AccessibleRole::PANEL && pItemWindow && pItemWindow->GetAccessible().is() &&
+ pItemWindow->GetAccessible()->getAccessibleContext().is() )
+ {
+ sRet = pItemWindow->GetAccessible()->getAccessibleContext()->getAccessibleName();
+ }
+ return sRet;
+}
+
OUString SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleName( )
{
OExternalLockGuard aGuard( this );
-
- // entry text == accessible name
- return GetText();
+ return implGetAccessibleName();
}
Reference< XAccessibleRelationSet > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleRelationSet( )
@@ -384,35 +374,37 @@ Reference< XAccessibleRelationSet > SAL_CALL VCLXAccessibleToolBoxItem::getAcces
return new utl::AccessibleRelationSetHelper;
}
-Reference< XAccessibleStateSet > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleStateSet( )
+sal_Int64 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleStateSet( )
{
OExternalLockGuard aGuard( this );
- rtl::Reference<utl::AccessibleStateSetHelper> pStateSetHelper = new utl::AccessibleStateSetHelper;
+ sal_Int64 nStateSet = 0;
if ( m_pToolBox && !rBHelper.bDisposed && !rBHelper.bInDispose )
{
- pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
+ nStateSet |= AccessibleStateType::FOCUSABLE;
+ if (m_pToolBox->GetItemBits(m_nItemId) & ToolBoxItemBits::CHECKABLE)
+ nStateSet |= AccessibleStateType::CHECKABLE;
if ( m_bIsChecked && m_nRole != AccessibleRole::PANEL )
- pStateSetHelper->AddState( AccessibleStateType::CHECKED );
+ nStateSet |= AccessibleStateType::CHECKED;
if ( m_bIndeterminate )
- pStateSetHelper->AddState( AccessibleStateType::INDETERMINATE );
+ nStateSet |= AccessibleStateType::INDETERMINATE;
if ( m_pToolBox->IsEnabled() && m_pToolBox->IsItemEnabled( m_nItemId ) )
{
- pStateSetHelper->AddState( AccessibleStateType::ENABLED );
- pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+ nStateSet |= AccessibleStateType::ENABLED;
+ nStateSet |= AccessibleStateType::SENSITIVE;
}
if ( m_pToolBox->IsItemVisible( m_nItemId ) )
- pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ nStateSet |= AccessibleStateType::VISIBLE;
if ( m_pToolBox->IsItemReallyVisible( m_nItemId ) )
- pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ nStateSet |= AccessibleStateType::SHOWING;
if ( m_bHasFocus )
- pStateSetHelper->AddState( AccessibleStateType::FOCUSED );
+ nStateSet |= AccessibleStateType::FOCUSED;
}
else
- pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ nStateSet |= AccessibleStateType::DEFUNC;
- return pStateSetHelper;
+ return nStateSet;
}
// XAccessibleText
@@ -421,26 +413,26 @@ OUString VCLXAccessibleToolBoxItem::getText()
{
OExternalLockGuard aGuard( this );
- return GetText();
+ return implGetText();
}
sal_Int32 VCLXAccessibleToolBoxItem::getCharacterCount()
{
- return GetText().getLength();
+ return implGetText().getLength();
}
sal_Unicode VCLXAccessibleToolBoxItem::getCharacter( sal_Int32 nIndex )
{
OExternalLockGuard aGuard( this );
- return OCommonAccessibleText::implGetCharacter( GetText(), nIndex );
+ return OCommonAccessibleText::implGetCharacter(implGetText(), nIndex);
}
OUString VCLXAccessibleToolBoxItem::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex )
{
OExternalLockGuard aGuard( this );
- return OCommonAccessibleText::implGetTextRange( GetText(), nStartIndex, nEndIndex );
+ return OCommonAccessibleText::implGetTextRange(implGetText(), nStartIndex, nEndIndex);
}
sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getCaretPosition()
@@ -452,7 +444,7 @@ sal_Bool SAL_CALL VCLXAccessibleToolBoxItem::setCaretPosition( sal_Int32 nIndex
{
OExternalLockGuard aGuard( this );
- if ( !implIsValidRange( nIndex, nIndex, GetText().getLength() ) )
+ if (!implIsValidRange(nIndex, nIndex, implGetText().getLength()))
throw IndexOutOfBoundsException();
return false;
diff --git a/accessibility/util/acc.component b/accessibility/util/acc.component
new file mode 100644
index 000000000000..713a1bb118c1
--- /dev/null
+++ b/accessibility/util/acc.component
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.accessibility.comp.GetStandardAccessibleFactoryService"
+ constructor="com_sun_star_accessibility_GetStandardAccessibleFactoryService_get_implementation">
+ <service name="com.sun.star.accessibility.GetStandardAccessibleFactoryService"/>
+ </implementation>
+</component>