I’m starting to make serious plans towards handling non-mouse input in my primary project’s UI. (And without the mess that I used for Night River.)
The main trick that I face right now is that of selecting a UI element: DirectGUI doesn’t seem to have been designed to have UI items selected by anything other than a mouse, which makes highlighting difficult.
And I have one potentially-fairly-simple answer to that right now: just warp the mouse-pointer to the location of the selected UI element, and let DirectGUI’s default behaviour take effect. A quick experiment suggests that this approach works as expected.
Which brings me to my question: Can I rely on always having a mouse-pointer?
Are there any situations–perhaps a computer with a gamepad but no mouse, or a non-mouse accessibility input-device, or something–in which the game will be running and taking input, but “base.mouseWatcherNode.hasMouse()” will return “False”, or “base.win.movePointer(0, x, y)” will fail (perhaps due to lacking even one pointer)?
(And Android build might be one such situation, but I currently have no plans for that, and I don’t know how GUI elements are handled there at all.)