From 0b79f6b728951bedf9fca8f8027e231249ff28a5 Mon Sep 17 00:00:00 2001 From: "louiz@4325f9fc-e183-4c21-96ce-0ab188b42d13" Date: Sun, 10 Jan 2010 20:14:17 +0000 Subject: first commit --- src/gui.py | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/gui.py (limited to 'src/gui.py') diff --git a/src/gui.py b/src/gui.py new file mode 100644 index 00000000..44b35f73 --- /dev/null +++ b/src/gui.py @@ -0,0 +1,79 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- +# +# Copyright 2010 Le Coz Florent +# +# This file is part of Poezio. +# +# Poezio is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, version 3 of the License. +# +# Poezio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Poezio. If not, see . + +from handler import Handler +import curses +from curses import textpad + +class Gui(object): + """ + Graphical user interface using ncurses + """ + def __init__(self): + self.handler = Handler() + + self.handler.connect('on-muc-message-received', self.on_message) + self.handler.connect('join-room', self.on_join_room) + self.handler.connect('on-muc-presence-changed', self.on_presence) + + self.init_curses() + + def __del__(self): + curses.nocbreak(); + self.stdscr.keypad(0); + curses.echo() + curses.endwin() + + def init_curses(self): + curses.initscr() + self.stdscr = curses.newwin(1, 1000, 0, 0) + curses.noecho() + curses.cbreak() + curses.meta(True) + self.stdscr.keypad(1) + self.input = textpad.Textbox(self.stdscr) + + def on_message(self, jid, msg, subject, typ, stanza): + print "on_message", jid, msg, subject, typ + + def on_join_room(self, room, nick): + print "on_join_room", room, nick + + def on_presence(self, jid, priority, show, status, stanza): + print "on presence", jid, priority, show, status + + 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__': + 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) + -- cgit v1.2.3