godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.14k stars 93 forks source link

Please support focus, focus pressed, hover, and pressed styles for all controls and control parts #6297

Open Shadowblitz16 opened 1 year ago

Shadowblitz16 commented 1 year ago

Describe the project you are working on

A controller based game

Describe the problem or limitation you are having in your project

Controls like tab container's tabs and other containers don't have styles for when they are focused, hovered or pressed even though they support focus, and kinda support hovered and pressed

Describe the feature / enhancement and how it helps to overcome the problem or limitation

The idea is that all controls and parts would contains styles for each state they can be in. most of the time they would be disabled by default but having the option there would make the ui a lot more flexible.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

If this enhancement will not be used often, can it be worked around with a few lines of script?

It can't be worked around with a few lines of script we would have to extend the class and implement base button for all controls we want to use these themes on or have any sort of unsupported focus support

Is there a reason why this should be core and not an add-on in the asset library?

It would make the controls more flexible and easy to use. And it would make me cry

Calinou commented 1 year ago

Some controls do nothing when they're clicked, so these don't need pressed styles. Some controls also don't make sense to be focused: if there is no possible interaction, why would you need to focus them?

Shadowblitz16 commented 1 year ago

Some controls do nothing when they're clicked, so these don't need pressed styles. Some controls also don't make sense to be focused: if there is no possible interaction, why would you need to focus them?

You can press them and redirect the output somewhere else for example focusing another control. As far as focus goes I use it for gamepad style menus... and example would be on nintendo, xbox or playstation where you have no mouse you might want to switch tabs or move sliders, or combo boxes around.

without this we then have to code our own input system on top of what controls already do and in some cases even have to make our own controls from the ground up.

dalexeev commented 1 year ago

Related: