1 /*
2  * PROJECT:     ReactOS API Test GUI
3  * LICENSE:     GPL - See COPYING in the top level directory
4  * FILE:
5  * PURPOSE:     options dialog implementation
6  * COPYRIGHT:   Copyright 2008 Ged Murphy <gedmurphy@reactos.org>
7  *
8  */
9 
10 #include <precomp.h>
11 
12 static BOOL
13 OnInitBrowseDialog(HWND hDlg,
14                    LPARAM lParam)
15 {
16     PMAIN_WND_INFO pInfo;
17 
18     pInfo = (PMAIN_WND_INFO)lParam;
19 
20     pInfo->hBrowseDlg = hDlg;
21 
22     SetWindowLongPtr(hDlg,
23                      GWLP_USERDATA,
24                      (LONG_PTR)pInfo);
25 
26     return TRUE;
27 }
28 
29 
30 BOOL CALLBACK
31 OptionsDlgProc(HWND hDlg,
32               UINT Message,
33               WPARAM wParam,
34               LPARAM lParam)
35 {
36     PMAIN_WND_INFO pInfo;
37 
38     //UNREFERENCED_PARAM(
39 
40     /* Get the window context */
41     pInfo = (PMAIN_WND_INFO)GetWindowLongPtr(hDlg,
42                                              GWLP_USERDATA);
43     if (pInfo == NULL && Message != WM_INITDIALOG)
44     {
45         goto HandleDefaultMessage;
46     }
47 
48     switch(Message)
49     {
50         case WM_INITDIALOG:
51             return OnInitBrowseDialog(hDlg, lParam);
52 
53         case WM_COMMAND:
54         {
55             switch (LOWORD(wParam))
56             {
57                 case IDOK:
58                 {
59                     if (SendMessageW(GetDlgItem(hDlg, IDC_RUNONSTART), BM_GETCHECK, 0, 0) == BST_CHECKED)
60                     {
61                         pInfo->bRunOnStart = TRUE;
62                     }
63                     else
64                     {
65                         pInfo->bRunOnStart = FALSE;
66                     }
67 
68                     if (SendMessageW(GetDlgItem(hDlg, IDC_HIDECONSOLE), BM_GETCHECK, 0, 0) == BST_CHECKED)
69                     {
70                         pInfo->bHideConsole = TRUE;
71                     }
72                     else
73                     {
74                         pInfo->bHideConsole = FALSE;
75                     }
76 
77                     EndDialog(hDlg,
78                               LOWORD(wParam));
79 
80                     return TRUE;
81                 }
82 
83                 case IDCANCEL:
84                 {
85                     EndDialog(hDlg,
86                               LOWORD(wParam));
87 
88                     return TRUE;
89                 }
90             }
91 
92             break;
93         }
94 HandleDefaultMessage:
95         default:
96             return FALSE;
97     }
98 
99     return FALSE;
100 }
101