1*061da546Spatrick##===-- statuswin.py -----------------------------------------*- Python -*-===## 2*061da546Spatrick## 3*061da546Spatrick# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*061da546Spatrick# See https://llvm.org/LICENSE.txt for license information. 5*061da546Spatrick# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*061da546Spatrick## 7*061da546Spatrick##===----------------------------------------------------------------------===## 8*061da546Spatrick 9*061da546Spatrickimport lldb 10*061da546Spatrickimport lldbutil 11*061da546Spatrickimport cui 12*061da546Spatrickimport curses 13*061da546Spatrick 14*061da546Spatrick 15*061da546Spatrickclass StatusWin(cui.TextWin): 16*061da546Spatrick 17*061da546Spatrick def __init__(self, x, y, w, h): 18*061da546Spatrick super(StatusWin, self).__init__(x, y, w) 19*061da546Spatrick 20*061da546Spatrick self.keys = [ # ('F1', 'Help', curses.KEY_F1), 21*061da546Spatrick ('F3', 'Cycle-focus', curses.KEY_F3), 22*061da546Spatrick ('F10', 'Quit', curses.KEY_F10)] 23*061da546Spatrick 24*061da546Spatrick def draw(self): 25*061da546Spatrick self.win.addstr(0, 0, '') 26*061da546Spatrick for key in self.keys: 27*061da546Spatrick self.win.addstr('{0}'.format(key[0]), curses.A_REVERSE) 28*061da546Spatrick self.win.addstr(' {0} '.format(key[1]), curses.A_NORMAL) 29*061da546Spatrick super(StatusWin, self).draw() 30*061da546Spatrick 31*061da546Spatrick def handleEvent(self, event): 32*061da546Spatrick if isinstance(event, int): 33*061da546Spatrick pass 34*061da546Spatrick elif isinstance(event, lldb.SBEvent): 35*061da546Spatrick if lldb.SBProcess.EventIsProcessEvent(event): 36*061da546Spatrick state = lldb.SBProcess.GetStateFromEvent(event) 37*061da546Spatrick status = lldbutil.state_type_to_str(state) 38*061da546Spatrick self.win.erase() 39*061da546Spatrick x = self.win.getmaxyx()[1] - len(status) - 1 40*061da546Spatrick self.win.addstr(0, x, status) 41*061da546Spatrick return 42