diff options
author | Mike Fulbright <msf@redhat.com> | 2000-04-19 21:08:51 +0000 |
---|---|---|
committer | Mike Fulbright <msf@redhat.com> | 2000-04-19 21:08:51 +0000 |
commit | c8ba7b5e5fa4452e337d9f021ec7d4f7df032e64 (patch) | |
tree | aad376099521b51a11cb5e38a1055d36349811d7 /iw/timezone_gui.py | |
parent | 6f90d5d2dc6ad5b7fd0fe2522c147b8df843da2c (diff) | |
download | anaconda-c8ba7b5e5fa4452e337d9f021ec7d4f7df032e64.tar.gz anaconda-c8ba7b5e5fa4452e337d9f021ec7d4f7df032e64.tar.xz anaconda-c8ba7b5e5fa4452e337d9f021ec7d4f7df032e64.zip |
Renamed timezone.py to timezone_gui.py
Diffstat (limited to 'iw/timezone_gui.py')
-rw-r--r-- | iw/timezone_gui.py | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/iw/timezone_gui.py b/iw/timezone_gui.py new file mode 100644 index 000000000..959793b33 --- /dev/null +++ b/iw/timezone_gui.py @@ -0,0 +1,241 @@ +from gtk import * +from iw import * +import string +from gnome.ui import GnomeCanvas +from translate import _ +import iutil + +import timezonemap + +class Map (GnomeCanvas): + def __init__ (self, map): + self._o = map + +class List (GtkScrolledWindow): + def __init__ (self, list): + self._o = list + +class Status (GtkStatusbar): + def __init__ (self, bar): + self._o = bar + +class Option (GtkOptionMenu): + def __init__ (self, option): + self._o = option + +class TimezoneWindow (InstallWindow): + + def __init__ (self, ics): + InstallWindow.__init__ (self, ics) + + ics.setTitle (_("Time Zone Selection")) + ics.setNextEnabled (1) + ics.readHTML ("timezone") + self.old_page = 0 + self.old_ulist_row = 9 # default to UTC row + self.old_use_dst = 0 + + self.timeZones = ((("-14", ""), ("Etc/GMT-14", "Etc/GMT-14")), + (("-13", ""), ("Etc/GMT-13", "Etc/GMT-13")), + (("-12", ""), ("Etc/GMT-12", "Etc/GMT-12")), + (("-11", ""), ("Etc/GMT-11", "Etc/GMT-11")), + (("-10", ""), ("Etc/GMT-10", "Etc/GMT-10")), + (("-09", ""), ("Etc/GMT-9", "Etc/GMT-9")), + (("-08", "US Pacific"), ("Etc/GMT-8", "America/Los_Angeles")), + (("-07", "US Mountain"), ("Etc/GMT-7", "America/Denver")), + (("-06", "US Central"), ("Etc/GMT-6", "America/Chicago")), + (("-05", "US Eastern"), ("Etc/GMT-5", "America/New_York")), + (("-04", ""), ("Etc/GMT-4", "Etc/GMT-4")), + (("-03", ""), ("Etc/GMT-3", "Etc/GMT-3")), + (("-02", ""), ("Etc/GMT-2", "Etc/GMT-2")), + (("-01", ""), ("Etc/GMT-1", "Etc/GMT-1")), + (("", ""), ("Etc/GMT", "Etc/GMT")), + (("+01", ""), ("Etc/GMT+1", "Etc/GMT+1")), + (("+02", ""), ("Etc/GMT+2", "Etc/GMT+2")), + (("+03", ""), ("Etc/GMT+3", "Etc/GMT+3")), + (("+04", ""), ("Etc/GMT+4", "Etc/GMT+4")), + (("+05", ""), ("Etc/GMT+5", "Etc/GMT+5")), + (("+06", ""), ("Etc/GMT+6", "Etc/GMT+6")), + (("+07", ""), ("Etc/GMT+7", "Etc/GMT+7")), + (("+08", ""), ("Etc/GMT+8", "Etc/GMT+8")), + (("+09", ""), ("Etc/GMT+9", "Etc/GMT+9")), + (("+10", ""), ("Etc/GMT+10", "Etc/GMT+10")), + (("+11", ""), ("Etc/GMT+11", "Etc/GMT+11")), + (("+12", ""), ("Etc/GMT+12", "Etc/GMT+12"))) + + def getNext (self): + if not self.__dict__.has_key('list'): return None + + self.old_page = self.nb.get_current_page () + self.old_ulist_row = self.ulist.selection[0] + self.old_use_dst = self.daylightCB.get_active () + + if (self.old_page == 0): + self.todo.setTimezoneInfo (self.list.get_text (self.list.selection[0], 0), + self.systemUTC.get_active ()) + else: + timezone = self.timeZones[self.ulist.selection[0]][1] + if self.daylightCB.get_active (): + timezone = timezone[1] + else: + timezone = timezone[0] + self.todo.setTimezoneInfo (timezone, self.systemUTC.get_active ()) + + return None + + def copy_toggled (self, cb1, cb2): + if cb1.get_data ("toggling"): return + + cb2.set_data ("toggling", 1) + cb2.set_active (cb1.get_active ()) + cb2.set_data ("toggling", 0) + + def view_change (self, widget, *args): + if not self.list.selection: + self.ics.setNextEnabled (FALSE) + else: + self.ics.setNextEnabled (TRUE) + + def setcurrent (self, widget, area): + self.tz.setcurrent (self.default) + widget.disconnect (self.id) + + def getScreen (self): + try: + f = open ("/usr/share/anaconda/pixmaps/map480.png") + f.close () + except: + path = "gnome-map/map480.png" + else: + path = "/usr/share/anaconda/pixmaps/map480.png" + + nb = GtkNotebook () + self.nb = nb + + mainBox = GtkVBox (FALSE, 5) + + tz = timezonemap.new (path) + self.tz = tz + map = Map (tz.map) + swList = List (tz.citylist) + self.list = swList.children ()[0] + + rc = self.todo.getTimezoneInfo() + if rc: + (self.default, asUTC, asArc) = rc + else: + self.default = iutil.defaultZone () + asUTC = 0 + + if (string.find (self.default, "UTC") != -1): + self.default = "America/New_York" + + self.id = self.list.connect ("draw", self.setcurrent) + + self.nb.connect ("realize", lambda widget, self=self: + self.nb.set_page (self.old_page)) + + status = Status (tz.statusbar) + views = Option (tz.views) + + + for menu_item in views.get_menu ().children (): + menu_item.connect ("activate", self.view_change) + + # fix for current map weirdness in dr mike's code. + views.get_menu ().children ()[0].activate () + + label = GtkLabel (_("View:")) + hbox = GtkHBox (FALSE, 5) + hbox.pack_start (label, FALSE) + align = GtkAlignment (0.5, 0.5) + align.add (views) + hbox.pack_start (align, FALSE) + self.p1_align = align + + systemUTCCopy = GtkCheckButton (_("System clock uses UTC")) + self.systemUTC = GtkCheckButton (_("System clock uses UTC")) + + systemUTCCopy.connect ("toggled", self.copy_toggled, self.systemUTC) + self.systemUTC.connect ("toggled", self.copy_toggled, systemUTCCopy) + + self.systemUTC.set_active (asUTC) + + align = GtkAlignment (0.5, 0.5) + align.add (self.systemUTC) + hbox.pack_start (align, FALSE) + + im = self.ics.readPixmap ("timezone.png") + if im: + im.render () + pix = im.make_pixmap () + a = GtkAlignment () + a.add (pix) + a.set (1.0, 0.0, 0.0, 0.0) + hbox.pack_start (a, TRUE) + + frame = GtkFrame () + frame.set_shadow_type (SHADOW_IN) + frame.add (map) + + mainBox.pack_start (hbox, FALSE) + box = GtkVBox (FALSE, 0) + box.pack_start (frame, FALSE) + box.pack_start (status, FALSE) + mainBox.pack_start (box, FALSE) + mainBox.pack_start (swList, TRUE) + + tzBox = GtkVBox (FALSE) + sw = GtkScrolledWindow () + sw.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC) + self.ulist = GtkCList (2) + self.ulist.connect ("draw", lambda widget, area, self=self: + self.ulist.moveto (self.old_ulist_row)) + self.ulist.set_selection_mode (SELECTION_BROWSE) + self.ulist.freeze () + for zone in self.timeZones: + self.ulist.append (("UTC%s" % (zone[0][0],), zone[0][1])) + self.ulist.columns_autosize () + self.ulist.thaw () + self.ulist.select_row (self.old_ulist_row, 0) + sw.add (self.ulist) + tzBox.pack_start (sw) + box = GtkHBox (FALSE) + align = GtkAlignment (0.5, 0.5) + self.daylightCB = GtkCheckButton (_("Use Daylight Saving Time (US only)")) + self.daylightCB.set_active (self.old_use_dst) + align.add (self.daylightCB) + box.pack_start (align, FALSE) + + align = GtkAlignment (1.0, 0.5) + align.add (systemUTCCopy) + + box.pack_start (align, TRUE) + tzBox.pack_start (box, FALSE) + tzBox.set_border_width (5) + self.tzBox = tzBox + + mainBox.set_border_width (5) + nb.append_page (mainBox, GtkLabel (_("Location"))) + nb.append_page (tzBox, GtkLabel (_("UTC Offset"))) + + def switch_page (widget, page, page_num, self=self): + if page_num == 1: + self.ics.setNextEnabled (TRUE) + else: + self.view_change (None) + + nb.connect ("switch_page", switch_page) + self.list.connect ("select_row", self.view_change) + + box = GtkVBox (FALSE, 5) + box.pack_start (nb) +# self.systemUTC = GtkCheckButton (_("System clock uses UTC")) +# self.systemUTC.set_active (asUTC) +# align = GtkAlignment (0, 0) +# align.add (self.systemUTC) +# box.pack_start (align, FALSE) + box.set_border_width (5) + + return box + |