windows-build-updates-20030314
[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 extern "C" {
15 #include <afs/param.h>
16 #include <afs/stds.h>
17 }
18
19 #include "afscfg.h"
20 #include "resource.h"
21
22
23 /*
24  * DEFINITIONS _________________________________________________________________
25  *
26  */
27 static HWND hDlg = 0;
28
29
30 /*
31  * PROTOTYPES _________________________________________________________________
32  *
33  */
34 static void OnInitDialog(HWND hwndDlg);
35 static void ConfigMsg(UINT nMsgID);
36 static void EnableSCM(ENABLE_STATE enable);
37 static void SavePageInfo();
38 static void ShowPageInfo();
39
40
41 /*
42  * EXPORTED FUNCTIONS _________________________________________________________________
43  *
44  */
45
46 /*
47  * Dialog Proc _________________________________________________________________
48  *
49  */
50 BOOL CALLBACK DBServerPageDlgProc(HWND hwndDlg, UINT msg, WPARAM wp, LPARAM lp)
51 {
52         if (WizStep_Common_DlgProc (hwndDlg, msg, wp, lp))
53                 return FALSE;
54
55         switch (msg) {
56                 case WM_INITDIALOG:
57                  OnInitDialog(hwndDlg);
58                      break;
59
60                 case WM_COMMAND:
61                         switch (LOWORD(wp)) {
62                                 case IDNEXT:
63                                         SavePageInfo();
64                                         g_pWiz->SetState(sidSTEP_SEVEN);
65                                         break;
66
67                                 case IDBACK:
68                                         SavePageInfo();
69                                         g_pWiz->SetState(sidSTEP_FIVE);
70                                         break;
71
72                                 case IDC_DONT_CONFIG_DB_SERVER:
73                                         g_CfgData.configDB = CS_DONT_CONFIGURE;
74                                         EnableSCM(ES_DISABLE);
75                                         break;
76
77                                 case IDC_CONFIG_DB_SERVER:
78                                         g_CfgData.configDB = CS_CONFIGURE;
79                                         EnableSCM(ES_ENABLE);
80                                         break;
81                         }
82                 break;
83
84         }
85
86         return FALSE;
87 }
88
89
90 /*
91  * STATIC FUNCTIONS _________________________________________________________________
92  *
93  */
94
95 /*
96  * Event Handler Functions _________________________________________________________________
97  *
98  */
99 static void OnInitDialog(HWND hwndDlg)
100 {
101         hDlg = hwndDlg;
102
103         g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
104         g_pWiz->SetButtonText(IDNEXT, IDS_NEXT);
105         g_pWiz->SetDefaultControl(IDNEXT);
106
107         if (g_CfgData.bFirstServer) {
108                 ConfigMsg(IDS_MUST_CONFIG_DB);
109                 g_CfgData.configDB = CS_CONFIGURE;
110                 return;
111         }
112
113         ShowPageInfo();
114
115         switch (g_CfgData.configDB) {
116                 case CS_ALREADY_CONFIGURED:
117                         ConfigMsg(IDS_ALREADY_A_DB_SERVER);
118                         break;
119
120                 case CS_DONT_CONFIGURE:
121                         SetCheck(hDlg, IDC_DONT_CONFIG_DB_SERVER);
122                         EnableSCM(ES_DISABLE);
123                         break;
124
125                 case CS_CONFIGURE:
126                 default:
127                         SetCheck(hDlg, IDC_CONFIG_DB_SERVER);
128                         EnableSCM(ES_ENABLE);
129                         break;
130         }
131 }
132
133
134 /*
135  * Utility Functions _________________________________________________________________
136  *
137  */
138
139 static void ConfigMsg(UINT nMsgID)
140 {
141         TCHAR szMsg[cchRESOURCE];
142
143         GetString(szMsg, nMsgID);
144
145         // Hide the controls that are at the same position as the message
146         ShowWnd(hDlg, IDC_DB_SERVER_QUESTION, FALSE);
147         ShowWnd(hDlg, IDC_CONFIG_DB_SERVER, FALSE);
148         ShowWnd(hDlg, IDC_SCM_PROMPT, FALSE);
149         ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, FALSE);
150         ShowWnd(hDlg, IDC_SYS_CONTROL_MACHINE, FALSE);
151         
152         ShowWnd(hDlg, IDC_DONT_CONFIG_DB_SERVER, FALSE);
153         
154         SetWndText(hDlg, IDC_MSG, szMsg);
155         ShowWnd(hDlg, IDC_MSG);
156 }
157
158 static void EnableSCM(ENABLE_STATE enable)
159 {
160         SetEnable(hDlg, IDC_SCM_PROMPT, enable);
161         SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE_LABEL, enable);
162         SetEnable(hDlg, IDC_SYS_CONTROL_MACHINE, enable);
163 }
164
165 static void ShowPageInfo()
166 {
167         SetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
168 }
169
170 static void SavePageInfo()
171 {
172         GetWndText(hDlg, IDC_SYS_CONTROL_MACHINE, g_CfgData.szSysControlMachine);
173 }
174