source: titan/mediathek/localhoster/lib/python2.7/lib-tk/tkMessageBox.py @ 40114

Last change on this file since 40114 was 40094, checked in by obi, 7 years ago

tithek add yoztube-dl support

File size: 3.6 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, yes/no is converted into a boolean.
74    if isinstance(res, bool):
75        if res:
76            return YES
77        return NO
78    # In others we get a Tcl_Obj.
79    return str(res)
80
81def showinfo(title=None, message=None, **options):
82    "Show an info message"
83    return _show(title, message, INFO, OK, **options)
84
85def showwarning(title=None, message=None, **options):
86    "Show a warning message"
87    return _show(title, message, WARNING, OK, **options)
88
89def showerror(title=None, message=None, **options):
90    "Show an error message"
91    return _show(title, message, ERROR, OK, **options)
92
93def askquestion(title=None, message=None, **options):
94    "Ask a question"
95    return _show(title, message, QUESTION, YESNO, **options)
96
97def askokcancel(title=None, message=None, **options):
98    "Ask if operation should proceed; return true if the answer is ok"
99    s = _show(title, message, QUESTION, OKCANCEL, **options)
100    return s == OK
101
102def askyesno(title=None, message=None, **options):
103    "Ask a question; return true if the answer is yes"
104    s = _show(title, message, QUESTION, YESNO, **options)
105    return s == YES
106
107def askyesnocancel(title=None, message=None, **options):
108    "Ask a question; return true if the answer is yes, None if cancelled."
109    s = _show(title, message, QUESTION, YESNOCANCEL, **options)
110    # s might be a Tcl index object, so convert it to a string
111    s = str(s)
112    if s == CANCEL:
113        return None
114    return s == YES
115
116def askretrycancel(title=None, message=None, **options):
117    "Ask if operation should be retried; return true if the answer is yes"
118    s = _show(title, message, WARNING, RETRYCANCEL, **options)
119    return s == RETRY
120
121
122# --------------------------------------------------------------------
123# test stuff
124
125if __name__ == "__main__":
126
127    print "info", showinfo("Spam", "Egg Information")
128    print "warning", showwarning("Spam", "Egg Warning")
129    print "error", showerror("Spam", "Egg Alert")
130    print "question", askquestion("Spam", "Question?")
131    print "proceed", askokcancel("Spam", "Proceed?")
132    print "yes/no", askyesno("Spam", "Got it?")
133    print "yes/no/cancel", askyesnocancel("Spam", "Want it?")
134    print "try again", askretrycancel("Spam", "Try again?")
Note: See TracBrowser for help on using the repository browser.