Sheri wrote: > New question: what would be the best approach to reversing an *Exec > Tile? E.g. if one button Tiles specific windows can another restore > them to their previous positions?
If there is a 'reverse tile' builtin function in powerpro, I've never found one. However, a while ago Bruce posted a "tiling task switcher" script which tiles and restores windows. ;Subject: Re: Task switching ;Date: Tue, 20 Dec 2005 14:06:56 -0000 ;From: "brucexs" <[EMAIL PROTECTED]> ;Newsgroups: gmane.comp.windows.power-pro ;Reply-To: [email protected] ; ;> I looked at the script some more, and in my testing, it does not ;seem ;> to work if you try to re-activate the currently active window. ;Also, ;> it does not handle minned windows well. ;> ;> I'll post another version which addresses these issues at some point. ;> ; ;Here is a revised version of the script which does a better job with ;minned windows. Store it in file tiler.txt. I had some trouble with ;hookwindowevents, so I now use it by configuring a single hot key (a ;mouse-related hotkey is convenient for me). The command is ; ;global g_tiled ;if (g_tiled) ;[EMAIL PROTECTED] ;else ;.tiler ; ;Here the if statement is in the More Commands edit box. ; ;Press the hot key to tile the windows. Move the mouse over the window ;you want to activate and press the hotkey again to untile and activate ;the selected window. ; ; ;Here is the script @toggle global g_tiled if (g_tiled) do [EMAIL PROTECTED] else [EMAIL PROTECTED] endif quit @main ;-------------------------- local all=win.handlelist("*",0) local nwin=word(all,0) global g_tiled=0 static vwin if (vec.exists(vwin)) vwin=vec.destroy(vwin) /* Store window info as six integers: handle, (restored) left, top, width, height, state state =0 for normal, =1 for max, =2 for min, =3 for minned of max window */ vwin=vec.create(6*nwin) local iv=0 for (local i=0; i<nwin; i=i+1) local hwnd=word(all,i+1) if (not win.toolwindow(hwnd) && win.class(hwnd)!="#32770") do vwin[iv]=hwnd vwin[iv+5]=0 ;; state if (win.maxxed(hwnd)) do win.restore(hwnd) wait.for(20) vwin[iv+5]=1 elseif (win.minned(hwnd)) win.restore(hwnd) wait.for (20) if (win.maxxed(hwnd)) do win.restore(hwnd) wait.for (20) vwin[iv+5]=3 else vwin[iv+5]=2 endif endif vwin[iv+1]=win.left(hwnd) vwin[iv+2]=win.top(hwnd) vwin[iv+3]=win.width(hwnd) vwin[iv+4]=win.height(hwnd) iv=iv+6 endif endfor if (iv>0) do exec tile t wait.for(1000) g_tiled=1 endif quit ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @reset global g_tiled=0 static vwin if (not vec.exists(vwin)) quit local active=win.handle("under") local iv=0 for (local iv=0; iv<vec.length(vwin); iv=iv+6) local hwnd=vwin[iv] win.move(hwnd, vwin[iv+1], vwin[iv+2]) win.size(hwnd, vwin[iv+3], vwin[iv+4]) if (vwin[iv+5]==1 ||(vwin[iv+5]==3 && hwnd==active)) do win.maximize(hwnd) elseif (vwin[iv+5]==2 && hwnd!=active) win.minimize(hwnd) elseif (vwin[iv+5]==3 && hwnd!=active) win.maximize(hwnd) win.minimize(hwnd) endif endfor vwin=vec.destroy(vwin) win.show(active) quit Attention: PowerPro's Web site has moved: http://www.ppro.org Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/power-pro/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
