comparison nuklear_ui/blastem_nuklear.c @ 1625:6130e1e72151

Show user friendly names for binding options in controller bind config
author Michael Pavone <pavone@retrodev.com>
date Fri, 26 Oct 2018 08:38:11 -0700
parents 7bbe0bfedb58
children 2c3536082c0f
comparison
equal deleted inserted replaced
1624:7bbe0bfedb58 1625:6130e1e72151
538 const char *triggers[2]; 538 const char *triggers[2];
539 } pad_bind_config; 539 } pad_bind_config;
540 540
541 static void binding_box(struct nk_context *context, pad_bind_config *bindings, char *name, float x, float y, float width, int num_binds, int *binds) 541 static void binding_box(struct nk_context *context, pad_bind_config *bindings, char *name, float x, float y, float width, int num_binds, int *binds)
542 { 542 {
543 static tern_node *conf_names;
543 const struct nk_user_font *font = context->style.font; 544 const struct nk_user_font *font = context->style.font;
544 float row_height = font->height * 2; 545 float row_height = font->height * 2;
545 546
546 char const **labels = calloc(sizeof(char *), num_binds); 547 char const **labels = calloc(sizeof(char *), num_binds);
547 char const **conf_vals = calloc(sizeof(char *), num_binds); 548 char const **conf_vals = calloc(sizeof(char *), num_binds);
569 max_width = max_width < lb_width ? lb_width : max_width; 570 max_width = max_width < lb_width ? lb_width : max_width;
570 } 571 }
571 nk_layout_space_push(context, nk_rect(x, y, width, (num_binds - skipped) * (row_height + 4) + 4)); 572 nk_layout_space_push(context, nk_rect(x, y, width, (num_binds - skipped) * (row_height + 4) + 4));
572 nk_group_begin(context, name, NK_WINDOW_BORDER | NK_WINDOW_NO_SCROLLBAR); 573 nk_group_begin(context, name, NK_WINDOW_BORDER | NK_WINDOW_NO_SCROLLBAR);
573 574
575 if (!conf_names) {
576 conf_names = tern_insert_ptr(conf_names, "gamepads.n.up", "Pad Up");
577 conf_names = tern_insert_ptr(conf_names, "gamepads.n.down", "Pad Down");
578 conf_names = tern_insert_ptr(conf_names, "gamepads.n.left", "Pad Left");
579 conf_names = tern_insert_ptr(conf_names, "gamepads.n.right", "Pad Right");
580 conf_names = tern_insert_ptr(conf_names, "gamepads.n.a", "Pad A");
581 conf_names = tern_insert_ptr(conf_names, "gamepads.n.b", "Pad B");
582 conf_names = tern_insert_ptr(conf_names, "gamepads.n.c", "Pad C");
583 conf_names = tern_insert_ptr(conf_names, "gamepads.n.x", "Pad X");
584 conf_names = tern_insert_ptr(conf_names, "gamepads.n.y", "Pad Y");
585 conf_names = tern_insert_ptr(conf_names, "gamepads.n.z", "Pad Z");
586 conf_names = tern_insert_ptr(conf_names, "gamepads.n.start", "Pad Start");
587 conf_names = tern_insert_ptr(conf_names, "gamepads.n.mode", "Pad Mode");
588 conf_names = tern_insert_ptr(conf_names, "ui.release_mouse", "Release Mouse");
589 conf_names = tern_insert_ptr(conf_names, "ui.vdp_debug_mode", "VDP Debug Mode");
590 conf_names = tern_insert_ptr(conf_names, "ui.vdp_debug_pal", "VDP Debug Palette");
591 conf_names = tern_insert_ptr(conf_names, "ui.enter_debugger", "Enter CPU Debugger");
592 conf_names = tern_insert_ptr(conf_names, "ui.screenshot", "Take Screenshot");
593 conf_names = tern_insert_ptr(conf_names, "ui.exit", "Show Menu");
594 conf_names = tern_insert_ptr(conf_names, "ui.save_state", "Quick Save");
595 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.0", "Set Speed 0");
596 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.1", "Set Speed 1");
597 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.2", "Set Speed 2");
598 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.3", "Set Speed 3");
599 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.4", "Set Speed 4");
600 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.5", "Set Speed 5");
601 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.6", "Set Speed 6");
602 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.7", "Set Speed 7");
603 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.8", "Set Speed 8");
604 conf_names = tern_insert_ptr(conf_names, "ui.set_speed.9", "Set Speed 9");
605 conf_names = tern_insert_ptr(conf_names, "ui.next_speed", "Next Speed");
606 conf_names = tern_insert_ptr(conf_names, "ui.prev_speed", "Prev. Speed");
607 conf_names = tern_insert_ptr(conf_names, "ui.toggle_fullscreen", "Toggle Fullscreen");
608 conf_names = tern_insert_ptr(conf_names, "ui.soft_reset", "Soft Reset");
609 conf_names = tern_insert_ptr(conf_names, "ui.reload", "Reload ROM");
610 conf_names = tern_insert_ptr(conf_names, "ui.sms_pause", "SMS Pause");
611 conf_names = tern_insert_ptr(conf_names, "ui.toggle_keyboard_captured", "Toggle Keyboard Capture");
612 }
613
574 float widths[] = {max_width + 3, width - (max_width + 6)}; 614 float widths[] = {max_width + 3, width - (max_width + 6)};
575 nk_layout_row(context, NK_STATIC, row_height, 2, widths); 615 nk_layout_row(context, NK_STATIC, row_height, 2, widths);
576 for (int i = 0; i < num_binds; i++) 616 for (int i = 0; i < num_binds; i++)
577 { 617 {
578 if (!labels[i]) { 618 if (!labels[i]) {
579 continue; 619 continue;
580 } 620 }
581 nk_label(context, labels[i], NK_TEXT_LEFT); 621 nk_label(context, labels[i], NK_TEXT_LEFT);
582 nk_button_label(context, conf_vals[i] ? conf_vals[i] : "None"); 622 char *name = conf_vals[i] ? tern_find_ptr(conf_names, conf_vals[i]) : NULL;
623 nk_button_label(context, name ? name : conf_vals[i] ? conf_vals[i] : "None");
583 } 624 }
584 free(labels); 625 free(labels);
585 free(conf_vals); 626 free(conf_vals);
586 nk_group_end(context); 627 nk_group_end(context);
587 } 628 }