#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import os
import sys

#gtk
import pygtk
if sys.platform != 'win32':
    pygtk.require('2.0')
import gtk
import gobject


class WinTest:
    """Main Window"""

    def __init__(self):
        """test"""
        #build the window
        self.winMain = gtk.Window()
        #set window properties
        self.winMain.set_events(
            gtk.gdk.KEY_PRESS_MASK |
            gtk.gdk.KEY_RELEASE_MASK)
        print "events=",self.winMain.get_events()
        self.winMain.connect('key-press-event', self.on_winMain_key_press)
        self.winMain.connect('key-release-event', self.on_winMain_key_press)
        self.winMain.connect('delete-event', self.on_winMain_delete_event)
        self.winMain.set_size_request(300, 400)
        self.winMain.show()

    def on_winMain_key_press(self, widget, event, *args):
        """handle keyboard events"""
        keyname = gtk.gdk.keyval_name(event.keyval).upper()
        if event.type == gtk.gdk.KEY_PRESS:
            if keyname == 'ESCAPE':
                self.on_winMain_delete_event()
            else:
                print "key press=", keyname
        elif event.type == gtk.gdk.KEY_RELEASE:
            print "key release=", keyname
        return False

    def on_winMain_delete_event(self, *args):
        """done, quit the application"""
        #exit gtk loop
        gtk.main_quit()
        return False


if __name__ == '__main__':
    #instantiate main GUI window class
    app = WinTest()
    #and... go...
    gtk.main()

