- Add AlertWindow::show() and showAsync() methods that take a MessageBoxOptions argument
- Add NativeMessageBox::show() and showAsync() methods that take a MessageBoxOptions argument
- Update the DialogsDemo to demonstrate the new methods
- Deprecate AlertWindow::showNativeDialogBox() in favour of the NativeMessageBox methods
- Pass button strings specified in MesssageBoxOptions to native dialog boxes correctly
- Use modern TaskDialog on Windows for the native dialog box where available
When bridging 32-bit/64-bit plugins on Windows, the plugin is hosted in
an auxilliary process, and the plugin's editor is embedded into an HWND
owned by a different process (the plugin host).
Previously, the `isForegroundProcess` check would fail for bridged
plugins, because the foreground window may belong to the DAW, rather
than to the auxilliary hosting process.
This patch adds an additional check, to find whether the same process
owns both the foreground window, and the window which embeds the
PopupMenu's target component. In this case, we avoid immediately
dismissing the PopupMenu.
MIDI: Several ALSA Seq improvements
===================================
Many things were done in this patch (I couldn't really split in several
patches):
* Only one ALSA Sequencer client per application
* ALSA Sequencer client name is the application's name by default
* Fixed a bug when getDeivces() would return devices created by the
application itself
* Only ports created with createNewDevice() are allowed to be subscribed,
other ports (created by openDevice()) doesn't allow subscription
* AlsaPort is now handled by AlsaClient, basically having the proper
representation such as the ALSA Sequencer has.
Files: Fix default directory paths
==================================
Some information on:
* Linux LSB FHS:
http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs-30
* https://wiki.archlinux.org/index.php/Xdg_user_directories
Refactor Event loop to remove X11 dependency
============================================
The goal of this refactor was to remove X11 dependencies on juce_events
to enable non-gui applications (example, Embedded Linux apps) to have no
libx11 dependency.
The side-effect of this refactor is easy implementation of other Linux
graphical back-end, cleanup some code, better handling of X displays and
other benefits.
I removed a lot of the code from juce_linux_Windowing to separate files
for clarity. I also renamed all Linux X11 files to *linux_X11* instead of
just *linux*.
X11: Remove unnecessary XGrabButton call
========================================
This call is made unnecessary if used proper window flags when a window
is created.