Mercurial > cpython-lru_cache-weakref
annotate Mac/Modules/ae/nsremote.py @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 6b0af78a90e5 |
| children | 7ace172c2521 |
| rev | line source |
|---|---|
|
3371
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 """nsremote - Control Netscape from python. |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
2 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
3 Interface modelled after unix-interface done |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 by hassan@cs.stanford.edu. |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 Jack Jansen, CWI, January 1996. |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 """ |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 # |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 # Note: this module currently uses the funny SpyGlass AppleEvents, since |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 # these seem to be the only way to get the info from Netscape. It would |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 # be nicer to use the more "object oriented" standard OSA stuff, when it |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 # is implemented in Netscape. |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 # |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 import addpack |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 import sys |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 addpack.addpack('Tools') |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 addpack.addpack('bgen') |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 addpack.addpack('ae') |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 import aetools |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 import Standard_Suite |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 import WWW_Suite |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 import MacOS |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
25 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 class Netscape(aetools.TalkTo, Standard_Suite.Standard_Suite, WWW_Suite.WWW_Suite): |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 pass |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
28 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 SIGNATURE='MOSS' |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
30 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 Error = 'nsremote.Error' |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
33 _talker = None |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 def _init(): |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 global _talker |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
37 if _talker == None: |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
38 _talker = Netscape(SIGNATURE) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
39 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
40 def list(dpyinfo=""): |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
41 _init() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 list = _talker.list_windows() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 return map(lambda x: (x, 'version unknown'), list) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
44 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
45 def geturl(windowid=0, dpyinfo=""): |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
46 _init() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
47 if windowid == 0: |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
48 ids = _talker.list_windows() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
49 if not ids: |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
50 raise Error, 'No netscape windows open' |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
51 windowid = ids[0] |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
52 info = _talker.get_window_info(windowid) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
53 return info |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
54 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
55 def openurl(url, windowid=0, dpyinfo=""): |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
56 _init() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
57 if windowid == 0: |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
58 _talker.OpenURL(url) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
59 else: |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
60 _talker.OpenURL(url, toWindow=windowid) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
61 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
62 def _test(): |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
63 """Test program: Open www.python.org in all windows, then revert""" |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
64 import sys |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
65 windows_and_versions = list() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 windows_and_urls = map(lambda x: (x[0], geturl(x[0])[0]), windows_and_versions) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 for id, version in windows_and_versions: |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 openurl('http://www.python.org/', windowid=id) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 print 'Type return to revert to old contents-' |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
70 sys.stdin.readline() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 for id, url in windows_and_urls: |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 openurl(url, id) |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
73 |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
74 if __name__ == '__main__': |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
75 _test() |
|
6b0af78a90e5
Modules implementing WWW and URL suite, and a module to control netscape.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 |
