sdf

parent 0b79f6b7
......@@ -21,6 +21,31 @@ from handler import Handler
import curses
from curses import textpad
class Tab(curses.Window):
"""
The whole "screen" that can be seen at once in the terminal.
It contains an userlist, an input zone and a chat zone, all
related to one single chat room.
"""
def __init__(self, stdscr, name=None):
"""
name is the name of the Tab, and it's also
the JID of the chatroom.
A particular tab is the "Info" tab which has no
name (None). This info tab should be unique.
The stdscr should be passed to know the size of the
terminal
"""
self.name = name
self.size = (self.height, self.width) = stdscr.getmaxyx()
def resize(self, y, x):
"""
Resize the whole tabe. i.e. all its sub-windows
"""
pass
class Gui(object):
"""
Graphical user interface using ncurses
......@@ -41,14 +66,21 @@ class Gui(object):
curses.endwin()
def init_curses(self):
curses.initscr()
self.stdscr = curses.newwin(1, 1000, 0, 0)
self.stdscr= curses.initscr()
# self.stdscr = curses.newwin(1, 1000, 0, 0)
curses.noecho()
curses.cbreak()
curses.meta(True)
self.stdscr.keypad(1)
# curses.meta(True)
# self.stdscr.keypad(1)
self.input = textpad.Textbox(self.stdscr)
def main_loop(self, stdscr):
while 1:
key = stdscr.getch()
if key == curses.KEY_RESIZE:
pass
self.input.do_command(key)
def on_message(self, jid, msg, subject, typ, stanza):
print "on_message", jid, msg, subject, typ
......@@ -60,20 +92,10 @@ class Gui(object):
def get_input(self):
return self.stdscr.getch()
def sigwinch_handler(n, frame):
fd = open('fion', 'a')
fd.write(str(n)+ '\n')
fd.close()
if __name__ == '__main__':
def main(stdscr):
gui = Gui()
import signal
signal.signal(signal.SIGWINCH, sigwinch_handler)
while 1:
key = gui.stdscr.getch()
if key == curses.KEY_RESIZE:
print "FION"
import sys
sys.exit()
gui.input.do_command(key)
gui.main_loop(stdscr)
if __name__ == '__main__':
curses.wrapper(main)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment