2 * Copyright 2000, International Business Machines Corporation and others.
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
11 #include <afs/param.h>
16 #include "svr_getdates.h"
17 #include "propcache.h"
20 * PROTOTYPES _________________________________________________________________
24 BOOL WINAPI Server_GetDates_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
26 void Server_GetDates_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lpp);
27 void Server_GetDates_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp, LPSVR_GETDATES_PARAMS lpp);
28 void Server_GetDates_EnableOK (HWND hDlg);
29 void Server_GetDates_OnOK (HWND hDlg);
31 BOOL WINAPI Server_GetDates_Results_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
33 void Server_GetDates_Results_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lppIn);
34 void Server_GetDates_Results_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp);
38 * ROUTINES ___________________________________________________________________
42 void Server_GetDates (LPIDENT lpiServer)
46 if ((hCurrent = PropCache_Search (pcSVR_GETDATES, NULL)) != NULL)
52 LPSVR_GETDATES_PARAMS lpp = New (SVR_GETDATES_PARAMS);
53 lpp->lpiServer = lpiServer;
54 lpp->szFilename[0] = TEXT('\0');
56 HWND hDlg = ModelessDialogParam (IDD_SVR_GETDATES, NULL, (DLGPROC)Server_GetDates_DlgProc, (LPARAM)lpp);
57 ShowWindow (hDlg, SW_SHOW);
62 BOOL WINAPI Server_GetDates_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
64 if (AfsAppLib_HandleHelp (IDD_SVR_GETDATES, hDlg, msg, wp, lp))
67 LPSVR_GETDATES_PARAMS lpp;
69 if (msg == WM_INITDIALOG)
70 SetWindowLong (hDlg, DWL_USER, lp);
72 if ((lpp = (LPSVR_GETDATES_PARAMS)GetWindowLong(hDlg,DWL_USER)) != NULL)
77 PropCache_Add (pcSVR_GETDATES, NULL, hDlg);
78 Server_GetDates_OnInitDialog (hDlg, lpp);
83 if ((ptp = (LPTASKPACKET)lp) != NULL)
85 if (ptp->idTask == taskSVR_ENUM_TO_COMBOBOX)
86 Server_GetDates_OnEndTask_InitDialog (hDlg, ptp, lpp);
95 Server_GetDates_OnOK (hDlg);
104 Server_GetDates_EnableOK (hDlg);
111 SetWindowLong (hDlg, DWL_USER, 0);
112 PropCache_Delete (pcSVR_GETDATES, NULL);
121 void Server_GetDates_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lpp)
123 LPSVR_ENUM_TO_COMBOBOX_PACKET lppEnum = New (SVR_ENUM_TO_COMBOBOX_PACKET);
124 lppEnum->hCombo = GetDlgItem (hDlg, IDC_SERVER);
125 lppEnum->lpiSelect = lpp->lpiServer;
126 StartTask (taskSVR_ENUM_TO_COMBOBOX, hDlg, lppEnum);
128 EnableWindow (GetDlgItem (hDlg, IDC_SERVER), FALSE);
129 EnableWindow (GetDlgItem (hDlg, IDOK), FALSE);
133 void Server_GetDates_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp, LPSVR_GETDATES_PARAMS lpp)
135 EnableWindow (GetDlgItem (hDlg, IDC_SERVER), TRUE);
136 Server_GetDates_EnableOK (hDlg);
140 void Server_GetDates_EnableOK (HWND hDlg)
142 LPIDENT lpiServer = NULL;
144 if (IsWindowEnabled (GetDlgItem (hDlg, IDC_SERVER)))
145 lpiServer = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_SERVER));
147 BOOL fEnable = (lpiServer != NULL) ? TRUE : FALSE;
151 TCHAR szName[ MAX_PATH ];
152 GetDlgItemText (hDlg, IDC_FILENAME, szName, MAX_PATH);
153 if (szName[0] == TEXT('\0'))
157 EnableWindow (GetDlgItem (hDlg, IDOK), fEnable);
161 void Server_GetDates_OnOK (HWND hDlg)
163 LPSVR_GETDATES_PARAMS lpp = New (SVR_GETDATES_PARAMS);
164 lpp->lpiServer = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_SERVER));
165 GetDlgItemText (hDlg, IDC_FILENAME, lpp->szFilename, MAX_PATH);
167 ModelessDialogParam (IDD_SVR_GETDATES_RESULTS, NULL, (DLGPROC)Server_GetDates_Results_DlgProc, (LPARAM)lpp);
171 BOOL WINAPI Server_GetDates_Results_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
173 if (AfsAppLib_HandleHelp (IDD_SVR_GETDATES_RESULTS, hDlg, msg, wp, lp))
179 Server_GetDates_Results_OnInitDialog (hDlg, (LPSVR_GETDATES_PARAMS)lp);
184 if ((ptp = (LPTASKPACKET)lp) != NULL)
186 if (ptp->idTask == taskSVR_GETDATES)
187 Server_GetDates_Results_OnEndTask_InitDialog (hDlg, ptp);
188 FreeTaskPacket (ptp);
197 DestroyWindow (hDlg);
207 void Server_GetDates_Results_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lppIn)
209 LPSVR_GETDATES_PARAMS lpp = New (SVR_GETDATES_PARAMS);
210 memcpy (lpp, lppIn, sizeof(SVR_GETDATES_PARAMS));
211 StartTask (taskSVR_GETDATES, hDlg, lpp);
213 TCHAR szServer[ cchNAME ];
214 lppIn->lpiServer->GetServerName (szServer);
215 SetDlgItemText (hDlg, IDC_SERVER, szServer);
217 SetDlgItemText (hDlg, IDC_FILENAME, lppIn->szFilename);
221 void Server_GetDates_Results_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp)
223 if (ptp->rc && TASKDATA(ptp)->pszText1)
225 LPTSTR pszText = FormatString (IDS_LASTMODIFIED, TEXT("%s"), TASKDATA(ptp)->pszText1);
226 SetDlgItemText (hDlg, IDC_DATE_FILE, pszText);
227 FreeString (pszText);
229 if (ptp->rc && TASKDATA(ptp)->pszText2)
231 LPTSTR pszText = FormatString (IDS_LASTMODIFIED, TEXT("%s"), TASKDATA(ptp)->pszText2);
232 SetDlgItemText (hDlg, IDC_DATE_BAK, pszText);
233 FreeString (pszText);
235 if (ptp->rc && TASKDATA(ptp)->pszText3)
237 LPTSTR pszText = FormatString (IDS_LASTMODIFIED, TEXT("%s"), TASKDATA(ptp)->pszText3);
238 SetDlgItemText (hDlg, IDC_DATE_OLD, pszText);
239 FreeString (pszText);
242 ShowWindow (hDlg, SW_SHOW);