Child ComponentがParent Componentのエリアを全て覆ってしまっている場合、Parent ComponentのMouseEventが実行されませんが、以下のようにoverrideすると実行されるようになります。
class ForwardingLabel : public juce::Label
{
public:
ForwardingLabel()
{
}
void mouseDown(const juce::MouseEvent &event) override {
if(auto parent = getParentComponent()) {
parent->mouseDown(event);
}
}
void mouseExit(const juce::MouseEvent &event) override {
if(auto parent = getParentComponent()) {
parent->mouseExit(event);
}
}
private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ForwardingLabel)
};