Mercurial > cpython-lru_cache-weakref
annotate Lib/lib-tk/tkMessageBox.py @ 37850:ebe59cd18273
Use explicit relative import for an, ehm, relative import.
| author | Thomas Wouters <thomas@python.org> |
|---|---|
| date | Tue, 18 Apr 2006 21:41:36 +0000 |
| parents | 6a018d8c59c9 |
| children | 1258e93bb1d0 |
| rev | line source |
|---|---|
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 # tk common message boxes |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 # this module provides an interface to the native message boxes |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 # available in Tk 4.2 and newer. |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 # written by Fredrik Lundh, May 1997 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 # options (all have default values): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 # - default: which button to make default (one of the reply codes) |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 # - icon: which icon to display (see below) |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 # - message: the message to display |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 # - parent: which window to place the dialog on top of |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 # - title: dialog title |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 # - type: dialog type; that is, which buttons to display (see below) |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 from tkCommonDialog import Dialog |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 # constants |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 # icons |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 ERROR = "error" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 INFO = "info" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 QUESTION = "question" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 WARNING = "warning" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 # types |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 ABORTRETRYIGNORE = "abortretryignore" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 OK = "ok" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 OKCANCEL = "okcancel" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 RETRYCANCEL = "retrycancel" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 YESNO = "yesno" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 YESNOCANCEL = "yesnocancel" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 # replies |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 ABORT = "abort" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 RETRY = "retry" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 IGNORE = "ignore" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 OK = "ok" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 CANCEL = "cancel" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 YES = "yes" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 NO = "no" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 # message dialog class |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 class Message(Dialog): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 "A message box" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 command = "tk_messageBox" |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 # |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 # convenience stuff |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 def _show(title=None, message=None, icon=None, type=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 if icon: options["icon"] = icon |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 if type: options["type"] = type |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
69 if title: options["title"] = title |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
70 if message: options["message"] = message |
|
33512
11d4500be6fa
Convert boolean results back to strings. Fixes #807871.
Martin v. Löwis <martin@v.loewis.de>
parents:
28513
diff
changeset
|
71 res = Message(**options).show() |
|
11d4500be6fa
Convert boolean results back to strings. Fixes #807871.
Martin v. Löwis <martin@v.loewis.de>
parents:
28513
diff
changeset
|
72 # In some Tcl installations, Tcl converts yes/no into a boolean |
|
11d4500be6fa
Convert boolean results back to strings. Fixes #807871.
Martin v. Löwis <martin@v.loewis.de>
parents:
28513
diff
changeset
|
73 if isinstance(res, bool): |
|
11d4500be6fa
Convert boolean results back to strings. Fixes #807871.
Martin v. Löwis <martin@v.loewis.de>
parents:
28513
diff
changeset
|
74 if res: return YES |
|
11d4500be6fa
Convert boolean results back to strings. Fixes #807871.
Martin v. Löwis <martin@v.loewis.de>
parents:
28513
diff
changeset
|
75 return NO |
|
11d4500be6fa
Convert boolean results back to strings. Fixes #807871.
Martin v. Löwis <martin@v.loewis.de>
parents:
28513
diff
changeset
|
76 return res |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
77 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
78 def showinfo(title=None, message=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
79 "Show an info message" |
|
28513
90c77b8af1a4
SF patch #701494: more apply removals
Raymond Hettinger <python@rcn.com>
parents:
5869
diff
changeset
|
80 return _show(title, message, INFO, OK, **options) |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
81 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
82 def showwarning(title=None, message=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
83 "Show a warning message" |
|
28513
90c77b8af1a4
SF patch #701494: more apply removals
Raymond Hettinger <python@rcn.com>
parents:
5869
diff
changeset
|
84 return _show(title, message, WARNING, OK, **options) |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
85 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
86 def showerror(title=None, message=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
87 "Show an error message" |
|
28513
90c77b8af1a4
SF patch #701494: more apply removals
Raymond Hettinger <python@rcn.com>
parents:
5869
diff
changeset
|
88 return _show(title, message, ERROR, OK, **options) |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
89 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
90 def askquestion(title=None, message=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
91 "Ask a question" |
|
28513
90c77b8af1a4
SF patch #701494: more apply removals
Raymond Hettinger <python@rcn.com>
parents:
5869
diff
changeset
|
92 return _show(title, message, QUESTION, YESNO, **options) |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
93 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
94 def askokcancel(title=None, message=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
95 "Ask if operation should proceed; return true if the answer is ok" |
|
28513
90c77b8af1a4
SF patch #701494: more apply removals
Raymond Hettinger <python@rcn.com>
parents:
5869
diff
changeset
|
96 s = _show(title, message, QUESTION, OKCANCEL, **options) |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
97 return s == OK |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
98 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
99 def askyesno(title=None, message=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
100 "Ask a question; return true if the answer is yes" |
|
28513
90c77b8af1a4
SF patch #701494: more apply removals
Raymond Hettinger <python@rcn.com>
parents:
5869
diff
changeset
|
101 s = _show(title, message, QUESTION, YESNO, **options) |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 return s == YES |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
103 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
104 def askretrycancel(title=None, message=None, **options): |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
105 "Ask if operation should be retried; return true if the answer is yes" |
|
28513
90c77b8af1a4
SF patch #701494: more apply removals
Raymond Hettinger <python@rcn.com>
parents:
5869
diff
changeset
|
106 s = _show(title, message, WARNING, RETRYCANCEL, **options) |
|
5869
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
107 return s == RETRY |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
108 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
109 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
110 # -------------------------------------------------------------------- |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
111 # test stuff |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
112 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
113 if __name__ == "__main__": |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
114 |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 print "info", showinfo("Spam", "Egg Information") |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
116 print "warning", showwarning("Spam", "Egg Warning") |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
117 print "error", showerror("Spam", "Egg Alert") |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
118 print "question", askquestion("Spam", "Question?") |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
119 print "proceed", askokcancel("Spam", "Proceed?") |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
120 print "yes/no", askyesno("Spam", "Got it?") |
|
f2bf7bcf8b8b
New dialog routines (Fred Lundh)
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
121 print "try again", askretrycancel("Spam", "Try again?") |
