source: trunk/essentials/dev-lang/python/Lib/lib-tk/tkMessageBox.py

Last change on this file was 3225, checked in by bird, 19 years ago

Python 2.5

File size: 3.2 KB
Line 
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
25from tkCommonDialog import Dialog
26
27#
28# constants
29
30# icons
31ERROR = "error"
32INFO = "info"
33QUESTION = "question"
34WARNING = "warning"
35
36# types
37ABORTRETRYIGNORE = "abortretryignore"
38OK = "ok"
39OKCANCEL = "okcancel"
40RETRYCANCEL = "retrycancel"
41YESNO = "yesno"
42YESNOCANCEL = "yesnocancel"
43
44# replies
45ABORT = "abort"
46RETRY = "retry"
47IGNORE = "ignore"
48OK = "ok"
49CANCEL = "cancel"
50YES = "yes"
51NO = "no"
52
53
54#
55# message dialog class
56
57class 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
67def _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
79def showinfo(title=None, message=None, **options):
80 "Show an info message"
81 return _show(title, message, INFO, OK, **options)
82
83def showwarning(title=None, message=None, **options):
84 "Show a warning message"
85 return _show(title, message, WARNING, OK, **options)
86
87def showerror(title=None, message=None, **options):
88 "Show an error message"
89 return _show(title, message, ERROR, OK, **options)
90
91def askquestion(title=None, message=None, **options):
92 "Ask a question"
93 return _show(title, message, QUESTION, YESNO, **options)
94
95def 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
100def 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
105def 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
114if __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?")
Note: See TracBrowser for help on using the repository browser.