At the moment I am using a TooltipWindow via a smart pointer, so to disable it I delete it, and to enable it I std::make_unique a new one into existence. It would be a nicer API to have TooltipWindow::disable() and TooltipWindow::enable(). At the moment it seems to be assumed that tooltips are always just on.
I disagree - an RAII interface like that is much nicer.
It makes it much clearer to say the window doesn’t exist than it is to say it’s disabled. That’s a little ambiguous, especially since JUCE components already have an enabled flag that does something different.