////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // // copyright : (C) 2008 by Eran Ifrah // file name : threadlistpanel.cpp // // ------------------------------------------------------------------------- // A // _____ _ _ _ _ // / __ \ | | | | (_) | // | / \/ ___ __| | ___| | _| |_ ___ // | | / _ \ / _ |/ _ \ | | | __/ _ ) // | \__/\ (_) | (_| | __/ |___| | || __/ // \____/\___/ \__,_|\___\_____/_|\__\___| // // F i l e // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// #include "threadlistpanel.h" #include "globals.h" #include "manager.h" ThreadListPanel::ThreadListPanel( wxWindow* parent ) : ThreadListBasePanel( parent ) { InitList(); } void ThreadListPanel::OnItemActivated( wxListEvent& event ) { long threadId(wxNOT_FOUND); int index = event.m_itemIndex; if(index != wxNOT_FOUND){ wxString str_id = GetColumnText(m_list, index, 0); str_id.ToLong(&threadId); Manager *mgr = ManagerST::Get(); mgr->DbgSetThread(threadId); } } void ThreadListPanel::InitList() { //add two columns to the list ctrl m_list->InsertColumn(0, wxT("Thread ID")); m_list->InsertColumn(1, wxT("Active")); m_list->InsertColumn(2, wxT("Information")); } void ThreadListPanel::PopulateList(const ThreadEntryArray &threads) { m_list->Freeze(); m_list->DeleteAllItems(); for(ThreadEntryArray::size_type i=0; i< threads.size(); i++){ ThreadEntry entry = threads.at(i); long item; wxListItem info; //insert new item (row) info.SetColumn(0); item = m_list->InsertItem(info); wxString str_id; wxString str_active; str_id << entry.dbgid; str_active = entry.active ? wxT("Yes") : wxT("No"); SetColumnText(m_list, item, 0, str_id); SetColumnText(m_list, item, 1, str_active); SetColumnText(m_list, item, 2, entry.more); } m_list->SetColumnWidth(2, wxLIST_AUTOSIZE); m_list->Thaw(); } void ThreadListPanel::Clear() { m_list->DeleteAllItems(); }