Mercurial > cpython-lru_cache-weakref
annotate Mac/scripts/EditPythonPrefs.py @ 3504:e8d501c88a3e legacy-trunk
Added region arg to update calls. And binhex files rebinhexed.
| author | Jack Jansen <jack.jansen@cwi.nl> |
|---|---|
| date | Wed, 10 Apr 1996 14:52:18 +0000 |
| parents | ce27e0328462 |
| children | 41a52ab263da |
| 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 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 from Dlg import * |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 from Events import * |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 from Res import * |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 import string |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 import struct |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 import macfs |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 import MacOS |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 import os |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 import sys |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 import Res # For Res.Error |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 # resource IDs in our own resources (dialogs, etc) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 MESSAGE_ID = 256 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 |
|
2979
7eea9b426802
Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents:
2873
diff
changeset
|
20 DIALOG_ID = 512 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 TEXT_ITEM = 1 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 OK_ITEM = 2 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 CANCEL_ITEM = 3 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
24 DIR_ITEM = 4 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
25 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
|
26 OPTIONS_ITEM = 7 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
27 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
28 # 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
|
29 # the dialog item numbers and the option. |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
30 OPT_DIALOG_ID = 513 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
31 # 1 thru 7 are the options |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
32 OD_OK_ITEM = 8 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
33 OD_CANCEL_ITEM = 9 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 # Resource IDs in the preferences file |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 PATH_STRINGS_ID = 128 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 DIRECTORY_ID = 128 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
38 OPTIONS_ID = 128 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
40 # Override IDs (in the applet) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
41 OVERRIDE_PATH_STRINGS_ID = 129 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
42 OVERRIDE_DIRECTORY_ID = 129 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
43 OVERRIDE_OPTIONS_ID = 129 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
44 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
45 READ = 1 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 WRITE = 2 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 smAllScripts = -3 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 kOnSystemDisk = 0x8000 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 def restolist(data): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 """Convert STR# resource data to a list of strings""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 if not data: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 return [] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 num, = struct.unpack('h', data[:2]) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 data = data[2:] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 rv = [] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 for i in range(num): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 strlen = ord(data[0]) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 if strlen < 0: strlen = strlen + 256 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 str = data[1:strlen+1] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 data = data[strlen+1:] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 rv.append(str) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 return rv |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 def listtores(list): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 """Convert a list of strings to STR# resource data""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 rv = struct.pack('h', len(list)) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 for str in list: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 rv = rv + chr(len(str)) + str |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 return rv |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 def message(str = "Hello, world!", id = MESSAGE_ID): |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 """Show a simple alert with a text message""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 d = GetNewDialog(id, -1) |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
75 d.SetDialogDefaultItem(1) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 print 'd=', d |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
77 tp, h, rect = d.GetDialogItem(2) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
78 SetDialogItemText(h, str) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
79 while 1: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
80 n = ModalDialog(None) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 if n == 1: break |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
82 |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
83 def optinteract(options): |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
84 """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
|
85 old_options = options[:] |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
86 d = GetNewDialog(OPT_DIALOG_ID, -1) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
87 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
|
88 d.SetDialogCancelItem(OD_CANCEL_ITEM) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
89 while 1: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
90 for i in range(len(options)): |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
91 tp, h, rect = d.GetDialogItem(i+1) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
92 h.as_Control().SetControlValue(options[i]) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
93 n = ModalDialog(None) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
94 if n == OD_OK_ITEM: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
95 return options |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
96 elif n == OD_CANCEL_ITEM: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
97 return old_options |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
98 elif 1 <= n <= len(options): |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
99 options[n-1] = (not options[n-1]) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
100 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
101 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
102 def interact(list, pythondir, options, title): |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
103 """Let the user interact with the dialog""" |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
104 opythondir = pythondir |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
105 try: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
106 # Try to go to the "correct" dir for GetDirectory |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 os.chdir(pythondir.as_pathname()) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
108 except os.error: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
109 pass |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
110 d = GetNewDialog(DIALOG_ID, -1) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
111 tp, h, rect = d.GetDialogItem(TITLE_ITEM) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
112 SetDialogItemText(h, title) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
113 tp, h, rect = d.GetDialogItem(TEXT_ITEM) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
114 SetDialogItemText(h, string.joinfields(list, '\r')) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
115 ## d.SetDialogDefaultItem(OK_ITEM) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
116 d.SetDialogCancelItem(CANCEL_ITEM) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
117 while 1: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
118 n = ModalDialog(None) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
119 if n == OK_ITEM: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
120 break |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
121 if n == CANCEL_ITEM: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
122 return None |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
123 ## if n == REVERT_ITEM: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
124 ## return [], pythondir |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
125 if n == DIR_ITEM: |
|
2979
7eea9b426802
Added prompts to various file-select dialogs
Jack Jansen <jack.jansen@cwi.nl>
parents:
2873
diff
changeset
|
126 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
|
127 if ok: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
128 pythondir = fss |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
129 if n == OPTIONS_ITEM: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
130 options = optinteract(options) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
131 tmp = string.splitfields(GetDialogItemText(h), '\r') |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
132 rv = [] |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
133 for i in tmp: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
134 if i: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
135 rv.append(i) |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
136 return rv, pythondir, options |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
137 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
138 def getprefpath(id): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
139 # Load the path and directory resources |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
140 try: |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
141 sr = GetResource('STR#', id) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
142 except (MacOS.Error, Res.Error): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
143 return None, None |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
144 d = sr.data |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
145 l = restolist(d) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
146 return l, sr |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
147 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
148 def getprefdir(id): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
149 try: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
150 dr = GetResource('alis', id) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
151 fss, fss_changed = macfs.RawAlias(dr.data).Resolve() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
152 except (MacOS.Error, Res.Error): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
153 return None, None, 1 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
154 return fss, dr, fss_changed |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
155 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
156 def getoptions(id): |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
157 try: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
158 opr = GetResource('Popt', id) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
159 except (MacOS.Error, Res.Error): |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
160 return [0]*7, None |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
161 return map(lambda x: ord(x), opr.data), opr |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
162 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
163 def openpreffile(rw): |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
164 # Find the preferences folder and our prefs file, create if needed. |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
165 vrefnum, dirid = macfs.FindFolder(kOnSystemDisk, 'pref', 0) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
166 preff_fss = macfs.FSSpec((vrefnum, dirid, 'Python Preferences')) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
167 try: |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
168 preff_handle = FSpOpenResFile(preff_fss, rw) |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
169 except Res.Error: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 # Create it |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
171 message('No preferences file, creating one...') |
|
3410
022474ac2451
Changed MacOS creator code from PYTH to Pyth
Jack Jansen <jack.jansen@cwi.nl>
parents:
2979
diff
changeset
|
172 FSpCreateResFile(preff_fss, 'Pyth', 'pref', smAllScripts) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
173 preff_handle = FSpOpenResFile(preff_fss, rw) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
174 return preff_handle |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
175 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
176 def openapplet(name): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
177 fss = macfs.FSSpec(name) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
178 try: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
179 app_handle = FSpOpenResFile(fss, WRITE) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
180 except Res.Error: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
181 message('File does not have a resource fork.') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
182 sys.exit(0) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
183 return app_handle |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
184 |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
185 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
186 def edit_preferences(): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
187 preff_handle = openpreffile(WRITE) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
188 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
189 l, sr = getprefpath(PATH_STRINGS_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
190 if l == None: |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
191 message('Cannot find any sys.path resource! (Old python?)') |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
192 sys.exit(0) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
193 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
194 fss, dr, fss_changed = getprefdir(DIRECTORY_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
195 if fss == None: |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
196 fss = macfs.FSSpec(os.getcwd()) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
197 fss_changed = 1 |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
198 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
199 options, opr = getoptions(OPTIONS_ID) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
200 saved_options = options[:] |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
201 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
202 # Let the user play away |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
203 result = interact(l, fss, options, 'System-wide preferences') |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
204 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
205 # See what we have to update, and how |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
206 if result == None: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
207 sys.exit(0) |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
208 |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
209 pathlist, nfss, options = result |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
210 if nfss != fss: |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
211 fss_changed = 1 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
212 |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
213 if fss_changed: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
214 alias = nfss.NewAlias() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
215 if dr: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
216 dr.data = alias.data |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
217 dr.ChangedResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
218 else: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
219 dr = Resource(alias.data) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
220 dr.AddResource('alis', DIRECTORY_ID, '') |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
221 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
222 if pathlist != l: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
223 if pathlist == []: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
224 if sr.HomeResFile() == preff_handle: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
225 sr.RemoveResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
226 elif sr.HomeResFile() == preff_handle: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
227 sr.data = listtores(pathlist) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
228 sr.ChangedResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
229 else: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
230 sr = Resource(listtores(pathlist)) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
231 sr.AddResource('STR#', PATH_STRINGS_ID, '') |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
232 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
233 if options != saved_options: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
234 newdata = reduce(lambda x, y: x+chr(y), options, '') |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
235 if opr and opr.HomeResFile() == preff_handle: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
236 opr.data = newdata |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
237 opr.ChangedResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
238 else: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
239 opr = Resource(newdata) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
240 opr.AddResource('Popt', OPTIONS_ID, '') |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
241 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
242 CloseResFile(preff_handle) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
243 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
244 def edit_applet(name): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
245 pref_handle = openpreffile(READ) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
246 app_handle = openapplet(name) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
247 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
248 notfound = '' |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
249 l, sr = getprefpath(OVERRIDE_PATH_STRINGS_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
250 if l == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
251 notfound = 'path' |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
252 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
253 l, dummy = getprefpath(PATH_STRINGS_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
254 if l == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
255 message('Cannot find any sys.path resource! (Old python?)') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
256 sys.exit(0) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
257 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
258 fss, dr, fss_changed = getprefdir(OVERRIDE_DIRECTORY_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
259 if fss == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
260 if notfound: |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
261 notfound = notfound + ', directory' |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
262 else: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
263 notfound = 'directory' |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
264 fss, dummy, dummy2 = getprefdir(DIRECTORY_ID) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
265 if fss == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
266 fss = macfs.FSSpec(os.getcwd()) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
267 fss_changed = 1 |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
268 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
269 options, opr = getoptions(OVERRIDE_OPTIONS_ID) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
270 if not opr: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
271 if notfound: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
272 notfound = notfound + ', options' |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
273 else: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
274 notfound = 'options' |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
275 options, dummy = getoptions(OPTIONS_ID) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
276 saved_options = options[:] |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
277 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
278 dummy = dummy2 = None # Discard them. |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
279 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
280 if notfound: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
281 message('Warning: initial %s taken from system-wide defaults'%notfound) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
282 # Let the user play away |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
283 result = interact(l, fss, options, name) |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
284 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
285 # See what we have to update, and how |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
286 if result == None: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
287 sys.exit(0) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
288 |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
289 pathlist, nfss, options = result |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
290 if nfss != fss: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
291 fss_changed = 1 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
292 |
|
3504
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
293 if fss_changed: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
294 alias = nfss.NewAlias() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
295 if dr: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
296 dr.data = alias.data |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
297 dr.ChangedResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
298 else: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
299 dr = Resource(alias.data) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
300 dr.AddResource('alis', OVERRIDE_DIRECTORY_ID, '') |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
301 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
302 if pathlist != l: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
303 if pathlist == []: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
304 if sr.HomeResFile() == app_handle: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
305 sr.RemoveResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
306 elif sr and sr.HomeResFile() == app_handle: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
307 sr.data = listtores(pathlist) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
308 sr.ChangedResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
309 else: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
310 sr = Resource(listtores(pathlist)) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
311 sr.AddResource('STR#', OVERRIDE_PATH_STRINGS_ID, '') |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
312 |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
313 if options != saved_options: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
314 newdata = reduce(lambda x, y: x+chr(y), options, '') |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
315 if opr and opr.HomeResFile() == app_handle: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
316 opr.data = newdata |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
317 opr.ChangedResource() |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
318 else: |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
319 opr = Resource(newdata) |
|
e8d501c88a3e
Added region arg to update calls. And binhex files rebinhexed.
Jack Jansen <jack.jansen@cwi.nl>
parents:
3484
diff
changeset
|
320 opr.AddResource('Popt', OVERRIDE_OPTIONS_ID, '') |
|
3484
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
321 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
322 CloseResFile(app_handle) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
323 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
324 def main(): |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
325 try: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
326 h = OpenResFile('EditPythonPrefs.rsrc') |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
327 except Res.Error: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
328 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
|
329 |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
330 if len(sys.argv) <= 1: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
331 edit_preferences() |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
332 else: |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
333 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
|
334 edit_applet(appl) |
|
ce27e0328462
Added support for editing override preferences in applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
3462
diff
changeset
|
335 |
|
2873
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
336 |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
337 if __name__ == '__main__': |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
338 print # Stupid, to init toolboxes... |
|
315760ba0041
A new home for scripts/applets
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
339 main() |
