LMMS
Loading...
Searching...
No Matches
juce_AccessibilityHandler.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29class AccessibilityNativeHandle;
30
41{
42public:
49 {
50 Interfaces() = default;
51
52 Interfaces (std::unique_ptr<AccessibilityValueInterface> ptr) : value (std::move (ptr)) {}
53 Interfaces (std::unique_ptr<AccessibilityTextInterface> ptr) : text (std::move (ptr)) {}
54 Interfaces (std::unique_ptr<AccessibilityTableInterface> ptr) : table (std::move (ptr)) {}
55 Interfaces (std::unique_ptr<AccessibilityCellInterface> ptr) : cell (std::move (ptr)) {}
56
57 Interfaces (std::unique_ptr<AccessibilityValueInterface> valueIn,
58 std::unique_ptr<AccessibilityTextInterface> textIn,
59 std::unique_ptr<AccessibilityTableInterface> tableIn,
60 std::unique_ptr<AccessibilityCellInterface> cellIn)
61 : value (std::move (valueIn)),
62 text (std::move (textIn)),
63 table (std::move (tableIn)),
64 cell (std::move (cellIn))
65 {
66 }
67
68 std::unique_ptr<AccessibilityValueInterface> value;
69 std::unique_ptr<AccessibilityTextInterface> text;
70 std::unique_ptr<AccessibilityTableInterface> table;
71 std::unique_ptr<AccessibilityCellInterface> cell;
72 };
73
88 AccessibilityHandler (Component& componentToWrap,
89 AccessibilityRole accessibilityRole,
91 Interfaces interfaces = {});
92
94 virtual ~AccessibilityHandler();
95
96 //==============================================================================
99
102
103 //==============================================================================
109
124 virtual String getTitle() const { return component.getTitle(); }
125
140 virtual String getDescription() const { return component.getDescription(); }
141
152 virtual String getHelp() const { return component.getHelpText(); }
153
159 virtual AccessibleState getCurrentState() const;
160
162 bool isIgnored() const;
163
169 bool isVisibleWithinParent() const;
170
171 //==============================================================================
175 const AccessibilityActions& getActions() const noexcept;
176
181 AccessibilityValueInterface* getValueInterface() const;
182
187 AccessibilityTableInterface* getTableInterface() const;
188
193 AccessibilityCellInterface* getCellInterface() const;
194
199 AccessibilityTextInterface* getTextInterface() const;
200
201 //==============================================================================
205 AccessibilityHandler* getParent() const;
206
208 std::vector<AccessibilityHandler*> getChildren() const;
209
213 bool isParentOf (const AccessibilityHandler* possibleChild) const noexcept;
214
218 AccessibilityHandler* getChildAt (Point<int> screenPoint);
219
230 AccessibilityHandler* getChildFocus();
231
238 bool hasFocus (bool trueIfChildFocused) const;
239
248 void grabFocus();
249
258 void giveAwayFocus() const;
259
260 //==============================================================================
266 void notifyAccessibilityEvent (AccessibilityEvent event) const;
267
276 {
277 low,
278 medium,
279 high
280 };
281
287 static void postAnnouncement (const String& announcementString, AnnouncementPriority priority);
288
289 //==============================================================================
291 AccessibilityNativeHandle* getNativeImplementation() const;
293 std::type_index getTypeIndex() const { return typeIndex; }
294
295private:
296 //==============================================================================
298
299 //==============================================================================
300 void grabFocusInternal (bool);
301 void giveAwayFocusInternal() const;
302 void takeFocus();
303
305
306 //==============================================================================
308 std::type_index typeIndex;
309
312
314
315 //==============================================================================
317 std::unique_ptr<AccessibilityNativeImpl> nativeImpl;
318
319 static std::unique_ptr<AccessibilityNativeImpl> createNativeImpl (AccessibilityHandler&);
320
321 //==============================================================================
323};
324
325} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_AccessibilityActions.h:73
Definition juce_AccessibilityCellInterface.h:37
Definition juce_gui_basics.cpp:332
Definition juce_AccessibilityHandler.h:41
void giveAwayFocusInternal() const
Definition juce_AccessibilityHandler.cpp:320
AccessibilityActions actions
Definition juce_AccessibilityHandler.h:311
AccessibilityRole getRole() const noexcept
Definition juce_AccessibilityHandler.h:108
virtual String getTitle() const
Definition juce_AccessibilityHandler.h:124
virtual String getHelp() const
Definition juce_AccessibilityHandler.h:152
void grabFocusInternal(bool)
Definition juce_AccessibilityHandler.cpp:289
std::type_index typeIndex
Definition juce_AccessibilityHandler.h:308
std::unique_ptr< AccessibilityNativeImpl > nativeImpl
Definition juce_AccessibilityHandler.h:317
virtual String getDescription() const
Definition juce_AccessibilityHandler.h:140
std::type_index getTypeIndex() const
Definition juce_AccessibilityHandler.h:293
Component & getComponent() noexcept
Definition juce_AccessibilityHandler.h:101
static std::unique_ptr< AccessibilityNativeImpl > createNativeImpl(AccessibilityHandler &)
Definition juce_gui_basics.cpp:337
Component & component
Definition juce_AccessibilityHandler.h:307
const Component & getComponent() const noexcept
Definition juce_AccessibilityHandler.h:98
Interfaces interfaces
Definition juce_AccessibilityHandler.h:313
void takeFocus()
Definition juce_AccessibilityHandler.cpp:326
static AccessibilityHandler * currentlyFocusedHandler
Definition juce_AccessibilityHandler.h:304
AnnouncementPriority
Definition juce_AccessibilityHandler.h:276
friend class AccessibilityNativeHandle
Definition juce_AccessibilityHandler.h:297
const AccessibilityRole role
Definition juce_AccessibilityHandler.h:310
AccessibilityHandler(Component &componentToWrap, AccessibilityRole accessibilityRole, AccessibilityActions actions={}, Interfaces interfaces={})
Definition juce_AccessibilityHandler.cpp:55
Definition juce_android_Accessibility.cpp:207
Definition juce_AccessibilityTableInterface.h:37
Definition juce_AccessibilityTextInterface.h:39
Definition juce_AccessibilityValueInterface.h:46
Definition juce_AccessibilityState.h:39
Definition juce_Component.h:36
Definition juce_Point.h:42
Definition juce_String.h:53
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
AccessibilityEvent
Definition juce_AccessibilityEvent.h:38
jack_client_t client jack_client_t client jack_client_t client jack_client_t JackInfoShutdownCallback void arg jack_client_t jack_port_t port void func jack_client_t const char const char unsigned long flags const jack_port_t port jack_client_t jack_port_id_t port_id const jack_port_t const char port_name const jack_port_t port void * ptr
Definition juce_linux_JackAudio.cpp:79
AccessibilityRole
Definition juce_AccessibilityRole.h:37
Definition juce_Uuid.h:141
Definition juce_AccessibilityHandler.h:49
std::unique_ptr< AccessibilityValueInterface > value
Definition juce_AccessibilityHandler.h:68
Interfaces(std::unique_ptr< AccessibilityTableInterface > ptr)
Definition juce_AccessibilityHandler.h:54
std::unique_ptr< AccessibilityTableInterface > table
Definition juce_AccessibilityHandler.h:70
std::unique_ptr< AccessibilityCellInterface > cell
Definition juce_AccessibilityHandler.h:71
Interfaces(std::unique_ptr< AccessibilityValueInterface > ptr)
Definition juce_AccessibilityHandler.h:52
Interfaces(std::unique_ptr< AccessibilityTextInterface > ptr)
Definition juce_AccessibilityHandler.h:53
Interfaces(std::unique_ptr< AccessibilityValueInterface > valueIn, std::unique_ptr< AccessibilityTextInterface > textIn, std::unique_ptr< AccessibilityTableInterface > tableIn, std::unique_ptr< AccessibilityCellInterface > cellIn)
Definition juce_AccessibilityHandler.h:57
std::unique_ptr< AccessibilityTextInterface > text
Definition juce_AccessibilityHandler.h:69
Interfaces(std::unique_ptr< AccessibilityCellInterface > ptr)
Definition juce_AccessibilityHandler.h:55
#define const
Definition zconf.h:137