1import pygtk 2pygtk.require('2.0') 3import gtk 4 5import os 6 7def InputBox(title, label, parent, text=''): 8 dlg = gtk.Dialog(title, parent, gtk.DIALOG_DESTROY_WITH_PARENT, 9 (gtk.STOCK_OK, gtk.RESPONSE_OK, 10 gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)) 11 lbl = gtk.Label(label) 12 lbl.show() 13 dlg.vbox.pack_start(lbl) 14 entry = gtk.Entry() 15 if text: entry.set_text(text) 16 entry.show() 17 dlg.vbox.pack_start(entry, False) 18 resp = dlg.run() 19 text = entry.get_text() 20 dlg.hide() 21 if resp == gtk.RESPONSE_CANCEL: 22 return None 23 return text 24 25def OpenFile(title, parent=None, dirname=None, fname=None): 26 dlg = gtk.FileChooserDialog(title, parent, 27 buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK, 28 gtk.STOCK_CANCEL, 29 gtk.RESPONSE_CANCEL)) 30 if fname: 31 dlg.set_current_folder(os.path.dirname(fname)) 32 elif dirname: 33 dlg.set_current_folder(dirname) 34 dlg.set_local_only(True) 35 resp = dlg.run() 36 fname = dlg.get_filename() 37 dlg.hide() 38 if resp == gtk.RESPONSE_CANCEL: 39 return None 40 return fname 41 42def SaveFile(title, parent=None, dirname=None, fname=None): 43 dlg = gtk.FileChooserDialog(title, parent, 44 gtk.FILE_CHOOSER_ACTION_SAVE, 45 buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK, 46 gtk.STOCK_CANCEL, 47 gtk.RESPONSE_CANCEL)) 48 if fname: 49 dlg.set_filename(fname) 50 elif dirname: 51 dlg.set_current_folder(dirname) 52 dlg.set_local_only(True) 53 resp = dlg.run() 54 fname = dlg.get_filename() 55 dlg.hide() 56 if resp == gtk.RESPONSE_CANCEL: 57 return None 58 return fname 59