llvm-project/lldb/utils/lui/sandbox.py

59 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python
import curses
import os
import signal
import sys
import Queue
import cui
event_queue = None
class SandboxUI(cui.CursesUI):
def __init__(self, screen, event_queue):
super(SandboxUI, self).__init__(screen, event_queue)
height, width = self.screen.getmaxyx()
w2 = width / 2
h2 = height / 2
self.wins = []
self.wins.append(cui.TitledWin( 0, 0, w2, h2, "Test Window 1"))
self.wins.append(cui.TitledWin(w2, 0, w2, h2, "Test Window 2"))
self.wins.append(cui.TitledWin( 0, h2, w2, h2, "Test Window 3"))
self.wins.append(cui.TitledWin(w2, h2, w2, h2, "Test Window 4"))
def callback(s, content):
self.wins[0].win.scroll(1)
self.wins[0].win.addstr(10, 0, '%s: %s' % (s, content))
self.wins[0].win.scroll(1)
self.el.showPrompt(10, 0)
self.wins[0].win.scrollok(1)
self.el = cui.CursesEditLine(self.wins[0].win, None,
lambda c: callback('got', c), lambda c: callback('tab', c))
self.el.prompt = '>>> '
self.el.showPrompt(10, 0)
def handleEvent(self, event):
if isinstance(event, int):
if event == ord('q'):
sys.exit(0)
self.el.handleEvent(event)
def main(screen):
global event_queue
event_queue = Queue.Queue()
sandbox = SandboxUI(screen, event_queue)
sandbox.eventLoop()
if __name__ == "__main__":
try:
curses.wrapper(main)
except KeyboardInterrupt:
exit()