Yep. In GarageBand your plugin is running as a separate process, and its window is embedded in GarageBand. If you start trying to create other windows, like a menu, then that window belongs to a completely different app and can’t possibly appear in the GB process.
Thanks for the reply. So that’s why it doesn’t work…Is there any way, or a plan to make menus that work in AUv3 plugins? Or would it be best for me to make my own menu Component that isn’t a window?
You’d need to use sub-components within your editor window. PopupMenus aren’t so good for that, as they expect to be on the desktop, but perhaps if there’s demand for it, we could modify them to allow them to be given a parent Component to live inside.
i would also like the idea of having more controls on popups, or having them inside other components, while still keeping the scrolling and centering functionality
There is definitely a need for popup menus. How else would the user be able to select presets? Popups are definitely an essential part of any synth plugin.
See screenshots of Arturia iSem with popups inside of GarageBand as an AUv3 Plugin
As you see from the screenshots in Arturia, the popups are not real popups (i.e. separate native windows). They just draw a component on top of the main component. You could implement something like this with a ListBox in JUCE.
OK. On the latest develop tip we’ve added support to “popup” a menu inside a parent component without the requirement of opening a separate window.
This can be done in two ways:
via the the new withParentComponentPopupMenu::Options option. For example, creating a popup embedded in the top-level component could be done in the following way:
Also, great look on prioritizing AUv3 over AudioBus. Many of my users are requesting this more as the flexibility is definitely better.
I just wish iOS wouldn’t restrict us to that ugly 2048 × 670 with that big keyboard on the screen. It makes you have to create a new view just for it, but great work again guys!
I’m having this very same issue with a AUv3 plugin that I’m updating, the ComboBox is never shown, so I’m applying this workaround but still the ComboBox isn’t shown and apparently that overridden function is never called. Even trying to run this under Windows (with the if removed) that point is never hit by the debugger.
I solved it by overriding getOptionsForComboBoxPopupMenu in my lookAndFeel. I added .withParentComponent(mainComponent), where mainComponent is the component I apply lookAndFeel to.
Currently struggling with this here … @vadimrostok do you perhaps have an example/working code you might share? I’d rather not have to re-do the UI of our plugins to avoid ComboBox if possible …
Thanks for that - I have pretty much the same code, but its not quite working. I guess I have something else to debug vis-a-vis my Components use of LaF. I really appreciate your help anyway, thanks!