comparison nuklear_ui/nuklear_sdl_gles2.h @ 1862:e07fc3d473b2

Basic UI navigation with controller
author Michael Pavone <pavone@retrodev.com>
date Wed, 08 May 2019 23:44:40 -0700
parents 56a1171e29b9
children 579fe3f6fe76
comparison
equal deleted inserted replaced
1861:fc05f49075c2 1862:e07fc3d473b2
412 if (state[SDL_SCANCODE_LCTRL]) 412 if (state[SDL_SCANCODE_LCTRL])
413 nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down); 413 nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, down);
414 else nk_input_key(ctx, NK_KEY_RIGHT, down); 414 else nk_input_key(ctx, NK_KEY_RIGHT, down);
415 } else return 0; 415 } else return 0;
416 return 1; 416 return 1;
417 } else if (evt->type == SDL_CONTROLLERBUTTONDOWN || evt->type == SDL_CONTROLLERBUTTONUP) {
418 int down = evt->type == SDL_CONTROLLERBUTTONDOWN;
419 if (evt->cbutton.button == SDL_CONTROLLER_BUTTON_DPAD_UP) {
420 nk_input_key(ctx, NK_KEY_UP, down);
421 } else if (evt->cbutton.button == SDL_CONTROLLER_BUTTON_DPAD_DOWN) {
422 nk_input_key(ctx, NK_KEY_DOWN, down);
423 } else if (evt->cbutton.button == SDL_CONTROLLER_BUTTON_A || evt->cbutton.button == SDL_CONTROLLER_BUTTON_START) {
424 nk_input_key(ctx, NK_KEY_ENTER, down);
425 }
426 } else if (evt->type == SDL_CONTROLLERAXISMOTION) {
427 if (evt->caxis.axis == SDL_CONTROLLER_AXIS_LEFTY || evt->caxis.axis == SDL_CONTROLLER_AXIS_RIGHTY) {
428 int down = abs(evt->caxis.value) > 2000;
429 if (evt->caxis.value >= 0) {
430 if (ctx->input.keyboard.keys[NK_KEY_UP].down) {
431 nk_input_key(ctx, NK_KEY_UP, 0);
432 }
433 nk_input_key(ctx, NK_KEY_DOWN, down);
434 } else {
435 if (ctx->input.keyboard.keys[NK_KEY_DOWN].down) {
436 nk_input_key(ctx, NK_KEY_DOWN, 0);
437 }
438 nk_input_key(ctx, NK_KEY_UP, down);
439 }
440 }
417 } else if (evt->type == SDL_MOUSEBUTTONDOWN || evt->type == SDL_MOUSEBUTTONUP) { 441 } else if (evt->type == SDL_MOUSEBUTTONDOWN || evt->type == SDL_MOUSEBUTTONUP) {
418 /* mouse button */ 442 /* mouse button */
419 int down = evt->type == SDL_MOUSEBUTTONDOWN; 443 int down = evt->type == SDL_MOUSEBUTTONDOWN;
420 const int x = evt->button.x, y = evt->button.y; 444 const int x = evt->button.x, y = evt->button.y;
421 if (evt->button.button == SDL_BUTTON_LEFT) { 445 if (evt->button.button == SDL_BUTTON_LEFT) {