Web Tiler by Erick Tejkowsi
03-21-02




Are you tired of navigating through all of the windows in your browser? Today we will expand on some Javascript hints that Michael Coyle has recently posted on ResExcellence. With the help of REALbasic, AppleScript, and Javascript, we can clean up our web browsers in a flash.

Build the Interface

Today's project is pretty short. The interface consist solely of a window with one PushButton and a StaticText control. You will also need to build two applescripts.

Add the Code

The first step is to create your AppleScripts. This is how your REALbasic project will interact with the browser (in this case, Internet Explorer). First, create an AppleScript with the Script Editor and add this code:

on run {}
tell application "Internet Explorer"
  return ListWindows
end tell
end run

Save the script, naming it listwindows.script. Then, create a new AppleScript and add this code to it:

on run {x, y}
tell application "Internet Explorer"
  set s to x
  do script s window y
end tell
end run

Save the second script, naming it doScript.script. You may now quit the Script Editor. Go back to your REALbasic project and add the following code to the Action event of PushButton1:

  dim s,ss,w,x as string
  dim i,n,wcount as integer
  dim screenwidth,screenheight as integer
  dim wcounter,hcounter as integer
  
  wcounter = 0
  hcounter = 0
  
  screenwidth = screen(0).width
  screenheight = screen(0).height 
  
  ss = listwindows()
  wcount = countfields(ss,",")
  for i=1 to wcount
    w = nthField(ss,",",i)
    n = val(w)
    s = "javascript:void(window.moveTo("+str(wcounter)+","+str(hcounter)+"))"
    x=doScript(s,n)
    s = "javascript:void(window.resizeTo(300,300))"
    wcounter = wcounter+300
    x=doScript(s,n)
    
    if wcounter>screenwidth then
      wcounter=0
      hcounter = hcounter+300
    end if
    
  next
  staticText1.text = str(wcount)+" windows resized"
  

Conclusion

That's it for this week! When you run this project and press PushButton1, the various browser windows in Internet Explorer will "tile" across and down your screen, giving you instant access to any of them. Feel free to play with the parameters in the REALbasic code or the AppleScripts to see how it affects the tiling. You can, of course, also adapt the REALbasic project to tile in any number of manners. By changing the window to a global floating window, you can also access this window tiler while using Internet Explorer, since it will hover above IE's windows. As usual, you can download the finished project. See you next week!