Hey,
Currently the shapeButton does not actually check if a mouse event is inside the path that was set for the button.
Say if the button is showing as a circle, clicks or mouse downs that occur in the shape's rectangular bounding box are also registered (which is very un-intuitive, especially for an amateur JUCE user like me).
Do you think you could just add a hitTest() to the ShapeButton class, like so:
bool ShapeButton::hitTest(int x, int y) { return shape.contains(x, y); }
This would make the ShapeButton actually behave like a "Shape Button".
Thanks