home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyos2bin.zip / Lib / lib-tk / tkMessageBox.py < prev    next >
Text File  |  1997-07-19  |  3KB  |  121 lines

  1. #
  2. # Instant Python
  3. # tkMessageBox.py,v 1.1 1997/07/19 20:02:36 guido Exp
  4. #
  5. # tk common message boxes
  6. #
  7. # this module provides an interface to the native message boxes
  8. # available in Tk 4.2 and newer.
  9. #
  10. # written by Fredrik Lundh, May 1997
  11. #
  12.  
  13. #
  14. # options (all have default values):
  15. #
  16. # - default: which button to make default (one of the reply codes)
  17. #
  18. # - icon: which icon to display (see below)
  19. #
  20. # - message: the message to display
  21. #
  22. # - parent: which window to place the dialog on top of
  23. #
  24. # - title: dialog title
  25. #
  26. # - type: dialog type; that is, which buttons to display (see below)
  27. #
  28.  
  29. from tkCommonDialog import Dialog
  30.  
  31. #
  32. # constants
  33.  
  34. # icons
  35. ERROR = "error"
  36. INFO = "info"
  37. QUESTION = "question"
  38. WARNING = "warning"
  39.  
  40. # types
  41. ABORTRETRYIGNORE = "abortretryignore"
  42. OK = "ok"
  43. OKCANCEL = "okcancel"
  44. RETRYCANCEL = "retrycancel"
  45. YESNO = "yesno"
  46. YESNOCANCEL = "yesnocancel"
  47.  
  48. # replies
  49. ABORT = "abort"
  50. RETRY = "retry"
  51. IGNORE = "ignore"
  52. OK = "ok"
  53. CANCEL = "cancel"
  54. YES = "yes"
  55. NO = "no"
  56.  
  57.  
  58. #
  59. # message dialog class
  60.  
  61. class Message(Dialog):
  62.     "A message box"
  63.  
  64.     command  = "tk_messageBox"
  65.  
  66.  
  67. #
  68. # convenience stuff
  69.  
  70. def _show(title=None, message=None, icon=None, type=None, **options):
  71.     if icon:    options["icon"] = icon
  72.     if type:    options["type"] = type
  73.     if title:   options["title"] = title
  74.     if message: options["message"] = message
  75.     return apply(Message, (), options).show()
  76.  
  77. def showinfo(title=None, message=None, **options):
  78.     "Show an info message"
  79.     return apply(_show, (title, message, INFO, OK), options)
  80.  
  81. def showwarning(title=None, message=None, **options):
  82.     "Show a warning message"
  83.     return apply(_show, (title, message, WARNING, OK), options)
  84.  
  85. def showerror(title=None, message=None, **options):
  86.     "Show an error message"
  87.     return apply(_show, (title, message, ERROR, OK), options)
  88.  
  89. def askquestion(title=None, message=None, **options):
  90.     "Ask a question"
  91.     return apply(_show, (title, message, QUESTION, YESNO), options)
  92.  
  93. def askokcancel(title=None, message=None, **options):
  94.     "Ask if operation should proceed; return true if the answer is ok"
  95.     s = apply(_show, (title, message, QUESTION, OKCANCEL), options)
  96.     return s == OK
  97.  
  98. def askyesno(title=None, message=None, **options):
  99.     "Ask a question; return true if the answer is yes"
  100.     s = apply(_show, (title, message, QUESTION, YESNO), options)
  101.     return s == YES
  102.  
  103. def askretrycancel(title=None, message=None, **options):
  104.     "Ask if operation should be retried; return true if the answer is yes"
  105.     s = apply(_show, (title, message, WARNING, RETRYCANCEL), options)
  106.     return s == RETRY
  107.  
  108.  
  109. # --------------------------------------------------------------------
  110. # test stuff
  111.  
  112. if __name__ == "__main__":
  113.  
  114.     print "info", showinfo("Spam", "Egg Information")
  115.     print "warning", showwarning("Spam", "Egg Warning")
  116.     print "error", showerror("Spam", "Egg Alert")
  117.     print "question", askquestion("Spam", "Question?")
  118.     print "proceed", askokcancel("Spam", "Proceed?")
  119.     print "yes/no", askyesno("Spam", "Got it?")
  120.     print "try again", askretrycancel("Spam", "Try again?")
  121.