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
14 #include <afsconfig.h>
15 #include <afs/param.h>
20 #include "svr_getdates.h"
21 #include "propcache.h"
24 * PROTOTYPES _________________________________________________________________
28 BOOL WINAPI Server_GetDates_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
30 void Server_GetDates_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lpp);
31 void Server_GetDates_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp, LPSVR_GETDATES_PARAMS lpp);
32 void Server_GetDates_EnableOK (HWND hDlg);
33 void Server_GetDates_OnOK (HWND hDlg);
35 BOOL WINAPI Server_GetDates_Results_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
37 void Server_GetDates_Results_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lppIn);
38 void Server_GetDates_Results_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp);
42 * ROUTINES ___________________________________________________________________
46 void Server_GetDates (LPIDENT lpiServer)
50 if ((hCurrent = PropCache_Search (pcSVR_GETDATES, NULL)) != NULL)
56 LPSVR_GETDATES_PARAMS lpp = New (SVR_GETDATES_PARAMS);
57 lpp->lpiServer = lpiServer;
58 lpp->szFilename[0] = TEXT('\0');
60 HWND hDlg = ModelessDialogParam (IDD_SVR_GETDATES, NULL, (DLGPROC)Server_GetDates_DlgProc, (LPARAM)lpp);
61 ShowWindow (hDlg, SW_SHOW);
66 BOOL WINAPI Server_GetDates_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
68 if (AfsAppLib_HandleHelp (IDD_SVR_GETDATES, hDlg, msg, wp, lp))
71 LPSVR_GETDATES_PARAMS lpp;
73 if (msg == WM_INITDIALOG)
74 SetWindowLongPtr (hDlg, DWLP_USER, lp);
76 if ((lpp = (LPSVR_GETDATES_PARAMS)GetWindowLongPtr(hDlg,DWLP_USER)) != NULL)
81 PropCache_Add (pcSVR_GETDATES, NULL, hDlg);
82 Server_GetDates_OnInitDialog (hDlg, lpp);
87 if ((ptp = (LPTASKPACKET)lp) != NULL)
89 if (ptp->idTask == taskSVR_ENUM_TO_COMBOBOX)
90 Server_GetDates_OnEndTask_InitDialog (hDlg, ptp, lpp);
99 Server_GetDates_OnOK (hDlg);
103 DestroyWindow (hDlg);
108 Server_GetDates_EnableOK (hDlg);
115 SetWindowLongPtr (hDlg, DWLP_USER, 0);
116 PropCache_Delete (pcSVR_GETDATES, NULL);
125 void Server_GetDates_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lpp)
127 LPSVR_ENUM_TO_COMBOBOX_PACKET lppEnum = New (SVR_ENUM_TO_COMBOBOX_PACKET);
128 lppEnum->hCombo = GetDlgItem (hDlg, IDC_SERVER);
129 lppEnum->lpiSelect = lpp->lpiServer;
130 StartTask (taskSVR_ENUM_TO_COMBOBOX, hDlg, lppEnum);
132 EnableWindow (GetDlgItem (hDlg, IDC_SERVER), FALSE);
133 EnableWindow (GetDlgItem (hDlg, IDOK), FALSE);
137 void Server_GetDates_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp, LPSVR_GETDATES_PARAMS lpp)
139 EnableWindow (GetDlgItem (hDlg, IDC_SERVER), TRUE);
140 Server_GetDates_EnableOK (hDlg);
144 void Server_GetDates_EnableOK (HWND hDlg)
146 LPIDENT lpiServer = NULL;
148 if (IsWindowEnabled (GetDlgItem (hDlg, IDC_SERVER)))
149 lpiServer = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_SERVER));
151 BOOL fEnable = (lpiServer != NULL) ? TRUE : FALSE;
155 TCHAR szName[ MAX_PATH ];
156 GetDlgItemText (hDlg, IDC_FILENAME, szName, MAX_PATH);
157 if (szName[0] == TEXT('\0'))
161 EnableWindow (GetDlgItem (hDlg, IDOK), fEnable);
165 void Server_GetDates_OnOK (HWND hDlg)
167 LPSVR_GETDATES_PARAMS lpp = New (SVR_GETDATES_PARAMS);
168 lpp->lpiServer = (LPIDENT)CB_GetSelectedData (GetDlgItem (hDlg, IDC_SERVER));
169 GetDlgItemText (hDlg, IDC_FILENAME, lpp->szFilename, MAX_PATH);
171 ModelessDialogParam (IDD_SVR_GETDATES_RESULTS, NULL, (DLGPROC)Server_GetDates_Results_DlgProc, (LPARAM)lpp);
175 BOOL WINAPI Server_GetDates_Results_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
177 if (AfsAppLib_HandleHelp (IDD_SVR_GETDATES_RESULTS, hDlg, msg, wp, lp))
183 Server_GetDates_Results_OnInitDialog (hDlg, (LPSVR_GETDATES_PARAMS)lp);
188 if ((ptp = (LPTASKPACKET)lp) != NULL)
190 if (ptp->idTask == taskSVR_GETDATES)
191 Server_GetDates_Results_OnEndTask_InitDialog (hDlg, ptp);
192 FreeTaskPacket (ptp);
201 DestroyWindow (hDlg);
211 void Server_GetDates_Results_OnInitDialog (HWND hDlg, LPSVR_GETDATES_PARAMS lppIn)
213 LPSVR_GETDATES_PARAMS lpp = New (SVR_GETDATES_PARAMS);
214 memcpy (lpp, lppIn, sizeof(SVR_GETDATES_PARAMS));
215 StartTask (taskSVR_GETDATES, hDlg, lpp);
217 TCHAR szServer[ cchNAME ];
218 lppIn->lpiServer->GetServerName (szServer);
219 SetDlgItemText (hDlg, IDC_SERVER, szServer);
221 SetDlgItemText (hDlg, IDC_FILENAME, lppIn->szFilename);
225 void Server_GetDates_Results_OnEndTask_InitDialog (HWND hDlg, LPTASKPACKET ptp)
227 if (ptp->rc && TASKDATA(ptp)->pszText1)
229 LPTSTR pszText = FormatString (IDS_LASTMODIFIED, TEXT("%s"), TASKDATA(ptp)->pszText1);
230 SetDlgItemText (hDlg, IDC_DATE_FILE, pszText);
231 FreeString (pszText);
233 if (ptp->rc && TASKDATA(ptp)->pszText2)
235 LPTSTR pszText = FormatString (IDS_LASTMODIFIED, TEXT("%s"), TASKDATA(ptp)->pszText2);
236 SetDlgItemText (hDlg, IDC_DATE_BAK, pszText);
237 FreeString (pszText);
239 if (ptp->rc && TASKDATA(ptp)->pszText3)
241 LPTSTR pszText = FormatString (IDS_LASTMODIFIED, TEXT("%s"), TASKDATA(ptp)->pszText3);
242 SetDlgItemText (hDlg, IDC_DATE_OLD, pszText);
243 FreeString (pszText);
246 ShowWindow (hDlg, SW_SHOW);