static void dlgflist(void) { FLIST fl; fl = getflist(menudlg_getval(DID_FLIST)); if ((fl != NULL) && (!fl->isdir)) { menudlg_settext(DID_FILE, fl->name); } }
int dlgscr_cmd(int msg, MENUID id, long param) { switch(msg) { case DLGMSG_CREATE: dlginit(); break; case DLGMSG_COMMAND: switch(id) { case DID_OK: dlgupdate(); menubase_close(); break; case DID_CANCEL: menubase_close(); break; case DID_TAB: setpage(menudlg_getval(DID_TAB)); break; case DID_LCD: menudlg_setenable(DID_LCDX, menudlg_getval(DID_LCD)); break; case DID_SKIPLIGHT: setintstr(DID_LIGHTSTR, menudlg_getval(DID_SKIPLIGHT)); break; case DID_TRAMWAIT: setintstr(DID_TRAMSTR, menudlg_getval(DID_TRAMWAIT)); break; case DID_VRAMWAIT: setintstr(DID_VRAMSTR, menudlg_getval(DID_VRAMWAIT)); break; case DID_GRCGWAIT: setintstr(DID_GRCGSTR, menudlg_getval(DID_GRCGWAIT)); break; case DID_REALPAL: setintstr(DID_REALPALSTR, menudlg_getval(DID_REALPAL) - 32); break; } break; case DLGMSG_CLOSE: menubase_close(); break; } (void)param; return(0); }
static void setclockstr(void) { UINT32 clock; UINT multiple; OEMCHAR work[32]; if (menudlg_getval(DID_CLOCK1)) { clock = PCBASECLOCK20 / 100; } else { clock = PCBASECLOCK25 / 100; } multiple = menudlg_getval(DID_MULTIPLE); if (multiple < 1) { multiple = 1; } else if (multiple > 32) { multiple = 32; } clock *= multiple; OEMSPRINTF(work, str_clockfmt, clock / 10000, clock % 10000); menudlg_settext(DID_CLOCKSTR, work); }
static void setbufstr(void) { UINT val; OEMCHAR work[32]; val = menudlg_getval(DID_BUFFER); if (val < 100) { val = 100; } else if (val > 1000) { val = 1000; } OEMSPRINTF(work, str_buffmt, val); menudlg_settext(DID_BUFSTR, work); }
static void setmulstr(void) { UINT multiple; OEMCHAR work[32]; multiple = menudlg_getval(DID_MULTIPLE); if (multiple < 1) { multiple = 1; } else if (multiple > 32) { multiple = 32; } OEMSPRINTF(work, str_mulfmt, multiple); menudlg_settext(DID_MULSTR, work); }
static void dlgupdate(void) { BOOL renewal; int val; renewal = FALSE; val = menudlg_getval(DID_JOYPAD1); if (np2oscfg.JOYPAD1 != (UINT8)val) { np2oscfg.JOYPAD1 = (UINT8)val; renewal = TRUE; } val = menudlg_getval(DID_PAD1_1A) + (menudlg_getval(DID_PAD1_2A) << 1); if (np2oscfg.JOY1BTN[0] != (UINT8)val) { np2oscfg.JOY1BTN[0] = (UINT8)val; renewal = TRUE; } val = menudlg_getval(DID_PAD1_1B) + (menudlg_getval(DID_PAD1_2B) << 1); if (np2oscfg.JOY1BTN[1] != (UINT8)val) { np2oscfg.JOY1BTN[1] = (UINT8)val; renewal = TRUE; } val = menudlg_getval(DID_PAD1_1C) + (menudlg_getval(DID_PAD1_2C) << 1); if (np2oscfg.JOY1BTN[2] != (UINT8)val) { np2oscfg.JOY1BTN[2] = (UINT8)val; renewal = TRUE; } val = menudlg_getval(DID_PAD1_1D) + (menudlg_getval(DID_PAD1_2D) << 1); if (np2oscfg.JOY1BTN[3] != (UINT8)val) { np2oscfg.JOY1BTN[3] = (UINT8)val; renewal = TRUE; } if (renewal) { joymng_initialize(); sysmng_update(SYS_UPDATECFG); } }
static BOOL dlgupdate(void) { FLIST fl; fl = getflist(menudlg_getval(DID_FLIST)); if (fl == NULL) { return(FALSE); } file_setseparator(filesel.path, NELEMENTS(filesel.path)); file_catname(filesel.path, fl->name, NELEMENTS(filesel.path)); if (fl->isdir) { dlgsetlist(); menudlg_settext(DID_FILE, NULL); return(FALSE); } else { filesel.result = TRUE; return(TRUE); } }
static void dlgupdate(void) { UINT update; UINT val; const OEMCHAR *str; update = 0; if (menudlg_getval(DID_CLOCK1)) { val = PCBASECLOCK20; } else { val = PCBASECLOCK25; } if (np2cfg.baseclock != val) { np2cfg.baseclock = val; update |= SYS_UPDATECFG | SYS_UPDATECLOCK; } val = menudlg_getval(DID_MULTIPLE); if (val < 1) { val = 1; } else if (val > 32) { val = 32; } if (np2cfg.multiple != val) { np2cfg.multiple = val; update |= SYS_UPDATECFG | SYS_UPDATECLOCK; } if (menudlg_getval(DID_RATE11)) { val = 11025; } else if (menudlg_getval(DID_RATE44)) { val = 44100; } else { val = 22050; } if (np2cfg.samplingrate != (UINT16)val) { np2cfg.samplingrate = (UINT16)val; update |= SYS_UPDATECFG | SYS_UPDATERATE; soundrenewal = 1; } if (menudlg_getval(DID_MODELVM)) { str = str_VM; } else if (menudlg_getval(DID_MODELEPSON)) { str = str_EPSON; } else { str = str_VX; } if (milstr_cmp(np2cfg.model, str)) { milstr_ncpy(np2cfg.model, str, NELEMENTS(np2cfg.model)); update |= SYS_UPDATECFG; } if (menudlg_getval(DID_RATE11)) { val = 11025; } else if (menudlg_getval(DID_RATE44)) { val = 44100; } else { val = 22050; } if (np2cfg.samplingrate != (UINT16)val) { np2cfg.samplingrate = (UINT16)val; update |= SYS_UPDATECFG | SYS_UPDATERATE; soundrenewal = 1; } val = menudlg_getval(DID_BUFFER); if (val < 100) { val = 100; } else if (val > 1000) { val = 1000; } if (np2cfg.delayms != (UINT16)val) { np2cfg.delayms = (UINT16)val; update |= SYS_UPDATECFG | SYS_UPDATESBUF; soundrenewal = 1; } val = menudlg_getval(DID_RESUME); if (np2oscfg.resume != (UINT8)val) { np2oscfg.resume = (UINT8)val; update |= SYS_UPDATEOSCFG; } sysmng_update(update); }
static void dlgupdate(void) { UINT update; BOOL renewal; UINT val; UINT8 value[6]; update = 0; renewal = FALSE; val = menudlg_getval(DID_SKIPLINE); if (np2cfg.skipline != (UINT8)val) { np2cfg.skipline = (UINT8)val; renewal = TRUE; } val = menudlg_getval(DID_SKIPLIGHT); if (val > 255) { val = 255; } if (np2cfg.skiplight != (UINT16)val) { np2cfg.skiplight = (UINT16)val; renewal = TRUE; } if (renewal) { pal_makeskiptable(); } val = menudlg_getval(DID_LCD) + (menudlg_getval(DID_LCDX) << 1); if (np2cfg.LCD_MODE != (UINT8)val) { np2cfg.LCD_MODE = (UINT8)val; pal_makelcdpal(); renewal = TRUE; } if (renewal) { scrndraw_redraw(); update |= SYS_UPDATECFG; } val = menudlg_getval(DID_GDC72020); if (np2cfg.uPD72020 != (UINT8)val) { np2cfg.uPD72020 = (UINT8)val; update |= SYS_UPDATECFG; gdc_restorekacmode(); gdcs.grphdisp |= GDCSCRN_ALLDRAW2; } for (val=0; (val<3) && (!menudlg_getval(gdcchip[val])); val++) { } if (np2cfg.grcg != (UINT8)val) { np2cfg.grcg = (UINT8)val; update |= SYS_UPDATECFG; gdcs.grphdisp |= GDCSCRN_ALLDRAW2; } val = menudlg_getval(DID_PC980124); if (np2cfg.color16 != (UINT8)val) { np2cfg.color16 = (UINT8)val; update |= SYS_UPDATECFG; } ZeroMemory(value, sizeof(value)); value[0] = (UINT8)menudlg_getval(DID_TRAMWAIT); if (value[0]) { value[1] = 1; } value[2] = (UINT8)menudlg_getval(DID_VRAMWAIT); if (value[2]) { value[3] = 1; } value[4] = (UINT8)menudlg_getval(DID_GRCGWAIT); if (value[4]) { value[5] = 1; } for (val=0; val<6; val++) { if (np2cfg.wait[val] != value[val]) { np2cfg.wait[val] = value[val]; update |= SYS_UPDATECFG; } } val = menudlg_getval(DID_REALPAL); if (np2cfg.realpal != (UINT8)val) { np2cfg.realpal = (UINT8)val; update |= SYS_UPDATECFG; } sysmng_update(update); }
int snd_menu(Sound *menu, int num_items) { float x,y; float base_width = MAX_MENU_SIZE; float base_height = ((menu[num_items-1].y + ui_font_height()) - menu[0].y); int menu_pos; char work[32]; int max_menu = 0; base_height += ui_font_height() * 2; for (int i = 0; i < num_items; ++i) { switch (menu[i].type) { case DLGTYPE_RADIO: case DLGTYPE_CHECK: case DLGTYPE_SLIDER: ++max_menu; break; } } int result = -1; int id = 0; int sel = 0; #if 0 int max_val = 0; int min_val = 0; int val_index = 0; #endif float offx = ui_offx() + (ui_width() - base_width) / 2; float offy = ui_offy() + (ui_height() - base_height) / 2; int fade = 128; for (;;) { uisys_task(); if (ui_keyrepeat(JOY_UP)) { switch (result) { case DID_PAD1_1A: case DID_PAD1_1B: case DID_PAD1_1C: case DID_PAD1_1D: case DID_PAD1_2A: case DID_PAD1_2B: case DID_PAD1_2C: case DID_PAD1_2D: case DID_PAD1_RA: case DID_PAD1_RB: case DID_PAD1_RC: case DID_PAD1_RD: break; default: if (--sel < 0) sel = max_menu - 1; } } else if (ui_keyrepeat(JOY_DOWN)) { switch (result) { case DID_PAD1_1A: case DID_PAD1_1B: case DID_PAD1_1C: case DID_PAD1_1D: case DID_PAD1_2A: case DID_PAD1_2B: case DID_PAD1_2C: case DID_PAD1_2D: case DID_PAD1_RA: case DID_PAD1_RB: case DID_PAD1_RC: case DID_PAD1_RD: break; default: if (++sel > (max_menu - 1)) sel = 0; } } #if 0 else if (ui_keyrepeat(JOY_RIGHT) || ui_keyrepeat(JOY_RTRIGGER)) { switch (result) { case DID_PAD1_1A: case DID_PAD1_1B: case DID_PAD1_1C: case DID_PAD1_1D: case DID_PAD1_2A: case DID_PAD1_2B: case DID_PAD1_2C: case DID_PAD1_2D: case DID_PAD1_RA: case DID_PAD1_RB: case DID_PAD1_RC: case DID_PAD1_RD: if (++val_index > max_val) val_index = max_val; break; default: if (++menu_index > 1) { menu_index = 1; } else { return 0; } } } else if (ui_keyrepeat(JOY_LEFT) || ui_keyrepeat(JOY_LTRIGGER)) { switch (result) { case DID_PAD1_1A: case DID_PAD1_1B: case DID_PAD1_1C: case DID_PAD1_1D: case DID_PAD1_2A: case DID_PAD1_2B: case DID_PAD1_2C: case DID_PAD1_2D: case DID_PAD1_RA: case DID_PAD1_RB: case DID_PAD1_RC: case DID_PAD1_RD: if (--val_index < min_val) val_index = min_val; break; default: if (--menu_index < 0) { menu_index = 0; } else { return 0; } } } #endif if (ui_keypressed(JOY_A)) { switch (id) { case DID_JOYPAD1: menudlg_setval(id, !menudlg_getval(id)); break; case DID_PAD1_1A: case DID_PAD1_1B: case DID_PAD1_1C: case DID_PAD1_1D: case DID_PAD1_2A: case DID_PAD1_2B: case DID_PAD1_2C: case DID_PAD1_2D: case DID_PAD1_RA: case DID_PAD1_RB: case DID_PAD1_RC: case DID_PAD1_RD: dlg_btn(id); break; } } if (ui_keypressed(JOY_B)) { switch (result) { case DID_PAD1_1A: case DID_PAD1_1B: case DID_PAD1_1C: case DID_PAD1_1D: case DID_PAD1_2A: case DID_PAD1_2B: case DID_PAD1_2C: case DID_PAD1_2D: case DID_PAD1_RA: case DID_PAD1_RB: case DID_PAD1_RC: case DID_PAD1_RD: result = -1; break; default: if (result < 0) return -1; } } if ((fade += 255/60) > 255) fade = 128; tx_resetfont(); scrnmng_update(); draw_transquad(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, UI_TR, UI_TR, UI_TR, UI_TR); draw_transquad(offx, offy, offx + base_width, offy + base_height, UI_BS, UI_BS, UI_BS, UI_BS); OEMSPRINTF(work, "%s ", mstr_snd); x = offx + (base_width - strlen(work) * ui_font_width()) / 2; y = offy; ui_font_draw(x, y, 255, 255, 255, work); y += ui_font_height(); x = offx; draw_transquad(offx, y, offx + base_width, y + 1, MAKECOL32(128, 128, 128, 255), MAKECOL32(128, 128, 128, 255), MAKECOL32(128, 128, 128, 255), MAKECOL32(128, 128, 128, 255)); y += 6; menu_pos = 0; for (int i = 0; i < num_items; ++i) { int r = menu[i].r; int g = menu[i].g; int b = menu[i].b; switch (menu[i].type) { case DLGTYPE_RADIO: case DLGTYPE_CHECK: if (menu_pos == sel) { draw_transquad(offx, y + menu[i].y, offx + base_width, y + menu[i].y + ui_font_height() + 5, MAKECOL32(255, 0, 0, fade), MAKECOL32(255, 0, 0, fade), MAKECOL32(255, 0, 0, fade), MAKECOL32(255, 0, 0, fade)); id = menu[i].id; } switch (menu[i].id) { default: if (menudlg_getval(menu[i].id)) draw_pointer(x + menu[i].x - ui_font_width(), y + menu[i].y, 1); } ui_font_draw(x + menu[i].x, y + menu[i].y, r, g, b, (const char *)menu[i].arg); ++menu_pos; break; } } for (int i = 0; i < num_items; ++i) { switch (menu[i].type) { case DLGTYPE_FRAME: case DLGTYPE_LTEXT: case DLGTYPE_RTEXT: ui_font_draw(x + menu[i].x, y + menu[i].y, menu[i].r, menu[i].g, menu[i].b, (const char *)menu[i].arg); break; } } x = ui_offx(); y = ui_height() - ui_font_height(); switch (result) { default: ui_font_draw(x, y, 255, 255, 255, "A:Select B:Back"); } ta_commit_frame(); } }