⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialogs.c

📁 GNU国际象棋C++源代码Windows版的
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
 * dialogs.c - C source for GNU CHESS
 *
 * Copyright (c) 1996 Conor McCarthy
 * Some code derived from from Chess 3.21 by Daryl Baker
 *
 * This file is part of GNU CHESS.
 *
 * GNU Chess is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * GNU Chess is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with GNU Chess; see the file COPYING.  If not, write to
 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include "gnuchess.h"

char *lpszTitle;
tshort DlgInt1,DlgInt2,DlgInt3,DlgInt4,DlgInt5,DlgInt6;
long size;
extern HBRUSH hDlgBkgrnd;

BOOL CALLBACK ChangeWinDlgProc (HWND hDlg, UINT Message,
                                  WPARAM wParam, LPARAM lParam)
{
   BOOL ok;
   switch ( Message )
    {
      case WM_INITDIALOG:
         SetWindowText (hDlg,CP[69]);
         SetDlgItemText (hDlg, IDC_APROMPT, CP[11]);
         SetDlgItemText (hDlg, IDC_BPROMPT, CP[12]);
         SetDlgItemText (hDlg, IDC_XPROMPT, CP[38]);
         SetDlgItemText (hDlg, IDC_WHITE, CP[40]);
         SetDlgItemText (hDlg, IDC_BLACK, CP[41]);
         SetDlgItemInt ( hDlg, IDC_WA, WAwindow, true);
         SetDlgItemInt ( hDlg, IDC_WB, WBwindow, true);
         SetDlgItemInt ( hDlg, IDC_WX, WXwindow, true);
         SetDlgItemInt ( hDlg, IDC_BA, BAwindow, true);
         SetDlgItemInt ( hDlg, IDC_BB, BBwindow, true);
         SetDlgItemInt ( hDlg, IDC_BX, BXwindow, true);
         return true;

#ifdef WIN32
      case WM_CTLCOLORSTATIC:
        SetBkMode((HDC)wParam,TRANSPARENT);
      case WM_CTLCOLORDLG:
        return hDlgBkgrnd;
#else
      case WM_CTLCOLOR:
        switch(HIWORD(lParam))
         {
          case CTLCOLOR_STATIC:
           SetBkMode((HDC)wParam,TRANSPARENT);
          case CTLCOLOR_DLG:
           return hDlgBkgrnd;
         }
      return true;
#endif

      case WM_COMMAND:
         switch (LOWORD(wParam))
          {
            case IDOK:
               DlgInt1 = GetDlgItemInt (hDlg,IDC_WA,&ok,true);
               if (ok) DlgInt2 = GetDlgItemInt (hDlg,IDC_WB,&ok,true);
               if (ok) DlgInt3 = GetDlgItemInt (hDlg,IDC_WX,&ok,true);
               if (ok) DlgInt4 = GetDlgItemInt (hDlg,IDC_BA,&ok,true);
               if (ok) DlgInt5 = GetDlgItemInt (hDlg,IDC_BB,&ok,true);
               if (ok) DlgInt6 = GetDlgItemInt (hDlg,IDC_BX,&ok,true);
               if (ok) EndDialog ( hDlg, true);
               return true;

            case IDCANCEL:
               EndDialog ( hDlg, false);
               return true;
         }
    }
   return false;
}

BOOL CALLBACK HashDepthDlgProc (HWND hDlg, UINT Message,
                                  WPARAM wParam, LPARAM lParam)
{
   BOOL ok;
   switch ( Message )
    {
      case WM_INITDIALOG:
         SetWindowText(hDlg,CP[63]);
         SetDlgItemText (hDlg, IDC_DPROMPT, CP[49]);
         SetDlgItemText (hDlg, IDC_MLPROMPT, CP[29]);
         SetDlgItemInt ( hDlg, IDC_DEPTH, HashDepth, true);
         SetDlgItemInt ( hDlg, IDC_MOVELIM, HashMoveLimit, true);
         return true;

#ifdef WIN32
      case WM_CTLCOLORSTATIC:
        SetBkMode((HDC)wParam,TRANSPARENT);
      case WM_CTLCOLORDLG:
        return hDlgBkgrnd;
#else
      case WM_CTLCOLOR:
        switch(HIWORD(lParam))
         {
          case CTLCOLOR_STATIC:
           SetBkMode((HDC)wParam,TRANSPARENT);
          case CTLCOLOR_DLG:
           return hDlgBkgrnd;
         }
      return true;
#endif

      case WM_COMMAND:
         switch (LOWORD(wParam))
          {
            case IDOK:
               DlgInt1 = GetDlgItemInt (hDlg,IDC_DEPTH,&ok,true);
               if (ok) DlgInt2 = GetDlgItemInt (hDlg,IDC_MOVELIM,&ok,true);
               if (ok) EndDialog ( hDlg, true);
               return true;

            case IDCANCEL:
               EndDialog ( hDlg, false);
               return true;
         }
    }
   return false;
}

BOOL CALLBACK GetNumDlgProc (HWND hDlg, UINT Message,
                                  WPARAM wParam, LPARAM lParam)
{
   BOOL ok;
   switch ( Message )
    {
      case WM_INITDIALOG:
         SetWindowText(hDlg,lpszTitle);
         SetDlgItemText (hDlg, IDC_PROMPT, CP[lParam]);
         SetDlgItemInt ( hDlg, IDC_NUM, DlgInt1, true);
         return true;

#ifdef WIN32
      case WM_CTLCOLORSTATIC:
        SetBkMode((HDC)wParam,TRANSPARENT);
      case WM_CTLCOLORDLG:
        return hDlgBkgrnd;
#else
      case WM_CTLCOLOR:
        switch(HIWORD(lParam))
         {
          case CTLCOLOR_STATIC:
           SetBkMode((HDC)wParam,TRANSPARENT);
          case CTLCOLOR_DLG:
           return hDlgBkgrnd;
         }
      return true;
#endif

      case WM_COMMAND:
         switch (LOWORD(wParam))
          {
            case IDOK:
               DlgInt1 = GetDlgItemInt (hDlg, IDC_NUM, &ok, true);
               if (ok) EndDialog ( hDlg, true);
               return true;

            case IDCANCEL:
               EndDialog ( hDlg, false);
               return true;
         }
    }
   return false;
}

BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT Message,
                                  WPARAM wParam, LPARAM lParam)
{
   switch ( Message )
    {
      case WM_INITDIALOG:
         return true;

#ifdef WIN32
      case WM_CTLCOLORSTATIC:
        SetBkMode((HDC)wParam,TRANSPARENT);
      case WM_CTLCOLORDLG:
        return hDlgBkgrnd;
#else
      case WM_CTLCOLOR:
        switch(HIWORD(lParam))
         {
          case CTLCOLOR_STATIC:
           SetBkMode((HDC)wParam,TRANSPARENT);
          case CTLCOLOR_DLG:
           return hDlgBkgrnd;
         }
      return true;
#endif

      case WM_COMMAND:
         if (LOWORD(wParam)==IDOK)
           {
             EndDialog ( hDlg, true);
             return true;
           }
    }
   return false;
}

BOOL CALLBACK TimeDlgProc (HWND hDlg, UINT Message,
                                  WPARAM wParam, LPARAM lParam)
{
   BOOL ok;
   SHORT tXCmoves,tXCminutes,i;
   switch ( Message )
    {
      case WM_INITDIALOG:
         SetWindowText(hDlg,CP[65]);
         SetDlgItemInt (hDlg, IDC_MOVES1, XCmoves[0],false);
         SetDlgItemInt (hDlg, IDC_MINS1, XCminutes[0], false);
         SetDlgItemInt (hDlg, IDC_MOVES2, XCmoves[1],false);
         SetDlgItemInt (hDlg, IDC_MINS2, XCminutes[1], false);
         SetDlgItemInt (hDlg, IDC_MOVES3, XCmoves[2],false);
         SetDlgItemInt (hDlg, IDC_MINS3, XCminutes[2], false);
         SetDlgItemInt (hDlg, IDC_MAXRT, MaxResponseTime/100, false);
         for (i=0;i<3;i++)
          {
           SendDlgItemMessage(hDlg,IDC_MOVES1+i,CB_ADDSTRING,0,(long)"1");
           SendDlgItemMessage(hDlg,IDC_MOVES1+i,CB_ADDSTRING,0,(long)"10");
           SendDlgItemMessage(hDlg,IDC_MOVES1+i,CB_ADDSTRING,0,(long)"20");
           SendDlgItemMessage(hDlg,IDC_MOVES1+i,CB_ADDSTRING,0,(long)"40");
           SendDlgItemMessage(hDlg,IDC_MOVES1+i,CB_ADDSTRING,0,(long)"60");
           SendDlgItemMessage(hDlg,IDC_MINS1+i,CB_ADDSTRING,0,(long)"5");
           SendDlgItemMessage(hDlg,IDC_MINS1+i,CB_ADDSTRING,0,(long)"15");
           SendDlgItemMessage(hDlg,IDC_MINS1+i,CB_ADDSTRING,0,(long)"30");
           SendDlgItemMessage(hDlg,IDC_MINS1+i,CB_ADDSTRING,0,(long)"60");
           SendDlgItemMessage(hDlg,IDC_MINS1+i,CB_ADDSTRING,0,(long)"600");
          }
         if (!XCmoves[0] || !XCminutes[0])
          { EnableWindow(GetDlgItem(hDlg, IDC_MOVES2),false);
            EnableWindow(GetDlgItem(hDlg, IDC_MOVES3),false);
            EnableWindow(GetDlgItem(hDlg, IDC_MINS2),false);
            EnableWindow(GetDlgItem(hDlg, IDC_MINS3),false);
          }
         else
          { EnableWindow(GetDlgItem(hDlg, IDC_MAXRT),false);
            EnableWindow(GetDlgItem(hDlg, IDC_MRTEXT),false);
            EnableWindow(GetDlgItem(hDlg, IDC_MRSECS),!ok);
            if (!XCmoves[1] || !XCminutes[0])
             { EnableWindow(GetDlgItem(hDlg, IDC_MOVES3),false);
               EnableWindow(GetDlgItem(hDlg, IDC_MINS3),false);
             }
          }
         return true;

#ifdef WIN32
      case WM_CTLCOLORSTATIC:
        SetBkMode((HDC)wParam,TRANSPARENT);
      case WM_CTLCOLORDLG:
        return hDlgBkgrnd;
#else
      case WM_CTLCOLOR:
        switch(HIWORD(lParam))
         {
          case CTLCOLOR_STATIC:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -