Diff for /xmil/win9x/menu.cpp between versions 1.9 and 1.15

version 1.9, 2004/08/08 09:50:11 version 1.15, 2004/08/18 11:46:57
Line 4 Line 4
 #include        "dosio.h"  #include        "dosio.h"
 #include        "scrnmng.h"  #include        "scrnmng.h"
 #include        "sysmng.h"  #include        "sysmng.h"
   #include        "extclass.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "ini.h"  #include        "ini.h"
 #include        "menu.h"  #include        "menu.h"
Line 104  void sysmenu_setbgsound(UINT8 value) { Line 105  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, 8);  
                 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 139  void menu_disablewindow(void) { Line 218  void menu_disablewindow(void) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         EnableMenuItem(hmenu, IDM_WINDOW, MF_GRAYED);          EnableMenuItem(hmenu, IDM_WINDOW, MF_GRAYED);
         EnableMenuItem(hmenu, IDM_FULLSCREEN, MF_GRAYED);          EnableMenuItem(hmenu, IDM_FULLSCREEN, MF_GRAYED);
 }  }
Line 148  void menu_setiplrom(UINT8 num) { Line 227  void menu_setiplrom(UINT8 num) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         xmilcfg.ROM_TYPE = num;          xmilcfg.ROM_TYPE = num;
         CheckMenuItem(hmenu, IDM_TURBOZ, MFCHECK(num == 3));          CheckMenuItem(hmenu, IDM_TURBOZ, MFCHECK(num == 3));
         CheckMenuItem(hmenu, IDM_TURBO, MFCHECK(num == 2));          CheckMenuItem(hmenu, IDM_TURBO, MFCHECK(num == 2));
Line 159  void menu_setbootmedia(UINT8 value) { Line 238  void menu_setbootmedia(UINT8 value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         value &= DIPSW_BOOTMEDIA;          value &= DIPSW_BOOTMEDIA;
         xmilcfg.DIP_SW &= ~DIPSW_BOOTMEDIA;          xmilcfg.DIP_SW &= ~DIPSW_BOOTMEDIA;
         xmilcfg.DIP_SW |= value;          xmilcfg.DIP_SW |= value;
Line 171  void menu_setresolute(UINT8 value) { Line 250  void menu_setresolute(UINT8 value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         value &= DIPSW_RESOLUTE;          value &= DIPSW_RESOLUTE;
         xmilcfg.DIP_SW &= ~DIPSW_RESOLUTE;          xmilcfg.DIP_SW &= ~DIPSW_RESOLUTE;
         xmilcfg.DIP_SW |= value;          xmilcfg.DIP_SW |= value;
Line 183  void menu_setwidth(UINT8 value) { Line 262  void menu_setwidth(UINT8 value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_WIDTH80, MFCHECK(!value));          CheckMenuItem(hmenu, IDM_WIDTH80, MFCHECK(!value));
         CheckMenuItem(hmenu, IDM_WIDTH40, MFCHECK(value));          CheckMenuItem(hmenu, IDM_WIDTH40, MFCHECK(value));
 }  }
Line 192  void menu_setdispmode(UINT8 value) { Line 271  void menu_setdispmode(UINT8 value) {
   
         value &= 1;          value &= 1;
         xmilcfg.DISPSYNC = value;          xmilcfg.DISPSYNC = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_DISPSYNC, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_DISPSYNC, MFCHECK(value));
 }  }
   
 void menu_setraster(UINT8 value) {  void menu_setraster(UINT8 value) {
   
         value &= 1;          value &= 1;
         xmilcfg.RASTER = value;          xmilcfg.RASTER = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_RASTER, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_RASTER, MFCHECK(value));
 }  }
   
 void menu_setwaitflg(UINT8 value) {  void menu_setwaitflg(UINT8 value) {
   
         value &= 1;          value &= 1;
         xmiloscfg.NOWAIT = value;          xmiloscfg.NOWAIT = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_NOWAIT, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_NOWAIT, MFCHECK(value));
 }  }
   
 void menu_setframe(UINT8 value) {  void menu_setframe(UINT8 value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         xmiloscfg.DRAW_SKIP = value;          xmiloscfg.DRAW_SKIP = value;
         CheckMenuItem(hmenu, IDM_AUTOFPS, MFCHECK(!value));          CheckMenuItem(hmenu, IDM_AUTOFPS, MFCHECK(!value));
         CheckMenuItem(hmenu, IDM_60FPS, MFCHECK(value == 1));          CheckMenuItem(hmenu, IDM_60FPS, MFCHECK(value == 1));
Line 226  void menu_setkey(UINT8 value) { Line 305  void menu_setkey(UINT8 value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         if (value >= 3) {          if (value >= 3) {
                 value = 0;                  value = 0;
         }          }
Line 239  void menu_setkey(UINT8 value) { Line 318  void menu_setkey(UINT8 value) {
 void menu_setsound(UINT8 value) {  void menu_setsound(UINT8 value) {
   
         xmilcfg.SOUND_SW = value;          xmilcfg.SOUND_SW = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_FMBOARD, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_FMBOARD, MFCHECK(value));
 }  }
   
 void menu_setjoystick(UINT8 value) {  void menu_setjoystick(UINT8 value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         xmiloscfg.JOYSTICK &= 0x80;          xmiloscfg.JOYSTICK &= 0x80;
         xmiloscfg.JOYSTICK |= (value & 0x7f);          xmiloscfg.JOYSTICK |= (value & 0x7f);
         if (value & 2) {          if (value & 2) {
Line 261  void menu_setmouse(UINT8 value) { Line 340  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(extclass_gethmenu(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;
         xmilcfg.MOTOR = value;          xmilcfg.MOTOR = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_SEEKSND, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_SEEKSND, MFCHECK(value));
 }  }
   
 void menu_opmlog(UINT8 value) {  void menu_opmlog(UINT8 value) {
   
         CheckMenuItem(GetMenu(hWndMain), IDM_OPMLOG, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_OPMLOG, MFCHECK(value));
 }  }
   
 void menu_setdispclk(UINT8 value) {  void menu_setdispclk(UINT8 value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         value &= 3;          value &= 3;
         xmiloscfg.DISPCLK = value;          xmiloscfg.DISPCLK = value;
         CheckMenuItem(hmenu, IDM_DISPCLOCK, MFCHECK(value & 1));          CheckMenuItem(hmenu, IDM_DISPCLOCK, MFCHECK(value & 1));
Line 300  void menu_setbtnmode(UINT8 value) { Line 372  void menu_setbtnmode(UINT8 value) {
   
         value &= 1;          value &= 1;
         xmilcfg.BTN_MODE = value;          xmilcfg.BTN_MODE = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_JOYX, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_JOYX, MFCHECK(value));
 }  }
   
 void menu_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(extclass_gethmenu(hWndMain), IDM_RAPID, MFCHECK(value));
 }  }
   

Removed from v.1.9  
changed lines
  Added in v.1.15


RetroPC.NET-CVS <cvs@retropc.net>