MCPcopy Create free account
hub / github.com/NetHack/NetHack / ghack_handle_key_press

Function ghack_handle_key_press

outdated/win/gnome/gnsignal.c:188–399  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

186#endif
187
188void
189ghack_handle_key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
190{
191 static int was_pound = 0;
192 int key = 0;
193 int ctl = GDK_CONTROL_MASK;
194 int alt = GDK_MOD1_MASK;
195
196/* Turn this on to debug key events */
197#if 0
198 g_message("I got a \"%s\" key (%d) %s%s",
199 gdk_keyval_name (event->keyval), event->keyval,
200 (event->state&ctl)? "+CONTROL":"", (event->state&alt)? "+ALT":"");
201#endif
202
203 switch (event->keyval) {
204 /* special keys to do stuff with */
205
206 /* Set up the direction keys */
207
208 /* First handle the arrow keys -- these always mean move */
209 case GDK_Right:
210 case GDK_rightarrow:
211 key = Cmd.move_E;
212 break;
213 case GDK_Left:
214 case GDK_leftarrow:
215 key = Cmd.move_W;
216 break;
217 case GDK_Up:
218 case GDK_uparrow:
219 key = Cmd.move_N;
220 break;
221 case GDK_Down:
222 case GDK_downarrow:
223 key = Cmd.move_S;
224 break;
225 case GDK_Home:
226 key = Cmd.move_NW;
227 break;
228 case GDK_End:
229 key = Cmd.move_SW;
230 break;
231 case GDK_Page_Down:
232 key = Cmd.move_SE;
233 break;
234 case GDK_Page_Up:
235 key = Cmd.move_NE;
236 break;
237 case ' ':
238 key = '.';
239 break;
240
241 /* Now, handle the numberpad (move or numbers) */
242 case GDK_KP_Right:
243 case GDK_KP_6:
244 if (event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)
245 && iflags.num_pad)

Callers 2

Calls 1

ghack_save_game_cbFunction · 0.85

Tested by

no test coverage detected