mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
two new modules for the Mac toolbox
This commit is contained in:
parent
a075feba1e
commit
8f4b6adb77
2 changed files with 590 additions and 0 deletions
110
Mac/Lib/EasyDialogs.py
Normal file
110
Mac/Lib/EasyDialogs.py
Normal file
|
@ -0,0 +1,110 @@
|
|||
"""Easy to use dialogs.
|
||||
|
||||
Message(msg) -- display a message and an OK button.
|
||||
AskString(prompt, default) -- ask for a string, display OK and Cancel buttons.
|
||||
AskYesNoCancel(question, default) -- display a question and Yes, No and Cancel buttons.
|
||||
|
||||
More documentation in each function.
|
||||
This module uses DLOG resources 256, 257 and 258.
|
||||
Based upon STDWIN dialogs with the same names and functions.
|
||||
"""
|
||||
|
||||
from Dlg import GetNewDialog, SetIText, GetIText, ModalDialog
|
||||
|
||||
|
||||
def Message(msg):
|
||||
"""Display a MESSAGE string.
|
||||
|
||||
Return when the user clicks the OK button or presses Return.
|
||||
|
||||
The MESSAGE string can be at most 255 characters long.
|
||||
"""
|
||||
|
||||
id = 256
|
||||
d = GetNewDialog(id, -1)
|
||||
if not d:
|
||||
print "Can't get DLOG resource with id =", id
|
||||
return
|
||||
tp, h, rect = d.GetDItem(2)
|
||||
SetIText(h, msg)
|
||||
while 1:
|
||||
n = ModalDialog(None)
|
||||
if n == 1:
|
||||
return
|
||||
|
||||
|
||||
def AskString(prompt, default = ""):
|
||||
"""Display a PROMPT string and a text entry field with a DEFAULT string.
|
||||
|
||||
Return the contents of the text entry field when the user clicks the
|
||||
OK button or presses Return.
|
||||
Return None when the user clicks the Cancel button.
|
||||
|
||||
If omitted, DEFAULT is empty.
|
||||
|
||||
The PROMPT and DEFAULT strings, as well as the return value,
|
||||
can be at most 255 characters long.
|
||||
"""
|
||||
|
||||
id = 257
|
||||
d = GetNewDialog(id, -1)
|
||||
if not d:
|
||||
print "Can't get DLOG resource with id =", id
|
||||
return
|
||||
tp, h, rect = d.GetDItem(3)
|
||||
SetIText(h, prompt)
|
||||
tp, h, rect = d.GetDItem(4)
|
||||
SetIText(h, default)
|
||||
d.SelIText(4, 0, 255)
|
||||
while 1:
|
||||
n = ModalDialog(None)
|
||||
if n == 1:
|
||||
tp, h, rect = d.GetDItem(4)
|
||||
return GetIText(h)
|
||||
if n == 2: return None
|
||||
|
||||
|
||||
def AskYesNoCancel(question, default = 0):
|
||||
## """Display a QUESTION string which can be answered with Yes or No.
|
||||
##
|
||||
## Return 1 when the user clicks the Yes button.
|
||||
## Return 0 when the user clicks the No button.
|
||||
## Return -1 when the user clicks the Cancel button.
|
||||
##
|
||||
## When the user presses Return, the DEFAULT value is returned.
|
||||
## If omitted, this is 0 (No).
|
||||
##
|
||||
## The QUESTION strign ca be at most 255 characters.
|
||||
## """
|
||||
|
||||
id = 258
|
||||
d = GetNewDialog(id, -1)
|
||||
if not d:
|
||||
print "Can't get DLOG resource with id =", id
|
||||
return
|
||||
# Button assignments:
|
||||
# 1 = default (invisible)
|
||||
# 2 = Yes
|
||||
# 3 = No
|
||||
# 4 = Cancel
|
||||
# The question string is item 5
|
||||
tp, h, rect = d.GetDItem(5)
|
||||
SetIText(h, question)
|
||||
while 1:
|
||||
n = ModalDialog(None)
|
||||
if n == 1: return default
|
||||
if n == 2: return 1
|
||||
if n == 3: return 0
|
||||
if n == 4: return -1
|
||||
|
||||
|
||||
def test():
|
||||
Message("Testing EasyDialogs.")
|
||||
ok = AskYesNoCancel("Do you want to proceed?")
|
||||
if ok > 0:
|
||||
s = AskString("Enter your first name")
|
||||
Message("Thank you,\015%s" % `s`)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test()
|
Loading…
Add table
Add a link
Reference in a new issue