Пример #1
0
void CShellBrowser::DragStarted(int iFirstItem,POINT *ptCursor)
{
	DraggedFile_t	df;
	int				iSelected = -1;

	if(iFirstItem != -1)
	{
		POINT	ptOrigin;
		POINT	ptItem;

		ListView_GetItemPosition(m_hListView,iFirstItem,&ptItem);

		ListView_GetOrigin(m_hListView,&ptOrigin);

		m_ptDraggedOffset.x = ptOrigin.x + ptCursor->x - ptItem.x;
		m_ptDraggedOffset.y = ptOrigin.y + ptCursor->y - ptItem.y;
	}

	while((iSelected = ListView_GetNextItem(m_hListView,iSelected,LVNI_SELECTED)) != -1)
	{
		QueryDisplayName(iSelected, SIZEOF_ARRAY(df.szFileName), df.szFileName);

		m_DraggedFilesList.push_back(df);
	}

	m_bDragging = TRUE;
}
Пример #2
0
void VDUIJobControlDialog::OnJobQueueReloaded() {
	HWND hwndItem = GetDlgItem(mhdlg, IDC_JOBS);
	if (!hwndItem)
		return;

	POINT pt={0,0};
	ListView_GetOrigin(hwndItem, &pt);

	int selindex = ListView_GetNextItem(hwndItem, -1, LVNI_ALL | LVNI_SELECTED);
	int newselindex = -1;

	if (selindex >= 0) {
		VDJob *vdj = g_VDJobQueue.ListGet(selindex);

		if (vdj) {
			uint64 selid = vdj->mId;

			newselindex = g_VDJobQueue.GetJobIndexById(selid);
		}
	}

	ListView_DeleteAllItems(hwndItem);
	int n = g_VDJobQueue.ListSize();
	for(int i=0; i<n; i++) {
		LVITEM li;

		li.mask		= LVIF_TEXT;
		li.iSubItem	= 0;
		li.iItem	= i;
		li.pszText	= LPSTR_TEXTCALLBACK;

		ListView_InsertItem(hwndItem, &li);
	}

	if (newselindex >= 0)
		ListView_SetItemState(hwndItem, newselindex, LVIS_SELECTED, LVIS_SELECTED);

	ListView_Scroll(hwndItem, 0, -pt.y);

	UpdateSelectedJobEnables(NULL);
}