On Tuesday, March 26, 2013 12:40:45 AM UTC+1, Mitya Sirenef wrote: > ... > > I think I would prefer context managers. I don't think it's a big > problem for > win users because this behaviour would be one of the first things documented > in the start guide and would be all over example scripts, so a new user > missing > or forgetting it is not a realistic scenario. > > The advantages are that it's explicit, blocks are indented and it's > impossible to > miss which window is the action applied to, and at the same time actions are > short and easy to type and read.
Thank you for your reply. What do you think of Chris Angelico's points? He wrote: > What happens at the __exit__ of the context manager? What happens if > context managers are nested? I'd be inclined to the simpler option of > an explicit switch (since focus doesn't really "stack" and it'd feel > weird for focus to *sometimes* switch away when you're done working > with one window), though the context manager syntax does have its > advantages too. What I am most afraid of: that the window that's currently the context "disappears": notepad = start("Notepad") with notepad: press(ALT + TAB) write("Am I in Notepad now?") What do you think of designs #3 and #4? notepad_1 = start("Notepad") notepad_2 = start("Notepad") switch_to(notepad_1) write("Hello World!") press(CTRL + 'a', CTRL + 'c') switch_to(notepad_2) press(CTRL + 'v') notepad_1 = start("Notepad") notepad_2 = start("Notepad") notepad_1.activate() write("Hello World!") press(CTRL + 'a', CTRL + 'c') notepad_2.activate() press(CTRL + 'v') I somehow prefer "activate" over "focus" as in my feeling, you'd normally say that you focus *on* something, so it should be called "focus_on" or "give_focus[_to]". Can you say, in everyday English, that you "focus a window"? I'm not a native speaker so maybe my feeling is misguided. Thanks, Michael -- http://mail.python.org/mailman/listinfo/python-list