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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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