home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / wps / games / gnuchess / sources / initmenu.c < prev    next >
C/C++ Source or Header  |  1990-11-30  |  4KB  |  120 lines

  1. //
  2. //  Copyright (C) 1986, 1987, 1988, 1989, 1990 Free Software Foundation, Inc.
  3. //  Copyright (c) 1988, 1989, 1990  John Stanback
  4. //
  5. //  Project:    OS/2 PM Port of GNU CHESS 3.1 (PmChess)
  6. //
  7. //  Version:    1990-11-17
  8. //
  9. //   Module:    Init/Update Menu Logic (MenuInit.c)
  10. //
  11. //   Porter:    Ported to Windows 3.0 by Darly Baker
  12. //
  13. //   Porter:    Ported to OS/2 1.2+ by Kent Cedola
  14. //
  15. //   System:    OS2 1.2 using Microsoft C 6.0
  16. //
  17. //  Remarks:    This code converted from Windows to PM using a straight port
  18. //              method with some editing improvements.
  19. //
  20.  
  21. #define INCL_DOS
  22. #define INCL_PM
  23. #include <os2.h>
  24. #include "PmChess.h"
  25. #include "GnuChess.h"
  26. #include "Resource.h"
  27.  
  28.  
  29. extern int coords;
  30.  
  31. void EnableMenuItem(HWND hwndMenu, USHORT idItem, BOOL bEnable)
  32.   {
  33.   if (bEnable)
  34.     WinSendMsg(hwndMenu, MM_SETITEMATTR, MPFROM2SHORT(idItem, TRUE),
  35.                MPFROM2SHORT(MIA_DISABLED, 0));
  36.   else
  37.     WinSendMsg(hwndMenu, MM_SETITEMATTR, MPFROM2SHORT(idItem, TRUE),
  38.                MPFROM2SHORT(MIA_DISABLED, MIA_DISABLED));
  39.   }
  40.  
  41.  
  42. void CheckMenuItem(HWND hwndMenu, USHORT idItem, BOOL bCheck)
  43.   {
  44.   if (bCheck)
  45.     WinSendMsg(hwndMenu, MM_SETITEMATTR, MPFROM2SHORT(idItem, TRUE),
  46.                MPFROM2SHORT(MIA_CHECKED, MIA_CHECKED));
  47.   else
  48.     WinSendMsg(hwndMenu, MM_SETITEMATTR, MPFROM2SHORT(idItem, TRUE),
  49.                MPFROM2SHORT(MIA_CHECKED, 0));
  50.   }
  51.  
  52.  
  53. void Init_Menus(HWND hWnd, MPARAM mp1, MPARAM mp2)
  54.   {
  55.   HWND   hwndMenu;
  56.   USHORT Status;
  57.  
  58.  
  59.   hwndMenu = HWNDFROMMP(mp2);
  60.  
  61.   switch (SHORT1FROMMP(mp1))
  62.     {
  63.     case IDM_EDIT:
  64.       EnableMenuItem(hwndMenu, IDM_EDIT_GAME,
  65.                              (GameCnt>0 ? TRUE : FALSE) );
  66.       EnableMenuItem(hwndMenu, IDM_EDIT_UNDO,
  67.                              (GameCnt>0 ? TRUE : FALSE) );
  68.       EnableMenuItem(hwndMenu, IDM_EDIT_REMOVE,
  69.                              (GameCnt>1 ? TRUE : FALSE) );
  70.       break;
  71.  
  72.     case IDM_OPTIONS:
  73.       if ( flag.hash == false)  Status = FALSE; else Status = TRUE;
  74.       CheckMenuItem ( hwndMenu, IDM_OPTIONS_HASH, Status);
  75.  
  76.       if ( coords == false)  Status = FALSE; else Status = TRUE;
  77.       CheckMenuItem ( hwndMenu, IDM_OPTIONS_COOR, Status);
  78.  
  79.       if ( flag.beep == false)  Status = FALSE; else Status = TRUE;
  80.       CheckMenuItem ( hwndMenu, IDM_OPTIONS_TONE, Status);
  81.  
  82.       if ( flag.bothsides == false)  Status = FALSE; else Status = TRUE;
  83.       CheckMenuItem ( hwndMenu, IDM_OPTIONS_BOTH, Status);
  84.  
  85.       if ( Book == NULL)  Status = FALSE; else Status = TRUE;
  86.       CheckMenuItem ( hwndMenu, IDM_OPTIONS_BOOK, Status);
  87.  
  88.       if ( flag.post == false)  Status = FALSE; else Status = TRUE;
  89.       CheckMenuItem ( hwndMenu, IDM_OPTIONS_STATS, Status);
  90.       break;
  91.  
  92.     case IDM_SKILL:
  93.       if ( dither == 0)
  94.         Status = FALSE; else Status = TRUE;
  95.       CheckMenuItem ( hwndMenu, IDM_SKILL_RANDOM, Status);
  96.   
  97.       if ( flag.easy == false)
  98.         Status = TRUE; else Status = FALSE;
  99.       CheckMenuItem ( hwndMenu, IDM_SKILL_EASY, Status);
  100.       break;
  101.  
  102.     case IDM_SIDE:
  103.       if ( flag.reverse == false)
  104.         Status = FALSE; else Status = TRUE;
  105.        CheckMenuItem ( hwndMenu, IDM_SIDE_REVERSE, Status);
  106.  
  107.       if (computer == black)
  108.         {
  109.         CheckMenuItem(hwndMenu, IDM_SIDE_BLACK, TRUE);
  110.         CheckMenuItem(hwndMenu, IDM_SIDE_WHITE, FALSE);
  111.         }
  112.       else
  113.         {
  114.         CheckMenuItem(hwndMenu, IDM_SIDE_WHITE, TRUE);
  115.         CheckMenuItem(hwndMenu, IDM_SIDE_BLACK, FALSE);
  116.         }
  117.       break;
  118.     }
  119.   }
  120.