X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=rosapps%2Fgames%2Fsolitaire%2Fsolitaire.cpp;h=92b57a1e8fe8c50b8b5d7fe9fc51d95a18945bc6;hp=dc2faf80fcbd2bce2f6f565be2e8adc4e6c1b880;hb=80e769db8d7d0a7666e1666b9bde6389633bb5db;hpb=33c313a6ff1879b0bfcd259d8c92cc9b2a261270 diff --git a/rosapps/games/solitaire/solitaire.cpp b/rosapps/games/solitaire/solitaire.cpp index dc2faf80fcb..92b57a1e8fe 100644 --- a/rosapps/games/solitaire/solitaire.cpp +++ b/rosapps/games/solitaire/solitaire.cpp @@ -1,222 +1,222 @@ -#include -#include -#include -#include "resource.h" -#include "cardlib/cardlib.h" - -#include "solitaire.h" - -TCHAR szHelpPath[MAX_PATH]; - -DWORD dwAppStartTime; -HWND hwndMain; -HWND hwndStatus; -HINSTANCE hInstance; - -TCHAR szAppName[] = _T("Solitaire"); - -CardWindow SolWnd; - -LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); - -void MakePath(TCHAR *szDest, UINT nDestLen, TCHAR *szExt) -{ - TCHAR *ptr; - - ptr = szDest + GetModuleFileName(GetModuleHandle(0), szDest, nDestLen) - 1; - while(*ptr-- != '.'); - lstrcpy(ptr + 1, szExt); -} - -int main ( int argc, char** argv ) -{ - return WinMain ( NULL, NULL, NULL, SW_SHOW ); -} - -// -// Main entry point -// -int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, PSTR szCmdLine, int iCmdShow) -{ - HWND hwnd; - MSG msg; - WNDCLASSEX wndclass; - INITCOMMONCONTROLSEX ice; - HACCEL hAccelTable; - - hInstance = hInst; - - //Window class for the main application parent window - wndclass.cbSize = sizeof(wndclass); - wndclass.style = 0;//CS_HREDRAW | CS_VREDRAW; - wndclass.lpfnWndProc = WndProc; - wndclass.cbClsExtra = 0; - wndclass.cbWndExtra = 0; - wndclass.hInstance = hInst; - wndclass.hIcon = LoadIcon (hInst, MAKEINTRESOURCE(IDI_ICON1)); - wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); - wndclass.hbrBackground = (HBRUSH)NULL; - wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); - wndclass.lpszClassName = szAppName; - wndclass.hIconSm = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 16, 16, 0); - - RegisterClassEx(&wndclass); - - ice.dwSize = sizeof(ice); - ice.dwICC = ICC_BAR_CLASSES; - InitCommonControlsEx(&ice); - - srand((unsigned)GetTickCount());//timeGetTime()); - -// InitCardLib(); - -// LoadSettings(); - - //Construct the path to our help file - MakePath(szHelpPath, MAX_PATH, _T(".hlp")); - - hwnd = CreateWindow(szAppName, // window class name - szAppName, // window caption - WS_OVERLAPPEDWINDOW - ,//|WS_CLIPCHILDREN, // window style - CW_USEDEFAULT, // initial x position - CW_USEDEFAULT, // initial y position - CW_USEDEFAULT, // initial x size - CW_USEDEFAULT, // initial y size - NULL, // parent window handle - NULL, // use window class menu - hInst, // program instance handle - NULL); // creation parameters - - hwndMain = hwnd; - - ShowWindow(hwnd, iCmdShow); - UpdateWindow(hwnd); - - hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1)); - - while(GetMessage(&msg, NULL,0,0)) - { - if(!TranslateAccelerator(hwnd, hAccelTable, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - -// SaveSettings(); - - return msg.wParam; -} - - -//----------------------------------------------------------------------------- -LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) -{ - static int nWidth, nHeight; - int nStatusHeight = 0;//20; - int parts[] = { 100, -1 }; - UINT ret; - - MINMAXINFO *mmi; - - switch(iMsg) - { - 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); - SendMessage(hwndStatus, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM)""); - - ShowWindow(hwndStatus, SW_HIDE); - - SolWnd.Create(hwnd, WS_EX_CLIENTEDGE, WS_CHILD|WS_VISIBLE, 0, 0, 0, 0); - - CreateSol(); - - NewGame(); - - dwAppStartTime = GetTickCount(); - - return 0; - - case WM_DESTROY: - PostQuitMessage(0); - return 0; - - case WM_SIZE: - nWidth = LOWORD(lParam); - nHeight = HIWORD(lParam); - - MoveWindow(SolWnd, 0, 0, nWidth, nHeight-nStatusHeight, TRUE); - //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->ptMinTrackSize.x = 600; - mmi->ptMinTrackSize.y = 400; - - return 0; - - case WM_COMMAND: - - switch(LOWORD(wParam)) - { - case IDM_GAME_NEW: - //simulate a button click on the new button.. - NewGame(); - return 0; - - case IDM_GAME_DECK: - //ShowDeckOptionsDlg(hwnd); - return 0; - - case IDM_GAME_OPTIONS: - //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("Solitare by J Brown\r\n\r\nCardLib version 1.0."), szAppName, MB_OK|MB_ICONINFORMATION); - - return 0; - - case IDM_GAME_EXIT: - PostMessage(hwnd, WM_CLOSE, 0, 0); - return 0; - } - - return 0; - - case WM_CLOSE: - - ret = IDOK; - - if(fGameStarted) - { - ret = MessageBox(hwnd, _T("Quit the current game?"), szAppName, MB_OKCANCEL|MB_ICONQUESTION); - } - - if(ret == IDOK) - { - WinHelp(hwnd, szHelpPath, HELP_QUIT, 0); - DestroyWindow(hwnd); - } - - return 0; - } - - return DefWindowProc (hwnd, iMsg, wParam, lParam); -} - +#include +#include +#include +#include "resource.h" +#include "cardlib/cardlib.h" + +#include "solitaire.h" + +TCHAR szHelpPath[MAX_PATH]; + +DWORD dwAppStartTime; +HWND hwndMain; +HWND hwndStatus; +HINSTANCE hInstance; + +TCHAR szAppName[] = _T("Solitaire"); + +CardWindow SolWnd; + +LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); + +void MakePath(TCHAR *szDest, UINT nDestLen, TCHAR *szExt) +{ + TCHAR *ptr; + + ptr = szDest + GetModuleFileName(GetModuleHandle(0), szDest, nDestLen) - 1; + while(*ptr-- != '.'); + lstrcpy(ptr + 1, szExt); +} + +int main ( int argc, char** argv ) +{ + return WinMain ( NULL, NULL, NULL, SW_SHOW ); +} + +// +// Main entry point +// +int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, PSTR szCmdLine, int iCmdShow) +{ + HWND hwnd; + MSG msg; + WNDCLASSEX wndclass; + INITCOMMONCONTROLSEX ice; + HACCEL hAccelTable; + + hInstance = hInst; + + //Window class for the main application parent window + wndclass.cbSize = sizeof(wndclass); + wndclass.style = 0;//CS_HREDRAW | CS_VREDRAW; + wndclass.lpfnWndProc = WndProc; + wndclass.cbClsExtra = 0; + wndclass.cbWndExtra = 0; + wndclass.hInstance = hInst; + wndclass.hIcon = LoadIcon (hInst, MAKEINTRESOURCE(IDI_ICON1)); + wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); + wndclass.hbrBackground = (HBRUSH)NULL; + wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); + wndclass.lpszClassName = szAppName; + wndclass.hIconSm = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 16, 16, 0); + + RegisterClassEx(&wndclass); + + ice.dwSize = sizeof(ice); + ice.dwICC = ICC_BAR_CLASSES; + InitCommonControlsEx(&ice); + + srand((unsigned)GetTickCount());//timeGetTime()); + +// InitCardLib(); + +// LoadSettings(); + + //Construct the path to our help file + MakePath(szHelpPath, MAX_PATH, _T(".hlp")); + + hwnd = CreateWindow(szAppName, // window class name + szAppName, // window caption + WS_OVERLAPPEDWINDOW + ,//|WS_CLIPCHILDREN, // window style + CW_USEDEFAULT, // initial x position + CW_USEDEFAULT, // initial y position + CW_USEDEFAULT, // initial x size + CW_USEDEFAULT, // initial y size + NULL, // parent window handle + NULL, // use window class menu + hInst, // program instance handle + NULL); // creation parameters + + hwndMain = hwnd; + + ShowWindow(hwnd, iCmdShow); + UpdateWindow(hwnd); + + hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_ACCELERATOR1)); + + while(GetMessage(&msg, NULL,0,0)) + { + if(!TranslateAccelerator(hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + +// SaveSettings(); + + return msg.wParam; +} + + +//----------------------------------------------------------------------------- +LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) +{ + static int nWidth, nHeight; + int nStatusHeight = 0;//20; + int parts[] = { 100, -1 }; + UINT ret; + + MINMAXINFO *mmi; + + switch(iMsg) + { + 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); + SendMessage(hwndStatus, SB_SETTEXT, 0 | SBT_NOBORDERS, (LPARAM)""); + + ShowWindow(hwndStatus, SW_HIDE); + + SolWnd.Create(hwnd, WS_EX_CLIENTEDGE, WS_CHILD|WS_VISIBLE, 0, 0, 0, 0); + + CreateSol(); + + NewGame(); + + dwAppStartTime = GetTickCount(); + + return 0; + + case WM_DESTROY: + PostQuitMessage(0); + return 0; + + case WM_SIZE: + nWidth = LOWORD(lParam); + nHeight = HIWORD(lParam); + + MoveWindow(SolWnd, 0, 0, nWidth, nHeight-nStatusHeight, TRUE); + //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->ptMinTrackSize.x = 600; + mmi->ptMinTrackSize.y = 400; + + return 0; + + case WM_COMMAND: + + switch(LOWORD(wParam)) + { + case IDM_GAME_NEW: + //simulate a button click on the new button.. + NewGame(); + return 0; + + case IDM_GAME_DECK: + //ShowDeckOptionsDlg(hwnd); + return 0; + + case IDM_GAME_OPTIONS: + //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("Solitare by J Brown\r\n\r\nCardLib version 1.0."), szAppName, MB_OK|MB_ICONINFORMATION); + + return 0; + + case IDM_GAME_EXIT: + PostMessage(hwnd, WM_CLOSE, 0, 0); + return 0; + } + + return 0; + + case WM_CLOSE: + + ret = IDOK; + + if(fGameStarted) + { + ret = MessageBox(hwnd, _T("Quit the current game?"), szAppName, MB_OKCANCEL|MB_ICONQUESTION); + } + + if(ret == IDOK) + { + WinHelp(hwnd, szHelpPath, HELP_QUIT, 0); + DestroyWindow(hwnd); + } + + return 0; + } + + return DefWindowProc (hwnd, iMsg, wParam, lParam); +} +