include/test/a11y/AccessibilityTools.hxx | 2 + test/source/a11y/AccessibilityTools.cxx | 53 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+)
New commits: commit 1791b26d75bd50971fe58627c6554f1711890817 Author: Colomban Wendling <cwendl...@hypra.fr> AuthorDate: Thu Nov 3 15:17:46 2022 +0100 Commit: Michael Weghorn <m.wegh...@posteo.de> CommitDate: Fri Mar 3 10:56:31 2023 +0000 test: Add debug print support for XAccessibleAction Change-Id: Ic511f2abc62703ead40a585989c54345cf3c17ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142261 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.wegh...@posteo.de> diff --git a/include/test/a11y/AccessibilityTools.hxx b/include/test/a11y/AccessibilityTools.hxx index 749be0635198..38a76ce407f1 100644 --- a/include/test/a11y/AccessibilityTools.hxx +++ b/include/test/a11y/AccessibilityTools.hxx @@ -28,6 +28,7 @@ #include <com/sun/star/accessibility/AccessibleEventObject.hpp> #include <com/sun/star/accessibility/XAccessible.hpp> +#include <com/sun/star/accessibility/XAccessibleAction.hpp> #include <com/sun/star/accessibility/XAccessibleContext.hpp> class OOO_DLLPUBLIC_TEST AccessibilityTools @@ -256,6 +257,7 @@ private: static OUString debugName(css::accessibility::XAccessibleContext* xctx); static OUString debugName(css::accessibility::XAccessible* xacc); static OUString debugName(const css::accessibility::AccessibleEventObject* evobj); + static OUString debugName(css::accessibility::XAccessibleAction* xAct); }; CPPUNIT_NS_BEGIN diff --git a/test/source/a11y/AccessibilityTools.cxx b/test/source/a11y/AccessibilityTools.cxx index 137b1bdc3a97..b754f46d2f69 100644 --- a/test/source/a11y/AccessibilityTools.cxx +++ b/test/source/a11y/AccessibilityTools.cxx @@ -24,8 +24,11 @@ #include <com/sun/star/accessibility/AccessibleRole.hpp> #include <com/sun/star/accessibility/AccessibleStateType.hpp> #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/awt/KeyModifier.hpp> +#include <rtl/ustrbuf.hxx> #include <sal/log.hxx> #include <toolkit/awt/vclxaccessiblecomponent.hxx> #include <vcl/scheduler.hxx> @@ -647,6 +650,56 @@ OUString AccessibilityTools::debugName(accessibility::XAccessible* acc) return debugName(acc->getAccessibleContext().get()); } +OUString AccessibilityTools::debugName(accessibility::XAccessibleAction* xAct) +{ + OUStringBuffer r = "actions=["; + + const sal_Int32 nActions = xAct->getAccessibleActionCount(); + for (sal_Int32 i = 0; i < nActions; i++) + { + if (i > 0) + r.append(", "); + + r.append("description=\""); + r.append(xAct->getAccessibleActionDescription(i)); + r.append('"'); + + const auto& xKeyBinding = xAct->getAccessibleActionKeyBinding(i); + if (xKeyBinding) + { + r.append(" keybindings=["); + const sal_Int32 nKeyBindings = xKeyBinding->getAccessibleKeyBindingCount(); + for (sal_Int32 j = 0; j < nKeyBindings; j++) + { + if (j > 0) + r.append(", "); + + int k = 0; + for (const auto& keyStroke : xKeyBinding->getAccessibleKeyBinding(j)) + { + if (k++ > 0) + r.append(", "); + + r.append('"'); + if (keyStroke.Modifiers & awt::KeyModifier::MOD1) + r.append("<Mod1>"); + if (keyStroke.Modifiers & awt::KeyModifier::MOD2) + r.append("<Mod2>"); + if (keyStroke.Modifiers & awt::KeyModifier::MOD3) + r.append("<Mod3>"); + if (keyStroke.Modifiers & awt::KeyModifier::SHIFT) + r.append("<Shift>"); + r.append(keyStroke.KeyChar); + r.append('"'); + } + } + r.append("]"); + } + } + r.append("]"); + return r.makeStringAndClear(); +} + OUString AccessibilityTools::debugName(const accessibility::AccessibleEventObject* evobj) { return "(AccessibleEventObject) { id=" + getEventIdName(evobj->EventId)