summaryrefslogtreecommitdiffstats
path: root/Mac/Lib
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2000-08-20 20:06:51 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2000-08-20 20:06:51 (GMT)
commit742ca0385a7c42f5672db82a093f29a22f3dd7a7 (patch)
tree974a56924b37fd9254aaa6325fe466bce9aee1a7 /Mac/Lib
parent18b47a07b7e0d962a9ae4cade56eebbf46e1273a (diff)
downloadcpython-742ca0385a7c42f5672db82a093f29a22f3dd7a7.zip
cpython-742ca0385a7c42f5672db82a093f29a22f3dd7a7.tar.gz
cpython-742ca0385a7c42f5672db82a093f29a22f3dd7a7.tar.bz2
Updated for new AppleScript structure and moved to Lib (it's far too useful to lurk in the source folder).
Diffstat (limited to 'Mac/Lib')
-rw-r--r--Mac/Lib/nsremote.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/Mac/Lib/nsremote.py b/Mac/Lib/nsremote.py
new file mode 100644
index 0000000..a12cd35
--- /dev/null
+++ b/Mac/Lib/nsremote.py
@@ -0,0 +1,65 @@
+"""nsremote - Control Netscape from python.
+
+Interface modelled after unix-interface done
+by hassan@cs.stanford.edu.
+
+Jack Jansen, CWI, January 1996.
+"""
+#
+# Note: this module currently uses the funny SpyGlass AppleEvents, since
+# these seem to be the only way to get the info from Netscape. It would
+# be nicer to use the more "object oriented" standard OSA stuff, when it
+# is implemented in Netscape.
+#
+import sys
+
+import aetools
+import Netscape
+import MacOS
+
+Error = 'nsremote.Error'
+
+_talker = None
+
+def _init():
+ global _talker
+ if _talker == None:
+ _talker = Netscape.Netscape()
+
+def list(dpyinfo=""):
+ _init()
+ list = _talker.list_windows()
+ return map(lambda x: (x, 'version unknown'), list)
+
+def geturl(windowid=0, dpyinfo=""):
+ _init()
+ if windowid == 0:
+ ids = _talker.list_windows()
+ if not ids:
+ raise Error, 'No netscape windows open'
+ windowid = ids[0]
+ info = _talker.get_window_info(windowid)
+ return info
+
+def openurl(url, windowid=0, dpyinfo=""):
+ _init()
+ if windowid == 0:
+ _talker.OpenURL(url)
+ else:
+ _talker.OpenURL(url, toWindow=windowid)
+
+def _test():
+ """Test program: Open www.python.org in all windows, then revert"""
+ import sys
+ windows_and_versions = list()
+ windows_and_urls = map(lambda x: (x[0], geturl(x[0])[0]), windows_and_versions)
+ for id, version in windows_and_versions:
+ openurl('http://www.python.org/', windowid=id)
+ print 'Type return to revert to old contents-'
+ sys.stdin.readline()
+ for id, url in windows_and_urls:
+ openurl(url, id)
+
+if __name__ == '__main__':
+ _test()
+