rx: Remove RX_CALL_BUSY
[openafs.git] / src / WINNT / afssvrcfg / db_server_page.cpp
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  *
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 /*
11  * INCLUDES _________________________________________________________________
12  *
13  */
14 #include <winsock2.h>
15 #include <ws2tcpip.h>
16
17 extern "C" {
18 #include <afsconfig.h>
19 #include <afs/param.h>
20 #include <afs/stds.h>
21 #include <roken.h>
22 }
23
24 #include "afscfg.h"
25 #include "resource.h"
26
27
28 /*
29  * DEFINITIONS _________________________________________________________________
30  *
31  */
32 static HWND hDlg = 0;
33
34
35 /*
36  * PROTOTYPES _________________________________________________________________
37  *
38  */
39 static void OnInitDialog(HWND hwndDlg);
40 static void ConfigMsg(UINT nMsgID);
41 static void EnableSCM(ENABLE_STATE enable);
42 static void SavePageInfo();
43 static void ShowPageInfo();
44
45
46 /*
47  * EXPORTED FUNCTIONS _________________________________________________________________
48  *
49  */
50
51 /*
52  * Dialog Proc _________________________________________________________________
53  *
54  */
55 BOOL CALLBACK DBServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
56 {
57     if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
58         return FALSE;
59
60     switch (msg) {
61     case WM_INITDIALOG:
62         OnInitDialog(hwndDlg);
63         break;
64
65     case WM_COMMAND:
66         switch (LOWORD(wp)) {
67         case IDNEXT:
68             SavePageInfo();
69             g_pWiz->SetState(sidSTEP_SEVEN);
70             break;
71
72         case IDBACK:
73             SavePageInfo();
74             g_pWiz->SetState(sidSTEP_FIVE);
75             break;
76
77         case IDC_DONT_CONFIG_DB_SERVER:
78             g_CfgData.configDB = CS_DONT_CONFIGURE;
79             EnableSCM(ES_DISABLE);
80             break;
81
82         case IDC_CONFIG_DB_SERVER:
83             g_CfgData.configDB = CS_CONFIGURE;
84             EnableSCM(ES_ENABLE);
85             break;
86         }
87         break;
88
89     }
90
91     return FALSE;
92 }
93
94
95 /*
96  * STATIC FUNCTIONS _________________________________________________________________
97  *
98  */
99
100 /*
101  * Event Handler Functions _________________________________________________________________
102  *
103  */
104 static void OnInitDialog(HWND hwndDlg)
105 {
106     hDlg = hwndDlg;
107
108     g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
109     g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
110     g_pWiz->SetDefaultControl(IDNEXT);
111
112     if (g_CfgData.bFirstServer) {
113         ConfigMsg(IDS_MUST_CONFIG_DB);
114         g_CfgData.configDB = CS_CONFIGURE;
115         return;
116     }
117
118     ShowPageInfo();
119
120     switch (g_CfgData.configDB) {
121     case CS_ALREADY_CONFIGURED:
122         ConfigMsg(IDS_ALREADY_A_DB_SERVER);
123         break;
124
125     case CS_DONT_CONFIGURE:
126         SetCheck(hDlg, IDC_DONT_CONFIG_DB_SERVER);
127         EnableSCM(ES_DISABLE);
128         break;
129
130     case CS_CONFIGURE:
131     default:
132         SetCheck(hDlg, IDC_CONFIG_DB_SERVER);
133         EnableSCM(ES_ENABLE);
134         break;
135     }
136 }
137
138
139 /*
140  * Utility Functions _________________________________________________________________
141  *
142  */
143
144 static void ConfigMsg(UINT nMsgID)
145 {
146     TCHAR szMsg[cchRESOURCE];
147
148     GetString(szMsg, nMsgID);
149
150     // Hide the controls that are at the same position as the message
151     ShowWnd(hDlg, IDC_DB_SERVER_QUESTION, FALSE);
152     ShowWnd(hDlg, IDC_CONFIG_DB_SERVER, FALSE);
153     ShowWnd(hDlg, IDC_SCM_PROMPT, FALSE);
154     ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
155     ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
156
157     ShowWnd(hDlg, IDC_DONT_CONFIG_DB_SERVER, FALSE);
158
159     SetWndText(hDlg, IDC_MSG, szMsg);
160     ShowWnd(hDlg, IDC_MSG);
161 }
162
163 static void EnableSCM(ENABLE_STATE enable)
164 {
165     SetEnable(hDlg, IDC_SCM_PROMPT, enable);
166     SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, enable);
167     SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE, enable);
168 }
169
170 static void ShowPageInfo()
171 {
172     SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
173 }
174
175 static void SavePageInfo()
176 {
177     GetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
178 }
179