summaryrefslogtreecommitdiffstats
path: root/Mac/scripts/EditPythonPrefs.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/scripts/EditPythonPrefs.py')
-rw-r--r--Mac/scripts/EditPythonPrefs.py213
1 files changed, 0 insertions, 213 deletions
diff --git a/Mac/scripts/EditPythonPrefs.py b/Mac/scripts/EditPythonPrefs.py
deleted file mode 100644
index 64c5218..0000000
--- a/Mac/scripts/EditPythonPrefs.py
+++ /dev/null
@@ -1,213 +0,0 @@
-"""Edit the Python Preferences file."""
-#
-# This program is getting more and more clunky. It should really
-# be rewritten in a modeless way some time soon.
-
-from Carbon.Dlg import *
-from Carbon.Events import *
-from Carbon.Res import *
-from Carbon import Controls
-import string
-import struct
-import macfs
-import MacOS
-import os
-import sys
-from Carbon import Res # For Res.Error
-import pythonprefs
-import macresource
-import EasyDialogs
-try:
- from Carbon import Help
-except ImportError:
- Help = None
-
-# resource IDs in our own resources (dialogs, etc)
-MESSAGE_ID = 256
-
-DIALOG_ID = 511
-TEXT_ITEM = 1
-OK_ITEM = 2
-CANCEL_ITEM = 3
-DIR_ITEM = 4
-TITLE_ITEM = 5
-OPTIONS_ITEM = 7
-HELP_ITEM = 9
-
-# The options dialog. There is a correspondence between
-# the dialog item numbers and the option.
-OPT_DIALOG_ID = 510
-
-# Map dialog item numbers to option names (and the reverse)
-opt_dialog_map = [
- None,
- None,
- None,
- "inspect",
- "verbose",
- "optimize",
- "unbuffered",
- "debugging",
- "tabwarn",
- "nosite",
- "nonavservice",
- "nointopt",
- "noargs",
- "delayconsole",
- "divisionwarn",
- "unixnewlines",
- ]
-opt_dialog_dict = {}
-for i in range(len(opt_dialog_map)):
- if opt_dialog_map[i]:
- opt_dialog_dict[opt_dialog_map[i]] = i
-# 1 thru 10 are the options
-# The GUSI creator/type and delay-console
-OD_CREATOR_ITEM = 20
-OD_TYPE_ITEM = 21
-OD_OK_ITEM = 1
-OD_CANCEL_ITEM = 2
-OD_HELP_ITEM = 22
-OD_KEEPALWAYS_ITEM = 16
-OD_KEEPOUTPUT_ITEM = 17
-OD_KEEPERROR_ITEM = 18
-OD_KEEPNEVER_ITEM = 19
-
-def optinteract(options):
- """Let the user interact with the options dialog"""
- d = GetNewDialog(OPT_DIALOG_ID, -1)
- htext = d.GetDialogItemAsControl(OD_CREATOR_ITEM)
- SetDialogItemText(htext, options['creator'])
- htext = d.GetDialogItemAsControl(OD_TYPE_ITEM)
- SetDialogItemText(htext, options['type'])
- d.SetDialogDefaultItem(OD_OK_ITEM)
- d.SetDialogCancelItem(OD_CANCEL_ITEM)
- if not Help:
- d.HideDialogItem(OD_HELP_ITEM)
- while 1:
- for name in opt_dialog_dict.keys():
- num = opt_dialog_dict[name]
- ctl = d.GetDialogItemAsControl(num)
- ctl.SetControlValue(options[name])
- ctl = d.GetDialogItemAsControl(OD_KEEPALWAYS_ITEM)
- ctl.SetControlValue(options['keep_console'] == 3)
- ctl = d.GetDialogItemAsControl(OD_KEEPOUTPUT_ITEM)
- ctl.SetControlValue(options['keep_console'] == 1)
- ctl = d.GetDialogItemAsControl(OD_KEEPERROR_ITEM)
- ctl.SetControlValue(options['keep_console'] == 2)
- ctl = d.GetDialogItemAsControl(OD_KEEPNEVER_ITEM)
- ctl.SetControlValue(options['keep_console'] == 0)
- n = ModalDialog(None)
- if n == OD_OK_ITEM:
- htext = d.GetDialogItemAsControl(OD_CREATOR_ITEM)
- ncreator = GetDialogItemText(htext)
- htext = d.GetDialogItemAsControl(OD_TYPE_ITEM)
- ntype = GetDialogItemText(htext)
- if len(ncreator) == 4 and len(ntype) == 4:
- options['creator'] = ncreator
- options['type'] = ntype
- return options
- else:
- MacOS.SysBeep()
- elif n == OD_CANCEL_ITEM:
- return
- elif n in (OD_CREATOR_ITEM, OD_TYPE_ITEM):
- pass
- elif n == OD_KEEPALWAYS_ITEM:
- options['keep_console'] = 3;
- elif n == OD_KEEPOUTPUT_ITEM:
- options['keep_console'] = 1;
- elif n == OD_KEEPERROR_ITEM:
- options['keep_console'] = 2;
- elif n == OD_KEEPNEVER_ITEM:
- options['keep_console'] = 0;
- elif n == OD_HELP_ITEM and Help:
- onoff = Help.HMGetBalloons()
- Help.HMSetBalloons(not onoff)
- elif 1 <= n <= len(opt_dialog_map):
- options[opt_dialog_map[n]] = (not options[opt_dialog_map[n]])
-
-
-def interact(options, title):
- """Let the user interact with the dialog"""
- try:
- # Try to go to the "correct" dir for GetDirectory
- os.chdir(options['dir'].as_pathname())
- except os.error:
- pass
- d = GetNewDialog(DIALOG_ID, -1)
- htext = d.GetDialogItemAsControl(TITLE_ITEM)
- SetDialogItemText(htext, title)
- path_ctl = d.GetDialogItemAsControl(TEXT_ITEM)
- data = string.joinfields(options['path'], '\r')
- path_ctl.SetControlData(Controls.kControlEditTextPart, Controls.kControlEditTextTextTag, data)
-
- d.SelectDialogItemText(TEXT_ITEM, 0, 32767)
- d.SelectDialogItemText(TEXT_ITEM, 0, 0)
-## d.SetDialogDefaultItem(OK_ITEM)
- d.SetDialogCancelItem(CANCEL_ITEM)
- if not Help:
- d.HideDialogItem(HELP_ITEM)
- d.GetDialogWindow().ShowWindow()
- d.DrawDialog()
- while 1:
- n = ModalDialog(None)
- if n == OK_ITEM:
- break
- if n == CANCEL_ITEM:
- return None
-## if n == REVERT_ITEM:
-## return [], pythondir
- if n == DIR_ITEM:
- fss = EasyDialogs.AskFolder(message='Select python home folder:',
- wanted=macfs.FSSpec)
- if fss:
- options['dir'] = fss
- elif n == HELP_ITEM and Help:
- onoff = Help.HMGetBalloons()
- Help.HMSetBalloons(not onoff)
- if n == OPTIONS_ITEM:
- noptions = options
- for k in options.keys():
- noptions[k] = options[k]
- noptions = optinteract(noptions)
- if noptions:
- options = noptions
- data = path_ctl.GetControlData(Controls.kControlEditTextPart, Controls.kControlEditTextTextTag)
- tmp = string.splitfields(data, '\r')
- newpath = []
- for i in tmp:
- if i:
- newpath.append(i)
- options['path'] = newpath
- return options
-
-
-def edit_preferences():
- handler = pythonprefs.PythonOptions()
- options = handler.load()
- if options['noargs']:
- EasyDialogs.Message('Warning: system-wide sys.argv processing is off.\nIf you dropped an applet I have not seen it.')
- result = interact(options, 'System-wide preferences')
- if result:
- handler.save(result)
-
-def edit_applet(name):
- handler = pythonprefs.AppletOptions(name)
- result = interact(handler.load(), os.path.split(name)[1])
- if result:
- handler.save(result)
-
-def main():
- macresource.need('DLOG', DIALOG_ID, 'EditPythonPrefs.rsrc')
-
- MacOS.SchedParams(1, 0)
- if len(sys.argv) <= 1:
- edit_preferences()
- else:
- for appl in sys.argv[1:]:
- edit_applet(appl)
-
-
-if __name__ == '__main__':
- main()