|  | /* | 
|  | * WineMine (dialog.c) | 
|  | * | 
|  | * Copyright 2000 Joshua Thielen | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library 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 | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | #define WIN32_LEAN_AND_MEAN | 
|  |  | 
|  | #include <windows.h> | 
|  | #include "main.h" | 
|  | #include "resource.h" | 
|  |  | 
|  | INT_PTR CALLBACK CustomDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) | 
|  | { | 
|  | BOOL IsRet; | 
|  | static BOARD *p_board; | 
|  |  | 
|  | switch( uMsg ) { | 
|  | case WM_INITDIALOG: | 
|  | p_board = (BOARD*) lParam; | 
|  | SetDlgItemInt( hDlg, IDC_EDITROWS, p_board->rows, FALSE ); | 
|  | SetDlgItemInt( hDlg, IDC_EDITCOLS, p_board->cols, FALSE ); | 
|  | SetDlgItemInt( hDlg, IDC_EDITMINES, p_board->mines, FALSE ); | 
|  | return TRUE; | 
|  |  | 
|  | case WM_COMMAND: | 
|  | switch( LOWORD( wParam ) ) { | 
|  | case IDOK: | 
|  | p_board->rows = GetDlgItemInt( hDlg, IDC_EDITROWS, &IsRet, FALSE ); | 
|  | p_board->cols = GetDlgItemInt( hDlg, IDC_EDITCOLS, &IsRet, FALSE ); | 
|  | p_board->mines = GetDlgItemInt( hDlg, IDC_EDITMINES, &IsRet, FALSE ); | 
|  | CheckLevel( p_board ); | 
|  | EndDialog( hDlg, 0 ); | 
|  | return TRUE; | 
|  |  | 
|  | case IDCANCEL: | 
|  | EndDialog( hDlg, 1 ); | 
|  | return TRUE; | 
|  | } | 
|  | break; | 
|  | } | 
|  | return FALSE; | 
|  | } | 
|  |  | 
|  | INT_PTR CALLBACK CongratsDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) | 
|  | { | 
|  | static BOARD *p_board; | 
|  |  | 
|  | switch( uMsg ) { | 
|  | case WM_INITDIALOG: | 
|  | p_board = (BOARD*) lParam; | 
|  | SetDlgItemText( hDlg, IDC_EDITNAME, | 
|  | p_board->best_name[p_board->difficulty] ); | 
|  | return TRUE; | 
|  |  | 
|  | case WM_COMMAND: | 
|  | switch( LOWORD( wParam ) ) { | 
|  | case IDOK: | 
|  | GetDlgItemText( hDlg, IDC_EDITNAME, | 
|  | p_board->best_name[p_board->difficulty], | 
|  | sizeof( p_board->best_name[p_board->difficulty] ) ); | 
|  | EndDialog( hDlg, 0 ); | 
|  | return TRUE; | 
|  |  | 
|  | case IDCANCEL: | 
|  | EndDialog( hDlg, 0 ); | 
|  | return TRUE; | 
|  | } | 
|  | break; | 
|  | } | 
|  | return FALSE; | 
|  | } | 
|  |  | 
|  | INT_PTR CALLBACK TimesDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ) | 
|  | { | 
|  | static BOARD *p_board; | 
|  | unsigned i; | 
|  |  | 
|  | switch( uMsg ) { | 
|  | case WM_INITDIALOG: | 
|  | p_board = (BOARD*) lParam; | 
|  |  | 
|  | /* set best names */ | 
|  | for( i = 0; i < 3; i++ ) | 
|  | SetDlgItemText( hDlg, (IDC_NAME1) + i, p_board->best_name[i] ); | 
|  |  | 
|  | /* set best times */ | 
|  | for( i = 0; i < 3; i++ ) | 
|  | SetDlgItemInt( hDlg, (IDC_TIME1) + i, p_board->best_time[i], FALSE ); | 
|  | return TRUE; | 
|  |  | 
|  | case WM_COMMAND: | 
|  | switch( LOWORD( wParam ) ) { | 
|  | case IDOK: | 
|  | case IDCANCEL: | 
|  | EndDialog( hDlg, 0 ); | 
|  | return TRUE; | 
|  | } | 
|  | break; | 
|  | } | 
|  | return FALSE; | 
|  | } |