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"
23 * RESIZING WINDOWS ___________________________________________________________
27 rwWindowData awdGroupsTab[] = {
28 { IDC_GROUPS_TITLE, raRepaint | raSizeX, 0, 0 },
29 { IDC_ADVANCED, raMoveX, 0, 0 },
30 { IDC_GROUPS_PATTERN, raMoveX, 0, 0 },
31 { IDC_GROUPS_PATTERN_PROMPT, raRepaint | raMoveX, 0, 0 },
32 { IDC_GROUPS_LIST, raSizeX | raSizeY, 0, 0 },
33 { M_GROUP_CREATE, raMoveX | raMoveY, 0, 0 },
34 { M_MEMBERSHIP, raMoveX | raMoveY, 0, 0 },
35 { M_PROPERTIES, raMoveX | raMoveY, 0, 0 },
36 { IDC_STATIC, raRepaint, 0, 0 },
37 { idENDLIST, 0, 0, 0 }
42 * DEFINITIONS ________________________________________________________________
46 #define ID_SEARCH_TIMER 0
48 #define msecSEARCH_TIMER 650
57 * PROTOTYPES _________________________________________________________________
61 void Groups_EnableButtons (HWND hDlg);
65 * ROUTINES ___________________________________________________________________
69 BOOL CALLBACK Groups_DlgProc (HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
71 if (Display_HandleColumnNotify (hDlg, msg, wp, lp, &gr.viewGrp))
79 GetClientRect (GetParent(hDlg), &rTab);
80 TabCtrl_AdjustRect (GetParent (hDlg), FALSE, &rTab);
81 ResizeWindow (hDlg, awdGroupsTab, rwaMoveToHere, &rTab);
83 HIMAGELIST hSmall = AfsAppLib_CreateImageList (FALSE);
84 HIMAGELIST hLarge = AfsAppLib_CreateImageList (TRUE);
85 FastList_SetImageLists (GetDlgItem (hDlg, IDC_GROUPS_LIST), hSmall, hLarge);
87 FastList_SetSortFunction (GetDlgItem (hDlg, IDC_GROUPS_LIST), General_ListSortFunction);
89 FL_RestoreView (GetDlgItem (hDlg, IDC_GROUPS_LIST), &gr.viewGrp);
90 FastList_SetTextCallback (GetDlgItem (hDlg, IDC_GROUPS_LIST), Display_GetItemText, (DWORD)&gr.viewGrp);
91 SetDlgItemText (hDlg, IDC_GROUPS_PATTERN, g.szPatternGroups);
92 Groups_EnableButtons(hDlg);
93 Display_PopulateGroupList();
100 WinHelp (hDlg, cszHELPFILENAME, HELP_FINDER, 0);
104 FL_StoreView (GetDlgItem (hDlg, IDC_GROUPS_LIST), &gr.viewGrp);
108 // if (lp==0), we're minimizing--don't call ResizeWindow().
111 ResizeWindow (hDlg, awdGroupsTab, rwaFixupGuts);
117 case ID_SEARCH_TIMER:
118 if ( (l.dwTickLastType) && (GetTickCount() > l.dwTickLastType + msecSEARCH_TIMER) )
120 KillTimer (hDlg, ID_SEARCH_TIMER);
121 Display_PopulateGroupList();
129 ptScreen.x = LOWORD(lp);
130 ptScreen.y = HIWORD(lp);
131 OnRightClick (pmGROUP, GetDlgItem (hDlg, IDC_GROUPS_LIST), &ptScreen);
137 case IDC_GROUPS_PATTERN:
138 if (HIWORD(wp) == EN_UPDATE)
140 l.dwTickLastType = GetTickCount();
141 KillTimer (hDlg, ID_SEARCH_TIMER);
142 SetTimer (hDlg, ID_SEARCH_TIMER, msecSEARCH_TIMER +15, NULL);
147 OnContextCommand (LOWORD(wp));
153 switch (((LPNMHDR)lp)->code)
157 Groups_EnableButtons(hDlg);
161 PostMessage (hDlg, WM_COMMAND, MAKELONG(M_PROPERTIES,BN_CLICKED), (LPARAM)GetDlgItem (hDlg, M_PROPERTIES));
171 void Groups_EnableButtons (HWND hDlg)
173 BOOL fEnable = (Display_GetSelectedCount() != 0) ? TRUE : FALSE;
174 EnableWindow (GetDlgItem (hDlg, M_PROPERTIES), fEnable);
175 EnableWindow (GetDlgItem (hDlg, M_MEMBERSHIP), fEnable);