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