Diff for /np2/win9x/menu.cpp between versions 1.30 and 1.31

version 1.30, 2007/12/17 14:52:54 version 1.31, 2007/12/28 20:36:39
Line 7 Line 7
 #include        "pccore.h"  #include        "pccore.h"
   
   
   BOOL menu_searchmenu(HMENU hMenu, UINT uID, HMENU *phmenuRet, int *pnPos)
 #define MFCHECK(a) ((a)?MF_CHECKED:MF_UNCHECKED)  
   
 static BOOL searchchildmenu(HMENU hMenu, UINT uID,  
                                                                                                 HMENU *phmenuRet, UINT *puPos)  
 {  {
         UINT                    nCount;          int                             nCount;
         UINT                    i;          int                             i;
         MENUITEMINFO    mii;          MENUITEMINFO    mii;
   
         nCount = GetMenuItemCount(hMenu);          nCount = GetMenuItemCount(hMenu);
Line 31  static BOOL searchchildmenu(HMENU hMenu, Line 27  static BOOL searchchildmenu(HMENU hMenu,
                                 {                                  {
                                         *phmenuRet = hMenu;                                          *phmenuRet = hMenu;
                                 }                                  }
                                 if (puPos)                                  if (pnPos)
                                 {                                  {
                                         *puPos = i;                                          *pnPos = i;
                                 }                                  }
                                 return TRUE;                                  return TRUE;
                         }                          }
                         else if ((mii.hSubMenu) &&                          else if ((mii.hSubMenu) &&
                                         (searchchildmenu(mii.hSubMenu, uID, phmenuRet, puPos)))                                          (menu_searchmenu(mii.hSubMenu, uID, phmenuRet, pnPos)))
                         {                          {
                                 return TRUE;                                  return TRUE;
                         }                          }
Line 47  static BOOL searchchildmenu(HMENU hMenu, Line 43  static BOOL searchchildmenu(HMENU hMenu,
         return FALSE;          return FALSE;
 }  }
   
   #if 0
 static BOOL searchsubmenu(HMENU hMenu, HMENU hmenuTarget,  static BOOL searchsubmenu(HMENU hMenu, HMENU hmenuTarget,
                                                                                                 HMENU *phmenuRet, UINT *puPos)                                                                                                  HMENU *phmenuRet, int *pnPos)
 {  {
         UINT                    nCount;          int                             nCount;
         UINT                    i;          int                             i;
         MENUITEMINFO    mii;          MENUITEMINFO    mii;
   
         nCount = GetMenuItemCount(hMenu);          nCount = GetMenuItemCount(hMenu);
Line 68  static BOOL searchsubmenu(HMENU hMenu, H Line 65  static BOOL searchsubmenu(HMENU hMenu, H
                                 {                                  {
                                         *phmenuRet = hMenu;                                          *phmenuRet = hMenu;
                                 }                                  }
                                 if (puPos)                                  if (pnPos)
                                 {                                  {
                                         *puPos = i;                                          *pnPos = i;
                                 }                                  }
                                 return TRUE;                                  return TRUE;
                         }                          }
                         if (searchsubmenu(mii.hSubMenu, hmenuTarget, phmenuRet, puPos))                          if (searchsubmenu(mii.hSubMenu, hmenuTarget, phmenuRet, pnPos))
                         {                          {
                                 return TRUE;                                  return TRUE;
                         }                          }
Line 82  static BOOL searchsubmenu(HMENU hMenu, H Line 79  static BOOL searchsubmenu(HMENU hMenu, H
         }          }
         return FALSE;          return FALSE;
 }  }
   #endif  // 0
   
 // これってAPIあるのか?  // これってAPIあるのか?
 static UINT addmenu(HMENU hMenu, UINT uPos, HMENU hmenuAdd, BOOL bSeparator)  int menu_addmenu(HMENU hMenu, int nPos, HMENU hmenuAdd, BOOL bSeparator)
 {  {
         UINT                    uCount;          int                             nCount;
         UINT                    uAdded;          int                             nAdded;
         UINT                    i;          int                             i;
         MENUITEMINFO    mii;          MENUITEMINFO    mii;
         TCHAR                   szString[128];          TCHAR                   szString[128];
         HMENU                   hmenuSub;          HMENU                   hmenuSub;
   
         uCount = GetMenuItemCount(hmenuAdd);          if (nPos < 0)
         uAdded = 0;          {
         for (i=0; i<uCount; i++)                  nPos = GetMenuItemCount(hMenu);
           }
           nCount = GetMenuItemCount(hmenuAdd);
           nAdded = 0;
           for (i=0; i<nCount; i++)
         {          {
                 ZeroMemory(&mii, sizeof(mii));                  ZeroMemory(&mii, sizeof(mii));
                 mii.cbSize = sizeof(mii);                  mii.cbSize = sizeof(mii);
Line 108  static UINT addmenu(HMENU hMenu, UINT uP Line 110  static UINT addmenu(HMENU hMenu, UINT uP
                         if (mii.hSubMenu)                          if (mii.hSubMenu)
                         {                          {
                                 hmenuSub = CreatePopupMenu();                                  hmenuSub = CreatePopupMenu();
                                 (void)addmenu(hmenuSub, 0, mii.hSubMenu, FALSE);                                  (void)menu_addmenu(hmenuSub, 0, mii.hSubMenu, FALSE);
                                 mii.hSubMenu = hmenuSub;                                  mii.hSubMenu = hmenuSub;
                         }                          }
                         if (bSeparator)                          if (bSeparator)
                         {                          {
                                 bSeparator = FALSE;                                  bSeparator = FALSE;
                                 InsertMenu(hMenu, uPos + uAdded, MF_SEPARATOR, 0, NULL);                                  InsertMenu(hMenu, nPos + nAdded, MF_BYPOSITION | MF_SEPARATOR,
                                 uAdded++;                                                                                                                                          0, NULL);
                                   nAdded++;
                         }                          }
                         InsertMenuItem(hMenu, uPos + uAdded, TRUE, &mii);                          InsertMenuItem(hMenu, nPos + nAdded, TRUE, &mii);
                         uAdded++;                          nAdded++;
                 }                  }
         }          }
         return uAdded;          return nAdded;
 }  }
   
 static UINT addmenures(HMENU hMenu, UINT uPos, UINT uID, BOOL bSeparator)  int menu_addmenures(HMENU hMenu, int nPos, UINT uID, BOOL bSeparator)
 {  {
         UINT    uCount;          int             nCount;
         HMENU   hmenuAdd;          HMENU   hmenuAdd;
   
         uCount = 0;          nCount = 0;
         hmenuAdd = LoadMenu(g_hInstance, MAKEINTRESOURCE(uID));          hmenuAdd = LoadMenu(g_hInstance, MAKEINTRESOURCE(uID));
         if (hmenuAdd)          if (hmenuAdd)
         {          {
                 uCount = addmenu(hMenu, uPos, hmenuAdd, bSeparator);                  nCount = menu_addmenu(hMenu, nPos, hmenuAdd, bSeparator);
                 DestroyMenu(hmenuAdd);                  DestroyMenu(hmenuAdd);
         }          }
         return uCount;          return nCount;
 }  }
   
 static UINT addmenubyid(HMENU hMenu, UINT uByID, UINT uID)  int menu_addmenubyid(HMENU hMenu, UINT uByID, UINT uID)
 {  {
         UINT    uCount;          int             nCount;
         HMENU   hmenuSub;          HMENU   hmenuSub;
         UINT    uSubPos;          int             nSubPos;
   
         uCount = 0;          nCount = 0;
         if (searchchildmenu(hMenu, uByID, &hmenuSub, &uSubPos))          if (menu_searchmenu(hMenu, uByID, &hmenuSub, &nSubPos))
         {          {
                 uCount = addmenures(hmenuSub, uSubPos + 1, uID, FALSE);                  nCount = menu_addmenures(hmenuSub, nSubPos + 1, uID, FALSE);
         }          }
         return uCount;          return nCount;
 }  }
   
   BOOL menu_insertmenures(HMENU hMenu, int nPosition, UINT uFlags,
 static void insertresmenu(HMENU hMenu, UINT uPosition, UINT uFlags,                                                                                          UINT_PTR uIDNewItem, UINT uID)
                                                                                                 UINT_PTR uIDNewItem, UINT uID)  
 {  {
           BOOL    bResult;
         TCHAR   szString[128];          TCHAR   szString[128];
   
         if (LoadString(g_hInstance, uID, szString, NELEMENTS(szString)))           bResult = FALSE;
           if (loadstringresource(uID, szString, NELEMENTS(szString)))
         {          {
                 InsertMenu(hMenu, uPosition, uFlags, uIDNewItem, szString);                  bResult = InsertMenu(hMenu, nPosition, uFlags, uIDNewItem, szString);
         }          }
           return bResult;
 }  }
   
 void menu_addmenubar(HMENU popup, HMENU menubar)  void menu_addmenubar(HMENU popup, HMENU menubar)
 {  {
         (void)addmenu(popup, 0, menubar, FALSE);          (void)menu_addmenu(popup, 0, menubar, FALSE);
 }  }
   
   
Line 182  void sysmenu_initialize(void) Line 187  void sysmenu_initialize(void)
         uPos = 0;          uPos = 0;
   
 #if defined(SUPPORT_KEYDISP)  #if defined(SUPPORT_KEYDISP)
         uPos += addmenures(hMenu, uPos, IDR_SYSKEYDISP, FALSE);          uPos += menu_addmenures(hMenu, uPos, IDR_SYSKEYDISP, FALSE);
 #endif  #endif
 #if defined(SUPPORT_SOFTKBD)  #if defined(SUPPORT_SOFTKBD)
         uPos += addmenures(hMenu, uPos, IDR_SYSSOFTKBD, FALSE);          uPos += menu_addmenures(hMenu, uPos, IDR_SYSSOFTKBD, FALSE);
 #endif  #endif
   
         uPos += addmenures(hMenu, uPos, IDR_SYS, FALSE);          uPos += menu_addmenures(hMenu, uPos, IDR_SYS, FALSE);
         if (np2oscfg.I286SAVE)          if (np2oscfg.I286SAVE)
         {          {
 #if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32)  #if defined(CPUCORE_IA32) && defined(SUPPORT_MEMDBG32)
                 uPos += addmenures(hMenu, uPos, IDR_SYSDEBUG32, FALSE);                  uPos += menu_addmenures(hMenu, uPos, IDR_SYSDEBUG32, FALSE);
 #endif  #endif
                 uPos += addmenures(hMenu, uPos, IDR_SYSDEBUG, FALSE);                  uPos += menu_addmenures(hMenu, uPos, IDR_SYSDEBUG, FALSE);
         }          }
 }  }
   
Line 267  void sysmenu_setscrnmul(UINT8 value) { Line 272  void sysmenu_setscrnmul(UINT8 value) {
 void xmenu_initialize(void)  void xmenu_initialize(void)
 {  {
         HMENU   hMenu;          HMENU   hMenu;
         UINT    uPos;          int             nPos;
         HMENU   hmenuSub;          HMENU   hmenuSub;
         UINT    i;          UINT    i;
         UINT    uSubPos;          int             nSubPos;
   
         hMenu = np2class_gethmenu(g_hWndMain);          hMenu = np2class_gethmenu(g_hWndMain);
   
         uPos = 1;          nPos = 1;
 #if defined(SUPPORT_STATSAVE)  #if defined(SUPPORT_STATSAVE)
         if (np2oscfg.statsave)          if (np2oscfg.statsave)
         {          {
                 uPos += addmenures(hMenu, uPos, IDR_STAT, FALSE);                  nPos += menu_addmenures(hMenu, nPos, IDR_STAT, FALSE);
         }          }
 #endif  #endif
   
Line 286  void xmenu_initialize(void) Line 291  void xmenu_initialize(void)
         {          {
                 if (np2cfg.fddequip & (1 << i))                  if (np2cfg.fddequip & (1 << i))
                 {                  {
                         uPos += addmenures(hMenu, uPos, IDR_FDD1MENU + i, FALSE);                          nPos += menu_addmenures(hMenu, nPos, IDR_FDD1MENU + i, FALSE);
                 }                  }
         }          }
   
         hmenuSub = CreatePopupMenu();          hmenuSub = CreatePopupMenu();
         if (hmenuSub)          if (hmenuSub)
         {          {
                 uSubPos = 0;                  nSubPos = 0;
 #if defined(SUPPORT_IDEIO)  #if defined(SUPPORT_IDEIO)
                 uSubPos += addmenures(hmenuSub, uSubPos, IDR_IDEMENU, FALSE);                  nSubPos += menu_addmenures(hmenuSub, nSubPos, IDR_IDEMENU, FALSE);
 #else  #else
                 uSubPos += addmenures(hmenuSub, uSubPos, IDR_SASIMENU, FALSE);                  nSubPos += menu_addmenures(hmenuSub, nSubPos, IDR_SASIMENU, FALSE);
 #endif  #endif
 #if defined(SUPPORT_SCSI)  #if defined(SUPPORT_SCSI)
                 uSubPos += addmenures(hmenuSub, uSubPos, IDR_SCSIMENU, TRUE);                  nSubPos += menu_addmenures(hmenuSub, nSubPos, IDR_SCSIMENU, TRUE);
 #endif  #endif
                 insertresmenu(hMenu, uPos, MF_BYPOSITION | MF_POPUP,                  menu_insertmenures(hMenu, nPos, MF_BYPOSITION | MF_POPUP,
                                                                                                 (UINT_PTR)hmenuSub, IDS_HDD);                                                                                                  (UINT_PTR)hmenuSub, IDS_HDD);
         }          }
   
 #if defined(SUPPORT_PX)  #if defined(SUPPORT_PX)
         (void)addmenubyid(hMenu, IDM_SPARKBOARD, IDR_PXMENU);          (void)menu_addmenubyid(hMenu, IDM_SPARKBOARD, IDR_PXMENU);
 #endif  #endif
   
 #if defined(SUPPORT_WAVEREC)  #if defined(SUPPORT_WAVEREC)
         (void)addmenubyid(hMenu, IDM_S98LOGGING, IDR_WAVEREC);          (void)menu_addmenubyid(hMenu, IDM_S98LOGGING, IDR_WAVEREC);
 #endif  #endif
   
         if (np2oscfg.I286SAVE)          if (np2oscfg.I286SAVE)
         {          {
 #if defined(SUPPORT_PC9821)  #if defined(SUPPORT_PC9821)
                 (void)addmenubyid(hMenu, IDM_SSTP, IDR_CPUSAVE32);                  (void)menu_addmenubyid(hMenu, IDM_SSTP, IDR_CPUSAVE32);
 #else   //      defined(SUPPORT_PC9821)  #else   //      defined(SUPPORT_PC9821)
                 (void)addmenubyid(hMenu, IDM_SSTP, IDR_CPUSAVE16);                  (void)menu_addmenubyid(hMenu, IDM_SSTP, IDR_CPUSAVE16);
 #endif  //      defined(SUPPORT_PC9821)  #endif  //      defined(SUPPORT_PC9821)
         }          }
 }  }

Removed from v.1.30  
changed lines
  Added in v.1.31


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