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>
18 #include "svr_window.h"
23 * PROTOTYPES _________________________________________________________________
27 BOOL CALLBACK Filesets_Dump_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
28 void Filesets_Dump_OnInitDialog (HWND hDlg, LPSET_DUMP_PARAMS psdp);
29 void Filesets_Dump_OnSelect (HWND hDlg);
30 void Filesets_Dump_EnableOK (HWND hDlg);
31 void Filesets_Dump_OnOK (HWND hDlg, LPSET_DUMP_PARAMS psdp);
32 void Filesets_Dump_OnBrowse (HWND hDlg, LPSET_DUMP_PARAMS psdp);
36 * ROUTINES ___________________________________________________________________
40 void Filesets_Dump (LPIDENT lpi)
42 LPSET_DUMP_PARAMS psdp = New (SET_DUMP_PARAMS);
43 memset (psdp, 0x00, sizeof(SET_DUMP_PARAMS));
46 int rc = ModalDialogParam (IDD_SET_DUMP, NULL, (DLGPROC)Filesets_Dump_DlgProc, (LPARAM)psdp);
54 StartTask (taskSET_DUMP, NULL, psdp);
59 BOOL CALLBACK Filesets_Dump_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
61 if (AfsAppLib_HandleHelp (IDD_SET_DUMP, hDlg, msg, wp, lp))
64 static LPSET_DUMP_PARAMS psdp = NULL;
65 if (msg == WM_INITDIALOG)
66 psdp = (LPSET_DUMP_PARAMS)lp;
73 Filesets_Dump_OnInitDialog (hDlg, psdp);
80 Filesets_Dump_OnOK (hDlg, psdp);
81 EndDialog (hDlg, LOWORD(wp));
85 EndDialog (hDlg, LOWORD(wp));
89 case IDC_DUMP_LIMIT_TIME:
90 Filesets_Dump_OnSelect (hDlg);
93 case IDC_DUMP_FILENAME:
94 Filesets_Dump_EnableOK (hDlg);
98 Filesets_Dump_OnBrowse (hDlg, psdp);
113 void Filesets_Dump_OnInitDialog (HWND hDlg, LPSET_DUMP_PARAMS psdp)
115 TCHAR szServer[ cchNAME ];
116 TCHAR szAggregate[ cchNAME ];
117 TCHAR szFileset[ cchNAME ];
118 psdp->lpi->GetServerName (szServer);
119 psdp->lpi->GetAggregateName (szAggregate);
120 psdp->lpi->GetFilesetName (szFileset);
122 TCHAR szText[ cchRESOURCE ];
123 GetDlgItemText (hDlg, IDC_DUMP_FULL, szText, cchRESOURCE);
125 LPTSTR pszText = FormatString (szText, TEXT("%s%s%s"), szServer, szAggregate, szFileset);
126 SetDlgItemText (hDlg, IDC_DUMP_FULL, pszText);
127 FreeString (pszText);
129 pszText = FormatString (IDS_SET_DUMP_NAME, TEXT("%s"), szFileset);
130 SetDlgItemText (hDlg, IDC_DUMP_FILENAME, pszText);
131 FreeString (pszText);
133 // Get the local system time
137 SystemTimeToFileTime (&st, &ft);
139 FileTimeToLocalFileTime (&ft, &lft);
140 FileTimeToSystemTime (&lft, &st);
142 DA_SetDate (GetDlgItem (hDlg, IDC_DUMP_DATE), &st);
143 TI_SetTime (GetDlgItem (hDlg, IDC_DUMP_TIME), &st);
145 CheckDlgButton (hDlg, IDC_DUMP_FULL, TRUE);
146 Filesets_Dump_OnSelect (hDlg);
147 Filesets_Dump_EnableOK (hDlg);
151 void Filesets_Dump_OnSelect (HWND hDlg)
155 fEnable = IsDlgButtonChecked (hDlg, IDC_DUMP_LIMIT_TIME);
156 EnableWindow (GetDlgItem (hDlg, IDC_DUMP_DATE), fEnable);
157 EnableWindow (GetDlgItem (hDlg, IDC_DUMP_TIME), fEnable);
161 void Filesets_Dump_EnableOK (HWND hDlg)
163 TCHAR szText[ MAX_PATH ];
164 GetDlgItemText (hDlg, IDC_DUMP_FILENAME, szText, MAX_PATH);
166 EnableWindow (GetDlgItem (hDlg, IDOK), (szText[0] == TEXT('\0')) ? FALSE : TRUE);
170 void Filesets_Dump_OnOK (HWND hDlg, LPSET_DUMP_PARAMS psdp)
172 GetDlgItemText (hDlg, IDC_DUMP_FILENAME, psdp->szFilename, MAX_PATH);
174 psdp->fDumpByDate = IsDlgButtonChecked (hDlg, IDC_DUMP_LIMIT_TIME);
175 memset (&psdp->stDump, 0x00, sizeof(SYSTEMTIME));
176 DA_GetDate (GetDlgItem (hDlg, IDC_DUMP_DATE), &psdp->stDump);
177 TI_GetTime (GetDlgItem (hDlg, IDC_DUMP_TIME), &psdp->stDump);
181 void Filesets_Dump_OnBrowse (HWND hDlg, LPSET_DUMP_PARAMS psdp)
183 TCHAR szFilter[ cchRESOURCE ];
184 GetString (szFilter, IDS_RESTORE_FILTER);
185 TCHAR chFilter = szFilter[ lstrlen(szFilter)-1 ];
186 for (LPTSTR pszFilter = szFilter;
187 (*pszFilter) && ((pszFilter = (LPTSTR)lstrchr (pszFilter, chFilter)) != NULL);
190 *pszFilter = TEXT('\0');
193 TCHAR szFilename[ MAX_PATH ];
194 GetDlgItemText (hDlg, IDC_DUMP_FILENAME, szFilename, MAX_PATH);
197 memset (&sfn, 0x00, sizeof(sfn));
198 sfn.lStructSize = sizeof(sfn);
199 sfn.hwndOwner = hDlg;
200 sfn.hInstance = THIS_HINST;
201 sfn.lpstrFilter = szFilter;
202 sfn.nFilterIndex = 1;
203 sfn.lpstrFile = szFilename;
204 sfn.nMaxFile = MAX_PATH;
205 sfn.Flags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST;
206 sfn.lpstrDefExt = TEXT("dmp");
208 if (GetSaveFileName (&sfn))
210 SetDlgItemText (hDlg, IDC_DUMP_FILENAME, szFilename);
211 Filesets_Dump_EnableOK (hDlg);