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

343 commits

Author SHA1 Message Date
reuk
29213e07a1
Font: Deprecate getStringWidth and getGlyphPositions 2024-09-18 19:13:09 +01:00
reuk
555b667d22
ComponentPeer: Add isShowing() member, which more closely matches expected behaviour of Component::isShowing 2024-09-18 15:44:05 +01:00
attila
d7d8155da9 Fix some doxygen issues 2024-08-22 17:05:03 +02:00
reuk
3da5a3c9bd
ResizableWindow: Set resizable flag only when desktop does not support native nonclient resize 2024-07-31 19:36:52 +01:00
reuk
a904aa592f
DocumentWindow: Allow custom titlebar controls to respond to mouse
Prior to this change, the 'options' button in the StandaloneFilterWindow
border did not respond to mouse clicks on Windows.
2024-06-12 19:16:32 +01:00
attila
b5cbdfd980 ResizableWindow: Fix window becoming non-resizable when a constrainer is added
This is fixing a regression in f764026626.
2024-06-11 20:49:56 +02:00
reuk
f764026626
ResizableWindow: Disable resizing border for desktop windows 2024-05-31 11:43:30 +01:00
reuk
bb47c6c99a
ComponentPeer: Fix typo in name of internal windowRepaintedExplicitly enum 2024-05-31 11:43:30 +01:00
reuk
edd5745d7f
DocumentWindow: Implement window hit-testing API 2024-05-31 11:43:30 +01:00
reuk
8a09ac37cb
ResizableWindow: Always set resizable flag, regardless of whether the window has a title bar 2024-05-31 11:43:29 +01:00
reuk
4201b76d15
ResizableWindow: Add const to virtual members 2024-05-31 11:43:29 +01:00
reuk
e12a1a75ac
ResizableWindow: Always recreate desktop window when updating resizability
Windows without titlebars may now be resizable, and therefore must be
recreated if resizing is enabled/disabled.
2024-05-31 11:43:29 +01:00
reuk
19061e6d17
Direct2D: Add initial support 2024-04-18 14:16:02 +01:00
attila
bc3600cde8 Animation: Add juce_animation module 2024-04-16 17:43:21 +01:00
Tom Poole
fd933dfac6 Projucer: Remove the JUCE splash screen and update licensing 2024-04-16 17:43:19 +01:00
Tom Poole
94d98a2b10 Update licensing information 2024-04-16 11:39:35 +01:00
attila
89c2536a77 Move NativeScaleFactorNotifier from audio_processors to gui_basics 2023-12-05 21:18:44 +01:00
Tom Poole
6bf9bb9a2e Add final specifiers in implementation files 2023-10-10 16:12:38 +01:00
Tom Poole
4153d59e39 Formatting 2023-10-02 15:42:20 +01:00
reuk
a8fa44e05c
X11: Ask the host to manage client-initiated resizes 2023-07-24 14:20:16 +01:00
Tom Poole
05b2c99c51 Fixed a typo in a file name 2023-07-17 21:43:07 +01:00
Tom Poole
ff835be2ac Doxygen: Fix some Doxygen issues 2023-07-17 18:24:01 +01:00
Anthony Nicholls
02eb66ee7a ProgressBar: Add style parameter 2023-06-22 13:07:03 +00:00
reuk
53a87c178c
AlertWindow: Update documentation 2023-05-31 15:15:26 +01:00
reuk
53bfd5b16d
WindowUtils: Make areThereAnyAlwaysOnTopWindows() public 2023-05-04 18:42:41 +01:00
reuk
ad094cd883
AlertWindow: Fix result codes when displaying native dialogs through the AlertWindow APIs 2023-04-04 19:55:12 +01:00
Oliver James
d7f1e59422 AlertWindow: Add 'getButton' method 2023-04-04 10:06:40 +01:00
reuk
9d1a6a3b28
ContentSharer: Update interface to return safer ScopedMessageBox instances 2023-03-27 11:54:37 +01:00
Anthony Nicholls
ba50a35364 Widgets: stop calling repaint in lookAndFeelChanged()
- A repaint will always occur from a lookAndFeelChanged
2023-03-22 14:59:15 +00:00
Anthony Nicholls
cff722a4af GUI Basics: Refactor juce_gui_basics file structure
- Created a new detail namespace
- Moved shared module implementation details into the detail namespace
- Split dependencies so source files only rely on details in the detail namespace
- Removed all code from the juce_gui_basics.cpp file
2023-03-16 08:53:12 +00:00
reuk
3816b095a8
MessageBoxOptions: DRY implementation 2023-02-22 21:02:41 +00:00
reuk
882c2aa01d
AlertWindow: Allow parent component to be specified 2023-02-22 21:00:17 +00:00
reuk
39a731de46
ScopedMessageBox: Replace old AlertWindow uses with new API 2023-02-22 21:00:17 +00:00
reuk
79ed81c24a
ScopedMessageBox: Add new helper type to bound alert window lifetimes
The biggest new feature in this commit is the addition of
NativeMessageBox::scopedAsync and AlertWindow::scopedAsync, both of
which return an instance of ScopedMessageBox that will hide the message
box in its destructor.

The code for displaying modal dialogs on Windows has also been updated.
Now, the dialog itself is run from a new thread with its own message
loop. This means that when the dialog is dismissed, the background
thread can be joined safely. In plugins, this means that there's no
danger of the plugin view being destroyed from within the message box
runloop, for example.
2023-02-22 21:00:08 +00:00
reuk
9cfbccca8e
Accessibility: Make createAccessibilityHandler public to allow calls from derived classes 2023-02-09 17:54:18 +00:00
reuk
0033e52179
VBlankAttachment: Make isEmpty const 2023-02-06 10:21:37 +00:00
Tom Poole
e669fb117e Docs: Fix some Doxygen warnings 2022-12-22 14:00:38 +00:00
reuk
da38c1ed2a
TextInputTarget: Improve IME support on Android 2022-12-07 13:12:02 +00:00
reuk
28f2157912
Convert ignoreUnused to [[maybe_unused]] 2022-12-01 11:41:50 +00:00
chroma
d3cff375be Thread: Introduce a new Thread backend
This is a breaking change - see BREAKING-CHANGES.txt
2022-10-18 11:49:47 +01:00
attila
1da9ccd36c Make it possible to attach Component updates to vblank events 2022-10-17 12:32:55 +02:00
attila
d15e152da5 Fix TopLevelWindow::centreAroundComponent 2022-09-22 18:18:59 +02:00
reuk
8b8ae10059
Build: Replace JUCE_NODISCARD with [[nodiscard]] 2022-09-12 16:14:57 +01:00
attila
29447dd7f3 DefaultDialogWindow: Avoid bad positioning on Linux
This change avoids a situation where a standalone plugin's Audio/Midi
settings window could appear in a wrong position.
2022-07-19 14:30:14 +02: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
attila
627afffeb4 Android: Fix dismissing screen keyboard when interacting with TextEditor 2022-04-27 18:49:44 +02:00
reuk
858aab823a
ComponentBoundsConstrainer: Properly constrain secondary windows in plugins 2022-04-22 14:18:50 +01:00
Tom Poole
89a67ec556 macOS/iOS: Enable asynchronous Core Graphics rendering by default
The helper function setComponentAsyncLayerBackedViewDisabled has been replaced
by a windowRequiresSynchronousCoreGraphicsRendering ComponentPeer style flag.
2022-04-04 12:36:32 +01:00
Tom Poole
dea3fe60e4 Update copyright banners 2022-04-04 12:36:32 +01:00