Adventure Game Studio

AGS Support => Advanced Technical Forum => Topic started by: rich on Wed 17/03/2004 10:46:18

Title: Key presses in GUIs
Post by: rich on Wed 17/03/2004 10:46:18
Hi, I am curious if there is a way to manipulate GUIs with key presses. What I want to do is make navigation possible in a GUI with the arrow keys and selection of the individual objects with the return/enter key or similar. I've looked everywhere and read nothing about this. Is it even possible?

I want to know because I'm preparing a template for my game which have a text parser system and I want it to be possible to do everything with the keyboard alone.
Title: Re:Key presses in GUIs
Post by: Radiant on Wed 17/03/2004 12:01:36
Certainly. In your global script, find the function on_keypress () [sp?].
If you've started from the common template, this function will start with something like

if (IsGamePaused ()) return;


In front of this, add

if (IsGUIOn (My_GUI_1)) {
 if (keycode == 27) GUIOff (My_GUI_1); // escape key
 if (keycode == 13) ... // enter key
 // etc
}

Title: Re:Key presses in GUIs
Post by: rich on Wed 17/03/2004 18:32:40
Yes, that makes sense. However, I guess I thought that the function on_key_press() was disabled when a GUI was turned on. Perhaps I'm confusing that with on_key_press being disabled when a GUI is turned on that has an enter text box... (which I use for Parsing). If that is the case, it won't be a problem since I'm using a pop-up GUI for text input that only appears when a letter key is hit. So, I think it will be okay. The trick is now, going to be highlighting the various buttons on a GUI, and worse the sliders, when the arrow keys are being pressed. I think I should be able to work it out. I'll draw a set of buttons, one that is highlighted and one that is not. Hmmm...
Title: Re:Key presses in GUIs
Post by: SSH on Wed 17/03/2004 18:42:09
Its the "if (IsGamePaused ()) return;" that Radiant mentioned that stops keypresses being processed normally in that function, which is why it must go BEFORE that.
Title: Re:Key presses in GUIs
Post by: rich on Wed 17/03/2004 19:37:27
Thanks, guys. Makes perfect sense.