home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / gamtlk11.zip / source.zip / BLACKJACK / DIALOGS.C < prev    next >
C/C++ Source or Header  |  1999-03-29  |  3KB  |  104 lines

  1. /************************************************************************
  2.  *
  3.  * File: Dialogs.C
  4.  *
  5.  * Dialog processing for the BlackJack program.
  6.  *
  7.  ************************************************************************/
  8. #define INCL_WINDIALOGS
  9. #define INCL_WINWINDOWMGR
  10. #define INCL_WINMESSAGEMGR
  11. #define INCL_WINSTDSPIN
  12. #define INCL_WINBUTTONS
  13.  
  14. #include    "BlackJack.H"
  15. #include    "BlackJackRC.H"
  16.  
  17.     /* Functions defined in this file */
  18.  
  19. MRESULT EXPENTRY SettingsDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  20.  
  21. /************************************************************************
  22.  *
  23.  * SettingsDlgProc()
  24.  *
  25.  * Procedure for the settings dialog.
  26.  *
  27.  ************************************************************************/
  28. MRESULT EXPENTRY SettingsDlgProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
  29. {
  30.     switch(msg) {
  31.     case WM_INITDLG:
  32.     {
  33.         BJACK   *BJack=(BJACK *)mp2;
  34.  
  35.         /* Save window pointer */
  36.         WinSetWindowPtr(hwnd, 0, BJack);
  37.  
  38.         /* Set checkboxes */
  39.         if(BJack->Rules.Flags & RULE_ACESPLIT)
  40.             WinSendDlgItemMsg(hwnd, SettingsDlgResplit, BM_SETCHECK, MPFROMSHORT(1),
  41.                 MPFROMLONG(0));
  42.  
  43.         if(BJack->Rules.Flags & RULE_DOUBLE1011ONLY)
  44.             WinSendDlgItemMsg(hwnd, SettingsDlgDouble1011, BM_SETCHECK, MPFROMSHORT(1),
  45.                 MPFROMLONG(0));
  46.  
  47.         if(BJack->Rules.SoftHit==17)
  48.             WinSendDlgItemMsg(hwnd, SettingsDlgSoft17, BM_SETCHECK, MPFROMSHORT(1),
  49.                 MPFROMLONG(0));
  50.  
  51.         /* Set spin button limits */
  52.         WinSendDlgItemMsg(hwnd, SettingsDlgNumDecks, SPBM_SETLIMITS,
  53.             MPFROMLONG(MAX_NUMDECKS),MPFROMLONG(MIN_NUMDECKS));
  54.  
  55.         /* Set spin button value */
  56.         WinSendDlgItemMsg(hwnd, SettingsDlgNumDecks, SPBM_SETCURRENTVALUE,
  57.             MPFROMLONG(BJack->Rules.NumDecks), MPFROMLONG(0));
  58.     }   
  59.         break;
  60.      case WM_COMMAND:
  61.         switch(SHORT1FROMMP(mp1)) {
  62.         case DID_OK:
  63.         {
  64.             BJACK   *BJack=WinQueryWindowPtr(hwnd, 0);
  65.             ULONG   Temp;
  66.  
  67.             /* Save changes */
  68.             WinSendDlgItemMsg(hwnd, SettingsDlgNumDecks, SPBM_QUERYVALUE,
  69.                 MPFROMP(&Temp), MPFROM2SHORT(0, SPBQ_ALWAYSUPDATE));
  70.  
  71.             BJack->Rules.NumDecks=Temp;
  72.  
  73.             if(WinSendDlgItemMsg(hwnd, SettingsDlgResplit, BM_QUERYCHECK,
  74.                 MPFROMLONG(0), MPFROMLONG(0)))
  75.             BJack->Rules.Flags|=RULE_ACESPLIT;
  76.                 else BJack->Rules.Flags&=~RULE_ACESPLIT;
  77.  
  78.             if(WinSendDlgItemMsg(hwnd, SettingsDlgDouble1011, BM_QUERYCHECK,
  79.                 MPFROMLONG(0), MPFROMLONG(0)))
  80.             BJack->Rules.Flags|=RULE_DOUBLE1011ONLY;
  81.                 else BJack->Rules.Flags&=~RULE_DOUBLE1011ONLY;
  82.  
  83.             if(WinSendDlgItemMsg(hwnd, SettingsDlgSoft17, BM_QUERYCHECK,
  84.                 MPFROMLONG(0), MPFROMLONG(0)))
  85.             BJack->Rules.SoftHit=DEF_SOFTHIT;
  86.                 else BJack->Rules.SoftHit=DEF_HARDHIT;
  87.         }
  88.         case DID_CANCEL:
  89.             /* Close the dialog */
  90.             WinDismissDlg(hwnd, SHORT1FROMMP(mp1));
  91.             break;
  92.         default: 
  93.             return WinDefDlgProc(hwnd, msg, mp1, mp2);
  94.            break;
  95.         }
  96.         break;
  97.     default: 
  98.         return WinDefDlgProc(hwnd, msg, mp1, mp2);
  99.         break;
  100.     }
  101.     return (MRESULT)FALSE;
  102. }
  103.  
  104.