void CscopeTab::CopyContentsToClipboard(bool selectionOnly) { if ( !m_table ) return; CscopeEntryData data; int state = wxLIST_STATE_DONTCARE; if ( m_pListCtrl->GetSelectedItemCount() && selectionOnly) state = wxLIST_STATE_SELECTED; wxString str; long item = -1; for ( ;; ) { item = m_pListCtrl->GetNextItem(item, wxLIST_NEXT_ALL, state); if ( item == -1 ) break; data = m_table->at(item); str += data.GetFile() + _T('|') + wxString::Format(_T("%d|"), data.GetLine()) + data.GetScope() + _T('|') + data.GetPattern() + _T("|\n"); } if (wxTheClipboard->Open()) { wxTheClipboard->SetData(new wxTextDataObject(str)); wxTheClipboard->Close(); } }
void CscopeTab::OnListItemActivated(wxListEvent &event) { if ( !m_table ) return; long idx = event.GetIndex(); CscopeEntryData data = m_table->at(idx); cbEditor *ed = Manager::Get()->GetEditorManager()->Open( data.GetFile() ); if ( ed ) ed->GotoLine(data.GetLine()-1); event.Skip(); }