| version 1.5, 2004/08/07 10:53:01 | version 1.14, 2004/08/18 10:44:48 | 
| Line 104  void sysmenu_setbgsound(UINT8 value) { | Line 104  void sysmenu_setbgsound(UINT8 value) { | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| void xmenu_disablewindow(void) { | typedef struct { | 
|  | UINT16          title; | 
|  | UINT16          items; | 
|  | const MENUITEMS *item; | 
|  | } SUBMENUI; | 
|  |  | 
|  | static const MENUITEMS fddsitem[4][3] = { | 
|  | {       {IDM_FDD0OPEN,          IDS_OPEN}, | 
|  | {0,                                     0}, | 
|  | {IDM_FDD0EJECT,         IDS_EJECT}}, | 
|  | {       {IDM_FDD1OPEN,          IDS_OPEN}, | 
|  | {0,                                     0}, | 
|  | {IDM_FDD1EJECT,         IDS_EJECT}}, | 
|  | {       {IDM_FDD2OPEN,          IDS_OPEN}, | 
|  | {0,                                     0}, | 
|  | {IDM_FDD2EJECT,         IDS_EJECT}}, | 
|  | {       {IDM_FDD3OPEN,          IDS_OPEN}, | 
|  | {0,                                     0}, | 
|  | {IDM_FDD3EJECT,         IDS_EJECT}}}; | 
|  |  | 
|  | static const SUBMENUI fddmenu[4] = { | 
|  | {IDS_FDD0, 3, fddsitem[0]}, | 
|  | {IDS_FDD1, 3, fddsitem[1]}, | 
|  | {IDS_FDD2, 3, fddsitem[2]}, | 
|  | {IDS_FDD3, 3, fddsitem[3]}}; | 
|  |  | 
|  | static const MENUITEMS dbgsitem[4] = { | 
|  | {IDM_WIDTH40,           IDS_WIDTH40}, | 
|  | {IDM_WIDTH80,           IDS_WIDTH80}, | 
|  | {0,                                     0}, | 
|  | {IDM_Z80SAVE,           IDS_Z80SAVE}}; | 
|  |  | 
|  | static const SUBMENUI dbgmenu = {IDS_DEBUG, 4, dbgsitem}; | 
|  |  | 
|  |  | 
|  | static void insertsubmenu(HMENU hMenu, UINT pos, const SUBMENUI *sm) { | 
|  |  | 
|  | HMENU   hSubMenu; | 
|  |  | 
|  | hSubMenu = CreatePopupMenu(); | 
|  | insertresmenus(hSubMenu, 0, sm->item, sm->items); | 
|  | insertresmenu(hMenu, pos, MF_BYPOSITION | MF_POPUP, | 
|  | (UINT)hSubMenu, sm->title); | 
|  | } | 
|  |  | 
|  | #if defined(SUPPORT_STATSAVE) | 
|  | static const OEMCHAR xmenu_stat[] = OEMTEXT("S&tat"); | 
|  | static const OEMCHAR xmenu_statsave[] = OEMTEXT("Save %u"); | 
|  | static const OEMCHAR xmenu_statload[] = OEMTEXT("Load %u"); | 
|  |  | 
|  | static void addstatsavemenu(HMENU hMenu, UINT pos) { | 
|  |  | 
|  | HMENU   hSubMenu; | 
|  | UINT    i; | 
|  | OEMCHAR buf[16]; | 
|  |  | 
|  | hSubMenu = CreatePopupMenu(); | 
|  | for (i=0; i<SUPPORT_STATSAVE; i++) { | 
|  | OEMSPRINTF(buf, xmenu_statsave, i); | 
|  | AppendMenu(hSubMenu, MF_STRING, IDM_FLAGSAVE + i, buf); | 
|  | } | 
|  | AppendMenu(hSubMenu, MF_MENUBARBREAK, 0, NULL); | 
|  | for (i=0; i<SUPPORT_STATSAVE; i++) { | 
|  | OEMSPRINTF(buf, xmenu_statload, i); | 
|  | AppendMenu(hSubMenu, MF_STRING, IDM_FLAGLOAD + i, buf); | 
|  | } | 
|  | InsertMenu(hMenu, pos, MF_BYPOSITION | MF_POPUP, | 
|  | (UINT32)hSubMenu, xmenu_stat); | 
|  | } | 
|  | #endif | 
|  |  | 
|  | void menu_initialize(void) { | 
|  |  | 
|  | HMENU   hMenu; | 
|  | #if defined(SUPPORT_WAVEREC) || defined(SUPPORT_TURBOZ) | 
|  | HMENU   hSubMenu; | 
|  | #endif | 
|  | UINT    i; | 
|  |  | 
|  | hMenu = GetMenu(hWndMain); | 
|  | #if defined(SUPPORT_WAVEREC) | 
|  | hSubMenu = GetSubMenu(hMenu, 5); | 
|  | insertresmenu(hSubMenu, 2, MF_BYPOSITION | MF_STRING, | 
|  | IDM_WAVEREC, IDS_WAVEREC); | 
|  | #endif | 
|  |  | 
|  | if (xmiloscfg.Z80SAVE) { | 
|  | insertsubmenu(hMenu, 5, &dbgmenu); | 
|  | } | 
|  |  | 
|  | #if defined(SUPPORT_TURBOZ) | 
|  | hSubMenu = GetSubMenu(hMenu, 1); | 
|  | insertresmenu(hSubMenu, 2, MF_BYPOSITION | MF_STRING, | 
|  | IDM_TURBOZ, IDS_TURBOZ); | 
|  | #endif | 
|  |  | 
|  | for (i=4; i--;) { | 
|  | if (xmilcfg.fddequip & (1 << i)) { | 
|  | insertsubmenu(hMenu, 1, fddmenu + i); | 
|  | } | 
|  | } | 
|  |  | 
|  | #if defined(SUPPORT_STATSAVE) | 
|  | if (xmiloscfg.statsave) { | 
|  | addstatsavemenu(hMenu, 1); | 
|  | } | 
|  | #endif | 
|  | } | 
|  |  | 
|  | void menu_disablewindow(void) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 113  void xmenu_disablewindow(void) { | Line 222  void xmenu_disablewindow(void) { | 
 | EnableMenuItem(hmenu, IDM_FULLSCREEN, MF_GRAYED); | EnableMenuItem(hmenu, IDM_FULLSCREEN, MF_GRAYED); | 
 | } | } | 
 |  |  | 
| void xmenu_setiplrom(UINT8 num) { | void menu_setiplrom(UINT8 num) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 124  void xmenu_setiplrom(UINT8 num) { | Line 233  void xmenu_setiplrom(UINT8 num) { | 
 | CheckMenuItem(hmenu, IDM_X1ROM, MFCHECK(num == 1)); | CheckMenuItem(hmenu, IDM_X1ROM, MFCHECK(num == 1)); | 
 | } | } | 
 |  |  | 
| void xmenu_setbootmedia(UINT8 value) { | void menu_setbootmedia(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 136  void xmenu_setbootmedia(UINT8 value) { | Line 245  void xmenu_setbootmedia(UINT8 value) { | 
 | CheckMenuItem(hmenu, IDM_BOOT2HD, MFCHECK(value)); | CheckMenuItem(hmenu, IDM_BOOT2HD, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setwidth(UINT8 value) { | void menu_setresolute(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
 | hmenu = GetMenu(hWndMain); | hmenu = GetMenu(hWndMain); | 
| CheckMenuItem(hmenu, IDM_WIDTH80, MFCHECK(!value)); | value &= DIPSW_RESOLUTE; | 
| CheckMenuItem(hmenu, IDM_WIDTH40, MFCHECK(value)); | xmilcfg.DIP_SW &= ~DIPSW_RESOLUTE; | 
|  | xmilcfg.DIP_SW |= value; | 
|  | CheckMenuItem(hmenu, IDM_HIGHRES, MFCHECK(!value)); | 
|  | CheckMenuItem(hmenu, IDM_LOWRES, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setresolute(UINT8 value) { | void menu_setwidth(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
 | hmenu = GetMenu(hWndMain); | hmenu = GetMenu(hWndMain); | 
| value &= DIPSW_RESOLUTE; | CheckMenuItem(hmenu, IDM_WIDTH80, MFCHECK(!value)); | 
| xmilcfg.DIP_SW &= ~DIPSW_RESOLUTE; | CheckMenuItem(hmenu, IDM_WIDTH40, MFCHECK(value)); | 
| xmilcfg.DIP_SW |= value; |  | 
| CheckMenuItem(hmenu, IDM_HIGHRES, MFCHECK(!value)); |  | 
| CheckMenuItem(hmenu, IDM_LOWRES, MFCHECK(value)); |  | 
 | } | } | 
 |  |  | 
| void xmenu_setdispmode(UINT8 value) { | void menu_setdispmode(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | xmilcfg.DISPSYNC = value; | xmilcfg.DISPSYNC = value; | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_DISPSYNC, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_DISPSYNC, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setwaitflg(UINT8 value) { | void menu_setraster(UINT8 value) { | 
|  |  | 
|  | value &= 1; | 
|  | xmilcfg.RASTER = value; | 
|  | CheckMenuItem(GetMenu(hWndMain), IDM_RASTER, MFCHECK(value)); | 
|  | } | 
|  |  | 
|  | void menu_setwaitflg(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | xmiloscfg.NOWAIT = value; | xmiloscfg.NOWAIT = value; | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_NOWAIT, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_NOWAIT, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setframe(UINT8 value) { | void menu_setframe(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 184  void xmenu_setframe(UINT8 value) { | Line 300  void xmenu_setframe(UINT8 value) { | 
 | CheckMenuItem(hmenu, IDM_15FPS, MFCHECK(value == 4)); | CheckMenuItem(hmenu, IDM_15FPS, MFCHECK(value == 4)); | 
 | } | } | 
 |  |  | 
| void xmenu_setkey(UINT8 value) { | void menu_setkey(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 198  void xmenu_setkey(UINT8 value) { | Line 314  void xmenu_setkey(UINT8 value) { | 
 | CheckMenuItem(hmenu, IDM_JOY2, MFCHECK(value == 2)); | CheckMenuItem(hmenu, IDM_JOY2, MFCHECK(value == 2)); | 
 | } | } | 
 |  |  | 
| void xmenu_setsound(UINT8 value) { | void menu_setsound(UINT8 value) { | 
 |  |  | 
 | xmilcfg.SOUND_SW = value; | xmilcfg.SOUND_SW = value; | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_FMBOARD, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_FMBOARD, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setjoystick(UINT8 value) { | void menu_setjoystick(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 219  void xmenu_setjoystick(UINT8 value) { | Line 335  void xmenu_setjoystick(UINT8 value) { | 
 | } | } | 
 | } | } | 
 |  |  | 
| void xmenu_setmouse(UINT8 value) { | void menu_setmouse(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | xmilcfg.MOUSE_SW = value; | xmilcfg.MOUSE_SW = value; | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_MOUSE, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_MOUSE, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setcpuspeed(UINT8 value) { | void menu_setmotorflg(UINT8 value) { | 
|  |  | 
| value &= 1; |  | 
| xmilcfg.CPU8MHz = value; |  | 
| CheckMenuItem(GetMenu(hWndMain), IDM_8MHZ, MFCHECK(value)); |  | 
| } |  | 
|  |  | 
| void xmenu_setmotorflg(UINT8 value) { |  | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | xmilcfg.MOTOR = value; | xmilcfg.MOTOR = value; | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_SEEKSND, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_SEEKSND, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_opmlog(UINT8 value) { | void menu_opmlog(UINT8 value) { | 
 |  |  | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_OPMLOG, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_OPMLOG, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setdispclk(UINT8 value) { | void menu_setdispclk(UINT8 value) { | 
 |  |  | 
 | HMENU   hmenu; | HMENU   hmenu; | 
 |  |  | 
| Line 258  void xmenu_setdispclk(UINT8 value) { | Line 367  void xmenu_setdispclk(UINT8 value) { | 
 | sysmng_updatecaption(3); | sysmng_updatecaption(3); | 
 | } | } | 
 |  |  | 
| void xmenu_setskipline(UINT8 value) { | void menu_setbtnmode(UINT8 value) { | 
|  |  | 
| value &= 1; |  | 
| xmilcfg.SKIP_LINE = value; |  | 
| CheckMenuItem(GetMenu(hWndMain), IDM_SKIPLINE, MFCHECK(value)); |  | 
| reflesh_palette(); |  | 
| makescrn.palandply = 1; |  | 
| } |  | 
|  |  | 
| void xmenu_setbtnmode(UINT8 value) { |  | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | xmilcfg.BTN_MODE = value; | xmilcfg.BTN_MODE = value; | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_JOYX, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_JOYX, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
| void xmenu_setbtnrapid(UINT8 value) { | void menu_setbtnrapid(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; | 
 | xmilcfg.BTN_RAPID = value; | xmilcfg.BTN_RAPID = value; | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_RAPID, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_RAPID, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
 | void xmenu_setz80save(UINT8 value) { |  | 
 |  |  | 
 | if (!value) { |  | 
 | EnableMenuItem(GetMenu(hWndMain), IDM_Z80SAVE, MF_GRAYED); |  | 
 | } |  | 
 | } |  | 
 |  |  |