C.D.Lane1/83MULTIWMULTIW.LSPcontainsthebasicfunctionsnecessaryforahierarchicalwindowenvironment.Thefunctionsprovideboththemeanstolinkwindowsandthechangestothestandardwindowfunctionstohandlemultiwindowsinareasonableway.Onlytheminimalsupportisincorporatedsinceitisunclearhowmultiwindowswillbeusedindifferentsettings.Windowsthatbelongtootherwindowswillmove,close,shrinkandopenwhentheirsuperwindowdoes.Asuperwindowisnotaffectedbythewindowfunctionsofitssubwindows(butcanbemadetobe).Subwindowscanbemoved,closed,shrunk,opened,andsoforthasnormalwindows.Whenburied,multiwindowsburyasagroup,retainingtheirrelativelayering,butgoingbelowunrelatedwindows.Togetthefullsupportformultiwindows,(MULTIWADVICE)mustbeinvoked.Thisfunctionadvisesseveralstandardwindowfunctionstoresetthewindowlayersaftertheyperformtheiroperations.Multiwindowscanbeusedwithoutadvice,butthewindowswillhavetobeexplicitlyreset.Currentlythefunctionsbeingadvisedare(BURYWCLEARWMOVEWOPENWSHRINKW).Wherepossible,functionsonthewindowspropertylistwerechangedratherthanadvisingtheexistingones,tokeepthesystemascompatibleaspossiblewithanyenvironmentitsusedin.IfSuperWindow,orSubWindowLstareNILinfollowingfunctions,theyarepromptedforwith\MULTIWPROMPT.MULTIW(SuperWindowSubWindowLst)[function]SubWindowLstcanbealistofwindowsorawindow.MULTIWaddswindowsinSubWindowLsttoSuperWindow'sSUBWINDOWLSTpropertyifitexits,createsitotherwise(WINDOWADDPROP).Also,SuperWindowgetsaddedtotheSUPERWINDOWLSTpropertyofeachelementoftheSubWindowLst,providingpointersinbothdirections(currently,themultiwindowpackagedoesnotusethebackwardpointers,theyareprovidedfortheuser'sconvienence).Superwindowalsogetsitswindowfunction(see\MULTIWNEWFNS)propertiesredefinedtothemultiwindowversions.WARNING:WindowstructuresmustbeDAGs(directedacyclicgraphs),thereshouldbenowayawindowcanreachitselfbyfollowingoutthepointerstoitssubwindows.Recursivewindowstructureswillcauseinfiniteloopingofthewindowfunctions.MULTIWFREE(SuperWindowSubWindowLst)[function]SubWindowLstcanbealistofwindows,asinglewindow,TorNIL.MULTIWFREEfreesthelinksfromSuperWindowtothewindowsinSubWindowLstaswellasthepointersback.IfSubWindowLstisT,thenSuperWindowisfreedofallitssubwindows(andtheyofit).MULTIWADVICE()[function]MULTIWADVICEadvisesfunctionsbasedonthescriptsin\MULTIWADVISEDFNS.ThefunctionreturnsalistoftheadvisedfunctionswhichshouldbesavedifonewishestoUNADVISEthefunctions(whichisrecommendedbeforeanothercallto(MULTIWADVICE)).BI'q(r ^ p")/M13( :@3 I izW "n%M+-0L57K9?kDJ i .@ !%y(+0r5f6 >B CKDIg i Ve"_ ,s|p)$%&*.)2848;s>pB#G&Js ibp=1qv!'-.03d9<$>@DF8I ixb &$+.046;C6G i -#q&+;026:x@j S4;s & 37,9?.BDG i0`d"b$z()*048;AEh if ls%p %(*|0-2679 ?CJ  i՜&$+2;8fBF i~!#'F,04.9<A?DFJ  i8 !$ +-0 4s pFsn p$Q'*,3 9=:?FIP ij r Ȗzs  r%ypFYsFpKs p %c &G()]/6O9?esA) pJs i p !'()-e13F9qHs i. p:"a+ .358>F@sB pK idgO #J *2, 5Y:>>@CF7 iz&N!o%] s. p79<>D I i N %')H 1nr  p  !K!K$&+1z6;?>CFH<KB i2" $x&,-/ 8>dC I ih_! r ﰔ "s ' r)!pFYsFpKs pLK%5&@* /r02d6 @aCEIs i p)s p)*-/L16;s< pFGIEs i, p2$ %+(/+,r X pFYsFpK  D$-(+*Os,p12CF i+dy"'+-1{25:;CFm i "%*& lm$TVm$1MULTIWGRAPH(SuperWindowDisplayWindow)[function]MULTIWGRAPHgraphsawindowrelationstructureinDisplayWindow(whichcanbeNIL).Usefulindebuggingrelationshipsbetweenwindows.TheGRAPHERpackagemustbeloadedtousethisfunction.\MULTIWGRAPH(NodeWindow)[function]FunctionMULTIWGRAPHusestorecursivelyfollowdownthewindowlinks.MultiWindowWindowFunctionsMostarefunctionallyidenticaltothenormalwindowfunctionsexcepttheyperformthepropertaskonallofthesubwindowsandresetthewindowstructure.\MULTIWMOVEFN(WindowNewPosition)[function]\MULTIWCLOSEFN(Window)[function]\MULTIWSHRINKFN(Window)[function]\MULTIWEXPANDFN(Window)[function]\MULTIWTOTOPFN(Window)[function]\MULTIWBURYFN(Window)[function]\MULTIWPROMPT(PromptString)[function]PrintsPromptStringinPROMPTWINDOWandreturnsa(WHICHW(GETPOSITION))NOTE:AdemonstrationofmultiwindowscanbefoundinMULTIW.DEMO.TheGRAPHERpackageshouldbeloaded,aswellasMULTIW.LSP.Thecall(DEMOMULTIWDEMO)startsthedemo.K7r s ! r*pFYsFpK 1#N(I-s/ p9:=@0BF\J i  %@'/`4t79t=?DADr  @s r!pFYsFpK J V!"" )Z-e13787t i  ap X w!#J',27 9?6AyEHJ| i# ( Ib# r O us  r'hpFYsFpKr { sRr pFYsFpKr ҧs0r pFYsFpKr s|r!FpFYsFpKr )sr npFYsFpKr + srWpFYsFpKr W ks r"pFYsFpK ᅢs p 'w*./6 r ﻯ s~pﻯS K &)(+.r0 p;<?G+ i|"dr p%&#(+,0m ;?=Apm$TVm$ HELVETICA  TIMESROMAN  TIMESROMAN  HELVETICA  TIMESROMAN f  `j/TDSK:MULTIW.MSS;15LANE18-Jan-83 08:15 (Tue a.m.)