I am working on a new iOS app in JUCE, and I am used to documenting my controls using tooltips. Somewhere I read the idea of using long-press for this on mobile devices, and that should work well for most of my controls. (Performed controls are of course exempt.) My current scheme is to have a global SharedResourcePointer tooltipWindow, and overlaying all of my control surfaces with an invisible Component layer that catches and forwards mouseDown and timing how long the mouse has been down with no intervening Drag or Up using a Timer. When the time reaches a second or so, the tooltip for the widget under the mouse is displayed until a new click happens somewhere.
Does this sound reasonable? Is there a better way to do this, or is it a bad idea for some reason? (I’m new at this domain.)
This basic scheme could also perhaps work for accessibility purposes. The capture rectangle for each widget could be automatically enlarged in the invisible overlay layer so that the set of all controller rectangles would cover the screen completely with no gaps or overlaps, and those rectangles could also be used as alternate control surfaces in “accessibility mode”. (I found the long thread on accessibility in my search for existing long-press tooltip support.)