Mercurial > repos > blastem
comparison nuklear_ui/blastem_nuklear.c @ 1853:9b2acecf8124
Allow game save path to be edited from UI
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 24 Apr 2019 20:46:35 -0700 |
parents | a4cae960fd08 |
children | 58b6f5d918f4 |
comparison
equal
deleted
inserted
replaced
1852:a4cae960fd08 | 1853:9b2acecf8124 |
---|---|
1466 config_dirty = 1; | 1466 config_dirty = 1; |
1467 config = tern_insert_path(config, path, (tern_val){.ptrval = strdup(buffer)}, TVAL_PTR); | 1467 config = tern_insert_path(config, path, (tern_val){.ptrval = strdup(buffer)}, TVAL_PTR); |
1468 } | 1468 } |
1469 } | 1469 } |
1470 | 1470 |
1471 void settings_string(struct nk_context *context, char *label, char *path, char *def) | |
1472 { | |
1473 nk_label(context, label, NK_TEXT_LEFT); | |
1474 char *curstr = tern_find_path_default(config, path, (tern_val){.ptrval = def}, TVAL_PTR).ptrval; | |
1475 uint32_t len = strlen(curstr); | |
1476 uint32_t buffer_len = len > 100 ? len + 1 : 101; | |
1477 char *buffer = malloc(buffer_len); | |
1478 memcpy(buffer, curstr, len); | |
1479 memset(buffer+len, 0, buffer_len-len); | |
1480 nk_edit_string(context, NK_EDIT_SIMPLE, buffer, &len, buffer_len-1, nk_filter_default); | |
1481 buffer[len] = 0; | |
1482 if (strcmp(buffer, curstr)) { | |
1483 config_dirty = 1; | |
1484 config = tern_insert_path(config, path, (tern_val){.ptrval = strdup(buffer)}, TVAL_PTR); | |
1485 } | |
1486 free(buffer); | |
1487 } | |
1488 | |
1471 void settings_int_property(struct nk_context *context, char *label, char *name, char *path, int def, int min, int max) | 1489 void settings_int_property(struct nk_context *context, char *label, char *name, char *path, int def, int min, int max) |
1472 { | 1490 { |
1473 char *curstr = tern_find_path(config, path, TVAL_PTR).ptrval; | 1491 char *curstr = tern_find_path(config, path, TVAL_PTR).ptrval; |
1474 int curval = curstr ? atoi(curstr) : def; | 1492 int curval = curstr ? atoi(curstr) : def; |
1475 nk_label(context, label, NK_TEXT_LEFT); | 1493 nk_label(context, label, NK_TEXT_LEFT); |
1826 nk_layout_row_static(context, context->style.font->height, desired_width, 2); | 1844 nk_layout_row_static(context, context->style.font->height, desired_width, 2); |
1827 selected_sync = settings_dropdown(context, "Sync Source", sync_opts, num_sync_opts, selected_sync, "system\0sync_source\0"); | 1845 selected_sync = settings_dropdown(context, "Sync Source", sync_opts, num_sync_opts, selected_sync, "system\0sync_source\0"); |
1828 settings_int_property(context, "68000 Clock Divider", "", "clocks\0m68k_divider\0", 7, 1, 53); | 1846 settings_int_property(context, "68000 Clock Divider", "", "clocks\0m68k_divider\0", 7, 1, 53); |
1829 settings_toggle(context, "Remember ROM Path", "ui\0remember_path\0", 1); | 1847 settings_toggle(context, "Remember ROM Path", "ui\0remember_path\0", 1); |
1830 settings_toggle(context, "Save config with EXE", "ui\0config_in_exe_dir\0", 0); | 1848 settings_toggle(context, "Save config with EXE", "ui\0config_in_exe_dir\0", 0); |
1849 settings_string(context, "Game Save Path", "ui\0save_path\0", "$USERDATA/blastem/$ROMNAME"); | |
1831 selected_region = settings_dropdown_ex(context, "Default Region", region_codes, regions, num_regions, selected_region, "system\0default_region\0"); | 1850 selected_region = settings_dropdown_ex(context, "Default Region", region_codes, regions, num_regions, selected_region, "system\0default_region\0"); |
1832 selected_format = settings_dropdown(context, "Save State Format", formats, num_formats, selected_format, "ui\0state_format\0"); | 1851 selected_format = settings_dropdown(context, "Save State Format", formats, num_formats, selected_format, "ui\0state_format\0"); |
1833 selected_init = settings_dropdown(context, "Initial RAM Value", ram_inits, num_inits, selected_init, "system\0ram_init\0"); | 1852 selected_init = settings_dropdown(context, "Initial RAM Value", ram_inits, num_inits, selected_init, "system\0ram_init\0"); |
1834 selected_io_1 = settings_dropdown_ex(context, "IO Port 1 Device", io_opts_1, device_type_names, num_io, selected_io_1, "io\0devices\0""1\0"); | 1853 selected_io_1 = settings_dropdown_ex(context, "IO Port 1 Device", io_opts_1, device_type_names, num_io, selected_io_1, "io\0devices\0""1\0"); |
1835 selected_io_2 = settings_dropdown_ex(context, "IO Port 2 Device", io_opts_2, device_type_names, num_io, selected_io_2, "io\0devices\0""2\0"); | 1854 selected_io_2 = settings_dropdown_ex(context, "IO Port 2 Device", io_opts_2, device_type_names, num_io, selected_io_2, "io\0devices\0""2\0"); |