00001 import gtk 00002 00003 def PrettyPrintTime(sec): 00004 """Utility function. PrettyPrintTime(63)=='1:03'""" 00005 return repr(sec/60)+':'+'%02u' % (sec%60) 00006 00007 00008 def ReportError(majortext,minortext): 00009 """Print out error message and display a corresponding dialog to the user.""" 00010 print 'ERROR -',majortext,'(',minortext,')' 00011 00012 dlg=gtk.MessageDialog(buttons=gtk.BUTTONS_OK,message_format=majortext,type=gtk.MESSAGE_ERROR) 00013 dlg.format_secondary_text(repr(minortext)) 00014 dlg.present() 00015 dlg.run() 00016 dlg.hide() 00017 00018 00019 class GreyedOut: 00020 """For use in a with statement to grey out and then restore a widget. 00021 Overengineering is fun.""" 00022 def __init__(self,widget): 00023 self._widget_widget=widget 00024 def __enter__(self): 00025 self._widget_widget.set_sensitive(False) 00026 return self._widget_widget 00027 def __exit__(self,type,value,traceback): 00028 self._widget_widget.set_sensitive(True) 00029 return False