the recent update caused some compiler errors in our codebase where we had some overrides of virtual functions (didn’t see the “@internal” header comment) that changed their return type.
if we are not supposed to override these internal functions, would it not be a good thing to mark these functions with the “final” specifier? or maybe “@internal” is just more of a “override at your own risk” warning?
Yeah, we generally use @internal to mark functions that can’t be made private for some reason, but which we don’t really expect/want users to be poking around at.
Sorry, we’re 100% against that. Quite the contrary. There is too much stuff already declared “final”, “private” etc. which hinders customization. Just yesterday I’ve implemented that using the mouse-wheel-Y scroll + holding ctrl changes the row-height for our list-boxes.
“mouseWheelMove” is commented with “@internal” in ListBox.h
Or maybe I want to override “keyPressed” and add additional keys that should do something special?
Juce needs more customization and less magic values/behavior.
I’d rather fix a couple of new errors every release (which usually takes a whole ten minutes) than lose functionality so something is “cleaner”.