On Tue, 26 Mar 2013 05:04:43 -0700, Michael Herrmann wrote: > On Tuesday, March 26, 2013 11:26:30 AM UTC+1, Dave Angel wrote: >> ... >> Seems to me that the official interface should all be methods. >> However, you could have a new object which always represents the >> "focus" window. >> Then the USER could define trivial functions: >> >> def write(*args): >> focused.write(*args) > > It's an interesting idea. But why not give this write(...) to them in > the first place? Am I the only one who appreciates the simplicity of > > start("Notepad") > write("Hello World!") > press(CTRL + 's') > write("test.txt", into="File name") > click("Save") > press(ALT + F4) > > over > > notepad = start("Notepad") > notepad.write("Hello World!") > notepad.press(CTRL + 's') > notepad.write("test.txt", into="File name") > notepad.click("Save") > notepad.press(ALT + F4)?
You are not the only one. I suggest that you have a set of functions that work on "the current window", whatever that is. Preferably there should always be a current window, but if not, ensure that you give a clear error message. Then you have syntax for operating on any named(?) window. So a user can implicitly operate on the current window: select(notepad) write("goodbye cruel world") save() or explicitly on any window they like: excel.quit() I suggest you dig up an old book on "Hypercard", for Apple Macs in the 1980s and 90s. Back in the day, Macs could only run a single application at a time, and Hypercard was limited to a single window at a time (called a "stack"). But that stack (think: window) could have multiple "cards" (think: window tabs), one of which was always current. Hypercard's built-in programming language Hypertalk let you do things like this: go to stack "Notepad" type "goodbye cruel world" in field "main" of card 7 click button "Save" click button "Quit" of card "Main" of stack "Excel" (more or less... it's been a few years since I've had a classic Mac capable of running Hypercard.) -- Steven -- http://mail.python.org/mailman/listinfo/python-list