void Server_ForceRedraw (HWND hDlg) { HWND hChild = Server_GetCurrentTab (hDlg); if (hChild && IsWindow (hChild)) { PostMessage (hChild, WM_SERVER_CHANGED, 0, 0); } }
BOOL Columns_OnApply (HWND hDlg, LPVIEWINFO lpviDefault) { BOOL fPostMessage = FALSE; for (size_t iCol = 0; iCol < nCOLUMNS; ++iCol) { if (COLUMNS[ iCol ].fChanged) { CHILDTAB iTab = (CHILDTAB)-1; int idcList; VIEWINFO vi; memcpy (&vi, &COLUMNS[ iCol ].vi, sizeof(VIEWINFO)); LPVIEWINFO lpviTarget = NULL; switch (iCol) { case ceSERVERS: if (gr.fPreview && !gr.fVert) lpviTarget = &gr.diHorz.viewSvr; else lpviTarget = &gr.diVert.viewSvr; FL_RestoreView (GetDlgItem (g.hMain, IDC_SERVERS), &COLUMNS[ iCol ].vi); UpdateDisplay_Servers (FALSE, NULL, 0); break; case ceFILESETS: lpviTarget = &gr.viewSet; iTab = tabFILESETS; idcList = IDC_SET_LIST; break; case ceAGGREGATES: lpviTarget = &gr.viewAgg; iTab = tabAGGREGATES; idcList = IDC_AGG_LIST; break; case ceSERVICES: lpviTarget = &gr.viewSvc; iTab = tabSERVICES; idcList = IDC_SVC_LIST; break; case ceREPLICAS: lpviTarget = &gr.viewRep; break; case ceAGGS_MOVE: lpviTarget = &gr.viewAggMove; break; case ceAGGS_CREATE: lpviTarget = &gr.viewAggCreate; break; case ceAGGS_RESTORE: lpviTarget = &gr.viewAggRestore; break; } if (lpviTarget != NULL) { memcpy (lpviTarget, &COLUMNS[ iCol ].vi, sizeof(VIEWINFO)); if (lpviDefault == &COLUMNS[ iCol ].vi) fPostMessage = TRUE; } if (iTab != (CHILDTAB)-1) { for (HWND hServer = g.hMain; hServer != NULL; hServer = PropCache_Search (pcSERVER, ANYVALUE, hServer)) { HWND hTab = GetDlgItem (hServer, IDC_TABS); int iTabShown = TabCtrl_GetCurSel (hTab); if (iTab == iTabShown) { HWND hChild = Server_GetCurrentTab (hServer); HWND hList = GetDlgItem (hChild, idcList); TCHAR szClassName[ cchRESOURCE ]; if (GetClassName (hList, szClassName, cchRESOURCE)) { if (lstrcmp (szClassName, WC_FASTLIST)) continue; } FL_StoreView (hList, &vi); COLUMNS[ iCol ].vi.lvsView = vi.lvsView; FL_RestoreView (hList, &COLUMNS[ iCol ].vi); Server_ForceRedraw (hServer); } if (hServer == g.hMain) hServer = NULL; } } } } return fPostMessage; }