| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library.
 -    Copyright (c) 2022 - Raw Material Software Limited
 - 
 -    JUCE is an open source library subject to commercial or open-source
 -    licensing.
 - 
 -    By using JUCE, you agree to the terms of both the JUCE 7 End-User License
 -    Agreement and JUCE Privacy Policy.
 - 
 -    End User License Agreement: www.juce.com/juce-7-licence
 -    Privacy Policy: www.juce.com/juce-privacy-policy
 - 
 -    Or: You may also use this code under the terms of the GPL v3 (see
 -    www.gnu.org/licenses).
 - 
 -    JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 -    EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 -    DISCLAIMED.
 - 
 -   ==============================================================================
 - */
 - 
 - namespace juce
 - {
 - 
 - /** An action that can be performed by an accessible UI element.
 - 
 -     @tags{Accessibility}
 - */
 - enum class AccessibilityActionType
 - {
 -     /** Represents a "press" action.
 - 
 -         This will be called when the user "clicks" the UI element using an
 -         accessibility client.
 -     */
 -     press,
 - 
 -     /** Represents a "toggle" action.
 - 
 -         This will be called when the user toggles the state of a UI element,
 -         for example a toggle button or the selection of a list item.
 -     */
 -     toggle,
 - 
 -     /** Indicates that the UI element has received focus.
 - 
 -         This will be called when a UI element receives focus from an accessibility
 -         client, or keyboard focus from the application.
 -     */
 -     focus,
 - 
 -     /** Represents the user showing a contextual menu for a UI element.
 - 
 -         This will be called for UI elements which expand and collapse to
 -         show contextual information or menus, or show a popup.
 -     */
 -     showMenu
 - };
 - 
 - /** A simple wrapper for building a collection of supported accessibility actions
 -     and corresponding callbacks for a UI element.
 - 
 -     Pass one of these when constructing an `AccessibilityHandler` to enable users
 -     to interact with a UI element via the supported actions.
 - 
 -     @tags{Accessibility}
 - */
 - class JUCE_API  AccessibilityActions
 - {
 - public:
 -     /** Constructor.
 - 
 -         Creates a default AccessibilityActions object with no action callbacks.
 -     */
 -     AccessibilityActions() = default;
 - 
 -     /** Adds an action.
 - 
 -         When the user performs this action with an accessibility client
 -         `actionCallback` will be called.
 - 
 -         Returns a reference to itself so that several calls can be chained.
 -     */
 -     AccessibilityActions& addAction (AccessibilityActionType type,
 -                                      std::function<void()> actionCallback)
 -     {
 -         actionMap[type] = std::move (actionCallback);
 -         return *this;
 -     }
 - 
 -     /** Returns true if the specified action is supported. */
 -     bool contains (AccessibilityActionType type) const
 -     {
 -         return actionMap.find (type) != actionMap.end();
 -     }
 - 
 -     /** If an action has been registered for the provided action type, invokes the
 -         action and returns true. Otherwise, returns false.
 -     */
 -     bool invoke (AccessibilityActionType type) const
 -     {
 -         auto iter = actionMap.find (type);
 - 
 -         if (iter == actionMap.end())
 -             return false;
 - 
 -         iter->second();
 -         return true;
 -     }
 - 
 - private:
 -     std::map<AccessibilityActionType, std::function<void()>> actionMap;
 - };
 - 
 - } // namespace juce
 
 
  |