diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2021-07-28 11:26:16 +0200 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2021-07-28 15:45:28 +0200 |
commit | b5ada12ffd0b6b8677430fce117c4c1e38cc9159 (patch) | |
tree | a96fd46a243216c2d9a1a2b98f88a5e6cfa7a023 /accessibility | |
parent | 349a8801b9ee98f4f9ee1d35f7d28e17baedf7cc (diff) |
a11y: Add XAccessibleValue::getMinimumIncrement method
Add a method 'getMinimumIncrement' to the XAccessibleValue interface.
The method returns the minimal increment by which the value represented by
the object can be adjusted.
The main motivation is to expose this to AT-SPI, so it can be retrieved e.g.
by libatspi's 'atspi_value_get_minimum_increment' function [1],
s. the note in Change-Id: I8af326c2d24c1801147a56ea2e2a886ab42ac634
"a11y: Expose FormattedField as spinbox" for more details.
The implementation relevant for the 'FormattedField' class is in
'SVTXAccessibleNumericField::getMinimumIncrement', which returns
the spin size.
While at it, also move the comment in sw/source/core/access/acccell.hxx
mentioning what methods are overriden for the 'XAccessibleValue' interface
to the right place.
[1] https://developer.gnome.org/libatspi/stable/libatspi-atspi-value.html#atspi-value-get-minimum-increment
Change-Id: Ie148a4e1cedbdbb5964f8565c81611d3480465cb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119596
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'accessibility')
20 files changed, 105 insertions, 0 deletions
diff --git a/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx b/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx index a550eed5e220..76c70344096c 100644 --- a/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx +++ b/accessibility/inc/extended/AccessibleBrowseBoxCheckBoxCell.hxx @@ -70,6 +70,7 @@ namespace accessibility virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; // internal void SetChecked( bool _bChecked ); diff --git a/accessibility/inc/extended/accessiblelistboxentry.hxx b/accessibility/inc/extended/accessiblelistboxentry.hxx index 279978a34ccf..449803bc35b5 100644 --- a/accessibility/inc/extended/accessiblelistboxentry.hxx +++ b/accessibility/inc/extended/accessiblelistboxentry.hxx @@ -202,10 +202,13 @@ namespace accessibility 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; + + // XAccessibleValue virtual css::uno::Any SAL_CALL getCurrentValue( ) override; virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; css::uno::Reference< css::accessibility::XAccessible > implGetParentAccessible( ) const; SvTreeListEntry* GetRealChild(sal_Int32 nIndex); diff --git a/accessibility/inc/standard/svtaccessiblenumericfield.hxx b/accessibility/inc/standard/svtaccessiblenumericfield.hxx index 940f72fa03f2..30688979c8a9 100644 --- a/accessibility/inc/standard/svtaccessiblenumericfield.hxx +++ b/accessibility/inc/standard/svtaccessiblenumericfield.hxx @@ -45,6 +45,7 @@ public: virtual ::sal_Bool SAL_CALL setCurrentValue(const css::uno::Any& aNumber) override; virtual ::css::uno::Any SAL_CALL getMaximumValue() override; virtual ::css::uno::Any SAL_CALL getMinimumValue() override; + virtual ::css::uno::Any SAL_CALL getMinimumIncrement() override; }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/inc/standard/vclxaccessiblebox.hxx b/accessibility/inc/standard/vclxaccessiblebox.hxx index 4971078fcbc0..e92ab2bb2c24 100644 --- a/accessibility/inc/standard/vclxaccessiblebox.hxx +++ b/accessibility/inc/standard/vclxaccessiblebox.hxx @@ -108,6 +108,8 @@ public: virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; protected: /** Specifies whether the box is a combo box or a list box. List boxes have multi selection. diff --git a/accessibility/inc/standard/vclxaccessiblebutton.hxx b/accessibility/inc/standard/vclxaccessiblebutton.hxx index c96e098f6766..a786f8e0a778 100644 --- a/accessibility/inc/standard/vclxaccessiblebutton.hxx +++ b/accessibility/inc/standard/vclxaccessiblebutton.hxx @@ -68,6 +68,7 @@ public: virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; }; diff --git a/accessibility/inc/standard/vclxaccessiblecheckbox.hxx b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx index 766400bb3e7f..f64f5ab980ea 100644 --- a/accessibility/inc/standard/vclxaccessiblecheckbox.hxx +++ b/accessibility/inc/standard/vclxaccessiblecheckbox.hxx @@ -77,6 +77,7 @@ public: virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; }; diff --git a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx index 2c32418c525a..646f87aa02c9 100644 --- a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx +++ b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx @@ -101,6 +101,7 @@ public: virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; }; diff --git a/accessibility/inc/standard/vclxaccessibleradiobutton.hxx b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx index b4773946d31f..a9b93b7ac67f 100644 --- a/accessibility/inc/standard/vclxaccessibleradiobutton.hxx +++ b/accessibility/inc/standard/vclxaccessibleradiobutton.hxx @@ -66,6 +66,7 @@ public: virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; }; diff --git a/accessibility/inc/standard/vclxaccessiblescrollbar.hxx b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx index 8d81c60cc7db..0a9e0368ff8e 100644 --- a/accessibility/inc/standard/vclxaccessiblescrollbar.hxx +++ b/accessibility/inc/standard/vclxaccessiblescrollbar.hxx @@ -65,6 +65,7 @@ public: virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; // XAccessibleContext OUString SAL_CALL getAccessibleName( ) override; diff --git a/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx index a8de1b43231c..6c60bf4a87c6 100644 --- a/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx +++ b/accessibility/inc/standard/vclxaccessibletoolboxitem.hxx @@ -145,6 +145,7 @@ public: virtual sal_Bool SAL_CALL setCurrentValue( const css::uno::Any& aNumber ) override; virtual css::uno::Any SAL_CALL getMaximumValue( ) override; virtual css::uno::Any SAL_CALL getMinimumValue( ) override; + virtual css::uno::Any SAL_CALL getMinimumIncrement( ) override; }; diff --git a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx index e798cb954ec0..2b29547bad92 100644 --- a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx +++ b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx @@ -115,6 +115,14 @@ namespace accessibility return aValue; } + Any SAL_CALL AccessibleCheckBoxCell::getMinimumIncrement( ) + { + Any aValue; + aValue <<= sal_Int32(1); + + return aValue; + } + // XAccessibleContext sal_Int32 SAL_CALL AccessibleCheckBoxCell::getAccessibleChildCount( ) { diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx b/accessibility/source/extended/accessiblelistboxentry.cxx index 32c77a3d11db..ceacee0b4489 100644 --- a/accessibility/source/extended/accessiblelistboxentry.cxx +++ b/accessibility/source/extended/accessiblelistboxentry.cxx @@ -1177,6 +1177,23 @@ namespace accessibility return aValue; } + Any AccessibleListBoxEntry::getMinimumIncrement( ) + { + ::osl::MutexGuard aGuard( m_aMutex ); + + Any aValue; + switch(getAccessibleRole()) + { + case AccessibleRole::CHECK_BOX: + aValue <<= sal_Int32(1); + break; + case AccessibleRole::LABEL: + default: + break; + } + + return aValue; + } SvTreeListEntry* AccessibleListBoxEntry::GetRealChild(sal_Int32 nIndex) { diff --git a/accessibility/source/standard/svtaccessiblenumericfield.cxx b/accessibility/source/standard/svtaccessiblenumericfield.cxx index 114bf71802fe..729966eb8fef 100644 --- a/accessibility/source/standard/svtaccessiblenumericfield.cxx +++ b/accessibility/source/standard/svtaccessiblenumericfield.cxx @@ -90,4 +90,16 @@ css::uno::Any SAL_CALL SVTXAccessibleNumericField::getMinimumValue() return css::uno::Any(dValue); } +css::uno::Any SAL_CALL SVTXAccessibleNumericField::getMinimumIncrement() +{ + OExternalLockGuard aGuard(this); + + double dValue = 0; + SVTXNumericField* pField = static_cast<SVTXNumericField*>(GetVCLXWindow()); + if (pField) + dValue = pField->getSpinSize(); + + return css::uno::Any(dValue); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx b/accessibility/source/standard/vclxaccessiblebox.cxx index 50bb06247509..ce81c254c59a 100644 --- a/accessibility/source/standard/vclxaccessiblebox.cxx +++ b/accessibility/source/standard/vclxaccessiblebox.cxx @@ -486,6 +486,11 @@ Any VCLXAccessibleBox::getMinimumValue( ) return aAny; } +Any VCLXAccessibleBox::getMinimumIncrement( ) +{ + return Any(); +} + // Set the INDETERMINATE state when there is no selected item for combobox void VCLXAccessibleBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) { diff --git a/accessibility/source/standard/vclxaccessiblebutton.cxx b/accessibility/source/standard/vclxaccessiblebutton.cxx index 50e81669b86a..d5ffb68bbf2e 100644 --- a/accessibility/source/standard/vclxaccessiblebutton.cxx +++ b/accessibility/source/standard/vclxaccessiblebutton.cxx @@ -296,5 +296,15 @@ Any VCLXAccessibleButton::getMinimumValue( ) return aValue; } +Any VCLXAccessibleButton::getMinimumIncrement( ) +{ + OExternalLockGuard aGuard( this ); + + Any aValue; + aValue <<= sal_Int32(1); + + return aValue; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/standard/vclxaccessiblecheckbox.cxx b/accessibility/source/standard/vclxaccessiblecheckbox.cxx index f38bc3881b87..20cf2138bc06 100644 --- a/accessibility/source/standard/vclxaccessiblecheckbox.cxx +++ b/accessibility/source/standard/vclxaccessiblecheckbox.cxx @@ -328,5 +328,15 @@ Any VCLXAccessibleCheckBox::getMinimumValue( ) return aValue; } +Any VCLXAccessibleCheckBox::getMinimumIncrement( ) +{ + OExternalLockGuard aGuard( this ); + + Any aValue; + aValue <<= sal_Int32(1); + + return aValue; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/standard/vclxaccessiblemenuitem.cxx b/accessibility/source/standard/vclxaccessiblemenuitem.cxx index c12fdc985f7a..f8b125c1400e 100644 --- a/accessibility/source/standard/vclxaccessiblemenuitem.cxx +++ b/accessibility/source/standard/vclxaccessiblemenuitem.cxx @@ -554,5 +554,13 @@ Any VCLXAccessibleMenuItem::getMinimumValue( ) return aValue; } +Any VCLXAccessibleMenuItem::getMinimumIncrement( ) +{ + Any aValue; + aValue <<= sal_Int32(1); + + return aValue; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/standard/vclxaccessibleradiobutton.cxx b/accessibility/source/standard/vclxaccessibleradiobutton.cxx index 49901a8fbe17..c1a23ede2ede 100644 --- a/accessibility/source/standard/vclxaccessibleradiobutton.cxx +++ b/accessibility/source/standard/vclxaccessibleradiobutton.cxx @@ -267,5 +267,15 @@ Any VCLXAccessibleRadioButton::getMinimumValue( ) return aValue; } +Any VCLXAccessibleRadioButton::getMinimumIncrement( ) +{ + OExternalLockGuard aGuard( this ); + + Any aValue; + aValue <<= sal_Int32(1); + + return aValue; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/accessibility/source/standard/vclxaccessiblescrollbar.cxx b/accessibility/source/standard/vclxaccessiblescrollbar.cxx index 329aaec906bc..9ddb5e12a8c3 100644 --- a/accessibility/source/standard/vclxaccessiblescrollbar.cxx +++ b/accessibility/source/standard/vclxaccessiblescrollbar.cxx @@ -244,6 +244,13 @@ Any VCLXAccessibleScrollBar::getMinimumValue( ) return aValue; } +Any VCLXAccessibleScrollBar::getMinimumIncrement( ) +{ + OExternalLockGuard aGuard( this ); + + return Any(); +} + OUString VCLXAccessibleScrollBar::getAccessibleName( ) { diff --git a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx index d290430975ba..dd2a4462854d 100644 --- a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx +++ b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx @@ -725,5 +725,10 @@ Any VCLXAccessibleToolBoxItem::getMinimumValue( ) return Any(sal_Int32(0)); } +Any VCLXAccessibleToolBoxItem::getMinimumIncrement( ) +{ + return Any(sal_Int32(1)); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |