1#!/usr/bin/env python
2##===-- sandbox.py -------------------------------------------*- Python -*-===##
3##
4# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5# See https://llvm.org/LICENSE.txt for license information.
6# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7##
8##===----------------------------------------------------------------------===##
9
10
11import curses
12
13import os
14import signal
15import sys
16
17try:
18    import queue
19except ImportError:
20    import Queue as queue
21
22import cui
23
24event_queue = None
25
26
27class SandboxUI(cui.CursesUI):
28
29    def __init__(self, screen, event_queue):
30        super(SandboxUI, self).__init__(screen, event_queue)
31
32        height, width = self.screen.getmaxyx()
33        w2 = width / 2
34        h2 = height / 2
35
36        self.wins = []
37        #self.wins.append(cui.TitledWin(w2, h2, w2, h2, "Test Window 4"))
38        list_win = cui.ListWin(w2, h2, w2, h2)
39        for i in range(0, 40):
40            list_win.addItem('Item %s' % i)
41        self.wins.append(list_win)
42        self.wins.append(cui.TitledWin(0, 0, w2, h2, "Test Window 1"))
43        self.wins.append(cui.TitledWin(w2, 0, w2, h2, "Test Window 2"))
44        self.wins.append(cui.TitledWin(0, h2, w2, h2, "Test Window 3"))
45
46        # def callback(s, content):
47        #  self.wins[0].win.scroll(1)
48        #  self.wins[0].win.addstr(10, 0, '%s: %s' % (s, content))
49        #  self.wins[0].win.scroll(1)
50        #  self.el.showPrompt(10, 0)
51
52        # self.wins[0].win.scrollok(1)
53        # self.el = cui.CursesEditLine(self.wins[0].win, None,
54        #  lambda c: callback('got', c), lambda c: callback('tab', c))
55        #self.el.prompt = '>>> '
56        #self.el.showPrompt(10, 0)
57
58    def handleEvent(self, event):
59        if isinstance(event, int):
60            if event == ord('q'):
61                sys.exit(0)
62            # self.el.handleEvent(event)
63        super(SandboxUI, self).handleEvent(event)
64
65
66def main(screen):
67    global event_queue
68    event_queue = queue.Queue()
69
70    sandbox = SandboxUI(screen, event_queue)
71    sandbox.eventLoop()
72
73if __name__ == "__main__":
74    try:
75        curses.wrapper(main)
76    except KeyboardInterrupt:
77        exit()
78