| version 1.8, 2004/08/08 09:12:06 | version 1.14, 2004/08/18 10:44:48 | 
| Line 104  void sysmenu_setbgsound(UINT8 value) { | Line 104  void sysmenu_setbgsound(UINT8 value) { | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
 |  | 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) { | void menu_initialize(void) { | 
 |  |  | 
 | HMENU   hMenu; | HMENU   hMenu; | 
 |  | #if defined(SUPPORT_WAVEREC) || defined(SUPPORT_TURBOZ) | 
 | HMENU   hSubMenu; | HMENU   hSubMenu; | 
| //      UINT    i; | #endif | 
|  | UINT    i; | 
 |  |  | 
 | hMenu = GetMenu(hWndMain); | hMenu = GetMenu(hWndMain); | 
 | if (xmiloscfg.Z80SAVE) { |  | 
 | hSubMenu = GetSubMenu(hMenu, 7); |  | 
 | insertresmenu(hSubMenu, 7, MF_BYPOSITION | MF_STRING, |  | 
 | IDM_Z80SAVE, IDS_Z80SAVE); |  | 
 | } |  | 
 | #if defined(SUPPORT_WAVEREC) | #if defined(SUPPORT_WAVEREC) | 
| hSubMenu = GetSubMenu(hMenu, 7); | hSubMenu = GetSubMenu(hMenu, 5); | 
 | insertresmenu(hSubMenu, 2, MF_BYPOSITION | MF_STRING, | insertresmenu(hSubMenu, 2, MF_BYPOSITION | MF_STRING, | 
 | IDM_WAVEREC, IDS_WAVEREC); | IDM_WAVEREC, IDS_WAVEREC); | 
 | #endif | #endif | 
 |  |  | 
| //      for (i=4; i--;) { | if (xmiloscfg.Z80SAVE) { | 
| //              if (np2cfg.fddequip & (1 << i)) { | insertsubmenu(hMenu, 5, &dbgmenu); | 
| //                      insdiskmenu(hMenu, 1, fddmenu + i); | } | 
| //              } |  | 
| //      } | #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 defined(SUPPORT_STATSAVE) | 
| if (np2oscfg.statsave) { | if (xmiloscfg.statsave) { | 
 | addstatsavemenu(hMenu, 1); | addstatsavemenu(hMenu, 1); | 
 | } | } | 
 | #endif | #endif | 
| Line 264  void menu_setmouse(UINT8 value) { | Line 342  void menu_setmouse(UINT8 value) { | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_MOUSE, MFCHECK(value)); | CheckMenuItem(GetMenu(hWndMain), IDM_MOUSE, MFCHECK(value)); | 
 | } | } | 
 |  |  | 
 | void menu_setcpuspeed(UINT8 value) { |  | 
 |  |  | 
 | value &= 1; |  | 
 | xmilcfg.CPU8MHz = value; |  | 
 | CheckMenuItem(GetMenu(hWndMain), IDM_8MHZ, MFCHECK(value)); |  | 
 | } |  | 
 |  |  | 
 | void menu_setmotorflg(UINT8 value) { | void menu_setmotorflg(UINT8 value) { | 
 |  |  | 
 | value &= 1; | value &= 1; |