## Clock.py - implements a simple text clock widget.
## Copyright (C) 2002, 2003 Red Hat, Inc.
## Copyright (C) 2002, 2003 Brent Fox <bfox@redhat.com>

## This program 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; either version 2 of the License, or
## (at your option) any later version.

## This program 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 this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

import gtk
import gobject
import time

class Clock:
    def __init__(self):
        self.interval = 1
        self.hbox = gtk.HBox()
        self.hour = gtk.Label("")
        self.minute = gtk.Label("")
        self.second = gtk.Label("")

        self.hbox.pack_start(self.hour, gtk.FALSE)
        self.hbox.pack_start(gtk.Label(":"), gtk.FALSE)
        self.hbox.pack_start(self.minute, gtk.FALSE)
        self.hbox.pack_start(gtk.Label(":"), gtk.FALSE)
        self.hbox.pack_start(self.second, gtk.FALSE)

        times = time.localtime(time.time())
        self.setTime(times[3], times[4], times[5])

    def updateTime(self):
        times = time.localtime(time.time())
        self.setTime(times[3], times[4], times[5])
        return gtk.TRUE
        
    def setTime(self, hour, minute, second):
        if hour < 10:
            hour = "0" + str(hour)

        if minute < 10:
            minute = "0" + str(minute)

        if second < 10:
            second = "0" + str(second)
            
        self.hour.set_text(str(hour))
        self.minute.set_text(str(minute))
        self.second.set_text(str(second))
        self.hbox.show_all()

    def setInterval(self, interval):
        self.interval = interval

    def launch(self):
        return self.hbox

    def getTime(self):
        return self.hour.get_text(), self.minute.get_text(), self.second.get_text()
