accessibility/inc/standard/vclxaccessiblemenuitem.hxx             |    1 
 accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx |    1 
 accessibility/source/standard/vclxaccessiblebutton.cxx            |    3 
 accessibility/source/standard/vclxaccessiblecheckbox.cxx          |    1 
 accessibility/source/standard/vclxaccessiblemenuitem.cxx          |   10 
 accessibility/source/standard/vclxaccessibleradiobutton.cxx       |    1 
 accessibility/source/standard/vclxaccessibletoolboxitem.cxx       |    2 
 include/vcl/menu.hxx                                              |    1 
 offapi/com/sun/star/awt/AccessibleButton.idl                      |    2 
 offapi/com/sun/star/awt/AccessibleCheckBox.idl                    |    2 
 offapi/com/sun/star/awt/AccessibleMenu.idl                        |    2 
 offapi/com/sun/star/awt/AccessibleMenuItem.idl                    |    2 
 offapi/com/sun/star/awt/AccessibleRadioButton.idl                 |    2 
 offapi/com/sun/star/awt/AccessibleToolBoxItem.idl                 |    2 
 offapi/com/sun/star/awt/AccessibleTreeListBoxEntry.idl            |    2 
 sfx2/source/view/viewsh.cxx                                       |    6 
 test/source/a11y/AccessibilityTools.cxx                           |    3 
 toolkit/source/awt/vclxaccessiblecomponent.cxx                    |    1 
 toolkit/test/accessibility/tools/NameProvider.java                |    1 
 vcl/qa/cppunit/a11y/atspi2/atspi2.cxx                             |    1 
 vcl/qt5/QtAccessibleEventListener.cxx                             |    3 
 vcl/source/treelist/treelistbox.cxx                               |    2 
 vcl/source/window/menu.cxx                                        |   11 
 vcl/unx/gtk3/a11y/atklistener.cxx                                 |  129 
----------
 24 files changed, 59 insertions(+), 132 deletions(-)

New commits:
commit eef4d5cbd10a042bd3b5fb555e0bf9b0dd7d1215
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Dec 18 09:10:36 2023 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Dec 19 09:30:23 2023 +0100

    tdf#123864 a11y: Handle new checkable state for VCLXAccessibleMenuItem
    
    Add reporting for the new CHECKABLE a11y state introduced in
    
        commit d6c6472bbe1c90b733a4d69c4c8528f4de3750d3
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Mon Nov 13 15:53:44 2023 +0100
    
            tdf#123864 a11y: Add new AccessibleStateType::CHECKABLE
    
    for `VCLXAccessibleMenuItem`.
    
    `MenuItemData::HasCheck` looks like it already provides
    what's needed to say whether an item is checkable, therefore
    add a `Menu::IsItemCheckable` that makes use of this and
    and a `VCLXAccessibleMenuItem::IsCheckable` that
    makes use of that in turn.
    
    Extend `VCLXAccessibleMenuItem::FillAccessibleStateSet` to
    use the latter to report the CHECKABLE state accordingly.
    
    Change-Id: Id23196ef2527a71a338102a5143a8bd6fd41db84
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160902
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx 
b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
index ddc50a8f3577..4eec5fa6746e 100644
--- a/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
+++ b/accessibility/inc/standard/vclxaccessiblemenuitem.hxx
@@ -41,6 +41,7 @@ class VCLXAccessibleMenuItem :  public 
cppu::ImplInheritanceHelper<
 protected:
     virtual bool            IsFocused() override;
     virtual bool            IsSelected() override;
+    virtual bool            IsCheckable();
     virtual bool            IsChecked() override;
 
     virtual bool            IsHighlighted() override;
diff --git a/accessibility/source/standard/vclxaccessiblemenuitem.cxx 
b/accessibility/source/standard/vclxaccessiblemenuitem.cxx
index 2c4e8043c00b..03bdc88c93c5 100644
--- a/accessibility/source/standard/vclxaccessiblemenuitem.cxx
+++ b/accessibility/source/standard/vclxaccessiblemenuitem.cxx
@@ -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()
 {
@@ -107,6 +115,8 @@ void VCLXAccessibleMenuItem::FillAccessibleStateSet( 
sal_Int64& rStateSet )
     if ( IsSelected() )
         rStateSet |= AccessibleStateType::SELECTED;
 
+    if (IsCheckable())
+        rStateSet |= AccessibleStateType::CHECKABLE;
     if ( IsChecked() )
         rStateSet |= AccessibleStateType::CHECKED;
 }
diff --git a/include/vcl/menu.hxx b/include/vcl/menu.hxx
index 2442eef9202f..a28182e51fe2 100644
--- a/include/vcl/menu.hxx
+++ b/include/vcl/menu.hxx
@@ -275,6 +275,7 @@ public:
 
     void CheckItem( sal_uInt16 nItemId, bool bCheck = true );
     void CheckItem( std::u16string_view rIdent, bool bCheck = true );
+    bool IsItemCheckable(sal_uInt16 nItemId) const;
     bool IsItemChecked( sal_uInt16 nItemId ) const;
 
     virtual void SelectItem(sal_uInt16 nItemId) = 0;
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 0a065589a41f..2dbba65ba245 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -907,6 +907,17 @@ void Menu::CheckItem( std::u16string_view rIdent , bool 
bCheck )
     CheckItem( GetItemId( rIdent ), bCheck );
 }
 
+bool Menu::IsItemCheckable(sal_uInt16 nItemId) const
+{
+    size_t nPos;
+    MenuItemData* pData = pItemList->GetData(nItemId, nPos);
+
+    if (!pData)
+        return false;
+
+    return pData->HasCheck();
+}
+
 bool Menu::IsItemChecked( sal_uInt16 nItemId ) const
 {
     size_t          nPos;
commit 8bc6119812223643b50dcd22c504f9f853976352
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Dec 18 08:48:12 2023 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Dec 19 09:30:15 2023 +0100

    tdf#123864 a11y: Handle new CHECKABLE state in misc places
    
    Add reporting/handling of the CHECKABLE a11y state
    added in
    
        commit d6c6472bbe1c90b733a4d69c4c8528f4de3750d3
        Author: Michael Weghorn <m.wegh...@posteo.de>
        Date:   Mon Nov 13 15:53:44 2023 +0100
    
            tdf#123864 a11y: Add new AccessibleStateType::CHECKABLE
    
    in various places where it seems pretty straightforward.
    `VCLXAccessibleMenuItem` is a bit more complex and will be
    handled separately.
    
    Change-Id: I212b8439609d34410413959973163aa7d809cbf1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160901
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

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
@@ -75,6 +75,8 @@ service AccessibleTreeListBoxEntry
                is set when it is expanded.</li>
            <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
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 ) )
commit 36123d802af0e115628d38fe0e0a30d65885e9fb
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Dec 18 08:45:03 2023 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Dec 19 09:30:08 2023 +0100

    gtk3 a11y: Drop dead debug code
    
    Change-Id: I84ce9541c5d67416498bc5a36f0125c4110ffce1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160900
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/unx/gtk3/a11y/atklistener.cxx 
b/vcl/unx/gtk3/a11y/atklistener.cxx
index b9a053d83a7b..3b7777a088c8 100644
--- a/vcl/unx/gtk3/a11y/atklistener.cxx
+++ b/vcl/unx/gtk3/a11y/atklistener.cxx
@@ -33,13 +33,6 @@
 
 #include <sal/log.hxx>
 
-#define DEBUG_ATK_LISTENER 0
-
-#if DEBUG_ATK_LISTENER
-#include <iostream>
-#include <sstream>
-#endif
-
 using namespace com::sun::star;
 
 AtkListener::AtkListener( AtkObjectWrapper* pWrapper ) : mpWrapper( pWrapper )
@@ -343,128 +336,6 @@ getAccessibleContextFromSource( const uno::Reference< 
uno::XInterface >& rxSourc
     return xContext;
 }
 
-#if DEBUG_ATK_LISTENER
-
-namespace {
-
-void printNotifyEvent( const accessibility::AccessibleEventObject& rEvent )
-{
-    static std::vector<const char*> aLabels = {
-        0,
-        "NAME_CHANGED",                                       // 01
-        "DESCRIPTION_CHANGED",                                // 02
-        "ACTION_CHANGED",                                     // 03
-        "STATE_CHANGED",                                      // 04
-        "ACTIVE_DESCENDANT_CHANGED",                          // 05
-        "BOUNDRECT_CHANGED",                                  // 06
-        "CHILD",                                              // 07
-        "INVALIDATE_ALL_CHILDREN",                            // 08
-        "SELECTION_CHANGED",                                  // 09
-        "VISIBLE_DATA_CHANGED",                               // 10
-        "VALUE_CHANGED",                                      // 11
-        "CONTENT_FLOWS_FROM_RELATION_CHANGED",                // 12
-        "CONTENT_FLOWS_TO_RELATION_CHANGED",                  // 13
-        "CONTROLLED_BY_RELATION_CHANGED",                     // 14
-        "CONTROLLER_FOR_RELATION_CHANGED",                    // 15
-        "LABEL_FOR_RELATION_CHANGED",                         // 16
-        "LABELED_BY_RELATION_CHANGED",                        // 17
-        "MEMBER_OF_RELATION_CHANGED",                         // 18
-        "SUB_WINDOW_OF_RELATION_CHANGED",                     // 19
-        "CARET_CHANGED",                                      // 20
-        "TEXT_SELECTION_CHANGED",                             // 21
-        "TEXT_CHANGED",                                       // 22
-        "TEXT_ATTRIBUTE_CHANGED",                             // 23
-        "HYPERTEXT_CHANGED",                                  // 24
-        "TABLE_CAPTION_CHANGED",                              // 25
-        "TABLE_COLUMN_DESCRIPTION_CHANGED",                   // 26
-        "TABLE_COLUMN_HEADER_CHANGED",                        // 27
-        "TABLE_MODEL_CHANGED",                                // 28
-        "TABLE_ROW_DESCRIPTION_CHANGED",                      // 29
-        "TABLE_ROW_HEADER_CHANGED",                           // 30
-        "TABLE_SUMMARY_CHANGED",                              // 31
-        "LISTBOX_ENTRY_EXPANDED",                             // 32
-        "LISTBOX_ENTRY_COLLAPSED",                            // 33
-        "ACTIVE_DESCENDANT_CHANGED_NOFOCUS",                  // 34
-        "SELECTION_CHANGED_ADD",                              // 35
-        "SELECTION_CHANGED_REMOVE",                           // 36
-        "SELECTION_CHANGED_WITHIN",                           // 37
-        "PAGE_CHANGED",                                       // 38
-        "SECTION_CHANGED",                                    // 39
-        "COLUMN_CHANGED",                                     // 40
-        "ROLE_CHANGED",                                       // 41
-    };
-
-    static std::vector<const char*> aStates = {
-        "INVALID",             // 00
-        "ACTIVE",              // 01
-        "ARMED",               // 02
-        "BUSY",                // 03
-        "CHECKED",             // 04
-        "DEFUNC",              // 05
-        "EDITABLE",            // 06
-        "ENABLED",             // 07
-        "EXPANDABLE",          // 08
-        "EXPANDED",            // 09
-        "FOCUSABLE",           // 10
-        "FOCUSED",             // 11
-        "HORIZONTAL",          // 12
-        "ICONIFIED",           // 13
-        "INDETERMINATE",       // 14
-        "MANAGES_DESCENDANTS", // 15
-        "MODAL",               // 16
-        "MULTI_LINE",          // 17
-        "MULTI_SELECTABLE",    // 18
-        "OPAQUE",              // 19
-        "PRESSED",             // 20
-        "RESIZABLE",           // 21
-        "SELECTABLE",          // 22
-        "SELECTED",            // 23
-        "SENSITIVE",           // 24
-        "SHOWING",             // 25
-        "SINGLE_LINE",         // 26
-        "STALE",               // 27
-        "TRANSIENT",           // 28
-        "VERTICAL",            // 29
-        "VISIBLE",             // 30
-        "MOVEABLE",            // 31
-        "DEFAULT",             // 32
-        "OFFSCREEN",           // 33
-        "COLLAPSE",            // 34
-    };
-
-    auto getOrUnknown = [](const std::vector<const char*>& rCont, size_t 
nIndex) -> std::string
-    {
-        return (nIndex < rCont.size()) ? rCont[nIndex] : "<unknown>";
-    };
-
-    std::ostringstream os;
-    os << "--" << std::endl;
-    os << "* event = " << getOrUnknown(aLabels, rEvent.EventId) << std::endl;
-
-    switch (rEvent.EventId)
-    {
-        case accessibility::AccessibleEventId::STATE_CHANGED:
-        {
-            sal_Int64 nState;
-            if (rEvent.OldValue >>= nState)
-                os << "  * old state = " << getOrUnknown(aStates, nState);
-            if (rEvent.NewValue >>= nState)
-                os << "  * new state = " << getOrUnknown(aStates, nState);
-
-            os << std::endl;
-            break;
-        }
-        default:
-            ;
-    }
-
-    std::cout << os.str();
-}
-
-}
-
-#endif
-
 void AtkListener::notifyEvent( const accessibility::AccessibleEventObject& 
aEvent )
 {
     if( !mpWrapper )

Reply via email to