From 588e776bb6044f10a349cc6f5116e08bb4ae0559 Mon Sep 17 00:00:00 2001 From: ed Date: Wed, 28 Jul 2021 09:46:30 +0100 Subject: [PATCH] Accessibility: Remove redundant method declaration and general fixups --- .../native/juce_mac_CoreGraphicsHelpers.h | 12 +-- .../juce_AccessibilityHandler.cpp | 2 - .../accessibility/juce_AccessibilityHandler.h | 10 +-- modules/juce_gui_basics/juce_gui_basics.cpp | 16 ++-- .../accessibility/juce_mac_Accessibility.mm | 83 +++++++++---------- .../juce_win32_Accessibility.cpp | 12 +-- .../juce_win32_AccessibilityElement.cpp | 73 ++++++++-------- .../juce_win32_UIATextProvider.h | 2 - 8 files changed, 95 insertions(+), 115 deletions(-) diff --git a/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h b/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h index c16710560d..9879b6475d 100644 --- a/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h +++ b/modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h @@ -65,6 +65,12 @@ namespace return CGPointMake ((CGFloat) p.x, (CGFloat) p.y); } + template + Point roundToIntPoint (PointType p) noexcept + { + return { roundToInt (p.x), roundToInt (p.y) }; + } + #if JUCE_MAC inline CGFloat getMainScreenHeight() noexcept { @@ -85,12 +91,6 @@ namespace p.y = getMainScreenHeight() - p.y; return p; } - - template - Point convertToIntPoint (PointType p) noexcept - { - return Point (roundToInt (p.x), roundToInt (p.y)); - } #endif } diff --git a/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.cpp b/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.cpp index 2400d02412..3e2cac4358 100644 --- a/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.cpp +++ b/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.cpp @@ -28,8 +28,6 @@ namespace juce AccessibilityHandler* AccessibilityHandler::currentlyFocusedHandler = nullptr; -bool areAnyAccessibilityClientsActive(); - enum class InternalAccessibilityEvent { elementCreated, diff --git a/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h b/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h index 8150c1ff68..f7e303130b 100644 --- a/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h +++ b/modules/juce_gui_basics/accessibility/juce_AccessibilityHandler.h @@ -314,15 +314,9 @@ private: //============================================================================== class AccessibilityNativeImpl; + std::unique_ptr nativeImpl; - struct DestroyNativeImpl - { - void operator() (AccessibilityNativeImpl*) const noexcept; - }; - - static AccessibilityNativeImpl* createNativeImpl (AccessibilityHandler&); - - std::unique_ptr nativeImpl; + static std::unique_ptr createNativeImpl (AccessibilityHandler&); //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AccessibilityHandler) diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp index bab71538b6..1e47b14a3d 100644 --- a/modules/juce_gui_basics/juce_gui_basics.cpp +++ b/modules/juce_gui_basics/juce_gui_basics.cpp @@ -340,16 +340,22 @@ bool getComponentAsyncLayerBackedViewDisabled (juce::Component& comp) #endif -#if ! JUCE_NATIVE_ACCESSIBILITY_INCLUDED namespace juce { + #if ! JUCE_NATIVE_ACCESSIBILITY_INCLUDED class AccessibilityHandler::AccessibilityNativeImpl { public: AccessibilityNativeImpl (AccessibilityHandler&) {} }; void AccessibilityHandler::notifyAccessibilityEvent (AccessibilityEvent) const {} void AccessibilityHandler::postAnnouncement (const String&, AnnouncementPriority) {} AccessibilityNativeHandle* AccessibilityHandler::getNativeImplementation() const { return nullptr; } - AccessibilityHandler::AccessibilityNativeImpl* AccessibilityHandler::createNativeImpl (AccessibilityHandler&) { return nullptr; } - void AccessibilityHandler::DestroyNativeImpl::operator() (AccessibilityHandler::AccessibilityNativeImpl*) const noexcept {} - bool areAnyAccessibilityClientsActive() { return false; } void notifyAccessibilityEventInternal (const AccessibilityHandler&, InternalAccessibilityEvent) {} + std::unique_ptr AccessibilityHandler::createNativeImpl (AccessibilityHandler&) + { + return nullptr; + } + #else + std::unique_ptr AccessibilityHandler::createNativeImpl (AccessibilityHandler& handler) + { + return std::make_unique (handler); + } + #endif } -#endif diff --git a/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm b/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm index 0321d02cfb..58d498684f 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm +++ b/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm @@ -295,7 +295,7 @@ private: { if (auto* handler = getHandler (self)) { - if (auto* child = handler->getChildAt (convertToIntPoint (flippedScreenPoint (point)))) + if (auto* child = handler->getChildAt (roundToIntPoint (flippedScreenPoint (point)))) return (id) child->getNativeImplementation(); return self; @@ -401,38 +401,43 @@ private: { switch (handler->getRole()) { - case AccessibilityRole::button: return NSAccessibilityButtonRole; - case AccessibilityRole::toggleButton: return NSAccessibilityCheckBoxRole; - case AccessibilityRole::radioButton: return NSAccessibilityRadioButtonRole; - case AccessibilityRole::comboBox: return NSAccessibilityPopUpButtonRole; - case AccessibilityRole::image: return NSAccessibilityImageRole; - case AccessibilityRole::slider: return NSAccessibilitySliderRole; - case AccessibilityRole::label: return NSAccessibilityStaticTextRole; - case AccessibilityRole::staticText: return NSAccessibilityStaticTextRole; - case AccessibilityRole::editableText: return NSAccessibilityTextAreaRole; - case AccessibilityRole::menuItem: return NSAccessibilityMenuItemRole; - case AccessibilityRole::menuBar: return NSAccessibilityMenuRole; - case AccessibilityRole::popupMenu: return NSAccessibilityWindowRole; - case AccessibilityRole::table: return NSAccessibilityListRole; - case AccessibilityRole::tableHeader: return NSAccessibilityGroupRole; - case AccessibilityRole::column: return NSAccessibilityColumnRole; - case AccessibilityRole::row: return NSAccessibilityRowRole; - case AccessibilityRole::cell: return NSAccessibilityCellRole; - case AccessibilityRole::hyperlink: return NSAccessibilityLinkRole; - case AccessibilityRole::list: return NSAccessibilityOutlineRole; - case AccessibilityRole::listItem: return NSAccessibilityRowRole; - case AccessibilityRole::tree: return NSAccessibilityOutlineRole; - case AccessibilityRole::treeItem: return NSAccessibilityRowRole; - case AccessibilityRole::progressBar: return NSAccessibilityProgressIndicatorRole; - case AccessibilityRole::group: return NSAccessibilityGroupRole; - case AccessibilityRole::dialogWindow: return NSAccessibilityWindowRole; - case AccessibilityRole::window: return NSAccessibilityWindowRole; - case AccessibilityRole::scrollBar: return NSAccessibilityScrollBarRole; - case AccessibilityRole::tooltip: return NSAccessibilityWindowRole; - case AccessibilityRole::splashScreen: return NSAccessibilityWindowRole; - case AccessibilityRole::ignored: return NSAccessibilityUnknownRole; - case AccessibilityRole::unspecified: return NSAccessibilityGroupRole; - default: break; + case AccessibilityRole::popupMenu: + case AccessibilityRole::tooltip: + case AccessibilityRole::splashScreen: + case AccessibilityRole::dialogWindow: + case AccessibilityRole::window: return NSAccessibilityWindowRole; + + case AccessibilityRole::tableHeader: + case AccessibilityRole::unspecified: + case AccessibilityRole::group: return NSAccessibilityGroupRole; + + case AccessibilityRole::label: + case AccessibilityRole::staticText: return NSAccessibilityStaticTextRole; + + case AccessibilityRole::tree: + case AccessibilityRole::list: return NSAccessibilityOutlineRole; + + case AccessibilityRole::listItem: + case AccessibilityRole::treeItem: return NSAccessibilityRowRole; + + case AccessibilityRole::button: return NSAccessibilityButtonRole; + case AccessibilityRole::toggleButton: return NSAccessibilityCheckBoxRole; + case AccessibilityRole::radioButton: return NSAccessibilityRadioButtonRole; + case AccessibilityRole::comboBox: return NSAccessibilityPopUpButtonRole; + case AccessibilityRole::image: return NSAccessibilityImageRole; + case AccessibilityRole::slider: return NSAccessibilitySliderRole; + case AccessibilityRole::editableText: return NSAccessibilityTextAreaRole; + case AccessibilityRole::menuItem: return NSAccessibilityMenuItemRole; + case AccessibilityRole::menuBar: return NSAccessibilityMenuRole; + case AccessibilityRole::table: return NSAccessibilityListRole; + case AccessibilityRole::column: return NSAccessibilityColumnRole; + case AccessibilityRole::row: return NSAccessibilityRowRole; + case AccessibilityRole::cell: return NSAccessibilityCellRole; + case AccessibilityRole::hyperlink: return NSAccessibilityLinkRole; + case AccessibilityRole::progressBar: return NSAccessibilityProgressIndicatorRole; + case AccessibilityRole::scrollBar: return NSAccessibilityScrollBarRole; + + case AccessibilityRole::ignored: break; } return NSAccessibilityUnknownRole; @@ -637,7 +642,7 @@ private: { if (auto* textInterface = handler->getTextInterface()) { - auto screenPoint = convertToIntPoint (flippedScreenPoint (position)); + auto screenPoint = roundToIntPoint (flippedScreenPoint (position)); if (handler->getComponent().getScreenBounds().contains (screenPoint)) { @@ -1141,16 +1146,6 @@ void AccessibilityHandler::postAnnouncement (const String& announcementString, A } } -AccessibilityHandler::AccessibilityNativeImpl* AccessibilityHandler::createNativeImpl (AccessibilityHandler& handler) -{ - return new AccessibilityHandler::AccessibilityNativeImpl (handler); -} - -void AccessibilityHandler::DestroyNativeImpl::operator() (AccessibilityHandler::AccessibilityNativeImpl* impl) const noexcept -{ - delete impl; -} - #endif } // namespace juce diff --git a/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp b/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp index d070fa9001..ffdf188db7 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp +++ b/modules/juce_gui_basics/native/accessibility/juce_win32_Accessibility.cpp @@ -193,7 +193,7 @@ void AccessibilityHandler::notifyAccessibilityEvent (AccessibilityEvent eventTyp sendAccessibilityPropertyChangedEvent (*this, UIA_NamePropertyId, newValue); } - auto event = [eventType] () -> EVENTID + auto event = [eventType]() -> EVENTID { switch (eventType) { @@ -259,16 +259,6 @@ void AccessibilityHandler::postAnnouncement (const String& announcementString, A } } -AccessibilityHandler::AccessibilityNativeImpl* AccessibilityHandler::createNativeImpl (AccessibilityHandler& handler) -{ - return new AccessibilityHandler::AccessibilityNativeImpl (handler); -} - -void AccessibilityHandler::DestroyNativeImpl::operator() (AccessibilityHandler::AccessibilityNativeImpl* impl) const noexcept -{ - delete impl; -} - //============================================================================== namespace WindowsAccessibility { diff --git a/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp b/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp index 65de0245b3..8c867b5158 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp +++ b/modules/juce_gui_basics/native/accessibility/juce_win32_AccessibilityElement.cpp @@ -50,41 +50,45 @@ static String getAutomationId (const AccessibilityHandler& handler) return result; } -static long roleToControlTypeId (AccessibilityRole roleType) +static auto roleToControlTypeId (AccessibilityRole roleType) { switch (roleType) { - case AccessibilityRole::button: return UIA_ButtonControlTypeId; - case AccessibilityRole::toggleButton: return UIA_CheckBoxControlTypeId; - case AccessibilityRole::radioButton: return UIA_RadioButtonControlTypeId; - case AccessibilityRole::comboBox: return UIA_ComboBoxControlTypeId; - case AccessibilityRole::image: return UIA_ImageControlTypeId; - case AccessibilityRole::slider: return UIA_SliderControlTypeId; - case AccessibilityRole::label: return UIA_TextControlTypeId; - case AccessibilityRole::staticText: return UIA_TextControlTypeId; - case AccessibilityRole::editableText: return UIA_EditControlTypeId; - case AccessibilityRole::menuItem: return UIA_MenuItemControlTypeId; - case AccessibilityRole::menuBar: return UIA_MenuBarControlTypeId; - case AccessibilityRole::popupMenu: return UIA_WindowControlTypeId; - case AccessibilityRole::table: return UIA_TableControlTypeId; - case AccessibilityRole::tableHeader: return UIA_HeaderControlTypeId; - case AccessibilityRole::column: return UIA_HeaderItemControlTypeId; - case AccessibilityRole::row: return UIA_HeaderItemControlTypeId; - case AccessibilityRole::cell: return UIA_DataItemControlTypeId; - case AccessibilityRole::hyperlink: return UIA_HyperlinkControlTypeId; - case AccessibilityRole::list: return UIA_ListControlTypeId; - case AccessibilityRole::listItem: return UIA_ListItemControlTypeId; - case AccessibilityRole::tree: return UIA_TreeControlTypeId; - case AccessibilityRole::treeItem: return UIA_TreeItemControlTypeId; - case AccessibilityRole::progressBar: return UIA_ProgressBarControlTypeId; - case AccessibilityRole::group: return UIA_GroupControlTypeId; - case AccessibilityRole::dialogWindow: return UIA_WindowControlTypeId; - case AccessibilityRole::window: return UIA_WindowControlTypeId; - case AccessibilityRole::scrollBar: return UIA_ScrollBarControlTypeId; - case AccessibilityRole::tooltip: return UIA_ToolTipControlTypeId; - case AccessibilityRole::splashScreen: return UIA_WindowControlTypeId; - case AccessibilityRole::ignored: return UIA_CustomControlTypeId; - case AccessibilityRole::unspecified: return UIA_CustomControlTypeId; + case AccessibilityRole::popupMenu: + case AccessibilityRole::dialogWindow: + case AccessibilityRole::splashScreen: + case AccessibilityRole::window: return UIA_WindowControlTypeId; + + case AccessibilityRole::label: + case AccessibilityRole::staticText: return UIA_TextControlTypeId; + + case AccessibilityRole::column: + case AccessibilityRole::row: return UIA_HeaderItemControlTypeId; + + case AccessibilityRole::button: return UIA_ButtonControlTypeId; + case AccessibilityRole::toggleButton: return UIA_CheckBoxControlTypeId; + case AccessibilityRole::radioButton: return UIA_RadioButtonControlTypeId; + case AccessibilityRole::comboBox: return UIA_ComboBoxControlTypeId; + case AccessibilityRole::image: return UIA_ImageControlTypeId; + case AccessibilityRole::slider: return UIA_SliderControlTypeId; + case AccessibilityRole::editableText: return UIA_EditControlTypeId; + case AccessibilityRole::menuItem: return UIA_MenuItemControlTypeId; + case AccessibilityRole::menuBar: return UIA_MenuBarControlTypeId; + case AccessibilityRole::table: return UIA_TableControlTypeId; + case AccessibilityRole::tableHeader: return UIA_HeaderControlTypeId; + case AccessibilityRole::cell: return UIA_DataItemControlTypeId; + case AccessibilityRole::hyperlink: return UIA_HyperlinkControlTypeId; + case AccessibilityRole::list: return UIA_ListControlTypeId; + case AccessibilityRole::listItem: return UIA_ListItemControlTypeId; + case AccessibilityRole::tree: return UIA_TreeControlTypeId; + case AccessibilityRole::treeItem: return UIA_TreeItemControlTypeId; + case AccessibilityRole::progressBar: return UIA_ProgressBarControlTypeId; + case AccessibilityRole::group: return UIA_GroupControlTypeId; + case AccessibilityRole::scrollBar: return UIA_ScrollBarControlTypeId; + case AccessibilityRole::tooltip: return UIA_ToolTipControlTypeId; + + case AccessibilityRole::ignored: + case AccessibilityRole::unspecified: break; }; return UIA_CustomControlTypeId; @@ -245,8 +249,6 @@ JUCE_COMRESULT AccessibilityNativeHandle::GetPatternProvider (PATTERNID pId, IUn break; } - default: - break; } return nullptr; @@ -328,9 +330,6 @@ JUCE_COMRESULT AccessibilityNativeHandle::GetPropertyValue (PROPERTYID propertyI VariantHelpers::setInt ((int) (pointer_sized_int) accessibilityHandler.getComponent().getWindowHandle(), pRetVal); break; - - default: - break; } return S_OK; diff --git a/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h b/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h index ed9131822c..1b480b4520 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h +++ b/modules/juce_gui_basics/native/accessibility/juce_win32_UIATextProvider.h @@ -351,8 +351,6 @@ private: VariantHelpers::setInt (caretPos, pRetVal); break; } - default: - break; } return S_OK;