Mercurial > repos > blastem
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 } |