# # installpath_gui.py: screen for selecting which installclass to use. # # Copyright 2000-2002 Red Hat, Inc. # # This software may be freely redistributed under the terms of the GNU # library public license. # # You should have received a copy of the GNU Library Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # import installclass import gtk import gui from pixmapRadioButtonGroup_gui import pixmapRadioButtonGroup from iw_gui import InstallWindow from flags import flags from rhpl.translate import _, N_ #CJS added so to log import logging log = logging.getLogger("anaconda") UPGRADE = 0 INSTALL = 1 CUSTOM = 2 WORKSTATION_GNOME = 3 WORKSTATION_KDE = 4 SERVER = 5 class InstallPathWindow (InstallWindow): installTypes = installclass.availableClasses() htmlTag = "instpath" windowTitle = ("Installation Type") def getNext(self): selection = None for (name, object, pixmap) in self.installTypes: if name == self.currentClassName: selection = object if self.anaconda.id.instClass.name != selection.name: c = selection(flags.expert) c.setSteps(self.anaconda.dispatch) c.setInstallData(self.anaconda) needNewDruid = 1 def optionToggled(self, widget, name): if widget.get_active(): self.currentClassName = name def createInstallTypeOption(self): r = pixmapRadioButtonGroup() for (name, object, pixmap) in self.installTypes: descr = object.description r.addEntry(name, _(name), pixmap=gui.readImageFromFile(pixmap), descr=_(descr)) return r # InstallPathWindow tag="instpath" def getScreen (self, anaconda): self.anaconda = anaconda vbox = gtk.VBox (False, 10) vbox.set_border_width (8) self.r = self.createInstallTypeOption() b = self.r.render() self.r.setToggleCallback(self.optionToggled) # figure out current class as well as default defaultClass = None currentClass = None firstClass = None for (name, object, pixmap) in self.installTypes: if firstClass is None: firstClass = object if isinstance(anaconda.id.instClass, object): currentClass = object if object.default: defaultClass = object if currentClass is None: if defaultClass is not None: self.currentClassName = defaultClass.name else: self.currentClassName = firstClass.name else: self.currentClassName = currentClass.name self.r.setCurrent(self.currentClassName) # CJS Added for scrolling scrolledwin = gtk.ScrolledWindow () scrolledwin.set_border_width(4) # scrolledwin.set_usize(-1,475) # scrolledwin.set_size_request(300,475) scrolledwin.set_size_request(300,425) scrolledwin.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC) scrolledwin.add_with_viewport(b) scrolledwin.show() # CJS added end box = gtk.VBox (False) box.pack_start(scrolledwin, False) vbox.pack_start (box, False) return vbox