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>
15 #include "TaAfsUsrMgr.h"
16 #include "usr_delete.h"
21 * DEFINITIONS ________________________________________________________________
27 * PROTOTYPES _________________________________________________________________
31 BOOL CALLBACK User_Delete_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp);
32 void User_Delete_OnInitDialog (HWND hDlg);
33 void User_Delete_OnDestroy (HWND hDlg);
34 void User_Delete_OnCheck (HWND hDlg);
35 void User_Delete_OnOK (HWND hDlg);
39 * ROUTINES ___________________________________________________________________
43 void User_ShowDelete (LPASIDLIST pUserList)
45 ModalDialogParam (IDD_USER_DELETE, g.hMain, User_Delete_DlgProc, (LPARAM)pUserList);
49 BOOL CALLBACK User_Delete_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
51 if (AfsAppLib_HandleHelp (IDD_USER_DELETE, hDlg, msg, wp, lp))
57 SetWindowLong (hDlg, DWL_USER, lp);
58 User_Delete_OnInitDialog (hDlg);
62 User_Delete_OnDestroy (hDlg);
69 User_Delete_OnOK (hDlg);
70 EndDialog (hDlg, IDOK);
74 EndDialog (hDlg, IDCANCEL);
79 User_Delete_OnCheck (hDlg);
89 void User_Delete_OnInitDialog (HWND hDlg)
91 LPASIDLIST pUserList = (LPASIDLIST)GetWindowLong (hDlg, DWL_USER);
93 // Fix the title of the dialog
95 if (pUserList->cEntries == 1)
97 TCHAR szName[ cchNAME ];
98 User_GetDisplayName (szName, pUserList->aEntries[0].idObject);
100 TCHAR szText[ cchRESOURCE ];
101 GetDlgItemText (hDlg, IDC_DELETE_TITLE, szText, cchRESOURCE);
103 LPTSTR pszText = FormatString (szText, TEXT("%s"), szName);
104 SetDlgItemText (hDlg, IDC_DELETE_TITLE, pszText);
105 FreeString (pszText);
109 LPTSTR pszNames = CreateNameList (pUserList);
111 LPTSTR pszText = FormatString (IDS_USER_DELETE_MULTIPLE, TEXT("%s"), pszNames);
112 SetDlgItemText (hDlg, IDC_DELETE_TITLE, pszText);
113 FreeString (pszText);
115 FreeString (pszNames);
118 // Check the checkboxes
120 CheckDlgButton (hDlg, IDC_DELETE_KAS, BST_CHECKED);
121 CheckDlgButton (hDlg, IDC_DELETE_PTS, BST_CHECKED);
125 void User_Delete_OnDestroy (HWND hDlg)
127 LPASIDLIST pUserList = (LPASIDLIST)GetWindowLong (hDlg, DWL_USER);
128 asc_AsidListFree (&pUserList);
132 void User_Delete_OnCheck (HWND hDlg)
134 BOOL fEnable = FALSE;
135 if (IsDlgButtonChecked (hDlg, IDC_DELETE_KAS))
137 if (IsDlgButtonChecked (hDlg, IDC_DELETE_PTS))
139 EnableWindow (GetDlgItem (hDlg, IDOK), fEnable);
143 void User_Delete_OnOK (HWND hDlg)
145 LPASIDLIST pUserList = (LPASIDLIST)GetWindowLong (hDlg, DWL_USER);
147 // Start a background task to do all the work.
149 LPUSER_DELETE_PARAMS pTask = New (USER_DELETE_PARAMS);
150 memset (pTask, 0x00, sizeof(USER_DELETE_PARAMS));
151 pTask->fDeleteKAS = IsDlgButtonChecked (hDlg, IDC_DELETE_KAS);
152 pTask->fDeletePTS = IsDlgButtonChecked (hDlg, IDC_DELETE_PTS);
153 asc_AsidListCopy (&pTask->pUserList, &pUserList);
154 StartTask (taskUSER_DELETE, NULL, pTask);