diff options
Diffstat (limited to 'lldb/utils/lui/breakwin.py')
-rw-r--r-- | lldb/utils/lui/breakwin.py | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/lldb/utils/lui/breakwin.py b/lldb/utils/lui/breakwin.py index 7f675254ccf..3bdd44b1aea 100644 --- a/lldb/utils/lui/breakwin.py +++ b/lldb/utils/lui/breakwin.py @@ -11,27 +11,40 @@ import cui import curses import lldb, lldbutil -class BreakWin(cui.TitledWin): +class BreakWin(cui.ListWin): def __init__(self, driver, x, y, w, h): - super(BreakWin, self).__init__(x, y, w, h, 'Breakpoints') - self.win.scrollok(1) - super(BreakWin, self).draw() + super(BreakWin, self).__init__(x, y, w, h) self.driver = driver + self.update() def handleEvent(self, event): if isinstance(event, lldb.SBEvent): if lldb.SBBreakpoint.EventIsBreakpointEvent(event): self.update() + if isinstance(event, int): + if event == ord('d'): + self.deleteSelected() + super(BreakWin, self).handleEvent(event) + + def deleteSelected(self): + if self.getSelected() == -1: + return + target = self.driver.getTarget() + if not target.IsValid(): + return + bp = target.GetBreakpointAtIndex(self.getSelected()) + target.BreakpointDelete(bp.id) def update(self): target = self.driver.getTarget() if not target.IsValid(): return - self.win.addstr(0, 0, '') + selected = self.getSelected() + self.clearItems() for i in range(0, target.GetNumBreakpoints()): bp = target.GetBreakpointAtIndex(i) if bp.IsInternal(): continue text = lldbutil.get_description(bp) - self.win.addstr(text) - self.win.addstr('\n') + self.addItem(text) + self.setSelected(selected) |