annotate Mac/scripts/EditPythonPrefs.py @ 19488:42b2f1936254 legacy-trunk

Import the MacOS toolbox modules from the Carbon package.
author Jack Jansen <jack.jansen@cwi.nl>
date Sat, 25 Aug 2001 12:15:04 +0000
parents 05a913ff97a6
children 546ef318ba5d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 """Edit the Python Preferences file."""
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
2 #
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
3 # This program is getting more and more clunky. It should really
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
4 # be rewritten in a modeless way some time soon.
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5
19488
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 16342
diff changeset
6 from Carbon.Dlg import *
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 16342
diff changeset
7 from Carbon.Events import *
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 16342
diff changeset
8 from Carbon.Res import *
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 16342
diff changeset
9 from Carbon import Controls
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10 import string
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11 import struct
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12 import macfs
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 import MacOS
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14 import os
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15 import sys
19488
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 16342
diff changeset
16 from Carbon import Res # For Res.Error
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
17 import pythonprefs
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
18 import EasyDialogs
16342
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
19 try:
19488
42b2f1936254 Import the MacOS toolbox modules from the Carbon package.
Jack Jansen <jack.jansen@cwi.nl>
parents: 16342
diff changeset
20 from Carbon import Help
16342
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
21 except ImportError:
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
22 Help = None
4448
85d38456adf0 Get preference file name from a resource.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4398
diff changeset
23
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24 # resource IDs in our own resources (dialogs, etc)
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 MESSAGE_ID = 256
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26
4398
ec4c42bea69d Moved resources to 510/511: the numbers above 512 gave problems when
Jack Jansen <jack.jansen@cwi.nl>
parents: 4235
diff changeset
27 DIALOG_ID = 511
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
28 TEXT_ITEM = 1
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29 OK_ITEM = 2
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 CANCEL_ITEM = 3
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
31 DIR_ITEM = 4
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
32 TITLE_ITEM = 5
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
33 OPTIONS_ITEM = 7
6298
ebd099889721 Implemented balloon help for EditPythonPrefs
Jack Jansen <jack.jansen@cwi.nl>
parents: 6275
diff changeset
34 HELP_ITEM = 9
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
35
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
36 # The options dialog. There is a correspondence between
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
37 # the dialog item numbers and the option.
4398
ec4c42bea69d Moved resources to 510/511: the numbers above 512 gave problems when
Jack Jansen <jack.jansen@cwi.nl>
parents: 4235
diff changeset
38 OPT_DIALOG_ID = 510
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
39
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
40 # Map dialog item numbers to option names (and the reverse)
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
41 opt_dialog_map = [
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
42 None,
14773
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
43 None,
15277
ba3677e1f81b Oops, all the options were off-by-one. Reported by Tom Bridgman.
Jack Jansen <jack.jansen@cwi.nl>
parents: 15211
diff changeset
44 None,
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
45 "inspect",
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
46 "verbose",
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
47 "optimize",
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
48 "unbuffered",
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
49 "debugging",
14773
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
50 "tabwarn",
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
51 "nosite",
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
52 "nonavservice",
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
53 "nointopt",
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
54 "noargs",
6298
ebd099889721 Implemented balloon help for EditPythonPrefs
Jack Jansen <jack.jansen@cwi.nl>
parents: 6275
diff changeset
55 "delayconsole",
14773
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
56 ]
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
57 opt_dialog_dict = {}
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
58 for i in range(len(opt_dialog_map)):
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
59 if opt_dialog_map[i]:
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
60 opt_dialog_dict[opt_dialog_map[i]] = i
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
61 # 1 thru 10 are the options
4230
41a52ab263da Allow editing selected bits of the GUSI preferences (creator, type and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3504
diff changeset
62 # The GUSI creator/type and delay-console
14773
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
63 OD_CREATOR_ITEM = 18
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
64 OD_TYPE_ITEM = 19
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
65 OD_OK_ITEM = 1
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
66 OD_CANCEL_ITEM = 2
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
67 OD_HELP_ITEM = 20
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
68 OD_KEEPALWAYS_ITEM = 14
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
69 OD_KEEPOUTPUT_ITEM = 15
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
70 OD_KEEPERROR_ITEM = 16
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
71 OD_KEEPNEVER_ITEM = 17
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
72
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
73 def optinteract(options):
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
74 """Let the user interact with the options dialog"""
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
75 d = GetNewDialog(OPT_DIALOG_ID, -1)
11624
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
76 htext = d.GetDialogItemAsControl(OD_CREATOR_ITEM)
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
77 SetDialogItemText(htext, options['creator'])
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
78 htext = d.GetDialogItemAsControl(OD_TYPE_ITEM)
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
79 SetDialogItemText(htext, options['type'])
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
80 d.SetDialogDefaultItem(OD_OK_ITEM)
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
81 d.SetDialogCancelItem(OD_CANCEL_ITEM)
16342
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
82 if not Help:
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
83 d.HideDialogItem(OD_HELP_ITEM)
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
84 while 1:
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
85 for name in opt_dialog_dict.keys():
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
86 num = opt_dialog_dict[name]
11624
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
87 ctl = d.GetDialogItemAsControl(num)
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
88 ctl.SetControlValue(options[name])
14773
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
89 ctl = d.GetDialogItemAsControl(OD_KEEPALWAYS_ITEM)
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
90 ctl.SetControlValue(options['keep_console'] == 3)
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
91 ctl = d.GetDialogItemAsControl(OD_KEEPOUTPUT_ITEM)
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
92 ctl.SetControlValue(options['keep_console'] == 1)
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
93 ctl = d.GetDialogItemAsControl(OD_KEEPERROR_ITEM)
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
94 ctl.SetControlValue(options['keep_console'] == 2)
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
95 ctl = d.GetDialogItemAsControl(OD_KEEPNEVER_ITEM)
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
96 ctl.SetControlValue(options['keep_console'] == 0)
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
97 n = ModalDialog(None)
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
98 if n == OD_OK_ITEM:
11624
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
99 htext = d.GetDialogItemAsControl(OD_CREATOR_ITEM)
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
100 ncreator = GetDialogItemText(htext)
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
101 htext = d.GetDialogItemAsControl(OD_TYPE_ITEM)
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
102 ntype = GetDialogItemText(htext)
4230
41a52ab263da Allow editing selected bits of the GUSI preferences (creator, type and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3504
diff changeset
103 if len(ncreator) == 4 and len(ntype) == 4:
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
104 options['creator'] = ncreator
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
105 options['type'] = ntype
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
106 return options
4230
41a52ab263da Allow editing selected bits of the GUSI preferences (creator, type and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3504
diff changeset
107 else:
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
108 MacOS.SysBeep()
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
109 elif n == OD_CANCEL_ITEM:
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
110 return
4230
41a52ab263da Allow editing selected bits of the GUSI preferences (creator, type and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3504
diff changeset
111 elif n in (OD_CREATOR_ITEM, OD_TYPE_ITEM):
41a52ab263da Allow editing selected bits of the GUSI preferences (creator, type and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3504
diff changeset
112 pass
14773
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
113 elif n == OD_KEEPALWAYS_ITEM:
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
114 options['keep_console'] = 3;
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
115 elif n == OD_KEEPOUTPUT_ITEM:
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
116 options['keep_console'] = 1;
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
117 elif n == OD_KEEPERROR_ITEM:
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
118 options['keep_console'] = 2;
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
119 elif n == OD_KEEPNEVER_ITEM:
c5ec0b11f8c9 Keepconsole is now a 4-way option: never/errorexit/unseen output/always. Default is "unseen output". Upped the Popt version number.
Jack Jansen <jack.jansen@cwi.nl>
parents: 12972
diff changeset
120 options['keep_console'] = 0;
16342
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
121 elif n == OD_HELP_ITEM and Help:
6298
ebd099889721 Implemented balloon help for EditPythonPrefs
Jack Jansen <jack.jansen@cwi.nl>
parents: 6275
diff changeset
122 onoff = Help.HMGetBalloons()
ebd099889721 Implemented balloon help for EditPythonPrefs
Jack Jansen <jack.jansen@cwi.nl>
parents: 6275
diff changeset
123 Help.HMSetBalloons(not onoff)
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
124 elif 1 <= n <= len(opt_dialog_map):
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
125 options[opt_dialog_map[n]] = (not options[opt_dialog_map[n]])
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
126
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
127
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
128 def interact(options, title):
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
129 """Let the user interact with the dialog"""
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
130 try:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
131 # Try to go to the "correct" dir for GetDirectory
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
132 os.chdir(options['dir'].as_pathname())
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
133 except os.error:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
134 pass
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
135 d = GetNewDialog(DIALOG_ID, -1)
11624
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
136 htext = d.GetDialogItemAsControl(TITLE_ITEM)
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
137 SetDialogItemText(htext, title)
11652
99c9b126690d Get/set sys.path initializer in new appearance way.
Jack Jansen <jack.jansen@cwi.nl>
parents: 11624
diff changeset
138 path_ctl = d.GetDialogItemAsControl(TEXT_ITEM)
11624
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
139 data = string.joinfields(options['path'], '\r')
11652
99c9b126690d Get/set sys.path initializer in new appearance way.
Jack Jansen <jack.jansen@cwi.nl>
parents: 11624
diff changeset
140 path_ctl.SetControlData(Controls.kControlEditTextPart, Controls.kControlEditTextTextTag, data)
11624
3c213e372b22 Partially converted to Appearance, the dialog still has the old ugly layout and
Jack Jansen <jack.jansen@cwi.nl>
parents: 11517
diff changeset
141
4550
f1244036ebab Fixed to allow sys.path initializer to be longer than 255 chars.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4448
diff changeset
142 d.SelectDialogItemText(TEXT_ITEM, 0, 32767)
f1244036ebab Fixed to allow sys.path initializer to be longer than 255 chars.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4448
diff changeset
143 d.SelectDialogItemText(TEXT_ITEM, 0, 0)
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
144 ## d.SetDialogDefaultItem(OK_ITEM)
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
145 d.SetDialogCancelItem(CANCEL_ITEM)
16342
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
146 if not Help:
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
147 d.HideDialogItem(HELP_ITEM)
4550
f1244036ebab Fixed to allow sys.path initializer to be longer than 255 chars.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4448
diff changeset
148 d.GetDialogWindow().ShowWindow()
f1244036ebab Fixed to allow sys.path initializer to be longer than 255 chars.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4448
diff changeset
149 d.DrawDialog()
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
150 while 1:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
151 n = ModalDialog(None)
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
152 if n == OK_ITEM:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
153 break
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
154 if n == CANCEL_ITEM:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
155 return None
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
156 ## if n == REVERT_ITEM:
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
157 ## return [], pythondir
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
158 if n == DIR_ITEM:
2979
7eea9b426802 Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents: 2873
diff changeset
159 fss, ok = macfs.GetDirectory('Select python home folder:')
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
160 if ok:
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
161 options['dir'] = fss
16342
05a913ff97a6 Make balloon code dependent on existence of Help module
Jack Jansen <jack.jansen@cwi.nl>
parents: 15277
diff changeset
162 elif n == HELP_ITEM and Help:
6298
ebd099889721 Implemented balloon help for EditPythonPrefs
Jack Jansen <jack.jansen@cwi.nl>
parents: 6275
diff changeset
163 onoff = Help.HMGetBalloons()
ebd099889721 Implemented balloon help for EditPythonPrefs
Jack Jansen <jack.jansen@cwi.nl>
parents: 6275
diff changeset
164 Help.HMSetBalloons(not onoff)
3504
e8d501c88a3e Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents: 3484
diff changeset
165 if n == OPTIONS_ITEM:
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
166 noptions = options
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
167 for k in options.keys():
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
168 noptions[k] = options[k]
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
169 noptions = optinteract(noptions)
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
170 if noptions:
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
171 options = noptions
11652
99c9b126690d Get/set sys.path initializer in new appearance way.
Jack Jansen <jack.jansen@cwi.nl>
parents: 11624
diff changeset
172 data = path_ctl.GetControlData(Controls.kControlEditTextPart, Controls.kControlEditTextTextTag)
99c9b126690d Get/set sys.path initializer in new appearance way.
Jack Jansen <jack.jansen@cwi.nl>
parents: 11624
diff changeset
173 tmp = string.splitfields(data, '\r')
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
174 newpath = []
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
175 for i in tmp:
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
176 if i:
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
177 newpath.append(i)
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
178 options['path'] = newpath
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
179 return options
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
180
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
181
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
182 def edit_preferences():
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
183 handler = pythonprefs.PythonOptions()
11517
71281ff8c6a2 Give a warning if system-wide sys.argv processing is off (because then we
Jack Jansen <jack.jansen@cwi.nl>
parents: 6298
diff changeset
184 options = handler.load()
71281ff8c6a2 Give a warning if system-wide sys.argv processing is off (because then we
Jack Jansen <jack.jansen@cwi.nl>
parents: 6298
diff changeset
185 if options['noargs']:
71281ff8c6a2 Give a warning if system-wide sys.argv processing is off (because then we
Jack Jansen <jack.jansen@cwi.nl>
parents: 6298
diff changeset
186 EasyDialogs.Message('Warning: system-wide sys.argv processing is off.\nIf you dropped an applet I have not seen it.')
71281ff8c6a2 Give a warning if system-wide sys.argv processing is off (because then we
Jack Jansen <jack.jansen@cwi.nl>
parents: 6298
diff changeset
187 result = interact(options, 'System-wide preferences')
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
188 if result:
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
189 handler.save(result)
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
190
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
191 def edit_applet(name):
6275
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
192 handler = pythonprefs.AppletOptions(name)
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
193 result = interact(handler.load(), os.path.split(name)[1])
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
194 if result:
f9fbde75c536 Major overhaul: this is now little more than a user interface, the
Jack Jansen <jack.jansen@cwi.nl>
parents: 6174
diff changeset
195 handler.save(result)
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
196
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
197 def main():
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
198 try:
12972
fc77e34ef274 Replaced OpenResFile calls with FSpOpenResFile calls (which are carbon-compatible).
Jack Jansen <jack.jansen@cwi.nl>
parents: 12626
diff changeset
199 h = FSpOpenResFile('EditPythonPrefs.rsrc', 1)
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
200 except Res.Error:
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
201 pass # Assume we already have acces to our own resource
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
202
15211
e4c9b805f39f Added some of the new Numeric modules (which weren't rebuilt).
Jack Jansen <jack.jansen@cwi.nl>
parents: 14773
diff changeset
203 MacOS.SchedParams(1, 0)
3484
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
204 if len(sys.argv) <= 1:
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
205 edit_preferences()
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
206 else:
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
207 for appl in sys.argv[1:]:
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
208 edit_applet(appl)
ce27e0328462 Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents: 3462
diff changeset
209
2873
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
210
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
211 if __name__ == '__main__':
315760ba0041 A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
212 main()