I have some questions: I have a plug-in made with JUCE 4 before these changes.
It is resizable in the sense that I have manually added to it a custom corner resizer.
As per original problem description, this worked as expected in all OS+host+format combinations, except for VST3 in Cubase on Mac. In that case, dragging the custom corner resizer didn’t have any effect.
Now, I have updated the project to use the newly released JUCE 4.2.3, where these changes have been integrated, and I have found that just by doing that I get the corner resizer to work as expected also for VST3 in Cubase on Mac.
This puzzled me a little because I haven’t added a
setResizable (true) statement to my editor yet, hence I would have expected my custom corner resizer not to be working yet (because the doc says that by default an editor is considered to be not resizable), but it turns out that it works as I expected just out of the box.
More puzzling is the fact that if I add
setResizable (true, false)
to the constructor of my editor (the second argument says that I don’t want a corner resizer, because I already have my custom one in place), what I get is that my custom corner resizer again stops working. But in this case I get the “resize” mouse cursors (left-right and top-down arrows) when I hover the borders of the window of my plug-in, which I didn’t get without the
setResizable() call above.
However, neither trying to resize using the borders of the window does work (but could that be because I haven’t explicitly set any size constraint?)
The doc for these newly added methods is not very detailed, but could it be that, at the current state of code, you should use
setResizable() only if you want your plug-in to be resizable using the host provided facilities (i.e. window borders), whereas if you only wish to resize your editor using “internally provided methods” (for example a custom corner resizer), you can just leave it set to false?
And this springs another question: if I have a plug-in that can open/close a “drawer” with the press of a button, or whose GUI has a “normal” and a “mini” mode, this means that only two sizes of the plug-in are admissible, not all those in between, and they are switched with controls internal to the GUI.
Should this plug-in be declared resizable or not?
Disclaimer: my tests have so far been done with Cubase 7.5 because Steinberg isn’t very responsive at handling NFR requests…