Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keyboard controls? #29

Closed
gingerbeardman opened this issue May 18, 2020 · 2 comments
Closed

Keyboard controls? #29

gingerbeardman opened this issue May 18, 2020 · 2 comments

Comments

@gingerbeardman
Copy link

gingerbeardman commented May 18, 2020

It seems a pointer device is needed to use the microui interfaces.

I'd be interested in keyboard control, I suppose this would also mean tab order would be useful.

Thanks for all your work!

@rxi
Copy link
Owner

rxi commented May 24, 2020

This isn't something I plan to support in the base library at the moment, as you can imagine given the goals of the project the addition of features is typically avoided. I did experiment a little with tab-moves-to-next-control in the past but for what it added in code it didn't yield results I was happy with. Anything more complex than this (eg, being able to use arrow keys to navigate between buttons/sliders, enter to select) would be a huge change in both lines of code and complexity.

This being said microui should be able to act as a foundation for these kinds of additions, eg. in projects I use it in I typically use it as a base to many additional controls and features specific to the application. Keyboard controls would be one of these application-specific features.

@ericoporto
Copy link

ericoporto commented Feb 23, 2021

Hey, I understand this is not something to be part of the library, since it's good it's really tiny and easy to understand, but I wanted to use it in a game.

So, I understand that for some rustic way of using arrow keys/d-pad to move a cursor on the "cells" (comparing a bunch of rows with a table), I would need to know the position/dimensions of these cells. But I think that these only exist fleetingly, between the BeginWindow and EndWindow, with things getting popped out of the stack - so a new window on the same frame would "overwrite" the stacked layouts and there goes my positional information.

In this way, I think the only possible way would be store that the player had intention to move cursor right (a boolean key_right or something) and then when it's the control in the position of where the cursor is now, mark somewhere this, and then on layout next advance the cursor.

Are there other simpler strategies? Or is there a way to recover the position of controls on screen I am not seeing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants