
import gtk
import gtk.glade
import os

from gtk import TRUE
from gtk import FALSE
from config import *
from rhpl.translate import _, N_
from rhpl.GenericError import *

class CDDialog:
    def __init__ (self, release_name, disk_id, items_installed, parent=None):
        glade_file = "CDDialog.glade"
        if not os.path.isfile(glade_file):
            glade_file = GLADEDIR + glade_file
        self.xml = gtk.glade.XML (glade_file, domain=PROGNAME)

        pixbuf_file = "cd-logo.png"
        if not os.path.isfile(pixbuf_file):
            pixbuf_file = RHCPIXMAPSDIR + pixbuf_file
        self.xml.get_widget ('cd_image').set_from_file (pixbuf_file)
        self.xml.get_widget ('primary_label').set_markup ("<span size=\"larger\" weight=\"bold\">" +_("\"%s\" disk %d needed to install packages") % (release_name, disk_id) + "</span>")
        if items_installed > 0:
            self.xml.get_widget ('secondary_label').set_text (_("Insert the disk and press OK.  If the disk is unavailable this operation can be canceled, but the packages already installed may not function correctly.") )
        else:
            self.xml.get_widget ('secondary_label').set_text (_("Insert the disk and press OK."))
        if parent:
            self.xml.get_widget ('cd_dialog').set_transient_for (parent)


    def display (self):
        dialog = self.xml.get_widget ('cd_dialog')
        dialog.show_all ()
        ret = dialog.run ()
        dialog.destroy ()
        return ret
