diff options
19 files changed, 36 insertions, 3 deletions
diff --git a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx index 645b544176d2..e59755555624 100644 --- a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx +++ b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx @@ -57,6 +57,7 @@ namespace accessibility sal_Int64 nStateSet = AccessibleBrowseBoxCell::implCreateStateSet(); if( isAlive() ) { + nStateSet |= AccessibleStateType::CHECKABLE; mpBrowseBox->FillAccessibleStateSetForCell( nStateSet, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) ); if ( m_eState == TRISTATE_TRUE ) diff --git a/accessibility/source/standard/vclxaccessiblebutton.cxx b/accessibility/source/standard/vclxaccessiblebutton.cxx index 31c8188b99ab..eb4d1f0821fe 100644 --- a/accessibility/source/standard/vclxaccessiblebutton.cxx +++ b/accessibility/source/standard/vclxaccessiblebutton.cxx @@ -78,6 +78,9 @@ void VCLXAccessibleButton::FillAccessibleStateSet( sal_Int64& rStateSet ) rStateSet |= AccessibleStateType::FOCUSABLE; + if (pButton->isToggleButton()) + rStateSet |= AccessibleStateType::CHECKABLE; + if ( pButton->GetState() == TRISTATE_TRUE ) rStateSet |= AccessibleStateType::CHECKED; diff --git a/accessibility/source/standard/vclxaccessiblecheckbox.cxx b/accessibility/source/standard/vclxaccessiblecheckbox.cxx index 8a0ea492911e..cf75db3fa7b6 100644 --- a/accessibility/source/standard/vclxaccessiblecheckbox.cxx +++ b/accessibility/source/standard/vclxaccessiblecheckbox.cxx @@ -127,6 +127,7 @@ void VCLXAccessibleCheckBox::FillAccessibleStateSet( sal_Int64& rStateSet ) { VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet ); + rStateSet |= AccessibleStateType::CHECKABLE; rStateSet |= AccessibleStateType::FOCUSABLE; if ( IsChecked() ) diff --git a/accessibility/source/standard/vclxaccessibleradiobutton.cxx b/accessibility/source/standard/vclxaccessibleradiobutton.cxx index 0e66dde4c300..c81dead7562f 100644 --- a/accessibility/source/standard/vclxaccessibleradiobutton.cxx +++ b/accessibility/source/standard/vclxaccessibleradiobutton.cxx @@ -99,6 +99,7 @@ void VCLXAccessibleRadioButton::FillAccessibleStateSet( sal_Int64& rStateSet ) VCLXRadioButton* pVCLXRadioButton = static_cast< VCLXRadioButton* >( GetVCLXWindow() ); if ( pVCLXRadioButton ) { + rStateSet |= AccessibleStateType::CHECKABLE; rStateSet |= AccessibleStateType::FOCUSABLE; if ( pVCLXRadioButton->getState() ) rStateSet |= AccessibleStateType::CHECKED; diff --git a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx index 808f2fe642d4..96b8e5ef799d 100644 --- a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx +++ b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx @@ -385,6 +385,8 @@ sal_Int64 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleStateSet( ) if ( m_pToolBox && !rBHelper.bDisposed && !rBHelper.bInDispose ) { nStateSet |= AccessibleStateType::FOCUSABLE; + if (m_pToolBox->GetItemBits(m_nItemId) & ToolBoxItemBits::CHECKABLE) + nStateSet |= AccessibleStateType::CHECKABLE; if ( m_bIsChecked && m_nRole != AccessibleRole::PANEL ) nStateSet |= AccessibleStateType::CHECKED; if ( m_bIndeterminate ) diff --git a/offapi/com/sun/star/awt/AccessibleButton.idl b/offapi/com/sun/star/awt/AccessibleButton.idl index 4ccd3495d882..69c90bd870f7 100644 --- a/offapi/com/sun/star/awt/AccessibleButton.idl +++ b/offapi/com/sun/star/awt/AccessibleButton.idl @@ -38,6 +38,8 @@ service AccessibleButton <li>Relations: There are no relations.</li> <li>States: The states supported by this service are <ul> + <li>com::sun::star::accessibility::AccessibleStateType::CHECKABLE + is set if the object is checkable, i.e. can be checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::CHECKED is set if the object is currently checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::DEFUNC diff --git a/offapi/com/sun/star/awt/AccessibleCheckBox.idl b/offapi/com/sun/star/awt/AccessibleCheckBox.idl index ecf11cebe7e8..a8934139006f 100644 --- a/offapi/com/sun/star/awt/AccessibleCheckBox.idl +++ b/offapi/com/sun/star/awt/AccessibleCheckBox.idl @@ -39,6 +39,8 @@ service AccessibleCheckBox <li>Relations: There are no relations.</li> <li>States: The states supported by this service are <ul> + <li>com::sun::star::accessibility::AccessibleStateType::CHECKABLE + is always set.</li> <li>com::sun::star::accessibility::AccessibleStateType::CHECKED is set if the object is currently checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::DEFUNC diff --git a/offapi/com/sun/star/awt/AccessibleMenu.idl b/offapi/com/sun/star/awt/AccessibleMenu.idl index 3cd51d5f96f4..276b4b7a77f3 100644 --- a/offapi/com/sun/star/awt/AccessibleMenu.idl +++ b/offapi/com/sun/star/awt/AccessibleMenu.idl @@ -46,6 +46,8 @@ service AccessibleMenu <ul> <li>com::sun::star::accessibility::AccessibleStateType::ARMED is set if the object is highlighted.</li> + <li>com::sun::star::accessibility::AccessibleStateType::CHECKABLE + is set if the object is checkable, i.e. can be checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::CHECKED is set if the object is currently checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::DEFUNC diff --git a/offapi/com/sun/star/awt/AccessibleMenuItem.idl b/offapi/com/sun/star/awt/AccessibleMenuItem.idl index d83418961994..ef86f72009f4 100644 --- a/offapi/com/sun/star/awt/AccessibleMenuItem.idl +++ b/offapi/com/sun/star/awt/AccessibleMenuItem.idl @@ -44,6 +44,8 @@ service AccessibleMenuItem <ul> <li>com::sun::star::accessibility::AccessibleStateType::ARMED is set if the object is highlighted.</li> + <li>com::sun::star::accessibility::AccessibleStateType::CHECKABLE + is set if the object is checkable, i.e. can be checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::CHECKED is set if the object is currently checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::DEFUNC diff --git a/offapi/com/sun/star/awt/AccessibleRadioButton.idl b/offapi/com/sun/star/awt/AccessibleRadioButton.idl index 889040af3205..8c49b6a7c64a 100644 --- a/offapi/com/sun/star/awt/AccessibleRadioButton.idl +++ b/offapi/com/sun/star/awt/AccessibleRadioButton.idl @@ -45,6 +45,8 @@ service AccessibleRadioButton </li> <li>States: The states supported by this service are <ul> + <li>com::sun::star::accessibility::AccessibleStateType::CHECKABLE + is always set.</li> <li>com::sun::star::accessibility::AccessibleStateType::CHECKED is set if the object is currently checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::DEFUNC diff --git a/offapi/com/sun/star/awt/AccessibleToolBoxItem.idl b/offapi/com/sun/star/awt/AccessibleToolBoxItem.idl index 78f495442c27..3681efe25fe4 100644 --- a/offapi/com/sun/star/awt/AccessibleToolBoxItem.idl +++ b/offapi/com/sun/star/awt/AccessibleToolBoxItem.idl @@ -78,6 +78,8 @@ service AccessibleToolBoxItem is set if the object is displayed on the screen.</li> <li>com::sun::star::accessibility::AccessibleStateType::VISIBLE is always set.</li> + <li>com::sun::star::accessibility::AccessibleStateType::CHECKABLE + is set if the tool box item is checkable, i.e. it can be checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::CHECKED is set if the tool box item is checked.</li> </ul> diff --git a/offapi/com/sun/star/awt/AccessibleTreeListBoxEntry.idl b/offapi/com/sun/star/awt/AccessibleTreeListBoxEntry.idl index 57a5f23e2f94..e35f4f5aaa3b 100644 --- a/offapi/com/sun/star/awt/AccessibleTreeListBoxEntry.idl +++ b/offapi/com/sun/star/awt/AccessibleTreeListBoxEntry.idl @@ -76,6 +76,8 @@ service AccessibleTreeListBoxEntry <li>com::sun::star::accessibility::AccessibleStateType::COLLAPSED is set when it is collapsed.</li> <li>com::sun::star::accessibility::AccessibleStateType::CHECKED + is set when it is checkable.</li> + <li>com::sun::star::accessibility::AccessibleStateType::CHECKED is set when it is checked.</li> <li>com::sun::star::accessibility::AccessibleStateType::SELECTABLE is always set.</li> diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index 885b6877761a..93c18a16e2e2 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -433,21 +433,21 @@ OUString truncateText(OUString& sText, sal_Int32 nNewLength) std::string stateSetToString(::sal_Int64 stateSet) { - static const std::string states[34] = { + static const std::string states[35] = { "ACTIVE", "ARMED", "BUSY", "CHECKED", "DEFUNC", "EDITABLE", "ENABLED", "EXPANDABLE", "EXPANDED", "FOCUSABLE", "FOCUSED", "HORIZONTAL", "ICONIFIED", "INDETERMINATE", "MANAGES_DESCENDANTS", "MODAL", "MULTI_LINE", "MULTI_SELECTABLE", "OPAQUE", "PRESSED", "RESIZABLE", "SELECTABLE", "SELECTED", "SENSITIVE", "SHOWING", "SINGLE_LINE", "STALE", "TRANSIENT", "VERTICAL", "VISIBLE", - "MOVEABLE", "DEFAULT", "OFFSCREEN", "COLLAPSE" + "MOVEABLE", "DEFAULT", "OFFSCREEN", "COLLAPSE", "CHECKABLE" }; if (stateSet == 0) return "INVALID"; ::sal_Int64 state = 1; std::string s; - for (int i = 0; i < 34; ++i) + for (int i = 0; i < 35; ++i) { if (stateSet & state) { diff --git a/test/source/a11y/AccessibilityTools.cxx b/test/source/a11y/AccessibilityTools.cxx index 150a1cdf836a..f0a28d4cdad2 100644 --- a/test/source/a11y/AccessibilityTools.cxx +++ b/test/source/a11y/AccessibilityTools.cxx @@ -417,6 +417,9 @@ OUString AccessibilityTools::debugAccessibleStateSet(const sal_Int64 nCombinedSt case accessibility::AccessibleStateType::BUSY: name = "BUSY"; break; + case accessibility::AccessibleStateType::CHECKABLE: + name = "CHECKABLE"; + break; case accessibility::AccessibleStateType::CHECKED: name = "CHECKED"; break; diff --git a/toolkit/source/awt/vclxaccessiblecomponent.cxx b/toolkit/source/awt/vclxaccessiblecomponent.cxx index 2c353fd801eb..9c2321ede37a 100644 --- a/toolkit/source/awt/vclxaccessiblecomponent.cxx +++ b/toolkit/source/awt/vclxaccessiblecomponent.cxx @@ -497,6 +497,7 @@ void VCLXAccessibleComponent::FillAccessibleStateSet( sal_Int64& rStateSet ) MUST BE SET FROM DERIVED CLASSES: +CHECKABLE CHECKED COLLAPSED EXPANDED diff --git a/toolkit/test/accessibility/tools/NameProvider.java b/toolkit/test/accessibility/tools/NameProvider.java index cc5ae469e57a..7a859fcea626 100644 --- a/toolkit/test/accessibility/tools/NameProvider.java +++ b/toolkit/test/accessibility/tools/NameProvider.java @@ -99,6 +99,7 @@ public class NameProvider maStateMap.put (Integer.valueOf(AccessibleStateType.ACTIVE), "ACTIVE"); maStateMap.put (Integer.valueOf(AccessibleStateType.ARMED), "ARMED"); maStateMap.put (Integer.valueOf(AccessibleStateType.BUSY), "BUSY"); + maStateMap.put (Integer.valueOf(AccessibleStateType.CHECKABLE), "CHECKABLE"); maStateMap.put (Integer.valueOf(AccessibleStateType.CHECKED), "CHECKED"); maStateMap.put (Integer.valueOf(AccessibleStateType.DEFUNC), "DEFUNC"); maStateMap.put (Integer.valueOf(AccessibleStateType.EDITABLE), "EDITABLE"); diff --git a/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx b/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx index 7ef2efeca0ef..e24bf8078613 100644 --- a/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx +++ b/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx @@ -151,6 +151,7 @@ static AtspiStateType mapAtspiState(sal_Int64 nState) MAP_DIRECT(ACTIVE); MAP_DIRECT(ARMED); MAP_DIRECT(BUSY); + MAP_DIRECT(CHECKABLE); MAP_DIRECT(CHECKED); MAP_DIRECT(EDITABLE); MAP_DIRECT(ENABLED); diff --git a/vcl/qt5/QtAccessibleEventListener.cxx b/vcl/qt5/QtAccessibleEventListener.cxx index c5d64d4650ed..d6a404e6947e 100644 --- a/vcl/qt5/QtAccessibleEventListener.cxx +++ b/vcl/qt5/QtAccessibleEventListener.cxx @@ -64,6 +64,9 @@ void QtAccessibleEventListener::HandleStateChangedEvent( case AccessibleStateType::BUSY: aState.busy = true; break; + case AccessibleStateType::CHECKABLE: + aState.checkable = true; + break; case AccessibleStateType::CHECKED: aState.checked = true; break; diff --git a/vcl/source/treelist/treelistbox.cxx b/vcl/source/treelist/treelistbox.cxx index b97abc33333b..6dd915e23996 100644 --- a/vcl/source/treelist/treelistbox.cxx +++ b/vcl/source/treelist/treelistbox.cxx @@ -3465,6 +3465,8 @@ void SvTreeListBox::FillAccessibleEntryStateSet( SvTreeListEntry* pEntry, sal_In rStateSet |= AccessibleStateType::EXPANDED; } + if (nTreeFlags & SvTreeFlags::CHKBTN) + rStateSet |= AccessibleStateType::CHECKABLE; if ( GetCheckButtonState( pEntry ) == SvButtonState::Checked ) rStateSet |= AccessibleStateType::CHECKED; if ( IsEntryVisible( pEntry ) ) |