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

version 1.5, 2004/08/07 10:53:01 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) {
   
 // ----  // ----
   
 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;
   
         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);
 }  }
   
 void xmenu_setiplrom(UINT8 num) {  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));
         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;
   
         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 136  void xmenu_setbootmedia(UINT8 value) { Line 246  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 = GetMenu(hWndMain);  
         CheckMenuItem(hmenu, IDM_WIDTH80, MFCHECK(!value));  
         CheckMenuItem(hmenu, IDM_WIDTH40, MFCHECK(value));  
 }  
   
 void xmenu_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 157  void xmenu_setresolute(UINT8 value) { Line 258  void xmenu_setresolute(UINT8 value) {
         CheckMenuItem(hmenu, IDM_LOWRES, MFCHECK(value));          CheckMenuItem(hmenu, IDM_LOWRES, MFCHECK(value));
 }  }
   
 void xmenu_setdispmode(UINT8 value) {  void menu_setwidth(UINT8 value) {
   
           HMENU   hmenu;
   
           hmenu = extclass_gethmenu(hWndMain);
           CheckMenuItem(hmenu, IDM_WIDTH80, MFCHECK(!value));
           CheckMenuItem(hmenu, IDM_WIDTH40, MFCHECK(value));
   }
   
   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) {
   
           value &= 1;
           xmilcfg.RASTER = value;
           CheckMenuItem(extclass_gethmenu(hWndMain), IDM_RASTER, MFCHECK(value));
 }  }
   
 void xmenu_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 xmenu_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 184  void xmenu_setframe(UINT8 value) { Line 301  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;
   
         hmenu = GetMenu(hWndMain);          hmenu = extclass_gethmenu(hWndMain);
         if (value >= 3) {          if (value >= 3) {
                 value = 0;                  value = 0;
         }          }
Line 198  void xmenu_setkey(UINT8 value) { Line 315  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(extclass_gethmenu(hWndMain), IDM_FMBOARD, MFCHECK(value));
 }  }
   
 void xmenu_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 219  void xmenu_setjoystick(UINT8 value) { Line 336  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(extclass_gethmenu(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(extclass_gethmenu(hWndMain), IDM_SEEKSND, MFCHECK(value));
 }  }
   
 void xmenu_opmlog(UINT8 value) {  void menu_opmlog(UINT8 value) {
   
         CheckMenuItem(GetMenu(hWndMain), IDM_OPMLOG, MFCHECK(value));          CheckMenuItem(extclass_gethmenu(hWndMain), IDM_OPMLOG, MFCHECK(value));
 }  }
   
 void xmenu_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 258  void xmenu_setdispclk(UINT8 value) { Line 368  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(extclass_gethmenu(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(extclass_gethmenu(hWndMain), IDM_RAPID, MFCHECK(value));
 }  
   
 void xmenu_setz80save(UINT8 value) {  
   
         if (!value) {  
                 EnableMenuItem(GetMenu(hWndMain), IDM_Z80SAVE, MF_GRAYED);  
         }  
 }  }
   

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


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