Example #1
0
void CInstrumentList::OnContextMenu(CWnd* pWnd, CPoint point)
{
	int Instrument(0);
	TCHAR Text[256];

	if (GetSelectionMark() != -1) {
		// Select the instrument
		GetItemText(GetSelectionMark(), 0, Text, 256);
		_stscanf(Text, _T("%X"), &Instrument);
		CFamiTrackerDoc::GetDoc()->GetInstrumentName(Instrument, Text);
		CFamiTrackerView::GetView()->SetInstrument(Instrument);
		// TODO: fix??
		//m_wndDialogBar.GetDlgItem(IDC_INSTNAME)->SetWindowText(Text);
	}

	// Display the popup menu
	CMenu *pPopupMenu, PopupMenuBar;
	PopupMenuBar.LoadMenu(IDR_INSTRUMENT_POPUP);
	pPopupMenu = PopupMenuBar.GetSubMenu(0);
	// Route the menu messages to mainframe
	pPopupMenu->TrackPopupMenu(TPM_LEFTBUTTON, point.x, point.y, m_pMainFrame);

	// Return focus to pattern editor
	m_pMainFrame->GetActiveView()->SetFocus();
}
Example #2
0
void CQueueListCtrl::ShowSelectedUserDetails()
{
	POINT point;

	::GetCursorPos(&point);

	CPoint p = point;

    ScreenToClient(&p);

    int it = HitTest(p);

    if (it == -1)
	{
		return;
	}
	SetSelectionMark(it);

	CUpDownClient* pClient = reinterpret_cast<CUpDownClient*>(GetItemData(GetSelectionMark()));

	if (pClient != NULL)
	{
			CClientDetails dialog(IDS_CD_TITLE, pClient, this, 0);
			dialog.DoModal();
	}
}
void CGitProgressList::OnLvnBegindragSvnprogress(NMHDR* , LRESULT *pResult)
{
	//LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
#if 0
	int selIndex = GetSelectionMark();
	if (selIndex < 0)
		return;

	CDropFiles dropFiles; // class for creating DROPFILES struct

	int index;
	POSITION pos = GetFirstSelectedItemPosition();
	while ( (index = GetNextSelectedItem(pos)) >= 0 )
	{
		NotificationData * data = m_arData[index];

		if ( data->kind==svn_node_file || data->kind==svn_node_dir )
		{
			CString sPath = GetPathFromColumnText(data->sPathColumnText);

			dropFiles.AddFile( sPath );
		}
	}

	if (!dropFiles.IsEmpty())
	{
		dropFiles.CreateStructure();
	}
#endif
	*pResult = 0;
}
void CInstrumentList::SetInstrumentName(int Index, TCHAR *pName)
{
	// Update instrument name in the list
	int ListIndex = GetSelectionMark();
	CString Name;
	Name.Format(_T("%02X - %s"), Index, pName);
	SetItemText(ListIndex, 0, Name);
}
void CFVDownloads_Tasks::UpdateActiveDownload(int adjSelected)
{
	try 
	{
		POSITION pos = GetFirstSelectedItemPosition ();
		vmsDownloadSmartPtr dld;	

		
		if (pos && GetSelectedCount () == 1)
		{
			int iItem = GetNextSelectedItem (pos);

			iItem += adjSelected;	
			if (iItem < 0)
				iItem = 0;
			else if (iItem >= GetItemCount ())
				iItem = GetItemCount () - 1;

			dld = m_vDlds [iItem];
		}
		else
		{
			int iItem = GetSelectionMark ();

			if (iItem == -1)
				dld = NULL;	
			else
			{
				iItem += adjSelected;	

				if (iItem < 0)
					iItem = 0;
				else if (iItem >= GetItemCount ())
					iItem = GetItemCount () - 1;

				dld = m_vDlds [iItem];
			}
		}

		
		if (dld != m_pActiveDownload)
		{
			m_pActiveDownload = dld;
			_pwndFVDownloads->SetActiveDownload (m_pActiveDownload);
		}

	}
	catch (const std::exception& ex)
	{
		ASSERT (FALSE);
		vmsLogger::WriteLog("CFVDownloads_Tasks::UpdateActiveDownload " + std::string(ex.what()));
	}
	catch (...)
	{
		ASSERT (FALSE);
		vmsLogger::WriteLog("CFVDownloads_Tasks::UpdateActiveDownload unknown exception");
	}
}
void CInstrumentList::SelectPreviousItem()
{
	// Select previous instrument
	int SelIndex = GetSelectionMark();
	if (SelIndex > 0) {
		int Slot = GetInstrumentIndex(SelIndex - 1);
		m_pMainFrame->SelectInstrument(Slot);
	}
}
void CFileBrowserListCtrl::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	if (_istprint(nChar)) {	// if printable character, including space
		// finding items by key can't get started unless an item is focused
		if (GetSelectionMark() < 0 && m_DirList.GetCount())	// if no focused item
			SetItemState(0, LVIS_FOCUSED, LVIS_FOCUSED);	// focus first item
	}
	CListCtrl::OnChar(nChar, nRepCnt, nFlags);
}
Example #8
0
void CGitRefCompareList::OnContextMenuList(CWnd * /*pWnd*/, CPoint point)
{
	int selIndex = GetSelectionMark();
	if (selIndex < 0 || (size_t)selIndex >= m_RefList.size())
		return;

	CString refName = m_RefList[selIndex].fullName;
	CString oldHash = m_RefList[selIndex].oldHash;
	CString newHash = m_RefList[selIndex].newHash;
	CIconMenu popup;
	popup.CreatePopupMenu();
	CString logStr;
	if (!oldHash.IsEmpty())
	{
		logStr.Format(IDS_SHOWLOG_OF, (LPCTSTR)oldHash);
		popup.AppendMenuIcon(IDGITRCL_OLDLOG, logStr, IDI_LOG);
	}
	if (!newHash.IsEmpty() && oldHash != newHash)
	{
		logStr.Format(IDS_SHOWLOG_OF, (LPCTSTR)newHash);
		popup.AppendMenuIcon(IDGITRCL_NEWLOG, logStr, IDI_LOG);
	}
	if (!oldHash.IsEmpty() && !newHash.IsEmpty() && oldHash != newHash)
		popup.AppendMenuIcon(IDGITRCL_COMPARE, IDS_LOG_POPUP_COMPAREWITHPREVIOUS, IDI_DIFF);
	popup.AppendMenuIcon(IDGITRCL_REFLOG, IDS_MENUREFLOG, IDI_LOG);

	int cmd = popup.TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN | TPM_NONOTIFY, point.x, point.y, this);
	AfxGetApp()->DoWaitCursor(1);
	switch (cmd)
	{
		case IDGITRCL_OLDLOG:
		case IDGITRCL_NEWLOG:
		{
			CString sCmd;
			sCmd.Format(L"/command:log /path:\"%s\" /endrev:\"%s\"", (LPCTSTR)g_Git.m_CurrentDir, cmd == IDGITRCL_OLDLOG ? (LPCTSTR)oldHash : (LPCTSTR)newHash);
			CAppUtils::RunTortoiseGitProc(sCmd);
			break;
		}
		case IDGITRCL_COMPARE:
		{
			CString sCmd;
			sCmd.Format(L"/command:showcompare /path:\"%s\" /revision1:\"%s\" /revision2:\"%s\"", (LPCTSTR)g_Git.m_CurrentDir, (LPCTSTR)oldHash, (LPCTSTR)newHash);
			if (!!(GetAsyncKeyState(VK_SHIFT) & 0x8000))
				sCmd += L" /alternative";
			CAppUtils::RunTortoiseGitProc(sCmd);
			break;
		}
		case IDGITRCL_REFLOG:
		{
			CString sCmd;
			sCmd.Format(L"/command:reflog /path:\"%s\" /ref:\"%s\"", (LPCTSTR)g_Git.m_CurrentDir, (LPCTSTR)refName);
			CAppUtils::RunTortoiseGitProc(sCmd);
			break;
		}
	}
	AfxGetApp()->DoWaitCursor(-1);
}
Example #9
0
void DLlist::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	int olditem=this->GetSelectionMark();
	CListCtrl::OnLButtonDown(nFlags, point);
	if(olditem!=GetSelectionMark())
		Update(olditem);
}
bool CFileBrowserListCtrl::CanRename()
{
	int	sel = GetSelectionMark();
	if (sel >= 0) {
		const CDirItem& item = GetDirItem(sel);
		if (!(item.IsDrive() || item.IsDots()))
			return(TRUE);
	}
	return(FALSE);
}
void CInstrumentList::SelectNextItem()
{
	// Select next instrument
	int SelIndex = GetSelectionMark();
	int Count = GetItemCount();
	if (SelIndex < (Count - 1)) {
		int Slot = GetInstrumentIndex(SelIndex + 1);
		m_pMainFrame->SelectInstrument(Slot);
	}
}
Example #12
0
DWORD CFastGrid::GetItemData2()
{
	CListDataEx *pXLCD = (CListDataEx *) CListCtrl::GetItemData(GetSelectionMark());
    ASSERT(pXLCD);
	if (!pXLCD)
	{
		return 0;
	}
	return pXLCD->dwItemData2;
}
Example #13
0
void CFastGrid::SetData2(DWORD dwData2)
{

	CListDataEx *pXLCD = (CListDataEx *) CListCtrl::GetItemData(GetSelectionMark());
    ASSERT(pXLCD);
	if (!pXLCD)
	{
		return;
	}
	pXLCD->dwItemData2 = dwData2;
}
Example #14
0
void 
CListCtrlEx::OnLButtonDown (UINT nFlags, CPoint Point)
{
    int Index;
    int ColNum;
    if ((Index = HitTestEx (Point, &ColNum)) != -1 && Index == GetSelectionMark()) {
		// This was a slow dbl click
	    CListCtrl::OnLButtonDown (nFlags, Point);
		EditSubItem (Index, ColNum);
    } else
	    CListCtrl::OnLButtonDown (nFlags, Point);
}
Example #15
0
void	CReportCtrl::SortRows()
{
	if (m_SortWaitCursor)
		CCmdTarget::BeginWaitCursor();
	if (m_SortCallback != NULL)		// is there a sort callback?
		SortItems(m_SortCallback, (DWORD)m_SortCallbackData);	// y, use it
	else
		SortItems(TextSort, (DWORD)this);	// n, use text sort
	if (m_SortWaitCursor)
		CCmdTarget::EndWaitCursor();
	// if there's a selection, keep it visible, otherwise go to top
	EnsureVisible(GetSelectedCount() ? GetSelectionMark() : 0, FALSE);
}
Example #16
0
void CTorrents_Tasks::UpdateActiveDownload(int adjSelected)
{
	try {
		
		POSITION pos = GetFirstSelectedItemPosition ();
		vmsDownloadSmartPtr dld;	
		
		
		if (pos && GetSelectedCount () == 1)
		{
			int iItem = GetNextSelectedItem (pos);
			
			iItem += adjSelected;	
			if (iItem < 0)
				iItem = 0;
			else if (iItem >= GetItemCount ())
				iItem = GetItemCount () - 1;
			
			dld = m_vDlds [iItem];
		}
		else
		{
			int iItem = GetSelectionMark ();
			
			if (iItem == -1)
				dld = NULL;	
			else
			{
				iItem += adjSelected;	
				
				if (iItem < 0)
					iItem = 0;
				else if (iItem >= GetItemCount ())
					iItem = GetItemCount () - 1;
				
				dld = m_vDlds [iItem];
			}
		}
		
		
		if (dld != m_pActiveDownload)
		{
			m_pActiveDownload = dld;
			_pwndTorrents->SetActiveDownload (m_pActiveDownload);
		}
		
	}
	catch (...) {}
}
Example #17
0
BOOL CGitProgressList::PreTranslateMessage(MSG* pMsg)
{
	if (pMsg->message == WM_KEYDOWN)
	{
		if (pMsg->wParam == 'A')
		{
			if (GetKeyState(VK_CONTROL)&0x8000)
			{
				// Ctrl-A -> select all
				SetSelectionMark(0);
				for (int i=0; i<GetItemCount(); ++i)
				{
					SetItemState(i, LVIS_SELECTED, LVIS_SELECTED);
				}
			}
		}
		if ((pMsg->wParam == 'C')||(pMsg->wParam == VK_INSERT))
		{
			int selIndex = GetSelectionMark();
			if (selIndex >= 0)
			{
				if (GetKeyState(VK_CONTROL)&0x8000)
				{
					//Ctrl-C -> copy to clipboard
					CString sClipdata;
					POSITION pos = GetFirstSelectedItemPosition();
					if (pos != NULL)
					{
						while (pos)
						{
							int nItem = GetNextSelectedItem(pos);
							CString sAction = GetItemText(nItem, 0);
							CString sPath = GetItemText(nItem, 1);
							CString sMime = GetItemText(nItem, 2);
							CString sLogCopyText;
							sLogCopyText.Format(_T("%s: %s  %s\r\n"),
								(LPCTSTR)sAction, (LPCTSTR)sPath, (LPCTSTR)sMime);
							sClipdata +=  sLogCopyText;
						}
						CStringUtils::WriteAsciiStringToClipboard(sClipdata);
					}
				}
			}
		}
	} // if (pMsg->message == WM_KEYDOWN)
	return CListCtrl::PreTranslateMessage(pMsg);
}
void CInstrumentList::OnContextMenu(CWnd* pWnd, CPoint point)
{
	int Instrument = GetInstrumentIndex(GetSelectionMark());

	// Select the instrument
	if (Instrument != -1)
		m_pMainFrame->SelectInstrument(Instrument);

	// Display the popup menu
	CMenu *pPopupMenu, PopupMenuBar;
	PopupMenuBar.LoadMenu(IDR_INSTRUMENT_POPUP);
	pPopupMenu = PopupMenuBar.GetSubMenu(0);
	// Route the menu messages to mainframe
	pPopupMenu->TrackPopupMenu(TPM_LEFTBUTTON, point.x, point.y, m_pMainFrame);

	// Return focus to pattern editor
	m_pMainFrame->GetActiveView()->SetFocus();
}
void CDownloadClientsCtrl::ShowSelectedUserDetails(){
	POINT point;
	::GetCursorPos(&point);
	CPoint p = point; 
    ScreenToClient(&p); 
    int it = HitTest(p); 
    if (it == -1)
		return;

	SetItemState(-1, 0, LVIS_SELECTED);
	SetItemState(it, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
	SetSelectionMark(it);   // display selection mark correctly!

	CUpDownClient* client = (CUpDownClient*)GetItemData(GetSelectionMark());
	if (client){
		CClientDetailDialog dialog(client, this);
		dialog.DoModal();
	}
}
Example #20
0
void CSitesWnd::CalcCoordsForCurSel()
{
	int iCurSel = GetSelectionMark ();
	if (iCurSel == -1)
	{
		POSITION pos = GetFirstSelectedItemPosition ();
		if (pos)
			iCurSel = GetNextSelectedItem (pos);
	}

	if (iCurSel != -1)
	{
		RECT rc;
		GetItemRect (iCurSel, &rc, LVIR_BOUNDS);
		m_rbPt.x = rc.left + 30;
		m_rbPt.y = rc.top;
	}
	else
		m_rbPt.x = m_rbPt.y = 30;
}
void CFileBrowserListCtrl::SetSort(int Col, int Dir)
{
	if (Col == m_SortCol && Dir == m_SortDir)	// if same column and direction
		return;	// nothing to do
	if (Col != m_SortCol && m_SortCol >= 0)	// if different column has arrow
		DrawSortArrow(m_SortCol, -1);	// remove arrow from previous column
	if (Col >= 0) {	// if valid sort column
		int	items = m_DirList.GetCount();
		int	selcnt = GetSelectedCount();
		int	selmark = GetSelectionMark();
		if (selcnt || selmark >= 0) {	// if there's a selection
			// save item states and selection mark in list user data
			for (int i = 0; i < items; i++) {
				CDirItem&	item = m_DirList.GetItem(i);
				item.SetData(GetItemState(i, LVIS_SELECTED | LVIS_FOCUSED));
			}
			if (selmark >= 0) {
				CDirItem&	item = m_DirList.GetItem(selmark);
				// repurpose an item state bit to indicate selection mark
				item.SetData(item.GetData() | LVIS_ACTIVATING);
			}
		}
		DrawSortArrow(Col, Dir);	// draw appropriate arrow on new column
		m_DirList.Sort(Col, Dir);	// sort directory list
		if (selcnt || selmark >= 0) {	// if there's a selection
			// restore item states and selection mark from list user data
			for (int i = 0; i < items; i++) {
				const CDirItem&	item = m_DirList.GetItem(i);
				DWORD	state = item.GetData();
				SetItemState(i, state, LVIS_SELECTED | LVIS_FOCUSED);
				if (state & LVIS_ACTIVATING)	// if item has selection mark
					SetSelectionMark(i);
			}
		}
		Invalidate();
	}
	m_SortCol = Col;
	m_SortDir = Dir;
}
void CGitBlameLogList::ContextMenuAction(int cmd,int FirstSelect, int LastSelect,CMenu * menu)
{
	POSITION pos = GetFirstSelectedItemPosition();
	int indexNext = GetNextSelectedItem(pos);
	if (indexNext < 0)
		return;

	CString  procCmd;

	GitRev* pSelLogEntry = reinterpret_cast<GitRev*>(m_arShownList.GetAt(indexNext));

	bool bOpenWith = false;

	procCmd += _T("/path:\"");
	procCmd += ((CMainFrame*)::AfxGetApp()->GetMainWnd())->GetActiveView()->GetDocument()->GetPathName();
	procCmd += _T("\" ");
	procCmd += _T(" /rev:")+this->m_logEntries.GetGitRevAt(indexNext).m_CommitHash.ToString();

	procCmd += _T(" /command:");

	switch (cmd)
	{
		case ID_GNUDIFF1:
			procCmd += _T("diff /udiff");
		break;

#if 0
		case ID_GNUDIFF2:
			{
				CString tempfile=GetTempFile();
				CString cmd;
				GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));
				GitRev * r2 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(LastSelect));
				cmd.Format(_T("git.exe diff-tree -r -p --stat %s %s"),r1->m_CommitHash,r2->m_CommitHash);
				g_Git.RunLogFile(cmd,tempfile);
				CAppUtils::StartUnifiedDiffViewer(tempfile, r1->m_CommitHash.Left(g_Git.GetShortHASHLength()) + _T(":") + r2->m_CommitHash.Left(g_Git.GetShortHASHLength()));

			}
			break;
#endif
#if 0
		case ID_COMPARETWO:
			{
				GitRev * r1 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(FirstSelect));
				GitRev * r2 = reinterpret_cast<GitRev*>(m_arShownList.GetAt(LastSelect));
				CFileDiffDlg dlg;
				dlg.SetDiff(NULL,*r1,*r2);
				dlg.DoModal();

			}
			break;
#endif
#if 0
		case ID_COMPARE:
			{
				GitRev * r1 = &m_wcRev;
				GitRev * r2 = pSelLogEntry;
				CFileDiffDlg dlg;
				dlg.SetDiff(NULL,*r1,*r2);
				dlg.DoModal();

				//user clicked on the menu item "compare with working copy"
				//if (PromptShown())
				//{
				//	GitDiff diff(this, m_hWnd, true);
				//	diff.SetAlternativeTool(!!(GetAsyncKeyState(VK_SHIFT) & 0x8000));
				//	diff.SetHEADPeg(m_LogRevision);
				//	diff.ShowCompare(m_path, GitRev::REV_WC, m_path, revSelected);
				//}
				//else
				//	CAppUtils::StartShowCompare(m_hWnd, m_path, GitRev::REV_WC, m_path, revSelected, GitRev(), m_LogRevision, !!(GetAsyncKeyState(VK_SHIFT) & 0x8000));
			}
			break;
		case ID_COMPARE:
			procCmd+=CString(_T("diff \rev1:"))+CString(GIT_REV_ZERO)+CString(_T(" \rev2:"))+this->m_logEntries.GetGitRevAt(indexNext).m_CommitHash.ToString();
			break;
#endif
		case ID_COMPAREWITHPREVIOUS:
			if (indexNext + 1 < m_logEntries.size()) // cannot diff previous revision in first revision
			{
				procCmd+=CString(_T("diff /startrev:"))+this->m_logEntries.GetGitRevAt(indexNext).m_CommitHash.ToString()+CString(_T(" /endrev:"))+this->m_logEntries.GetGitRevAt(indexNext+1).m_CommitHash.ToString();
			}
			else
			{
				return;
			}
			break;
		case ID_COPYCLIPBOARD:
			{
				CopySelectionToClipBoard();
			}
			return;
		case ID_COPYHASH:
			{
				CopySelectionToClipBoard(TRUE);
			}
			return;
		case ID_EXPORT:
			procCmd += _T("export");
			break;
		case ID_CREATE_BRANCH:
			procCmd += _T("branch");
			break;
		case ID_CREATE_TAG:
			procCmd += _T("tag");
			break;
		case ID_SWITCHTOREV:
			procCmd += _T("switch");
			break;
		case ID_BLAME:
			procCmd += _T("blame");
			procCmd += _T(" /endrev:") + this->m_logEntries.GetGitRevAt(indexNext).m_CommitHash.ToString();
			break;
		case ID_LOG:
			procCmd += _T("log");
			break;
		case ID_REPOBROWSE:
			procCmd.Format(_T("/command:repobrowser /path:\"%s\" /rev:%s"), g_Git.m_CurrentDir, this->m_logEntries.GetGitRevAt(indexNext).m_CommitHash.ToString());
			break;
		default:
			//CMessageBox::Show(NULL,_T("Have not implemented"),_T("TortoiseGit"),MB_OK);
			return;

#if 0

		case ID_REVERTREV:
			{
				// we need an URL to complete this command, so error out if we can't get an URL
				if (pathURL.IsEmpty())
				{
					CString strMessage;
					strMessage.Format(IDS_ERR_NOURLOFFILE, (LPCTSTR)(m_path.GetUIPathString()));
					CMessageBox::Show(this->m_hWnd, strMessage, _T("TortoiseGit"), MB_ICONERROR);
					TRACE(_T("could not retrieve the URL of the folder!\n"));
					break;		//exit
				}
				CString msg;
				msg.Format(IDS_LOG_REVERT_CONFIRM, m_path.GetWinPath());
				if (CMessageBox::Show(this->m_hWnd, msg, _T("TortoiseGit"), MB_YESNO | MB_ICONQUESTION) == IDYES)
				{
					CGitProgressDlg dlg;
					dlg.SetCommand(CGitProgressDlg::GitProgress_Merge);
					dlg.SetPathList(CTGitPathList(m_path));
					dlg.SetUrl(pathURL);
					dlg.SetSecondUrl(pathURL);
					revisionRanges.AdjustForMerge(true);
					dlg.SetRevisionRanges(revisionRanges);
					dlg.SetPegRevision(m_LogRevision);
					dlg.DoModal();
				}
			}
			break;
		case ID_FINDENTRY:
			{
				m_nSearchIndex = GetSelectionMark();
				if (m_nSearchIndex < 0)
					m_nSearchIndex = 0;
				if (m_pFindDialog)
				{
					break;
				}
				else
				{
					m_pFindDialog = new CFindReplaceDialog();
					m_pFindDialog->Create(TRUE, NULL, NULL, FR_HIDEUPDOWN | FR_HIDEWHOLEWORD, this);
				}
			}
			break;
#endif

		} // switch (cmd)

		CCommonAppUtils::RunTortoiseProc(procCmd);
}
Example #23
0
void COutputListCtrl::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
{
	int TabIndex = ((CMainFrame *)AfxGetMainWnd())->m_wndOutput.m_wndTabs.GetActiveTab();
	switch (TabIndex)
	{
	case 0://操作
		{
			INT nIdx = GetSelectionMark();
			if (nIdx >= 0 && CIBAGlobal::NetworkStatus != CIBAGlobal::emNetworkBroken)
			{//退款时弹出消费查询
				if (CServletHellper::GetMemberId(GetItemText(nIdx, 3)) > 0)
				{
					CNDCreditDlg dlg;
					dlg.SetNetId(GetItemText(nIdx, 3));
					dlg.DoModal();
				} 
				else
				{
					theApp.GetIBAView()->QueryUserComsumeList(GetItemText(nIdx, 3), _ttoi(GetItemText(nIdx, 5)));
				}
			}
			break;
		}
	case 1://激活
		{
			INT index = GetSelectionMark();
			if (index >= 0 && CIBAGlobal::NetworkStatus != CIBAGlobal::emNetworkBroken)
			{
				if (CServletHellper::GetMemberId(GetItemText(index, 2)) > 0)
				{
					CNDCreditDlg dlg;
					dlg.SetNetId(GetItemText(index, 2));
					dlg.DoModal();
				} 
				else
				{
					theApp.GetIBAView()->QueryUserComsumeList(GetItemText(index, 2));
				}
			}
			break;
		}
	case 3://客户端消息
		{
			INT nIdx = GetSelectionMark();

			if (nIdx >= 0)
			{
				CString strTermId;
				strTermId = GetItemText(nIdx, 1);

				//UINT rrr = (UINT)CLocalServer::GetInstance()->ComputerList.LookFor(0, strTermId);
				CShortMsgDlg MsgDlg;

				MsgDlg.AddReceiver((UINT)CLocalServer::GetInstance()->ComputerList.LookFor(0, strTermId));
				MsgDlg.DoModal();
			}
			break;
		}
	case 2://消费记录
		{
			//INT nIdx = GetSelectionMark();
			//if (nIdx >= 0)
			//{//退款时弹出消费查询
			//	theApp.GetIBAView()->QueryUserComsumeList(GetItemText(nIdx, 4), 0);
			//}
			break;
		}
	}

	*pResult = 0;
}
bool CFileBrowserListCtrl::Rename()
{
	return(EditLabel(GetSelectionMark()) != NULL);
}
Example #25
0
void	CReportCtrl::EnsureSelectionVisible()
{
	if (GetSelectedCount())
		EnsureVisible(GetSelectionMark(), FALSE);
}
void CListCtrlEx::DrawItem(LPDRAWITEMSTRUCT lpDraw)
{try{
	int cCols = GetHeaderCtrl ()->GetItemCount ();
	CDC *dc = CDC::FromHandle (lpDraw->hDC);
	int xStart = lpDraw->rcItem.left;	
	CImageList *pImages = GetImageList (LVSIL_SMALL);
	BOOL bNeedBorder = FALSE;	

	

	CHeaderCtrl* pHdr = GetHeaderCtrl ();

	
	for (int i = 0; i < cCols; i++)
	{
		LVITEM item;
		TCHAR szItem [10000];
		int colWidth = GetColumnWidth (pHdr->OrderToIndex (i));

		xStart += 5;
		colWidth -= 5;

		item.iItem = lpDraw->itemID;
		item.iSubItem = i;
		item.pszText = szItem;
		item.cchTextMax = sizeof (szItem);
		item.mask = LVIF_IMAGE | LVIF_TEXT;

		GetItem (&item);

		
		if (i == 0)
		{
			item.state = GetItemState (lpDraw->itemID, LVIS_SELECTED|LVIS_FOCUSED);

			COLORREF clrBg = m_vInfo [lpDraw->itemID].clrBg;
			COLORREF clrText = m_vInfo [lpDraw->itemID].clrText;
	
			
			
			if (item.state & LVIS_FOCUSED)
				bNeedBorder = TRUE;

			if (item.state & LVIS_SELECTED)
			{
				clrBg = GetSysColor (COLOR_HIGHLIGHT);
				clrText = GetSysColor (COLOR_HIGHLIGHTTEXT);
				if (bNeedBorder == FALSE)
				{
					if (GetSelectionMark () == (int)lpDraw->itemID)
						bNeedBorder = TRUE;
				}
			}
		
			CBrush br;
			CPen pen;
			CBrush *oldBr;
			CPen *oldPen;

			if (RGBIsEqual (clrBg, clrText))
				clrText = (~clrText) & 0x00FFFFFF;

			dc->SetTextColor (clrText);

			br.CreateSolidBrush (clrBg);
			pen.CreatePen (PS_SOLID, 1, clrBg);

			oldBr = dc->SelectObject (&br);
			oldPen = dc->SelectObject (&pen);
			
			dc->Rectangle (&lpDraw->rcItem);

			
			if (m_bGrid)
			{
				CPen pen1 (PS_SOLID, 1, m_clrGrid);
				dc->SelectObject (&pen1);
				dc->MoveTo (lpDraw->rcItem.left, lpDraw->rcItem.bottom-1);
				dc->LineTo (lpDraw->rcItem.right, lpDraw->rcItem.bottom-1);
				dc->SelectObject (oldPen);
			}

			dc->SelectObject (oldBr);
			dc->SelectObject (oldPen);

			if (pImages)
			{
				

				CPoint pt;
				pt.x = xStart;
				pt.y = lpDraw->rcItem.top;
				if (m_pSelImages && (item.state & LVIS_SELECTED))
					m_pSelImages->Draw (dc, item.iImage, pt, ILD_TRANSPARENT);
				else
					pImages->Draw (dc, item.iImage, pt, ILD_TRANSPARENT);

				IMAGEINFO inf;
				pImages->GetImageInfo (item.iImage, &inf);

				xStart += inf.rcImage.right - inf.rcImage.left + 5;
				colWidth -= inf.rcImage.right - inf.rcImage.left + 5;
			}
		}

		if (*item.pszText)
		{
			

			int needX = GetStringWidth (item.pszText);
			BOOL bDrawText = TRUE;

			RECT rcText = lpDraw->rcItem;
			rcText.left = xStart;
			rcText.right = xStart + colWidth - 5;

			
			if (needX > colWidth-5)
			{
				RECT rc = rcText;
				int dx = GetStringWidth ("...");
				if (dx <= colWidth-5)
				{
					rc.left = rc.right - dx;
					dc->DrawText ("...", &rc, DT_SINGLELINE | DT_LEFT | DT_VCENTER);
					rcText.right = rc.left - 5;
				}
				else
					bDrawText = FALSE;
			}

			if (bDrawText)
				dc->DrawText (szItem, &rcText, DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_NOPREFIX);
		}

		xStart += colWidth;

		
		if (m_bGrid)
		{
			
			CPen pen (PS_SOLID, 1, m_clrGrid);
			CPen *oldPen = dc->SelectObject (&pen);
			dc->MoveTo (xStart-1, lpDraw->rcItem.top);
			dc->LineTo (xStart-1, lpDraw->rcItem.bottom);
			dc->SelectObject (oldPen);
		}
	}

	if (bNeedBorder)
	{
		

		dc->SetTextColor (m_vInfo [lpDraw->itemID].clrText);
		RECT rc = lpDraw->rcItem;
		rc.bottom--; rc.right--;
		dc->DrawFocusRect (&rc);
	}

}catch (...){}
}
Example #27
0
void CGitProgressList::OnContextMenu(CWnd* pWnd, CPoint point)
{
	if (m_options & ProgOptDryRun)
		return;	// don't do anything in a dry-run.

	if (pWnd != this)
		return; 

	int selIndex = GetSelectionMark();
	if ((point.x == -1) && (point.y == -1))
	{
		// Menu was invoked from the keyboard rather than by right-clicking
		CRect rect;
		GetItemRect(selIndex, &rect, LVIR_LABEL);
		ClientToScreen(&rect);
		point = rect.CenterPoint();
	}

	if ((selIndex < 0) || m_bThreadRunning || GetSelectedCount() == 0)
		return;

	// entry is selected, thread has finished with updating so show the popup menu
	CIconMenu popup;
	if (!popup.CreatePopupMenu())
		return;

	ContextMenuActionList actions;
	NotificationData* data = m_arData[selIndex];
	if (data && GetSelectedCount() == 1)
		data->GetContextMenu(popup, actions);

	if (!actions.empty())
		popup.AppendMenu(MF_SEPARATOR, NULL);
	actions.push_back([&]()
	{
		CString sLines;
		POSITION pos = GetFirstSelectedItemPosition();
		while (pos)
		{
			int nItem = GetNextSelectedItem(pos);
			NotificationData* data = m_arData[nItem];
			if (data)
			{
				sLines += data->sPathColumnText;
				sLines += _T("\r\n");
			}
		}
		sLines.TrimRight();
		if (!sLines.IsEmpty())
			CStringUtils::WriteAsciiStringToClipboard(sLines, GetSafeHwnd());
	});
	popup.AppendMenuIcon(actions.size(), IDS_LOG_POPUP_COPYTOCLIPBOARD, IDI_COPYCLIP);

	if (actions.empty())
		return;

	int cmd = popup.TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN | TPM_NONOTIFY, point.x, point.y, this, 0);

	if (cmd <= 0 || cmd > actions.size())
		return;

	theApp.DoWaitCursor(1);
	actions.at(cmd - 1)();
	theApp.DoWaitCursor(-1);
}