# # Print module for pyne. # import tempfile import os import gtk import time import pynei18n import ptk.misc_widgets class print_box(gtk.Window): """ A 'print' dialog box. """ def close(self, _w=None): self.destroy() def do_print(self, _a=None): command = self.command_entry.get_text() self.user.printer = command self.destroy() # for the moment print the whole damn thing... filename = tempfile.mktemp() f = open(filename, "w") self.user.tempfiles.append(filename) try: f.write("To: "+self.message.headers["to"]+"\n") except KeyError: try: f.write("Newsgroups: "+self.message.headers["newsgroups"]+"\n") except KeyError: pass f.write("From: "+self.message.headers["from"]+"\n") f.write("Subject: "+self.message.headers["subject"]+"\n") f.write("Date: "+time.strftime("%d %b %Y %H:%M:%S", time.localtime(self.message.date))+"\n") f.write("\n") f.write(self.message.external_parser(self.user, 0)) f.close() pid = os.fork () if pid == 0: os.system(command+" "+filename) os._exit(0) else: self.user.register_child (pid) def __init__(self, user, message): self.user = user self.message = message gtk.Window.__init__(self) self.set_name(_("Pyne - Print Message")) self.set_title(_("Pyne - Print Message")) box = gtk.VBox() self.add(box) box.show() box1 = gtk.HBox() box.pack_start(box1, expand=False) box1.set_border_width(5) box1.show() label = gtk.Label(_("Printer Command:")) box1.pack_start(label, expand=False) label.show() self.command_entry = gtk.Entry() box1.pack_start(self.command_entry) self.command_entry.set_text(self.user.printer) self.command_entry.show() sep = gtk.HSeparator() box.pack_start(sep, expand=False) sep.show() # page range still to do buttonbox = ptk.misc_widgets.MyButtonBox() box.pack_start(buttonbox, expand=False) buttonbox.show() button = gtk.Button(stock='gtk-print') button.connect("clicked", self.do_print) buttonbox.pack_end(button, expand=False) button.show() button = gtk.Button(stock='gtk-cancel') button.connect("clicked", self.close) buttonbox.pack_end(button, expand=False) button.show()