#!/usr/bin/python -O
import gtk.glade
import time
gladefile="international-time.glade"

class MainWin:
    def __init__(self):
        try:
            file (gladefile, 'r').close ()
            xml=gtk.glade.XML(gladefile)
        except:
            xml=gtk.glade.XML("/usr/share/international-time/" + gladefile)

        xml.signal_connect ('on_day_selected', self.on_changed)
        xml.signal_connect ('on_hourspinbutton_value_changed', self.on_changed)
        xml.signal_connect ('on_minspinbutton_value_changed', self.on_changed)
        xml.signal_connect ('on_mainwin_destroy', gtk.main_quit)
        xml.signal_connect ('on_close_clicked', gtk.main_quit)
        self.locentry = xml.get_widget ('locentry')
        self.intentry = xml.get_widget ('intentry')
        self.calendar = xml.get_widget ('calendar')
        self.hourspinbutton = xml.get_widget ('hourspinbutton')
        self.minspinbutton = xml.get_widget ('minspinbutton')
        self.on_changed (None)
        (_, _, _, h, m, _, _, _, _) = time.localtime ()
        self.hourspinbutton.set_value (h)
        self.minspinbutton.set_value ((5 * ((m + 4) / 5)) % 60)
        gtk.main ()

    def on_changed(self, obj):
        hour = int (self.hourspinbutton.get_text ())
        min = int (self.minspinbutton.get_text())
        (year, months, day) = self.calendar.get_date()
        tm = time.struct_time ((year, months + 1, day, hour, min, 0,
                                0, 0, -1))
        t = time.mktime (tm)
        localtime = time.localtime (t)
        gmtime = time.gmtime (t)
        self.locentry.set_text (time.strftime("%a %b %e %Y %l:%M%P %Z",
                                              localtime))
        self.intentry.set_text (time.strftime("%F, %H:%M UTC", gmtime))

MainWin()
