forked from eranif/codelite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbreakpointdlg.cpp
71 lines (63 loc) · 1.74 KB
/
breakpointdlg.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "breakpointdlg.h"
#include "debuggermanager.h"
#include "manager.h"
#include "macros.h"
BreakpointDlg::BreakpointDlg( wxWindow* parent )
:
BreakpointDlgBase( parent )
{
Initialize();
ConnectButton(m_buttonDelete, BreakpointDlg::OnDelete);
ConnectButton(m_buttonDeleteAll, BreakpointDlg::OnDeleteAll);
}
void BreakpointDlg::Initialize()
{
m_listBreakpoints->Clear();
m_listBreakpoints->Freeze();
std::vector<BreakpointInfo> bps, pbps;
DebuggerMgr::Get().GetBreakpoints(bps);
std::vector<BreakpointInfo>::iterator iter = bps.begin();
for(; iter != bps.end(); iter++)
{
wxString entry;
entry << iter->file << wxT("|") << iter->lineno;
m_listBreakpoints->Append(entry);
}
iter = pbps.begin();
for(; iter != pbps.end(); iter++)
{
wxString entry;
entry << iter->file << wxT("|") << iter->lineno;
m_listBreakpoints->Append(entry);
}
if(m_listBreakpoints->GetCount() > 0){
m_listBreakpoints->Select(0);
}
m_listBreakpoints->Thaw();
}
void BreakpointDlg::OnDelete(wxCommandEvent &e)
{
wxUnusedVar(e);
if(m_listBreakpoints->GetCount() > 0){
int where = m_listBreakpoints->GetSelection();
if(where != wxNOT_FOUND){
wxString sel = m_listBreakpoints->GetStringSelection();
//get the file name
wxString fileName = sel.BeforeFirst(wxT('|'));
wxString strLine = sel.AfterFirst(wxT('|'));
long lineno;
strLine.ToLong(&lineno);
BreakpointInfo bp;
bp.file = fileName;
bp.lineno = lineno;
ManagerST::Get()->DbgDeleteBreakpoint(bp);
m_listBreakpoints->Delete((unsigned int)where);
}
}
}
void BreakpointDlg::OnDeleteAll(wxCommandEvent &e)
{
wxUnusedVar(e);
ManagerST::Get()->DbgDeleteAllBreakpoints();
m_listBreakpoints->Clear();
}