1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00
Commit graph

67 commits

Author SHA1 Message Date
reuk
29213e07a1
Font: Deprecate getStringWidth and getGlyphPositions 2024-09-18 19:13:09 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Tom Poole
ff0cb4ad5b Use NullCheckedInvocation in more places 2023-10-02 13:40:10 +01:00
Tom Poole
9b041f3d74 Add a base clang-tidy configuration 2023-09-18 11:24:19 +01:00
reuk
28414a6af8
Global: Avoid floating-point equality checks where possible 2023-04-04 19:55:11 +01:00
reuk
140f8fedb1
TextEditor: Add option to dismiss the virtual keyboard on touches outside
Previously, individual components had to ask the peer to hide and show
the keyboard, by calling textInputRequired() and
dismissPendingTextInput() respectively. When an onscreen keyboard (OSK)
was required, most Peer implementation would directly hide/show the OSK
inside these function. However, the iOS ComponentPeer implementation
instead listened to the application's global keyboard focus, and only
opened the OSK when the focused component was also a TextInputTarget
with active input.

The iOS scheme seems like a better design, as it enforces that the OSK
hiding and showing is synced with the keyboard focus of the application.
In the other implementations, it was possible for a Component to call
textInputRequired even when it didn't have the keyboard focus, putting
the application into an inconsistent state. The iOS scheme also makes
the TextInputTarget interface more useful, as it enforces that the OSK
will only display for components that implement TextInputTarget, and
return true from isTextInputActive().

This patch changes all Peer implementations to match the iOS
implementation, improving consistency. Each time the global keyboard
focus changes, refreshTextInputTarget is called automatically, and the
OSK is shown if the focused component is a TextInputTarget that returns
true from isTextInputActive, and hidden otherwise. Components can also
call refreshTextInputTarget manually. This should be done whenever the
component updates the return value of isTextInputActive(). Effectively,
the Peer is now responsible for keeping track of the focused
TextInputTarget, rather than allowing individual components to hide and
show the OSK at will.

Additionally, this patch adds an option to the TextEditor to
automatically dismiss the OSK when the mouse is clicked outside of the
editor. This should improve user experience on mobile platforms, where
touches on sibling components may cause a TextEditor to gain keyboard
focus and unnecessarily display the OSK.
2022-06-09 16:55:19 +01:00
Tom Poole
2ec861d99e Update licensing banners to JUCE 7 2022-05-16 17:55:48 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00
ed
6218e2f92b Fix bug in LabelKeyboardFocusTraverser causing editable labels to consume focus traversal events 2021-10-25 08:20:21 +01:00
reuk
3c68581567
Use jassertquiet where possible 2021-07-23 10:58:44 +01:00
ed
c559d31e90 Accessibility: Override Accessibility::getHelp() for JUCE widgets that support tooltips 2021-07-05 12:07:30 +01:00
ed
399f8d5bf6 Accessibility: Use AccessibilityRole::editableText role when Label is editable 2021-06-16 17:18:24 +01:00
ed
94fb4a20e3 Restored previous behaviour of Label::focusGained() to just show editor on tab focus change 2021-06-16 17:17:44 +01:00
ed
c29ddf7681 Accessibility: Return non-focusable AccessibleState from LabelAccessibilityHandler::getCurrentState() when the TextEditor is showing and active so focus is passed through correctly 2021-06-11 13:50:46 +01:00
ed
8b2f3088d7 Accessibility: Added AccessibilityTextInterface::isReadOnly() method and AccessibilityRole::label to distinguish between navigable and selectable read-only text elements and simple labels 2021-06-07 19:38:29 +01:00
ed
13e7ffbdfb Accessibility: Use AccessibilityTextValueInterface for read-only text in Label, TextEditor and CodeEditorComponent 2021-05-28 14:48:59 +01:00
ed
ce72fe4143 Label: Check for deletion before calling repaint() in hideEditor() 2021-05-26 16:54:38 +01:00
reuk
31a7c62baf
Windows: Fix and suppress some analysis warnings
This fixes warnings that are emitted when building with the `-analyze`
flag enabled.
2021-05-26 15:34:26 +01:00
ed
333983947e Accessibility: Removed widget_handlers 2021-05-20 18:24:56 +01:00
ed
ec990202b1 Accessibility: Added VoiceOver (macOS) and Narrator (Windows) accessibility screen reader support to juce_gui_basics 2021-05-10 10:53:14 +01:00
ed
009d685179 Updated all license headers 2020-06-29 08:30:22 +01:00
Tom Poole
894e7d2bd2 Updated all license headers 2020-04-23 17:30:39 +01:00
reuk
327f817b9b Copyrights: Update commercial/gpl headers to be gpl-only 2020-04-09 15:22:56 +01:00
ed
a9eb179dc2 Fixed a warning in the recent Label LookAndFeel changes 2018-09-04 14:29:52 +01:00
Tom Poole
02f8a125c4 Added some more places where we can use the BorderSize from a Label's LookAndFeel 2018-09-04 12:47:30 +01:00
jules
47535718dc Added an assertion to Label to help catch some 'doh!' moments 2018-07-09 15:11:15 +01:00
Tom Poole
ab863a6dc2 Replaced all usage of ScopedPointer with std::unique_ptr 2018-04-19 20:27:47 +01:00
Noah Dayan
77c3d790a5 Added helper objects to Label and Slider to allow lambda callbacks 2018-01-17 14:31:05 +00:00
jules
1a60fa9765 More ScopedPointer/unique_ptr compatibility work 2018-01-10 17:35:08 +00:00
jules
48a5fbd333 Another batch of ScopedPointer cleanups 2018-01-10 14:49:57 +00:00
jules
a7e3339f86 Got rid of some very old legacy VC6 workaround typedefs 2018-01-03 09:25:19 +00:00
jules
1d64394727 Tidied up a few things in Label 2018-01-02 10:27:58 +00:00
jules
a586966c65 Added lambda callback methods to ListenerList. Its old method-invocation callbacks were refactored to use variadic templates instead of the old awful macros they used in the past, but please move your code to use the new lambda functions, as the one stuff will eventually be deprecated! 2017-11-28 16:18:40 +00:00
jules
2dc9316420 Misc ScopedPointer changes to start using reset() and get() rather than assignments and casts (part of an ongoing drift towards more std::unique_ptr compatibility) 2017-11-01 17:41:06 +00:00
jules
eda613c6db Moved all "namespace juce" declarations from module headers to the individual .h and .cpp source files. This makes life a lot easier for Intellisense and other IDE autocompletion tools 2017-09-08 08:59:55 +01:00
jules
357dd2c9c9 Removed some old compiler bug workarounds 2017-08-14 12:59:18 +01:00
hogliux
b5afccc37c Updated file headers and the README with the JUCE 5 license 2017-04-27 14:43:04 +01:00
jules
674c833c84 Added method MouseEvent::mouseWasDraggedSinceMouseDown() 2016-02-16 12:59:49 +00:00
jules
4583fa3fbf Used the ignoreUnused() function to tidy up some old code 2015-12-23 16:27:50 +00:00
jules
02492b36b9 Lots of small whitespace tweaks. 2015-12-13 19:32:05 +00:00
jules
732de2784c Fix for the Label::outlineWhenEditingColourId colour ID not working. 2015-10-06 12:28:56 +01:00
hogliux
c7b8e77031 Update copyright notice 2015-07-22 15:59:34 +01:00
jules
af3dc800e4 Added a callback method LabelListener::editorHidden(). 2015-03-25 17:54:33 +00:00
jules
90c88ec416 Tweaked the Label class to take its border into account when positioning relative to a target component. 2015-03-23 18:13:07 +00:00
jules
844d9e8d86 Added method Font::getDefaultMinimumHorizontalScaleFactor() to make it possible to change the global minimum font squashing amount. 2015-03-17 11:41:14 +00:00
jules
c8affe81a6 Stopped the Label class editing when clicked if it's disabled. 2015-02-05 11:23:39 +00:00
jules
ac8bc1a7b4 Added methods to Label and TextEditor to specify the type of virtual keyboard they require. 2015-01-07 12:03:02 +00:00
jules
d284f892b5 Workaround for VS2005 compiler bug. 2014-09-25 12:46:01 +01:00
jules
fdf6f12185 Made Label take its editing colours from the L+F. 2014-07-31 10:54:45 +01:00