Diff for /np2/win9x/menu.cpp between versions 1.6 and 1.10

version 1.6, 2003/11/03 00:49:55 version 1.10, 2004/01/24 18:20:06
Line 3 Line 3
 #include        "np2.h"  #include        "np2.h"
 #include        "sysmng.h"  #include        "sysmng.h"
 #include        "menu.h"  #include        "menu.h"
   #include        "np2class.h"
 #include        "pccore.h"  #include        "pccore.h"
   
   
Line 47  static const SMENUITEM smenuitem[] = { Line 48  static const SMENUITEM smenuitem[] = {
                         {smenu_1280x800,        IDM_SCRNMUL16},                          {smenu_1280x800,        IDM_SCRNMUL16},
                         {NULL,                          0}};                          {NULL,                          0}};
   
 void sysmenu_init(void) {  void sysmenu_initialize(void) {
   
         HMENU   hMenu;          HMENU   hMenu;
         UINT    i;          UINT    i;
Line 136  void sysmenu_setscrnmul(BYTE value) { Line 137  void sysmenu_setscrnmul(BYTE value) {
   
 // ----  // ----
   
   // これってAPIあるのか?
   void menu_addmenubar(HMENU popup, HMENU menubar) {
   
           UINT                    cnt;
           UINT                    pos;
           UINT                    i;
           MENUITEMINFO    mii;
           char                    str[128];
           HMENU                   hSubMenu;
   
           cnt = GetMenuItemCount(menubar);
           pos = 0;
           for (i=0; i<cnt; i++) {
                   ZeroMemory(&mii, sizeof(mii));
                   mii.cbSize = sizeof(mii);
                   mii.fMask = MIIM_TYPE | MIIM_STATE | MIIM_ID | MIIM_SUBMENU |
                                                                                                                                           MIIM_DATA;
                   mii.dwTypeData = str;
                   mii.cch = sizeof(str);
                   if (GetMenuItemInfo(menubar, i, TRUE, &mii)) {
                           if (mii.hSubMenu) {
                                   hSubMenu = CreatePopupMenu();
                                   menu_addmenubar(hSubMenu, mii.hSubMenu);
                                   mii.hSubMenu = hSubMenu;
                           }
                           InsertMenuItem(popup, pos, TRUE, &mii);
                           pos++;
                   }
           }
   }
   
   
   // ----
   
   static const char xmenu_stat[] = "S&tat";
   static const char xmenu_statsave[] = "Save %d";
   static const char xmenu_statload[] = "Load %d";
   static const char xmenu_scsi[] = "SCSI #%d";
   static const char xmenu_open[] = "&Open...";
   static const char xmenu_remove[] = "&Remove";
   
   static void addscsimenu(HMENU hMenu, UINT drv, UINT16 open, UINT16 eject) {
   
           HMENU   hSubMenu;
           char    buf[16];
   
           hSubMenu = CreatePopupMenu();
           AppendMenu(hSubMenu, MF_STRING, open, xmenu_open);
           AppendMenu(hSubMenu, MF_SEPARATOR, 0, NULL);
           AppendMenu(hSubMenu, MF_STRING, eject, xmenu_remove);
   
           SPRINTF(buf, xmenu_scsi, drv);
           AppendMenu(hMenu, MF_POPUP, (UINT32)hSubMenu, buf);
   }
   
   void xmenu_initialize(void) {
   
           HMENU   hMenu;
           HMENU   hSubMenu;
           int             i;
           char    buf[16];
   
           hMenu = np2class_gethmenu(hWndMain);
   
   #if defined(SUPPORT_SCSI)
           hSubMenu = GetSubMenu(hMenu, 3);
           AppendMenu(hSubMenu, MF_SEPARATOR, 0, NULL);
           addscsimenu(hSubMenu, 0, IDM_SCSI0OPEN, IDM_SCSI0EJECT);
           addscsimenu(hSubMenu, 1, IDM_SCSI1OPEN, IDM_SCSI1EJECT);
           addscsimenu(hSubMenu, 2, IDM_SCSI2OPEN, IDM_SCSI2EJECT);
           addscsimenu(hSubMenu, 3, IDM_SCSI3OPEN, IDM_SCSI3EJECT);
   #endif
   
           // めにゅー追加
           if (np2oscfg.statsave) {
                   hSubMenu = CreatePopupMenu();
                   for (i=0; i<STATSAVEMAX; i++) {
                           SPRINTF(buf, xmenu_statsave, i);
                           AppendMenu(hSubMenu, MF_STRING, IDM_FLAGSAVE + i, buf);
                   }
                   AppendMenu(hSubMenu, MF_MENUBARBREAK, 0, NULL);
                   for (i=0; i<STATSAVEMAX; i++) {
                           SPRINTF(buf, xmenu_statload, i);
                           AppendMenu(hSubMenu, MF_STRING, IDM_FLAGLOAD + i, buf);
                   }
                   InsertMenu(hMenu, 1, MF_BYPOSITION | MF_POPUP,
                                                                                                   (UINT32)hSubMenu, xmenu_stat);
           }
   }
   
 void xmenu_disablewindow(void) {  void xmenu_disablewindow(void) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = np2class_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 149  void xmenu_setroltate(BYTE value) { Line 240  void xmenu_setroltate(BYTE value) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_ROLNORMAL, MFCHECK(value == 0));          CheckMenuItem(hmenu, IDM_ROLNORMAL, MFCHECK(value == 0));
         CheckMenuItem(hmenu, IDM_ROLLEFT, MFCHECK(value == 1));          CheckMenuItem(hmenu, IDM_ROLLEFT, MFCHECK(value == 1));
         CheckMenuItem(hmenu, IDM_ROLRIGHT, MFCHECK(value == 2));          CheckMenuItem(hmenu, IDM_ROLRIGHT, MFCHECK(value == 2));
Line 159  void xmenu_setdispmode(BYTE value) { Line 250  void xmenu_setdispmode(BYTE value) {
   
         value &= 1;          value &= 1;
         np2cfg.DISPSYNC = value;          np2cfg.DISPSYNC = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_DISPSYNC, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_DISPSYNC, MFCHECK(value));
 }  }
   
 void xmenu_setraster(BYTE value) {  void xmenu_setraster(BYTE value) {
   
         value &= 1;          value &= 1;
         np2cfg.RASTER = value;          np2cfg.RASTER = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_RASTER, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_RASTER, MFCHECK(value));
 }  }
   
 void xmenu_setwaitflg(BYTE value) {  void xmenu_setwaitflg(BYTE value) {
   
         value &= 1;          value &= 1;
         np2oscfg.NOWAIT = value;          np2oscfg.NOWAIT = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_NOWAIT, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_NOWAIT, MFCHECK(value));
 }  }
   
 void xmenu_setframe(BYTE value) {  void xmenu_setframe(BYTE value) {
Line 181  void xmenu_setframe(BYTE value) { Line 272  void xmenu_setframe(BYTE value) {
         HMENU   hmenu;          HMENU   hmenu;
   
         np2oscfg.DRAW_SKIP = value;          np2oscfg.DRAW_SKIP = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_AUTOFPS, MFCHECK(value == 0));          CheckMenuItem(hmenu, IDM_AUTOFPS, MFCHECK(value == 0));
         CheckMenuItem(hmenu, IDM_60FPS, MFCHECK(value == 1));          CheckMenuItem(hmenu, IDM_60FPS, MFCHECK(value == 1));
         CheckMenuItem(hmenu, IDM_30FPS, MFCHECK(value == 2));          CheckMenuItem(hmenu, IDM_30FPS, MFCHECK(value == 2));
Line 197  void xmenu_setkey(BYTE value) { Line 288  void xmenu_setkey(BYTE value) {
                 value = 0;                  value = 0;
         }          }
         np2cfg.KEY_MODE = value;          np2cfg.KEY_MODE = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_KEY, MFCHECK(value == 0));          CheckMenuItem(hmenu, IDM_KEY, MFCHECK(value == 0));
         CheckMenuItem(hmenu, IDM_JOY1, MFCHECK(value == 1));          CheckMenuItem(hmenu, IDM_JOY1, MFCHECK(value == 1));
         CheckMenuItem(hmenu, IDM_JOY2, MFCHECK(value == 2));          CheckMenuItem(hmenu, IDM_JOY2, MFCHECK(value == 2));
Line 208  void xmenu_setxshift(BYTE value) { Line 299  void xmenu_setxshift(BYTE value) {
         HMENU   hmenu;          HMENU   hmenu;
   
         np2cfg.XSHIFT = value;          np2cfg.XSHIFT = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_XSHIFT, MFCHECK(value & 1));          CheckMenuItem(hmenu, IDM_XSHIFT, MFCHECK(value & 1));
         CheckMenuItem(hmenu, IDM_XCTRL, MFCHECK(value & 2));          CheckMenuItem(hmenu, IDM_XCTRL, MFCHECK(value & 2));
         CheckMenuItem(hmenu, IDM_XGRPH, MFCHECK(value & 4));          CheckMenuItem(hmenu, IDM_XGRPH, MFCHECK(value & 4));
Line 222  void xmenu_setf12copy(BYTE value) { Line 313  void xmenu_setf12copy(BYTE value) {
                 value = 0;                  value = 0;
         }          }
         np2oscfg.F12COPY = value;          np2oscfg.F12COPY = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_F12MOUSE, MFCHECK(value == 0));          CheckMenuItem(hmenu, IDM_F12MOUSE, MFCHECK(value == 0));
         CheckMenuItem(hmenu, IDM_F12COPY, MFCHECK(value == 1));          CheckMenuItem(hmenu, IDM_F12COPY, MFCHECK(value == 1));
         CheckMenuItem(hmenu, IDM_F12STOP, MFCHECK(value == 2));          CheckMenuItem(hmenu, IDM_F12STOP, MFCHECK(value == 2));
Line 236  void xmenu_setbeepvol(BYTE value) { Line 327  void xmenu_setbeepvol(BYTE value) {
   
         value &= 3;          value &= 3;
         np2cfg.BEEP_VOL = value;          np2cfg.BEEP_VOL = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_BEEPOFF, MFCHECK(value == 0));          CheckMenuItem(hmenu, IDM_BEEPOFF, MFCHECK(value == 0));
         CheckMenuItem(hmenu, IDM_BEEPLOW, MFCHECK(value == 1));          CheckMenuItem(hmenu, IDM_BEEPLOW, MFCHECK(value == 1));
         CheckMenuItem(hmenu, IDM_BEEPMID, MFCHECK(value == 2));          CheckMenuItem(hmenu, IDM_BEEPMID, MFCHECK(value == 2));
Line 249  void xmenu_setsound(BYTE value) { Line 340  void xmenu_setsound(BYTE value) {
   
         sysmng_update(SYS_UPDATESBOARD);          sysmng_update(SYS_UPDATESBOARD);
         np2cfg.SOUND_SW = value;          np2cfg.SOUND_SW = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_NOSOUND, MFCHECK(value == 0));          CheckMenuItem(hmenu, IDM_NOSOUND, MFCHECK(value == 0x00));
         CheckMenuItem(hmenu, IDM_PC9801_14, MFCHECK(value & 1));          CheckMenuItem(hmenu, IDM_PC9801_14, MFCHECK(value == 0x01));
         CheckMenuItem(hmenu, IDM_PC9801_26K, MFCHECK(value & 2));          CheckMenuItem(hmenu, IDM_PC9801_26K, MFCHECK(value == 0x02));
         CheckMenuItem(hmenu, IDM_PC9801_86, MFCHECK(value & 4));          CheckMenuItem(hmenu, IDM_PC9801_86, MFCHECK(value == 0x04));
         CheckMenuItem(hmenu, IDM_PC9801_118, MFCHECK(value & 8));          CheckMenuItem(hmenu, IDM_PC9801_26_86, MFCHECK(value == 0x06));
         CheckMenuItem(hmenu, IDM_CHIBIOTO, MFCHECK(value & 0x10));          CheckMenuItem(hmenu, IDM_PC9801_86_CB, MFCHECK(value == 0x14));
         CheckMenuItem(hmenu, IDM_SPEAKBOARD, MFCHECK(value & 0x20));          CheckMenuItem(hmenu, IDM_PC9801_118, MFCHECK(value == 0x08));
         CheckMenuItem(hmenu, IDM_SPARKBOARD, MFCHECK(value & 0x40));          CheckMenuItem(hmenu, IDM_SPEAKBOARD, MFCHECK(value == 0x20));
         CheckMenuItem(hmenu, IDM_AMD98, MFCHECK(value & 0x80));          CheckMenuItem(hmenu, IDM_SPARKBOARD, MFCHECK(value == 0x40));
           CheckMenuItem(hmenu, IDM_AMD98, MFCHECK(value == 0x80));
   }
   
   void xmenu_setjastsound(BYTE value) {
   
           value &= 1;
           np2oscfg.jastsnd = value;
           CheckMenuItem(np2class_gethmenu(hWndMain), IDM_JASTSOUND, MFCHECK(value));
 }  }
   
 void xmenu_setmotorflg(BYTE value) {  void xmenu_setmotorflg(BYTE value) {
   
         value &= 1;          value &= 1;
         np2cfg.MOTOR = value;          np2cfg.MOTOR = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_SEEKSND, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_SEEKSND, MFCHECK(value));
 }  }
   
 void xmenu_setextmem(BYTE value) {  void xmenu_setextmem(BYTE value) {
Line 274  void xmenu_setextmem(BYTE value) { Line 373  void xmenu_setextmem(BYTE value) {
   
         sysmng_update(SYS_UPDATEMEMORY);          sysmng_update(SYS_UPDATEMEMORY);
         np2cfg.EXTMEM = value;          np2cfg.EXTMEM = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_MEM640, MFCHECK(value == 0));          CheckMenuItem(hmenu, IDM_MEM640, MFCHECK(value == 0));
         CheckMenuItem(hmenu, IDM_MEM16, MFCHECK(value == 1));          CheckMenuItem(hmenu, IDM_MEM16, MFCHECK(value == 1));
         CheckMenuItem(hmenu, IDM_MEM36, MFCHECK(value == 3));          CheckMenuItem(hmenu, IDM_MEM36, MFCHECK(value == 3));
Line 285  void xmenu_setmouse(BYTE value) { Line 384  void xmenu_setmouse(BYTE value) {
   
         value &= 1;          value &= 1;
         np2oscfg.MOUSE_SW = value;          np2oscfg.MOUSE_SW = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_MOUSE, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_MOUSE, MFCHECK(value));
 }  }
   
 void xmenu_sets98logging(BYTE value) {  void xmenu_sets98logging(BYTE value) {
   
         CheckMenuItem(GetMenu(hWndMain), IDM_S98LOGGING, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain),
                                                                                           IDM_S98LOGGING, MFCHECK(value));
 }  }
   
 void xmenu_setshortcut(BYTE value) {  void xmenu_setshortcut(BYTE value) {
Line 298  void xmenu_setshortcut(BYTE value) { Line 398  void xmenu_setshortcut(BYTE value) {
         HMENU   hmenu;          HMENU   hmenu;
   
         np2oscfg.shortcut = value;          np2oscfg.shortcut = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_ALTENTER, MFCHECK(value & 1));          CheckMenuItem(hmenu, IDM_ALTENTER, MFCHECK(value & 1));
         CheckMenuItem(hmenu, IDM_ALTF4, MFCHECK(value & 2));          CheckMenuItem(hmenu, IDM_ALTF4, MFCHECK(value & 2));
 }  }
Line 309  void xmenu_setdispclk(BYTE value) { Line 409  void xmenu_setdispclk(BYTE value) {
   
         value &= 3;          value &= 3;
         np2oscfg.DISPCLK = value;          np2oscfg.DISPCLK = value;
         hmenu = GetMenu(hWndMain);          hmenu = np2class_gethmenu(hWndMain);
         CheckMenuItem(hmenu, IDM_DISPCLOCK, MFCHECK(value & 1));          CheckMenuItem(hmenu, IDM_DISPCLOCK, MFCHECK(value & 1));
         CheckMenuItem(hmenu, IDM_DISPFRAME, MFCHECK(value & 2));          CheckMenuItem(hmenu, IDM_DISPFRAME, MFCHECK(value & 2));
         sysmng_workclockrenewal();          sysmng_workclockrenewal();
Line 320  void xmenu_setbtnmode(BYTE value) { Line 420  void xmenu_setbtnmode(BYTE value) {
   
         value &= 1;          value &= 1;
         np2cfg.BTN_MODE = value;          np2cfg.BTN_MODE = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_JOYX, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_JOYX, MFCHECK(value));
 }  }
   
 void xmenu_setbtnrapid(BYTE value) {  void xmenu_setbtnrapid(BYTE value) {
   
         value &= 1;          value &= 1;
         np2cfg.BTN_RAPID = value;          np2cfg.BTN_RAPID = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_RAPID, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_RAPID, MFCHECK(value));
 }  }
   
 void xmenu_setmsrapid(BYTE value) {  void xmenu_setmsrapid(BYTE value) {
   
         value &= 1;          value &= 1;
         np2cfg.MOUSERAPID = value;          np2cfg.MOUSERAPID = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_MSRAPID, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_MSRAPID, MFCHECK(value));
 }  }
   
 void xmenu_setsstp(BYTE value) {  void xmenu_setsstp(BYTE value) {
   
         value &= 1;          value &= 1;
         np2oscfg.sstp = value;          np2oscfg.sstp = value;
         CheckMenuItem(GetMenu(hWndMain), IDM_SSTP, MFCHECK(value));          CheckMenuItem(np2class_gethmenu(hWndMain), IDM_SSTP, MFCHECK(value));
 }  }
   
 void xmenu_seti286save(BYTE value) {  void xmenu_seti286save(BYTE value) {
   
         if (value) {          if (value) {
                 InsertMenu(GetSubMenu(GetMenu(hWndMain), 6), 10,                  InsertMenu(GetSubMenu(np2class_gethmenu(hWndMain), 6), 10,
                                         MF_BYPOSITION | MF_STRING, IDM_I286SAVE, menu_i286save);                                          MF_BYPOSITION | MF_STRING, IDM_I286SAVE, menu_i286save);
         }          }
 }  }

Removed from v.1.6  
changed lines
  Added in v.1.10


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