Add options dialog.

svn path=/trunk/; revision=26969
This commit is contained in:
Eric Kohl 2007-06-02 16:32:19 +00:00
parent ac282bf4e4
commit 337e46a378
15 changed files with 234 additions and 13 deletions

View file

@ -39,6 +39,22 @@ BEGIN
PUSHBUTTON "Abbrechen",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Optionen"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Karten", -1, 7, 7, 65, 40
AUTORADIOBUTTON "&Eine ziehen", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "&Drei ziehen", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Zeit anzeigen", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatusleiste", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,35,97,50,14
PUSHBUTTON "Abbrechen",IDCANCEL,101,97,50,14
END
/////
// DESIGNINFO

View file

@ -40,6 +40,23 @@ BEGIN
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -39,6 +39,21 @@ BEGIN
PUSHBUTTON "Cancelar",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -39,6 +39,21 @@ BEGIN
PUSHBUTTON "Annuler",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -40,6 +40,21 @@ BEGIN
PUSHBUTTON "Batal",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -39,6 +39,21 @@ BEGIN
PUSHBUTTON "Annulla",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -40,6 +40,21 @@ BEGIN
PUSHBUTTON "Avbryt",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -38,6 +38,21 @@ DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "Anuluj",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -40,6 +40,21 @@ BEGIN
PUSHBUTTON "¡àÅÔ¡", IDCANCEL, 129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -39,6 +39,21 @@ BEGIN
PUSHBUTTON "Ñêàñóâàòè",IDCANCEL,129,24,50,14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -40,6 +40,21 @@ BEGIN
PUSHBUTTON "È¡Ïû", IDCANCEL, 129, 24, 50, 14
END
IDD_OPTIONS DIALOG DISCARDABLE 0, 0, 186, 118
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Cards", -1, 7, 7, 65, 40
AUTORADIOBUTTON "Draw &One", IDC_OPT_DRAWONE, 14, 19, 52, 10, WS_GROUP | WS_TABSTOP
AUTORADIOBUTTON "Draw &Three", IDC_OPT_DRAWTHREE, 14, 32, 52, 10
AUTOCHECKBOX "&Show Time", IDC_OPT_SHOWTIME, 7 ,51 ,65 ,10, WS_TABSTOP
AUTOCHECKBOX "S&tatus bar", IDC_OPT_STATUSBAR, 7, 66, 64, 10, WS_TABSTOP
DEFPUSHBUTTON "OK", IDOK, 35, 97, 50, 14
PUSHBUTTON "Cancel", IDCANCEL, 101, 97, 50, 14
END
/////
// DESIGNINFO

View file

@ -5,7 +5,9 @@
#define IDD_DIALOG1 101
#define IDR_MENU1 102
#define IDR_ACCELERATOR1 103
#define IDI_ICON1 104
#define IDI_ICON1 1004
#define IDM_GAME_NEW 40001
#define IDM_GAME_DECK 40002
#define IDM_GAME_OPTIONS 40003
@ -13,6 +15,12 @@
#define IDM_HELP_CONTENTS 40005
#define IDM_HELP_ABOUT 40006
#define IDD_OPTIONS 1200
#define IDC_OPT_DRAWONE 1201
#define IDC_OPT_DRAWTHREE 1202
#define IDC_OPT_SHOWTIME 1203
#define IDC_OPT_STATUSBAR 1204
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED

View file

@ -319,7 +319,7 @@ void CARDLIBPROC DeckClickProc(CardRegion &stackobj, int iNumClicked)
{
TRACE("ENTER DeckClickProc()\n");
CardStack cardstack = stackobj.GetCardStack();
CardStack pile = pPile->GetCardStack();
CardStack pile = pPile->GetCardStack();
fGameStarted = true;
@ -336,8 +336,8 @@ void CARDLIBPROC DeckClickProc(CardRegion &stackobj, int iNumClicked)
}
else
{
int numcards = min(3, cardstack.NumCards());
int numcards = min((nOptions & OPTION_THREE_CARDS) ? 3 : 1, cardstack.NumCards());
//make a "visible" copy of these cards
CardStack temp;
temp = cardstack.Pop(numcards);

View file

@ -16,6 +16,7 @@ HWND hwndStatus;
HINSTANCE hInstance;
TCHAR szAppName[] = _T("Solitaire");
INT nOptions = 8;
CardWindow SolWnd;
@ -44,7 +45,7 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, PSTR szCmdLine, int iCmdSh
MSG msg;
WNDCLASSEX wndclass;
INITCOMMONCONTROLSEX ice;
HACCEL hAccelTable;
HACCEL hAccelTable;
hInstance = hInst;
@ -111,6 +112,51 @@ int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, PSTR szCmdLine, int iCmdSh
return msg.wParam;
}
VOID LoadSettings(VOID)
{
}
BOOL CALLBACK OptionsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
CheckRadioButton(hDlg, IDC_OPT_DRAWONE, IDC_OPT_DRAWTHREE,
(nOptions & OPTION_THREE_CARDS) ? IDC_OPT_DRAWTHREE : IDC_OPT_DRAWONE);
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
nOptions &= ~OPTION_THREE_CARDS;
if (IsDlgButtonChecked(hDlg, IDC_OPT_DRAWTHREE) == BST_CHECKED)
nOptions |= OPTION_THREE_CARDS;
EndDialog(hDlg, TRUE);
return TRUE;
case IDCANCEL:
EndDialog(hDlg, FALSE);
return TRUE;
}
break;
}
return FALSE;
}
VOID ShowGameOptionsDlg(HWND hwnd)
{
INT nOldOptions = nOptions;
if (DialogBox(hInstance, MAKEINTRESOURCE(IDD_OPTIONS), hwnd, OptionsDlgProc))
{
if ((nOldOptions & OPTION_THREE_CARDS) != (nOptions & OPTION_THREE_CARDS))
NewGame();
}
}
//-----------------------------------------------------------------------------
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
@ -126,7 +172,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
case WM_CREATE:
hwndStatus = CreateStatusWindow(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, "Ready", hwnd, 0);
//SendMessage(hwndStatus, SB_SIMPLE, (WPARAM)TRUE, 0);
SendMessage(hwndStatus, SB_SETPARTS, 2, (LPARAM)parts);
@ -156,14 +202,12 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
//MoveWindow(hwndStatus, 0, nHeight-nStatusHeight, nWidth, nHeight, TRUE);
//parts[0] = nWidth - 256;
//SendMessage(hwndStatus, SB_SETPARTS, 2, (LPARAM)parts);
return 0;
case WM_GETMINMAXINFO:
mmi = (MINMAXINFO *)lParam;
mmi = (MINMAXINFO *)lParam;
mmi->ptMinTrackSize.x = 600;
mmi->ptMinTrackSize.y = 400;
return 0;
case WM_COMMAND:
@ -180,18 +224,15 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
return 0;
case IDM_GAME_OPTIONS:
//ShowGameOptionsDlg(hwnd);
ShowGameOptionsDlg(hwnd);
return 0;
case IDM_HELP_CONTENTS:
WinHelp(hwnd, szHelpPath, HELP_CONTENTS, 0);//HELP_KEY, (DWORD)"How to play");
return 0;
case IDM_HELP_ABOUT:
MessageBox(hwnd, _T("Solitaire by J Brown\r\n\r\nCardLib version 1.0."), szAppName, MB_OK|MB_ICONINFORMATION);
return 0;
case IDM_GAME_EXIT:

View file

@ -5,6 +5,10 @@ extern CardWindow SolWnd;
extern TCHAR szAppName[];
extern bool fGameStarted;
#define OPTION_THREE_CARDS 8
extern INT nOptions;
void CreateSol();
void NewGame(void);