(* WindowSetter 1.0 Järjestelee kansion ja sen alikansioiden ikkunat. Käyttötarkoitus on asetella ikkunoiden näkymät ennen rompulle polttoa. Aseta ensin jonkin kansion näkymä haluamallasi tavalla. Kun skripti kysyy esimerkkiä, osoita sille aseteltu kansio. Asetukset kopioidaan. Skripti kysyy seuraavaksi, mistä kansiosta asettelu aloitetaan. Vaatimukset: AppleScript 1.3.4, standard additions ja Finder 8.5. Ongelmia: Finder on aika hidas tässä. Ikävä kyllä Finder 8.5 ei anna skriptata grid sizea. Jos rekursiivisen skriptin ajaa Skriptieditorissa, ohjelman muisti voi käydä vähiin. 2000-11-05 Tuomas Rosberg <vanhentunut> Public Domain. Käytä omalla riskillä. *) global propertiez global resoX global resoY property posX : 6 property posY : 41 property roundComplete : false property leaveOpen : true on run my getPrefReso() my getProps() set aFolder to choose folder with prompt "Valitse kansio, jonka näkymä asetetaan." display dialog ¬ "Jätetäänkö alikansioiden ikkunat auki automaattisen asettelun jälkeen?" & return & ¬ "Finderin avoimien ikkunoiden määrä on rajallinen." buttons {"Ei", "Kyllä"} default button "Kyllä" if button returned of result is "Kyllä" then set leaveOpen to true else set leaveOpen to false end if my setProps(aFolder) my digFolder(aFolder) set posX to 6 set posY to 41 end run -- on digFolder(aFolder) set folderList to {} tell application "Finder" activate set folderList to folderList & (every folder of aFolder) if folderList is not {} then repeat with aFolder in folderList my setProps(aFolder) if roundComplete is false then set posX to posX + 5 set posY to posY + 18 else -- Ollaan resoluution mukaisessa alareunassa. set posX to 6 set posY to 41 end if my digFolder(aFolder) -- Rekursio alikansioille. set folderList to rest of folderList set roundComplete to false end repeat end if end tell end digFolder -- on getPrefReso() set resolutions to {"640 * 480", "800 * 600", "832 * 624", "1024 * 768"} set prefReso to ¬ (choose from list resolutions with prompt "Mille näytölle kansioikkunoiden tulee mahtua?" default items "1024 * 768") set prefReso to prefReso as text set tid to text item delimiters set text item delimiters to space set resoX to first text item in prefReso as integer set resoY to third text item in prefReso as integer end getPrefReso -- on getProps() set exampleFolder to ¬ choose folder with prompt "Valitse kansio, jonka näkymä on jo asetettu sopivaksi." tell application "Finder" open exampleFolder set w to container window of exampleFolder set vie to view of w set isi to icon size of w set spa to spatial view arrangement of w set bua to button view arrangement of w set sor to sort direction of w set cal to calculates folder sizes of w -- Are folder sizes calculated and displayed in the window? (does not apply to suitcase windows) set com to shows comments of w -- Are comments displayed in the window? (does not apply to suitcases) set cda to shows creation date of w -- Are creation dates displayed in the window? set kin to shows kind of w -- Are document kinds displayed in the window? set lab to shows label of w -- Are labels displayed in the window? set mda to shows modification date of w -- Are modification dates displayed in the window? set siz to shows size of w -- Are file sizes displayed in the window? set ver to shows version of w -- Are file versions displayed in the window? (does not apply to suitcase windows) set rel to uses relative dates of w -- Are relative dates (e.g., today, yesterday) shown in the window? set propertiez to ¬ {view:vie, icon size:isi, spatial view arrangement:spa, button view arrangement:bua, sort direction:sor, shows comments:com, shows creation date:cda, shows kind:kin, shows label:lab, shows modification date:mda, shows size:siz, shows version:ver, uses relative dates:rel} close exampleFolder end tell end getProps -- on setProps(f) tell application "Finder" activate open f set w to container window of f try set position of w to {posX, posY} on error -- Finder 8.5 ei osaa asemoida, jos ikkunan alkuperäinen koko on liian pieni (ilmeisesti asetettu järjestelmässä 7) set zoomed full size of w to true set position of w to {posX, posY} end try set view of w to contents of view in propertiez set icon size of w to contents of icon size in propertiez set spatial view arrangement of w to contents of spatial view arrangement in propertiez set button view arrangement of w to contents of button view arrangement in propertiez set zoomed of w to true set bou to bounds of w if third item in bou > resoX then set third item in bou to resoX end if if fourth item in bou > resoY then set fourth item in bou to resoY end if try set bounds of w to bou on error -- Finderin ikkuna ei mahdu enää pienemmäksi, ollaan resoluution alareunassa. set roundComplete to true end try (* käytä seuraavia sitten kun tarvitset niitä *) --set sort direction of w to contents of sort direction in propertiez --set shows comments of w to contents of shows comments in propertiez --set shows creation date of w to contents of shows creation date in propertiez --set shows kind of w to contents of shows kind in propertiez --set shows label of w to contents of shows label in propertiez --set shows modification date of w to contents of shows modification date in propertiez --set shows size of w to contents of shows size in propertiez --set uses relative dates of w to contents of uses relative dates in propertiez set has custom view settings of w to true -- Muutokset Finderin vakionäkymään eivät muuta tämän kansion näkymää. if leaveOpen is false then close f end if end tell end setProps --