예제 #1
0
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();
    }
}
예제 #2
0
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();
}