mirror of
https://github.com/python/cpython.git
synced 2025-07-23 03:05:38 +00:00
New dialog routines (Fred Lundh)
This commit is contained in:
parent
65c78e18b5
commit
1e8c8a20f2
8 changed files with 722 additions and 0 deletions
120
Lib/tkinter/tkMessageBox.py
Normal file
120
Lib/tkinter/tkMessageBox.py
Normal file
|
@ -0,0 +1,120 @@
|
|||
#
|
||||
# Instant Python
|
||||
# $Id$
|
||||
#
|
||||
# tk common message boxes
|
||||
#
|
||||
# this module provides an interface to the native message boxes
|
||||
# available in Tk 4.2 and newer.
|
||||
#
|
||||
# written by Fredrik Lundh, May 1997
|
||||
#
|
||||
|
||||
#
|
||||
# options (all have default values):
|
||||
#
|
||||
# - default: which button to make default (one of the reply codes)
|
||||
#
|
||||
# - icon: which icon to display (see below)
|
||||
#
|
||||
# - message: the message to display
|
||||
#
|
||||
# - parent: which window to place the dialog on top of
|
||||
#
|
||||
# - title: dialog title
|
||||
#
|
||||
# - type: dialog type; that is, which buttons to display (see below)
|
||||
#
|
||||
|
||||
from tkCommonDialog import Dialog
|
||||
|
||||
#
|
||||
# constants
|
||||
|
||||
# icons
|
||||
ERROR = "error"
|
||||
INFO = "info"
|
||||
QUESTION = "question"
|
||||
WARNING = "warning"
|
||||
|
||||
# types
|
||||
ABORTRETRYIGNORE = "abortretryignore"
|
||||
OK = "ok"
|
||||
OKCANCEL = "okcancel"
|
||||
RETRYCANCEL = "retrycancel"
|
||||
YESNO = "yesno"
|
||||
YESNOCANCEL = "yesnocancel"
|
||||
|
||||
# replies
|
||||
ABORT = "abort"
|
||||
RETRY = "retry"
|
||||
IGNORE = "ignore"
|
||||
OK = "ok"
|
||||
CANCEL = "cancel"
|
||||
YES = "yes"
|
||||
NO = "no"
|
||||
|
||||
|
||||
#
|
||||
# message dialog class
|
||||
|
||||
class Message(Dialog):
|
||||
"A message box"
|
||||
|
||||
command = "tk_messageBox"
|
||||
|
||||
|
||||
#
|
||||
# convenience stuff
|
||||
|
||||
def _show(title=None, message=None, icon=None, type=None, **options):
|
||||
if icon: options["icon"] = icon
|
||||
if type: options["type"] = type
|
||||
if title: options["title"] = title
|
||||
if message: options["message"] = message
|
||||
return apply(Message, (), options).show()
|
||||
|
||||
def showinfo(title=None, message=None, **options):
|
||||
"Show an info message"
|
||||
return apply(_show, (title, message, INFO, OK), options)
|
||||
|
||||
def showwarning(title=None, message=None, **options):
|
||||
"Show a warning message"
|
||||
return apply(_show, (title, message, WARNING, OK), options)
|
||||
|
||||
def showerror(title=None, message=None, **options):
|
||||
"Show an error message"
|
||||
return apply(_show, (title, message, ERROR, OK), options)
|
||||
|
||||
def askquestion(title=None, message=None, **options):
|
||||
"Ask a question"
|
||||
return apply(_show, (title, message, QUESTION, YESNO), options)
|
||||
|
||||
def askokcancel(title=None, message=None, **options):
|
||||
"Ask if operation should proceed; return true if the answer is ok"
|
||||
s = apply(_show, (title, message, QUESTION, OKCANCEL), options)
|
||||
return s == OK
|
||||
|
||||
def askyesno(title=None, message=None, **options):
|
||||
"Ask a question; return true if the answer is yes"
|
||||
s = apply(_show, (title, message, QUESTION, YESNO), options)
|
||||
return s == YES
|
||||
|
||||
def askretrycancel(title=None, message=None, **options):
|
||||
"Ask if operation should be retried; return true if the answer is yes"
|
||||
s = apply(_show, (title, message, WARNING, RETRYCANCEL), options)
|
||||
return s == RETRY
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# test stuff
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
print "info", showinfo("Spam", "Egg Information")
|
||||
print "warning", showwarning("Spam", "Egg Warning")
|
||||
print "error", showerror("Spam", "Egg Alert")
|
||||
print "question", askquestion("Spam", "Question?")
|
||||
print "proceed", askokcancel("Spam", "Proceed?")
|
||||
print "yes/no", askyesno("Spam", "Got it?")
|
||||
print "try again", askretrycancel("Spam", "Try again?")
|
Loading…
Add table
Add a link
Reference in a new issue