home *** CD-ROM | disk | FTP | other *** search
/ The Best of Select: Games 3 / cd.iso / os2 / pmgnuchs / timecnt.c < prev    next >
Text File  |  1994-01-05  |  4KB  |  141 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:    Time Setting Dialog Logic (TimeCnt.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. //  License:
  21. //
  22. //    CHESS is distributed in the hope that it will be useful, but WITHOUT ANY
  23. //    WARRANTY.  No author or distributor accepts responsibility to anyone for
  24. //    the consequences of using it or for whether it serves any particular
  25. //    purpose or works at all, unless he says so in writing.  Refer to the
  26. //    CHESS General Public License for full details.
  27. //
  28. //    Everyone is granted permission to copy, modify and redistribute CHESS,
  29. //    but only under the conditions described in the CHESS General Public
  30. //    License.  A copy of this license is supposed to have been given to you
  31. //    along with CHESS so you can know your rights and responsibilities.  It
  32. //    should be in a file named COPYING.  Among other things, the copyright
  33. //    notice and this notice must be preserved on all copies.
  34. //
  35.  
  36. #define INCL_DOS
  37. #define INCL_PM
  38. #include <os2.h>
  39. #include "PmChess.h"
  40. #include "Resource.h"
  41.  
  42.  
  43. extern int TCmoves, TCminutes, TCflag;
  44.  
  45. //
  46. //  Define dialog procedure's prototypes.
  47. //
  48. MRESULT EXPENTRY TimeProc(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  49.  
  50.  
  51.  
  52. int TimeControlDialog(HWND hWnd)
  53.   {
  54.   int status;
  55.  
  56.   status = (int)(LONG)WinDlgBox(HWND_DESKTOP, hWnd, TimeProc, 0,
  57.                                 IDD_SKILL_TIME, NULL);
  58.  
  59.   return (status);
  60.   }
  61.  
  62.  
  63. MRESULT EXPENTRY TimeProc(HWND hDlg, ULONG msg, MPARAM mp1, MPARAM mp2)
  64.   {
  65.   register i;
  66.  
  67.  
  68.   switch (msg)
  69.     {
  70.     case WM_INITDLG:
  71.       if (TCminutes == 5)
  72.         i = IDC_SKILL_T5;
  73.       else if (TCminutes == 15)
  74.         i = IDC_SKILL_T15;
  75.       else if (TCminutes == 30)
  76.         i = IDC_SKILL_T30;
  77.       else if (TCminutes == 60)
  78.         i = IDC_SKILL_T60;
  79.       else
  80.         i = IDC_SKILL_T600;
  81.  
  82.       WinSendDlgItemMsg(hDlg, i, BM_SETCHECK, MPFROMSHORT(TRUE), NULL);
  83.  
  84.       if (TCmoves == 1)
  85.         i = IDC_SKILL_M1;
  86.       else if (TCmoves == 10)
  87.         i = IDC_SKILL_M10;
  88.       else if (TCmoves == 20)
  89.         i = IDC_SKILL_M20;
  90.       else if (TCmoves == 40)
  91.         i = IDC_SKILL_M40;
  92.       else
  93.         i = IDC_SKILL_M60;
  94.  
  95.       WinSendDlgItemMsg(hDlg, i, BM_SETCHECK, MPFROMSHORT(TRUE), NULL);
  96.       return (FALSE);
  97.  
  98.     case WM_COMMAND:
  99.       switch (SHORT1FROMMP(mp1))
  100.         {
  101.         case IDC_OK:
  102.           i = (SHORT)(LONG)WinSendDlgItemMsg(hDlg, IDC_SKILL_T5,
  103.                                              BM_QUERYCHECKINDEX, NULL, NULL);
  104.           if (i == 0)
  105.             TCminutes = 5;
  106.           else if (i == 1)
  107.             TCminutes = 15;
  108.           else if (i == 2)
  109.             TCminutes = 30;
  110.           else if (i == 3)
  111.             TCminutes = 60;
  112.           else
  113.             TCminutes = 600;
  114.  
  115.           i = (SHORT)(LONG)WinSendDlgItemMsg(hDlg, IDC_SKILL_M1,
  116.                                              BM_QUERYCHECKINDEX, NULL, NULL);
  117.  
  118.           if (i == 0)
  119.             TCmoves = 1;
  120.           else if (i == 1)
  121.             TCmoves = 10;
  122.           else if (i == 2)
  123.             TCmoves = 20;
  124.           else if (i == 3)
  125.             TCmoves = 40;
  126.           else
  127.             TCmoves = 60;
  128.  
  129.           WinDismissDlg(hDlg, TRUE);
  130.           break;
  131.  
  132.         case IDC_CANCEL:
  133.           WinDismissDlg(hDlg, FALSE);
  134.           break;
  135.         }
  136.       return (0);
  137.     }
  138.  
  139.   return (WinDefDlgProc(hDlg, msg, mp1, mp2));
  140.   }
  141.