changeset 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
files nuklear_ui/blastem_nuklear.c
diffstat 1 files changed, 42 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/nuklear_ui/blastem_nuklear.c	Thu Oct 25 19:12:40 2018 -0700
+++ b/nuklear_ui/blastem_nuklear.c	Fri Oct 26 08:38:11 2018 -0700
@@ -540,6 +540,7 @@
 
 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)
 {
+	static tern_node *conf_names;
 	const struct nk_user_font *font = context->style.font;
 	float row_height = font->height * 2;
 	
@@ -571,6 +572,45 @@
 	nk_layout_space_push(context, nk_rect(x, y, width, (num_binds - skipped) * (row_height + 4) + 4));
 	nk_group_begin(context, name, NK_WINDOW_BORDER | NK_WINDOW_NO_SCROLLBAR);
 	
+	if (!conf_names) {
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.up", "Pad Up");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.down", "Pad Down");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.left", "Pad Left");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.right", "Pad Right");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.a", "Pad A");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.b", "Pad B");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.c", "Pad C");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.x", "Pad X");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.y", "Pad Y");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.z", "Pad Z");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.start", "Pad Start");
+		conf_names = tern_insert_ptr(conf_names, "gamepads.n.mode", "Pad Mode");
+		conf_names = tern_insert_ptr(conf_names, "ui.release_mouse", "Release Mouse");
+		conf_names = tern_insert_ptr(conf_names, "ui.vdp_debug_mode", "VDP Debug Mode");
+		conf_names = tern_insert_ptr(conf_names, "ui.vdp_debug_pal", "VDP Debug Palette");
+		conf_names = tern_insert_ptr(conf_names, "ui.enter_debugger", "Enter CPU Debugger");
+		conf_names = tern_insert_ptr(conf_names, "ui.screenshot", "Take Screenshot");
+		conf_names = tern_insert_ptr(conf_names, "ui.exit", "Show Menu");
+		conf_names = tern_insert_ptr(conf_names, "ui.save_state", "Quick Save");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.0", "Set Speed 0");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.1", "Set Speed 1");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.2", "Set Speed 2");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.3", "Set Speed 3");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.4", "Set Speed 4");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.5", "Set Speed 5");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.6", "Set Speed 6");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.7", "Set Speed 7");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.8", "Set Speed 8");
+		conf_names = tern_insert_ptr(conf_names, "ui.set_speed.9", "Set Speed 9");
+		conf_names = tern_insert_ptr(conf_names, "ui.next_speed", "Next Speed");
+		conf_names = tern_insert_ptr(conf_names, "ui.prev_speed", "Prev. Speed");
+		conf_names = tern_insert_ptr(conf_names, "ui.toggle_fullscreen", "Toggle Fullscreen");
+		conf_names = tern_insert_ptr(conf_names, "ui.soft_reset", "Soft Reset");
+		conf_names = tern_insert_ptr(conf_names, "ui.reload", "Reload ROM");
+		conf_names = tern_insert_ptr(conf_names, "ui.sms_pause", "SMS Pause");
+		conf_names = tern_insert_ptr(conf_names, "ui.toggle_keyboard_captured", "Toggle Keyboard Capture");
+	}
+	
 	float widths[] = {max_width + 3, width - (max_width + 6)};
 	nk_layout_row(context, NK_STATIC, row_height, 2, widths);
 	for (int i = 0; i < num_binds; i++)
@@ -579,7 +619,8 @@
 			continue;
 		}
 		nk_label(context, labels[i], NK_TEXT_LEFT);
-		nk_button_label(context, conf_vals[i] ? conf_vals[i] : "None");
+		char *name = conf_vals[i] ? tern_find_ptr(conf_names, conf_vals[i]) : NULL;
+		nk_button_label(context, name ? name : conf_vals[i] ? conf_vals[i] : "None");
 	}
 	free(labels);
 	free(conf_vals);