void HideThumbsOnShowCList() { if (!fcOpt.bHideWhenCListShow || fcOpt.bHideAll || HideOnFullScreen()) return; for (int i = 0; i < thumbList.getCount(); ++i) ShowWindow(thumbList[i].hwnd, SW_HIDE); }
void ShowThumbsOnHideCList() { if (!fcOpt.bHideWhenCListShow || fcOpt.bHideAll || HideOnFullScreen()) return; for (int i = 0; i < thumbList.getCount(); ++i) if (!fcOpt.bHideOffline || IsStatusVisible(GetContactStatus(thumbList[i].hContact))) ShowWindow(thumbList[i].hwnd, SW_SHOWNA); }
void ThumbInfo::RefreshContactStatus(int idStatus) { if (IsStatusVisible(idStatus)) RegisterFileDropping(hwnd, dropTarget); else UnregisterFileDropping(hwnd); ShowWindow(hwnd, fcOpt.bHideAll || HideOnFullScreen() || (fcOpt.bHideOffline && (!IsStatusVisible(idStatus))) || (fcOpt.bHideWhenCListShow && bIsCListShow) ? SW_HIDE : SW_SHOWNA); }
static void CreateThumbWnd(TCHAR *ptszName, MCONTACT hContact, int nX, int nY) { ThumbInfo *pThumb = thumbList.FindThumbByContact(hContact); if (pThumb != NULL) return; // Prepare for window creation HWND hwnd = CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_TOPMOST, WND_CLASS, ptszName, WS_POPUP, nX, nY, 50, 20, NULL, NULL, hInst, NULL); if (hwnd == NULL) return; pThumb = thumbList.AddThumb(hwnd, ptszName, hContact); SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)pThumb); pThumb->ResizeThumb(); pThumb->SetThumbOpacity(fcOpt.thumbAlpha); ShowWindow(hwnd, (fcOpt.bHideAll || HideOnFullScreen() || fcOpt.bHideOffline || (fcOpt.bHideWhenCListShow && bIsCListShow)) ? SW_HIDE : SW_SHOWNA); pThumb->PositionThumb(nX, nY); // force repaint pThumb->UpdateContent(); }
static int OnContactDrag(WPARAM hContact, LPARAM) { POINT pt; GetCursorPos(&pt); ThumbInfo *pThumb = thumbList.FindThumbByContact(hContact); if (pThumb == NULL) { int idStatus = GetContactStatus(hContact); if (!fcOpt.bHideAll && !HideOnFullScreen() && (!fcOpt.bHideOffline || IsStatusVisible(idStatus)) && (!fcOpt.bHideWhenCListShow || !bIsCListShow)) { CreateThumbWnd(pcli->pfnGetContactDisplayName(hContact, 0), hContact, pt.x, pt.y); ThumbInfo *pNewThumb = thumbList.FindThumbByContact(hContact); ShowWindow(pNewThumb->hwnd, SW_SHOWNA); hNewContact = hContact; OnStatusChanged(); } } else if (hContact == hNewContact) pThumb->PositionThumb(pt.x - 5, pt.y - 5); return hNewContact != NULL; }