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