import pygtk
pygtk.require("2.0")
import gtk
import gtk.gdk
import gtk.glade
import gobject

class AppGui(object):
    def __init__(self):
        """Setup the connects"""
        self.wTree = gtk.glade.XML('gtkdrive.glade')
        self.window = self.wTree.get_widget('SFLspeedpres')
        self.entry = self.wTree.get_widget('entry1')

        self.window.connect('destroy', gtk.main_quit)
        dic = {
               'on_entry1_key_press_event': self.key_pressed,
               }
        self.wTree.signal_autoconnect(dic)
        self.entry.grab_focus()
        root = gtk.gdk.get_default_root_window()
        geom = root.get_geometry()
        self.pos = (geom[2] - 200, geom[3] - 60)
        self.window.move(*self.pos)
        self.window.show_all()
        #gobject.timeout_add(1000, self.get_focus)

    def key_pressed(self, widget, event):
        RETURN = 65293
        if event.keyval == RETURN:
            self.val = self.entry.get_text()
            self.window.hide()
            gtk.main_quit()

    def reshow(self):
        #self.window.set_accept_focus(True)
        self.entry.grab_focus()
        self.window.move(*self.pos)
        self.window.show()
        self.window.present()

    def get_focus(self):
        print "Called get_focus()"
        self.window.present()
        self.entry.grab_focus()

    def window_shown(self, widget):
        print "Window shown...", widget, widget.window
        import time
        time.sleep(2)
        self.window.activate_focus()
        self.window.present()
        self.entry.grab_focus()
        #self.window.present()
        #self.window.grab_focus()
        
app = None
def get_window_value():
    global app
    if not app:
        app = AppGui()
    else:
        app.reshow()
    gtk.main()
    val = app.val
    return val

if __name__ == '__main__':
    import time
    print get_window_value()
    #time.sleep(1)
    #print get_window_value()
