Windows: remove trailing whitespace
[openafs.git] / src / WINNT / afssvrcfg / info_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;                           // HWND for this page's dialog
33
34
35 /*
36  * PROTOTYPES _________________________________________________________________
37  *
38  */
39 static void OnInitDialog(HWND hwndDlg);
40 static void CheckEnableButtons();
41 static BOOL SavePageInfo();
42 static void ShowPageInfo();
43 static void IsFirstServer(BOOL bIs = TRUE);
44
45
46 /*
47  * EXPORTED FUNCTIONS _________________________________________________________________
48  *
49  */
50
51 /*
52  * Dialog Procs _________________________________________________________________
53  *
54  */
55 BOOL CALLBACK InfoPageDlgProc(HWND hRHS, UINT msg, WPARAM wp, LPARAM lp)
56 {
57     if (WizStep_Common_DlgProc (hRHS, msg, wp, lp))
58         return FALSE;
59
60     switch (msg) {
61     case WM_INITDIALOG:
62         OnInitDialog(hRHS);
63         break;
64
65     case WM_COMMAND:
66         switch (LOWORD(wp)) {
67         case IDNEXT:
68             if (SavePageInfo())
69                 g_pWiz->SetState (sidSTEP_THREE);
70             break;
71
72         case IDBACK:
73             if (SavePageInfo())
74                 g_pWiz->SetState (sidSTEP_ONE);
75             break;
76
77         case IDC_FIRST_SERVER:
78             IsFirstServer();
79             break;
80
81         case IDC_JOIN_EXISTING_CELL:
82             IsFirstServer(FALSE);
83             break;
84
85         case IDC_CELL_NAME:
86         case IDC_SERVER_PW:
87         case IDC_VERIFY_PW:
88             if (HIWORD(wp) == EN_CHANGE)
89                 CheckEnableButtons();
90             break;
91
92         }
93         break;
94     }
95
96     return FALSE;
97 }
98
99 /*
100  * STATIC FUNCTIONS ________________________________________________________________________
101  *
102  */
103
104 /*
105  * Event Handler Functions _________________________________________________________________
106  *
107  */
108 static void OnInitDialog(HWND hwndDlg)
109 {
110     hDlg = hwndDlg;
111
112     g_pWiz->EnableButtons(BACK_BUTTON);
113
114     ShowPageInfo();
115
116     if (g_CfgData.bFirstServer)
117         IsFirstServer();
118
119     g_pWiz->SetDefaultControl(IDC_CELL_NAME);
120 }
121
122
123 /*
124  * Utility Functions _________________________________________________________________
125  *
126  */
127 static void CheckEnableButtons()
128 {
129     BOOL bDisable = FALSE;
130
131     TCHAR szCellName[cchRESOURCE];
132     TCHAR szPW[cchRESOURCE];
133     TCHAR szVerifyPW[cchRESOURCE];
134
135     bDisable = lstrlen(GetWndText(hDlg, IDC_CELL_NAME, szCellName)) == 0;
136
137     GetWndText(hDlg, IDC_SERVER_PW, szPW);
138     GetWndText(hDlg, IDC_VERIFY_PW, szVerifyPW);
139
140     if (IsButtonChecked(hDlg, IDC_FIRST_SERVER))
141         bDisable |= !lstrlen(szPW) || !lstrlen(szVerifyPW) || lstrcmp(szPW, szVerifyPW);
142
143     if (bDisable)
144         g_pWiz->EnableButtons(BACK_BUTTON);
145     else
146         g_pWiz->EnableButtons(BACK_BUTTON | NEXT_BUTTON);
147 }
148
149 static BOOL SavePageInfo()
150 {
151     TCHAR szText[cchRESOURCE];
152
153     GetWndText(hDlg, IDC_CELL_NAME, szText);
154     if (lstrlen(szText) > MAX_CELL_NAME_LEN) {
155         MsgBox(hDlg, IDS_CELL_NAME_LEN_ERROR, GetAppTitleID(), MB_ICONSTOP | MB_OK);
156         return FALSE;
157     }
158
159     lstrcpy(g_CfgData.szCellName, szText);
160     lstrncpy(g_CfgData.szServerPW, GetWndText(hDlg, IDC_SERVER_PW, szText), MAX_SERVER_PW_LEN);
161     g_CfgData.bFirstServer = IsButtonChecked(hDlg, IDC_FIRST_SERVER);
162
163     return TRUE;
164 }
165
166 static void ShowPageInfo()
167 {
168     SetWndText(hDlg, IDC_CELL_NAME, g_CfgData.szCellName);
169     SetWndText(hDlg, IDC_SERVER_PW, g_CfgData.szServerPW);
170     SetWndText(hDlg, IDC_VERIFY_PW, g_CfgData.szServerPW);
171
172     if (g_CfgData.bFirstServer)
173         SetCheck(hDlg, IDC_FIRST_SERVER);
174     else
175         SetCheck(hDlg, IDC_JOIN_EXISTING_CELL);
176 }
177
178 static void IsFirstServer(BOOL bIs)
179 {
180     ENABLE_STATE es;
181
182     if (bIs)
183         es = ES_ENABLE;
184     else
185         es = ES_DISABLE;
186
187     SetEnable(hDlg, IDC_PRINCIPAL_LABEL, es);
188     SetEnable(hDlg, IDC_PRINCIPAL, es);
189
190     SetEnable(hDlg, IDC_SERVER_PW_FRAME, es);
191     SetEnable(hDlg, IDC_SERVER_PW_LABEL, es);
192     SetEnable(hDlg, IDC_SERVER_PW_PROMPT, es);
193     SetEnable(hDlg, IDC_SERVER_PW, es);
194     SetEnable(hDlg, IDC_VERIFY_PW_LABEL, es);
195     SetEnable(hDlg, IDC_VERIFY_PW, es);
196
197     CheckEnableButtons();
198 }
199